このドキュメントでは、リアルタイム対話型 AI に関するよくある質問とそのソリューションについて説明します。
よくある質問
機能
統合
機能
オリジンサーバーへのエージェントのデプロイ
いいえ。エージェントは Alibaba Cloud のパブリッククラウドサービスであるため、クラウドへのデプロイは不要です。コンソールで構成し、OpenAPI を呼び出すことで、エージェントを構築して使用できます。
Model Studio 上の LLM へのエージェント接続
エージェントは、Alibaba Cloud Model Studio と統合されるように設計されています。コンソールで必須パラメーターを指定するだけで、Alibaba Cloud Model Studio の大規模言語モデルを呼び出すことができます。詳細については、「大規模言語モデル (LLM)」をご参照ください。
統合
通話開始時のエラー
エラー 1:「Could not resolve placeholder...」
このエラーは、サーバー側の application.yaml ファイルで構成が欠落しているか、削除された場合に発生します。構成ファイルには、@value アノテーションを使用して挿入された変数がすべて含まれている必要があります。application.yml ファイル内の構成は、"xxxxxx" のようなプレースホルダー値のままにするか、空の文字列 "" に設定することができます。
エラー 2:「User not authorized to operate on the specified resource」
アプリケーションサーバーをデプロイする際に、構成された AccessKey が正しいことを確認し、RAM ユーザーに AliyunICEFullAccess 権限を付与してください。詳細については、「ソースコードからのデプロイ」をご参照ください。
エラー 3:「generateAIAgentCall Tea error. e:code: 404, Specified access key is not found.」
サーバー側の application.yaml ファイルで AccessKey と AccessSecret が正しく構成されていることを確認してください。また、RAM ユーザーに AliyunICEFullAccess 権限を付与する必要があります。詳細については、「ソースコードからのデプロイ」をご参照ください。
エラー 4:「generateAIAgentCall Tea error. e:code: 400, The specified agentId "123456" is not found. request id: xxxxxxx」
agentId とリージョンが正しく構成されていることを確認してください。
インテリジェントメディアサービスコンソールで、左側のナビゲーションウィンドウから [リアルタイム対話型 AI] > [エージェント管理] に移動します。ページ上部で選択したリージョンがコードで構成したリージョンと一致することを確認し、エージェントリストの [エージェント ID/名前] 列から正しい agentId を取得します。
エラー 5:トークンは返されるが、クライアントが接続できない
RTC トークン検証ツールを使用して、署名が正しく生成されたことを確認します。必要なパラメーターはすべて、サーバー側のリクエストまたは応答に含まれています。nonce を null に設定し、生成されたトークンが正しいかどうかを確認してください。
メッセージング開始時の「AgentNotFound」エラー
クライアントコードで、agentId とリージョンが正しく構成されていることを確認してください。
インテリジェントメディアサービスコンソールで、左側のナビゲーションウィンドウから [リアルタイム対話型 AI] > [エージェント管理] に移動します。ページ上部で選択したリージョンがコードで構成したリージョンと一致することを確認し、エージェントリストの [エージェント ID/名前] 列から正しい agentId を取得します。
クライアントコード:
Android
String mAgentId = "XXX"; // エージェント ID。コンソールで作成したメッセージング会話エージェントの ID を使用します。
String mRegion = "cn-shanghai"; // エージェントが配置されているリージョン。コンソールに表示されるメッセージング会話エージェントのリージョンを使用します。
ARTCAIChatAgentInfo agentInfo = new ARTCAIChatEngine.ARTCAIChatAgentInfo(mAgentId, mRegion)
iOS
// エージェント ID。コンソールで作成したメッセージング会話エージェントの ID を使用します。
let agentInfo = ARTCAIChatAgentInfo(agentId: "xxxx")
// エージェントが配置されているリージョン。コンソールに表示されるメッセージング会話エージェントのリージョンを使用します。
agentInfo.region = "cn-shanghai"
メッセージング開始時の「UnsupportedWorkflowType」エラー
エラー詳細が "The specified workflowType \"VoiceChat\" is not supported by this interface. Please use a compatible workflowType: [\"MessageChat\"]" である場合は、agentId を確認し、関連付けられたワークフロータイプが MessageChat であることを確認してください。
[エージェント管理] ページで、対象のエージェントを見つけ、[エージェントワークフロー ID] 列を確認して、関連付けられたワークフロータイプが [MessageChat] であることを確認します。
クライアントの音声キャプチャのサンプルレート調整
リアルタイム対話型 AI は、クライアント側の音声キャプチャに対して、以下の設定をサポートしています:
-
48 kHz サンプルレート、モノラルチャンネル
-
16 kHz サンプルレート、モノラルチャンネル
デフォルトでは、AICallKit SDK は 48 kHz のサンプルレートを使用します。16 kHz に切り替えるには、以下のコード例をご参照ください。
Web SDK は 48 kHz のサンプルレートのみをサポートしています。
iOS
self.engine.audioConfig = ARTCAICallAudioConfig(audioProfile: .BasicQualityMode, audioScenario: .MusicMode)
// 他の API を呼び出します
...
// 通話を開始します
self.engine.call(...)
Android
ARTCAICallEngine.ARTCAICallConfig artcaiCallConfig = new ARTCAICallEngine.ARTCAICallConfig();
artcaiCallConfig.audioConfig.audioProfile = ARTCAICallAudioBasicQualityMode;
engine.init(artcaiCallConfig);
エージェントの音声再生のサンプルレート調整
リアルタイム対話型 AI は、エージェントの再生に対して、以下の音声設定をサポートしています:
-
48 kHz サンプルレート、モノラルまたはステレオチャンネル
-
16 kHz サンプルレート、モノラルチャンネル
デフォルトでは、リアルタイム対話型 AI は 48 kHz のモノラルチャンネルのサンプルレートを使用します。この設定は、会話を開始する API 呼び出しで調整する必要があります。メソッドは、通話の開始方法によって異なります。
メソッド 1:サーバー側の GenerateAIAgentCall API の使用
AgentConfig パラメーターを追加し、AIAgentConfig の ExperimentalConfig フィールドを構築できます。
// AudioQualityMode: 整数
// RTC 出力のサンプルレートモード。
// 0: 48 kHz モノラルチャンネル
// 1: 48 kHz ステレオチャンネル
// 2: 16 kHz モノラルチャンネル
// ExperimentalConfig の値は JSON 文字列である必要があります。
{
"ExperimentalConfig":"{\"AudioQualityMode\":2}"
}
メソッド 2:サーバー側の StartAIAgentInstance API の使用
AgentConfig パラメーターを追加し、AIAgentConfig の ExperimentalConfig フィールドを構築できます。
// AudioQualityMode: 整数
// RTC 出力のサンプルレートモード。
// 0: 48 kHz モノラルチャンネル
// 1: 48 kHz ステレオチャンネル
// 2: 16 kHz モノラルチャンネル
// ExperimentalConfig の値は JSON 文字列である必要があります。
{
"ExperimentalConfig":"{\"AudioQualityMode\":2}"
}
メソッド 3:クライアント側の call() API の使用
callConfig パラメーターを指定して call(xxx) API を使用して通話を作成および開始する場合、このメソッドを使用してエージェントの再生サンプルレートを変更できます。
このメソッドには、AICallKit SDK バージョン 2.5.0 以降が必要です。
iOS
let callConfig = ... // ARTCAICallConfig を作成して初期化します。詳細については、ユーザーガイドをご参照ください。
let agentConfig = ARTCAICallAgentConfig() // ARTCAICallAgentConfig オブジェクトを作成します。
agentConfig.experimentalConfig = [
"AudioQualityMode": 2
]
... // ビジネス要件に基づいてパラメーターを設定します。
callConfig.agentConfig = agentConfig
self.engine.call(config: callConfig) // 通話を開始します。
Android
ARTCAICallEngine.ARTCAICallConfig artcaiCallConfig = new ARTCAICallEngine.ARTCAICallConfig();
artcaiCallConfig.agentConfig.experimentalConfig = new JSONObject();
try {
artcaiCallConfig.agentConfig.experimentalConfig.put("AudioQualityMode", 2);
} catch (JSONException e) {
e.printStackTrace();
}
engine.init(artcaiCallConfig);