跳到主要内容

各个平台的上下文信息

上下文是什么?

这些上下文是一个 AI 回复需要参考的额外环境信息,例如订单信息,商品信息等等,这些信息可以帮助 AI 更好的理解用户的问题,从而给出更好的回答。

这个上下文的结构是一个 Map

export type Context = Map<string, string>;

所以如果想要取得什么信息只需要

const val = ctx.get('key');

这里的 key 是一些预定义的 key:

// 固定会传递的上下文参数
export const CTX_APP_NAME = 'CTX_APP_NAME';
export const CTX_APP_ID = 'CTX_APP_ID';
export const CTX_INSTANCE_ID = 'CTX_INSTANCE_ID';

export const CTX_USERNAME = 'CTX_USERNAME'; // 当前操作的用户名
export const CTX_PLATFORM = 'CTX_PLATFORM'; // 当前所在平台
export const CTX_HAS_NEW_MESSAGE = 'CTX_HAS_NEW_MESSAGE'; // 是否有新消息
export const CTX_HAS_GROUP_MESSAGE = 'CTX_HAS_GROUP_MESSAGE'; // 是否有群消息

// 电商平台
export const CTX_CURRENT_GOODS = 'CTX_CURRENT_GOODS'; // 当前商品
export const CTX_CURRENT_GOODS_ID = 'CTX_CURRENT_GOODS_ID'; // 当前商品 ID
export const CTX_MEMBER_TAG = 'CTX_MEMBER_TAG'; // 会员标签
export const CTX_FAN_TAG = 'CTX_FAN_TAG'; // 粉丝标签
export const CTX_NEW_CUSTOMER_TAG = 'CTX_NEW_CUSTOMER_TAG'; // 新客标签

export const CTX_ORDER_STATUS = 'CTX_ORDER_STATUS'; // 订单状态
export const CTX_ORDER_ID = 'CTX_ORDER_ID'; // 订单 ID
export const CTX_ORDER_AMOUNT = 'CTX_ORDER_AMOUNT'; // PDD 平台特有 [订单金额]
export const CTX_GOODS_SPEC = 'CTX_GOODS_SPEC'; // PDD 平台特有 [商品规格]
export const CTX_LOGISTICS_STATUS = 'CTX_LOGISTICS_STATUS'; // 物流状态

如何使用这些上下文信息?

如果要使用这些上下文信息,只需要在插件中使用 ctx.get('key') 即可。

alt text

如果想要调试插件的上下文,可以点开 “配置测试用例” 然后在 “上下文信息” 中填写对应的上下文信息,然后点击 “测试” 按钮即可。

alt text

我们可以测试一下插件,这里我们使用一个简单的插件:

async function main(ctx, messages) {
console.log('插件开始执行,这是 app_name:', ctx.get('app_name'));

return {
content: '你好这是一个测试插件',
type: 'TEXT',
};
}

可以看到我们在插件中打印了 app_name 的值。

alt text