当前位置:   article > 正文

《Ai企业知识库》rasa项目-项目启动命令集-开放api接口启动以及保证多轮对话!!_rasa api

rasa api

阿丹:

        Rasa 是一个开源的机器学习框架,用于构建会话式AI助手和聊天机器人。它包含了一系列命令行工具来帮助开发者管理、训练和测试他们的对话模型。以下是Rasa中一些常用命令及其用法和参数的概览:

初始化项目

  • 命令rasa init
    • 用途: 创建一个新的Rasa项目,生成基本的文件结构和示例数据。
    • 参数:
      • 无直接参数,但执行时会提示是否需要下载示例数据。

训练模型

  • 命令rasa train
    • 用途: 训练Rasa模型,包括自然语言理解(NLU)和对话管理(Core)部分。
    • 参数:
      • --domain: 指定领域文件路径,默认使用domain.yml
      • --config: 指定配置文件路径,默认使用config.yml
      • --data: 指定训练数据文件路径,默认结合nlu.mdstories.md或它们在data/目录下的对应文件。
      • --out: 指定输出模型的目录,默认为models/
      • --fixed-model-name: 自定义模型文件名,而不是默认的.tar.gz格式。
      • --force: 强制重新训练模型,即使数据和配置未更改。

训练特定部分

  • 命令rasa train nlu 或 rasa train core
    • 用途: 分别仅训练NLU模型或Core模型。
    • 参数: 类似于rasa train,但针对性地训练模型的一个部分。

运行交互式会话

  • 命令rasa shell
    • 用途: 在命令行界面启动一个交互式会话,以测试训练好的模型。
    • 参数:
      • --model: 指定要使用的模型路径,默认为最新模型。

测试模型

  • 命令rasa test
    • 用途: 根据测试数据评估模型的性能。
    • 参数:
      • --stories: 指定测试故事文件或目录。
      • --nlu: 指定NLU测试数据文件。
      • --fail-on-prediction-errors: 在预测错误时标记测试失败。

查看版本

  • 命令rasa version
    • 用途: 显示安装的Rasa版本信息。

服务部署

  • 命令rasa run [server|actions|..."
    • 用途: 运行Rasa服务器、动作服务器等。
    • 参数:
      • --port: 指定服务端口。
      • --cors: 设置跨源资源共享(CORS)策略。
      • --credentials: 指定认证凭据文件路径。

HTTP启动!!!!

如果想要通过开放API来运行Rasa,以便其他应用程序或服务可以通过HTTP请求与您的Rasa聊天机器人交互,您可以使用Rasa的HTTP API。以下是设置和使用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"只允许特定域名。

API端点概述

一旦Rasa服务器以API模式运行,它将提供以下几个主要端点(假设默认端口5005):

发送消息并接收回复

  • URLhttp://localhost:5005/webhooks/rest/webhook
  • 方法POST
  • 请求体示例
  1. {
  2. "message": "用户输入的消息",
  3. "sender": "用户标识"
  4. }
  • 响应: 包含机器人的回复信息。

解析自然语言理解(NLU)

  • URLhttp://localhost:5005/model/parse
  • 方法POST
  • 请求体示例
  1. {
  2. "text": "用户输入的文本"
  3. }
  • 响应: 包含NLU解析结果,如意图、实体等。

注意事项

  • 确保在启动API之前,您的Rasa模型已经训练好,并且模型路径正确配置。
  • 如果您在本地开发环境中测试API,请注意CORS设置,以免遇到跨域问题。
  • 对于生产环境,可能需要考虑额外的安全措施,比如HTTPS、API密钥验证等。

以上步骤可以帮助您通过API方式运行Rasa,使其能够接收外部请求并与之交互。

痛点解决!在api开放下使用api来保证多轮对话!!!

在使用Rasa HTTP API进行多轮对话时,维护上下文和状态是关键,以确保对话的连贯性。Rasa通过会话ID(通常是通过sender_id或自定义的会话跟踪机制)来实现这一点。以下是保持多轮对话连贯性的几种方法:

1. 使用会话ID(sender_id)

每次与API交互时,客户端应该提供一个唯一的会话ID(通常是sender_id)。Rasa会根据这个ID保存和检索对话的上下文。在发送消息的请求中包含这个ID,Rasa就能识别出这是同一个对话的延续。

示例:
  1. {
  2. "message": "我需要预订明天去纽约的票",
  3. "sender": "user123" // 会话ID
  4. }

2. 管理会话状态

Rasa本身支持会话状态管理,但具体实现细节取决于你如何配置和使用它。如果你使用Rasa SDK构建自定义动作服务,可以利用其提供的会话管理工具来维护状态。

3. 跟踪对话历史

客户端应存储每次交互的响应,特别是当Rasa返回的响应中包含了对上下文有影响的信息时(如通过插槽填充确认的信息)。这样,在后续的请求中,可以将必要的上下文信息一并发送,帮助Rasa理解当前对话状态。

4. 利用Tracker Store

对于更复杂的需求,可以配置Rasa的Tracker Store,它负责存储对话追踪器(Trackers),即对话的历史记录。Rasa支持多种Tracker Store,包括内存中的、SQL数据库等。这使得即使在重启Rasa服务后,也能恢复之前的对话状态(只要配置得当)。

实现示例

在实际调用API时,确保每个用户或每个对话有一个稳定的sender_id,并且在连续的请求之间保持这个ID不变。如果需要在不同平台或设备间维持对话状态,确保sender_id能跨平台识别同一对话。

总结

多轮对话的连贯性主要依赖于会话ID的管理和状态的恰当传递。Rasa提供了必要的机制来支持这一点,但实现细节需要开发者在设计客户端和服务端交互逻辑时仔细考虑。正确实施上述策略,即可在开放API环境下保持流畅的多轮对话体验。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/代码探险家/article/detail/945547
推荐阅读
相关标签
  

闽ICP备14008679号