介绍
@tmtek/convo
是一个快速搭建聊天机器人的框架,它基于 Node.js 平台,使用 TypeScript 编写,依赖了 Bot Framework 和 Azure 的 Cognitive Services,可以方便快速地创建并运行聊天机器人应用。
安装
你需要先安装 Node.js 平台和 npm 工具,然后执行以下命令:
npm install -g @tmtek/convo
这将全局安装 @tmtek/convo
包,可以在终端中直接使用。
开始
在使用 @tmtek/convo
前,你需要先准备一个 Bot Framework 的 AppId 和 AppSecret,以及 Cognitive Services 的 AzureSubscriptionKey 和 AzureRegion。你可以在 Bot Framework 网站 和 Azure 网站 上免费注册并获取这些凭据。
准备好凭据后,你可以使用以下命令创建一个新的聊天机器人项目:
convo create <bot-name>
这将在当前目录下创建一个名为 <bot-name>
的新项目目录,并生成相关的配置文件和代码骨架。
接着,你需要在项目目录中执行以下命令,安装项目所需的依赖:
npm install
然后修改 .env
配置文件,将凭据信息填入:
MicrosoftAppId=<your-bot-framework-app-id> MicrosoftAppPassword=<your-bot-framework-app-secret> COGNITIVE_SERVICES_SUBSCRIPTION_KEY=<your-azure-cognitive-services-subscription-key> COGNITIVE_SERVICES_REGION=<your-azure-cognitive-services-region>
最后,你可以启动聊天机器人程序:
npm start
这将启动一个 HTTP 服务器,监听本地的 3978 端口,可以在本地测试聊天机器人的功能。
基本概念
@tmtek/convo
框架的核心是 Convo
类,它代表一个聊天机器人应用程序。
你可以创建一个 JS/TS 文件,使用以下代码导入 @tmtek/convo
包,并创建一个 Convo
实例:
import { Convo } from '@tmtek/convo'; const convo = new Convo();
Convo
实例包含了多个事件和方法,用于处理聊天机器人的输入和输出,包括收到消息、发送消息、获取用户信息等。
消息处理
当聊天机器人接收到用户的消息时,会触发 activityReceived
事件。你可以在 Convo
实例上注册一个事件处理函数,来处理这个事件。
convo.on('activityReceived', async (activity) => { // 这里写消息处理逻辑 });
在事件处理函数中,你可以读取用户的输入信息,根据输入信息处理并生成输出信息,然后将输出信息发送回给用户。
-- -------------------- ---- ------- ---------------------------- ----- ---------- -- - ----- ---- - -------------- ----- -------- - --------------- ----- -------------------- ----- ---------- ----- --------- ---------- -------------- ----- ------------------- --- ---展开代码
在发送消息时,你需要指定消息的类型、文本内容、收件人、发件人等信息。
上下文管理
在处理聊天机器人消息时,需要考虑消息之间的上下文关系,以便更好的理解用户的意图。@tmtek/convo
提供了一组上下文相关的方法,使得消息处理逻辑更加简单和易于维护。
GenerateContextId
GenerateContextId
是一个生成上下文标识的方法,可以用于标识不同的上下文。
const contextId = convo.GenerateContextId(activity);
GetContextData
GetContextData
是一个获取上下文信息的方法,可以从上下文缓存中读取存储的数据。
const data = convo.GetContextData(contextId);
SetContextData
SetContextData
是一个保存上下文信息的方法,可以将数据存储到上下文缓存中。
convo.SetContextData(contextId, data);
DeleteContextData
DeleteContextData
是一个删除上下文信息的方法,可以从上下文缓存中删除指定的数据。
convo.DeleteContextData(contextId, key);
ClearContextData
ClearContextData
是一个清空上下文信息的方法,可以清空指定的上下文缓存。
convo.ClearContextData(contextId);
示例代码
-- -------------------- ---- ------- ------ - ----- - ---- --------------- ----- ----- - --- -------- ---------------------------- ----- ---------- -- - ----- ---- - -------------- ----- -------- - --------------- ----- -------------------- ----- ---------- ----- --------- ---------- -------------- ----- ------------------- --- --- ----- ---- - ---------------- -- ----- ------------------ -- -- - ------------------ --------- -- ---- ---------- ---展开代码
总结
本文介绍了如何使用 @tmtek/convo
快速搭建聊天机器人应用程序,包括项目创建、依赖安装、配置凭据、处理消息、管理上下文等方面的内容,希望能够对开发聊天机器人的初学者有所帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600668fcd9381d61a3541053