Looker の ConversationalAnalytics API エンドポイントを使用すると、埋め込みアプリケーション内にカスタムの会話分析エクスペリエンスを構築できます。これらの API は、Looker の会話型分析機能を強化するエンドポイントをミラーリングし、Looker API 内で同じ機能を提供します。これには、エージェント、会話、メッセージの作成、更新、読み取り、削除(CRUD)オペレーションと、会話エージェントとやり取りするためのチャット API が含まれます。スムーズな開発プロセスと最適なパフォーマンスを確保するには、これらの API を使用する際に、特定の制限事項を理解し、推奨されるベスト プラクティスに従うことが重要です。
一般的なワークフロー
マルチターンの会話の一般的なワークフローでは、エージェント、会話、メッセージ、チャット API を組み合わせて使用します。
- エージェントを作成する: エージェントがない場合は、
POST /agentsを使用してエージェントを作成します。エージェントは、特定の Looker モデルと Explore を使用するように構成されています。 - 会話を作成する:
POST /conversationsを使用して、エージェントに関連付けられた新しい会話を開始します。これにより、会話 ID が返されます。 - メッセージを送信する: 会話の各ターンで、
conversation_idとユーザーのメッセージを指定してPOST /conversational_analytics/chatを呼び出します。このエンドポイントは、エージェントから 1 つ以上のシステム メッセージを返します。 - メッセージを保持する:
/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 呼び出しを直接行う必要がある場合があります。