メインコンテンツまでスキップ

プラグインの使用方法

Runtime AI Chatbot Integrator は、主に2つの機能を提供します:テキスト対テキストチャットとテキスト読み上げ(TTS)。両機能とも同様のワークフローに従います:

  1. APIプロバイダートークンを登録する
  2. 機能固有の設定を構成する
  3. リクエストを送信し、レスポンスを処理する

プロバイダートークンの登録

リクエストを送信する前に、RegisterProviderToken 関数を使用してAPIプロバイダートークンを登録してください。

注記

Ollamaはローカルで動作し、APIトークンを必要としません。Ollamaの場合はこのステップをスキップできます。

Blueprintでのプロバイダートークン登録

テキスト対テキストチャット機能

このプラグインは、各プロバイダーに対して2つのチャットリクエストモードをサポートしています:

非ストリーミングチャットリクエスト

単一の呼び出しで完全な応答を取得します。

Send OpenAI Chat Request

ストリーミングチャットリクエスト

よりダイナミックなインタラクションのために、リアルタイムでレスポンスのチャンクを受信します。

Send OpenAI Streaming Chat Request

テキスト読み上げ (TTS) 機能

主要なTTSプロバイダーを使用して、テキストを高品質な音声オーディオに変換します。このプラグインは生のオーディオデータ (TArray<uint8>) を返すため、プロジェクトのニーズに応じて処理できます。

以下の例では、Runtime Audio Importer プラグインを使用した再生用のオーディオ処理をデモンストレーションしています(オーディオインポートのドキュメントを参照)。しかし、Runtime AI Chatbot Integratorは柔軟に設計されています。このプラグインは単に生のオーディオデータを返すため、特定のユースケースに応じて、オーディオ再生、ファイルへの保存、さらなるオーディオ処理、他のシステムへの送信、カスタムビジュアライゼーションなど、どのように処理するかは完全に自由です。

非ストリーミングTTSリクエスト

非ストリーミングTTSリクエストは、テキスト全体が処理された後、完全なオーディオデータを単一の応答で返します。このアプローチは、完全なオーディオを待っても問題ない短いテキストに適しています。

Send OpenAI TTS Request

ストリーミングTTSリクエスト

ストリーミングTTSは、オーディオチャンクが生成されると同時に配信し、オーディオ全体が合成されるのを待つことなく、データを段階的に処理できるようにします。これにより、長いテキストに対する知覚される遅延が大幅に減少し、リアルタイムアプリケーションが可能になります。ElevenLabs Streaming TTSは、動的なテキスト生成シナリオのための高度なチャンクストリーミング機能もサポートしています。

Send OpenAI Streaming TTS Request

利用可能な音声の取得

一部の TTS プロバイダーは、利用可能な音声をプログラムで発見するための音声一覧 API を提供しています。

Get Google Cloud Voices

Ollamaモデルの一覧表示

ローカルのOllamaインスタンスで利用可能なすべてのモデルを、ListOllamaModels関数を使用して照会できます。これは、UIのモデルピッカーを動的に作成する場合などに便利です。GetModelNamesヘルパーは、結果から名前の文字列だけを抽出して利便性を高めます。

List Ollama Models

エラー処理

リクエストを送信する際は、コールバック内で ErrorStatus をチェックして潜在的なエラーを処理することが重要です。ErrorStatus は、リクエスト中に発生する可能性のある問題に関する情報を提供します。

エラー処理

リクエストのキャンセル

このプラグインでは、進行中のテキスト対テキストおよびTTSリクエストの両方をキャンセルすることができます。これは、長時間実行されているリクエストを中断したい場合や、会話の流れを動的に変更したい場合に便利です。

Cancel Request

ベストプラクティス

  1. コールバック内で ErrorStatus をチェックし、潜在的なエラーを常に処理する
  2. 各プロバイダーのAPIレート制限とコストに注意する
  3. 長文やインタラクティブな会話にはストリーミングモードを使用する
  4. 不要になったリクエストはキャンセルしてリソースを効率的に管理することを検討する
  5. 長いテキストにはストリーミングTTSを使用して、体感される遅延を減らす
  6. オーディオ処理には、Runtime Audio Importerプラグインが便利な解決策を提供しますが、プロジェクトのニーズに基づいてカスタム処理を実装することも可能です
  7. 推論モデル(DeepSeek Reasoner、Grok)を使用する場合は、推論出力とコンテンツ出力の両方を適切に処理する
  8. TTS機能を実装する前に、音声一覧取得APIを使用して利用可能な音声を確認する
  9. ElevenLabsのチャンクストリーミングの場合: テキストが段階的に生成される場合(AI応答など)は連続モードを、事前に形成されたテキストチャンクには即時モードを使用する
  10. 連続モードでは、応答性と自然な音声の流れのバランスを取るために適切なフラッシュタイムアウトを設定する
  11. アプリケーションのリアルタイム要件に基づいて、最適なチャンクサイズと送信遅延を選択する
  12. Ollamaの場合: モデル名をハードコードするのではなく、ListOllamaModelsを使用して利用可能なモデルを動的に検出する

トラブルシューティング

  • 各プロバイダーのAPI認証情報が正しいことを確認する
  • インターネット接続を確認する
  • TTS機能を扱う際、使用するオーディオ処理ライブラリ(Runtime Audio Importerなど)が適切にインストールされていることを確認する
  • TTS応答データを処理する際に、正しいオーディオフォーマットを使用していることを確認する
  • ストリーミングTTSの場合、オーディオチャンクを正しく処理していることを確認する
  • 推論モデルの場合、推論出力とコンテンツ出力の両方を処理していることを確認する
  • モデルの可用性と機能については、プロバイダー固有のドキュメントを確認する
  • ElevenLabsのチャンクストリーミングの場合: 完了時に FinishChunkedStreaming を呼び出してセッションを適切に閉じることを確認する
  • 連続モードの問題の場合: テキスト内の文の境界が適切に検出されていることを確認する
  • リアルタイムアプリケーションの場合: レイテンシ要件に基づいてチャンク送信遅延とフラッシュタイムアウトを調整する
  • Ollamaの場合: リクエストを送信する前に、設定された BaseUrl でOllamaサーバーが実行され、アクセス可能であることを確認する