在 Looker 的 API 中使用 ConversationalAnalytics API 端点的最佳实践

借助 Looker 的 ConversationalAnalytics API 端点,您可以在嵌入式应用中构建自定义对话式分析体验。这些 API 镜像了为 Looker 的对话式分析功能提供支持的端点,并在 Looker API 中提供相同的功能。它们包括针对代理、对话和消息的创建、更新、读取和删除 (CRUD) 操作,以及用于与对话式代理互动的聊天 API。为确保开发流程顺畅并实现最佳性能,请务必了解使用这些 API 时的一些限制,并遵循推荐的最佳实践。

典型的工作流

多轮对话的典型工作流涉及同时使用代理、对话、消息和聊天 API。

  1. 创建代理:如果您没有代理,请使用 POST /agents 创建一个代理。代理已配置为使用特定的 Looker 模型和探索。
  2. 创建对话:使用 POST /conversations 开始与代理关联的新对话。此方法将返回对话 ID。
  3. 发送消息:在对话的每个回合中,使用 conversation_id 和用户的消息调用 POST /conversational_analytics/chat。此端点会返回来自代理的一条或多条系统消息。
  4. 持久保留消息/conversational_analytics/chat 端点不会持久保留用户消息或返回的系统消息。如需在后续轮次中保留对话历史记录,您必须在调用聊天 API 后调用 POST /conversations/:conversation_id/messages,以持久保留用户消息和系统消息。

建议

遵循以下建议可获得最佳效果:

  • 持久保留所有消息:每次调用 /conversational_analytics/chat 后,请务必调用 POST /conversations/:conversation_id/messages 来保存该轮对话中用户的消息以及聊天 API 返回的所有系统消息。这对于多轮对话至关重要。
  • 处理流式传输:尽可能使用聊天 API 的流式传输功能,以便在代理处理时向用户提供反馈。在流式传输期间收到的消息可用于指示代理正在“思考”。

限制和注意事项

使用 ConversationalAnalytics API 端点时,请考虑以下限制:

  • 消息持久性:您有责任使用 POST /conversations/:conversation_id/messages 端点来持久保存消息。如果每次调用 /conversational_analytics/chat 后都未能持久保留消息,则无法维护对话记录,并且代理在多轮对话中无法获得后续问题的上下文。
  • 流式传输支持:聊天 API 是一种流式传输 API,可让您在代理生成消息时立即接收消息,从而改善长时间运行的查询的用户体验。不过,并非所有 Looker SDK 语言都支持流式传输。如果您使用的 SDK 不支持流式传输,则在生成所有消息后,API 会同步返回完整响应。如果流式传输至关重要,但您的 SDK 语言不支持,您可能需要直接进行 HTTP 调用才能使用流式传输。