Looker の API で ConversationalAnalytics API エンドポイントを使用するためのベスト プラクティス

Looker の ConversationalAnalytics API エンドポイントを使用すると、埋め込みアプリケーション内にカスタムの会話分析エクスペリエンスを構築できます。これらの API は、Looker の会話型分析機能を強化するエンドポイントをミラーリングし、Looker API 内で同じ機能を提供します。これには、エージェント、会話、メッセージの作成、更新、読み取り、削除(CRUD)オペレーションと、会話エージェントとやり取りするためのチャット API が含まれます。スムーズな開発プロセスと最適なパフォーマンスを確保するには、これらの API を使用する際に、特定の制限事項を理解し、推奨されるベスト プラクティスに従うことが重要です。

一般的なワークフロー

マルチターンの会話の一般的なワークフローでは、エージェント、会話、メッセージ、チャット API を組み合わせて使用します。

  1. エージェントを作成する: エージェントがない場合は、POST /agents を使用してエージェントを作成します。エージェントは、特定の Looker モデルと Explore を使用するように構成されています。
  2. 会話を作成する: POST /conversations を使用して、エージェントに関連付けられた新しい会話を開始します。これにより、会話 ID が返されます。
  3. メッセージを送信する: 会話の各ターンで、conversation_id とユーザーのメッセージを指定して POST /conversational_analytics/chat を呼び出します。このエンドポイントは、エージェントから 1 つ以上のシステム メッセージを返します。
  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 の呼び出しごとにメッセージを保持しないと、会話履歴が維持されず、エージェントは複数ターンの会話でフォローアップの質問のコンテキストを取得できません。
  • ストリーミングのサポート: Chat API はストリーミング API です。エージェントによって生成されたメッセージをリアルタイムで受信できるため、長時間実行されるクエリのユーザー エクスペリエンスを向上させることができます。ただし、すべての Looker SDK 言語がストリーミングをサポートしているわけではありません。ストリーミングをサポートしていない SDK を使用している場合、API はすべてのメッセージが生成された後、完全なレスポンスを同期的に返します。ストリーミングが不可欠で、SDK 言語でサポートされていない場合は、ストリーミングを使用するために HTTP 呼び出しを直接行う必要がある場合があります。