メインコンテンツへスキップ
ChatSDK は、会話型 AI アプリケーションを簡単に構築できるようにする EKB Content Creator SDK のコア コンポーネントです。包括的なチャット管理、メッセージ処理、ストリーミング応答、ナレッジベースの統合を提供します。この記事では、SDK をインストールし、「クイック スタート」の例を使用してすぐに起動して実行する方法を学びます。さまざまな構成オプションを調べ、認証と、この SDK で使用できる中心的なメソッドについて学ぶことができます。使用例も見つかります

インストール

クイックスタート

## 構成

ChatSDKConfig インターフェイス

構成オプション

  • baseUrl: API エンドポイントのベース URL
  • projectId: 一意のプロジェクト識別子
  • apiKey および apiSecret: サーバー側認証用
  • accessToken: クライアント側認証用 (Web アプリ)

認証

ChatSDK は 2 つの認証方法をサポートしています。

API キー認証 (サーバー側)

アクセストークン認証 (クライアント側)

コアメソッド

チャット管理

createChat(name?, documentKeys?)

新しいチャット会話を作成します。
例:

listChats(cursor?, limit?)

プロジェクト内のチャットのページ分割されたリストを取得します。
例:

getChatHistory(chatId)

完全なメッセージ履歴を含むチャットを取得します。
例:

deleteChat(chatId)

チャットとそのすべてのメッセージを完全に削除します。
例:

updateChatName(chatId, newName)

既存のチャットの表示名を更新します。
例:

メッセージの処理

sendMessage(message, options?)

メッセージを送信し、AI 応答を受け取ります。
SendMessageOptions:
例:

sendFeedback(messageId, chatId, feedback)

AI の応答に関するフィードバックを提供します。
例:

ストリーミングのサポート

sendMessageStream(message, options)

リアルタイムのストリーミング応答でメッセージを送信します。
ストリームコールバック:
例:

エラー処理

SDK は、API 関連のエラーに対して APIError オブジェクトをスローします。
例:

基本的なチャット アプリケーション

この例では、EKB SDK を使用して、単純な非ストリーミング メッセージ交換を行う基本的なチャット アプリケーションを構築する方法を学習します。まず、環境変数 (ベース URL、プロジェクト ID、API キー、およびシークレット) から取得した API 資格情報を使用して ChatSDK を初期化する SimpleChatApp クラスを作成します。このクラスは、currentChatId を使用して現在のチャット セッションを追跡し、3 つの主要なメソッドを提供します。startNewChat() はカスタム名で新しいチャット会話を作成し、sendMessage() は AI にメッセージを送信して完全な応答を返します (チャットが存在しない場合は自動的に新しいチャットを作成します)。getChatList() は既存のチャット会話をすべて取得します。ストリーミング実装とは異なり、このアプローチは完全な AI 応答を待ってから表示するため、リアルタイムのトークンごとの更新が必要ない単純なユースケースに最適です。この例では GPT-4o-mini モデルを使用しており、会話フローの追跡に役立つコンソール ログ機能を備えたエラー処理が全体に含まれており、ストリーミング コールバックの複雑さを必要とせずに、基本的なチャットボット機能を構築するための簡単な基盤が提供されます。

リアルタイム更新によるストリーミング チャット

この例では、EKB API に接続し、AI 応答をリアルタイムで表示するストリーミング チャット インターフェイスを構築する方法を学びます。まず、API 資格情報とメッセージが表示される HTML 要素への参照を使用して ChatSDK を初期化する StreamingChat クラスを作成します。 sendStreamingMessage() を使用してメッセージを送信する場合、ストリーミング応答が到着したときにそれを処理するコールバック ハンドラーをセットアップします。onChunk コールバックは、各テキストを UI にすぐに追加します (特徴的な「入力」効果を作成します)。一方、onMessageObject を使用すると、画像などのリッチ コンテンツを処理できます。また、onError を使用してエラー処理を実装し、onChatNameUpdate を使用してチャット タイトルを更新し、メッセージのストリーミングが終了したら onComplete を使用して親指を上げる/下げるフィードバック ボタンを追加します。この例では、画像を動的に表示し、AI 応答に関するユーザー フィードバックを収集し、ナレッジ ベース統合で GPT-4o を使用するようにチャットを構成する方法を示します。これにより、リアルタイム ストリーミング応答とインタラクティブ機能を備えた ChatGPT のようなインターフェイスを作成するために必要なものがすべて提供されます。

ナレッジベースの統合

この例では、ナレッジ ベースにアップロードした特定のドキュメントに基づいて質問に回答できる、ナレッジ ベースを利用したチャット アプリケーションを構築する方法を説明します。 KnowledgeBasedChat クラスは、環境変数からの API 認証情報を使用して ChatSDK を初期化し、次に 2 つの主要なメソッドを使用してドキュメントを操作します。 createDocumentChat() は、documentKeys (アップロードされたドキュメントの一意の識別子) の配列を渡すことで特定のドキュメントにリンクされた新しいチャット セッションを設定し、askDocumentQuestion() はナレッジ ベース機能を有効にして AI に質問を送信します。質問するときは、useKnowledgebase: true を使用するようにチャットを構成し、AI がドキュメントから関連情報を確実に取得できるように agentType: 'document_agent' を指定します。また、formatInstructions は、出典の引用を含めるよう AI に指示します。応答には、AI が応答を生成するときにどのドキュメントを参照したかを示すソース プロパティが含まれているため、ドキュメント Q&A システム、リサーチ アシスタント、または一般的な知識ではなく特定のコンテンツに基づいた AI 応答が必要なアプリケーションの構築に最適です。これにより、AI がどのように答えに到達したかを完全に透明化できます。

ベストプラクティス

エラー処理

すべての SDK メソッドに対して常に適切なエラー処理を実装します。

ストリーミングによる UX の向上

リアルタイムのフィードバックを提供するには、より長い応答に対してストリーミングを使用します。

API 呼び出しを最適化する

  • メッセージごとに新しいチャットを作成するのではなく、チャット ID を再利用します。
  • チャットリストにページネーションを使用する
  • 頻繁にアクセスされるデータのキャッシュを実装する

構成管理

設定を安全に保存し、環境変数を使用します。

メモリ管理

リソースをクリーンアップしてメモリ リークを回避します。