赞
踩
Rasa 是一个开源的机器学习框架,用于构建会话式AI助手和聊天机器人。它包含了一系列命令行工具来帮助开发者管理、训练和测试他们的对话模型。以下是Rasa中一些常用命令及其用法和参数的概览:
rasa init
rasa train
--domain
: 指定领域文件路径,默认使用domain.yml
。--config
: 指定配置文件路径,默认使用config.yml
。--data
: 指定训练数据文件路径,默认结合nlu.md
和stories.md
或它们在data/
目录下的对应文件。--out
: 指定输出模型的目录,默认为models/
。--fixed-model-name
: 自定义模型文件名,而不是默认的.tar.gz
格式。--force
: 强制重新训练模型,即使数据和配置未更改。rasa train nlu
或 rasa train core
rasa train
,但针对性地训练模型的一个部分。rasa shell
--model
: 指定要使用的模型路径,默认为最新模型。rasa test
--stories
: 指定测试故事文件或目录。--nlu
: 指定NLU测试数据文件。--fail-on-prediction-errors
: 在预测错误时标记测试失败。rasa version
rasa run [server|actions|..."
--port
: 指定服务端口。--cors
: 设置跨源资源共享(CORS)策略。--credentials
: 指定认证凭据文件路径。如果想要通过开放API来运行Rasa,以便其他应用程序或服务可以通过HTTP请求与您的Rasa聊天机器人交互,您可以使用Rasa的HTTP API。以下是设置和使用Rasa HTTP API的基本步骤及命令:
命令:
rasa run --enable-api [--port PORT] [--cors [ALLOWED_ORIGINS]]
--enable-api
: 开启HTTP API。--port PORT
: 指定API监听的端口号,默认是5005。--cors [ALLOWED_ORIGINS]
: 如果需要,设置允许跨域访问的来源。例如,--cors "*"
允许任何来源,或者--cors "http://example.com"
只允许特定域名。一旦Rasa服务器以API模式运行,它将提供以下几个主要端点(假设默认端口5005):
发送消息并接收回复
http://localhost:5005/webhooks/rest/webhook
POST
- {
- "message": "用户输入的消息",
- "sender": "用户标识"
- }
解析自然语言理解(NLU)
http://localhost:5005/model/parse
POST
- {
- "text": "用户输入的文本"
- }
以上步骤可以帮助您通过API方式运行Rasa,使其能够接收外部请求并与之交互。
在使用Rasa HTTP API进行多轮对话时,维护上下文和状态是关键,以确保对话的连贯性。Rasa通过会话ID(通常是通过sender_id
或自定义的会话跟踪机制)来实现这一点。以下是保持多轮对话连贯性的几种方法:
每次与API交互时,客户端应该提供一个唯一的会话ID(通常是sender_id
)。Rasa会根据这个ID保存和检索对话的上下文。在发送消息的请求中包含这个ID,Rasa就能识别出这是同一个对话的延续。
- {
- "message": "我需要预订明天去纽约的票",
- "sender": "user123" // 会话ID
- }
Rasa本身支持会话状态管理,但具体实现细节取决于你如何配置和使用它。如果你使用Rasa SDK构建自定义动作服务,可以利用其提供的会话管理工具来维护状态。
客户端应存储每次交互的响应,特别是当Rasa返回的响应中包含了对上下文有影响的信息时(如通过插槽填充确认的信息)。这样,在后续的请求中,可以将必要的上下文信息一并发送,帮助Rasa理解当前对话状态。
对于更复杂的需求,可以配置Rasa的Tracker Store,它负责存储对话追踪器(Trackers),即对话的历史记录。Rasa支持多种Tracker Store,包括内存中的、SQL数据库等。这使得即使在重启Rasa服务后,也能恢复之前的对话状态(只要配置得当)。
在实际调用API时,确保每个用户或每个对话有一个稳定的sender_id
,并且在连续的请求之间保持这个ID不变。如果需要在不同平台或设备间维持对话状态,确保sender_id
能跨平台识别同一对话。
多轮对话的连贯性主要依赖于会话ID的管理和状态的恰当传递。Rasa提供了必要的机制来支持这一点,但实现细节需要开发者在设计客户端和服务端交互逻辑时仔细考虑。正确实施上述策略,即可在开放API环境下保持流畅的多轮对话体验。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。