ai-chat について
ai-chat は、複数の API プロトコルでチャットモデルを利用する開発者向けの AceDataCloud ゲートウェイスキルです。ステートフルな会話、OpenAI 互換エンドポイント、Claude や Gemini などのネイティブ API を提供します。
主な機能
- 01ステートフル・マルチモーダル会話
- 02OpenAI 互換の Chat・Responses API
- 03ネイティブ Claude Messages API
- 04Gemini 生成と SSE ストリーミング
- 05ツール呼び出しとストリーミング出力
- 06複数のモデルファミリーに対応
活用シーン
- 01アプリから複数のモデルファミリーを利用
- 02OpenAI SDK で互換エンドポイントを呼び出す
- 03ステートフルまたはマルチモーダル会話を構築
- 04Gemini エンドポイントで音声を分析
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ acedatacloud/ skills --skill ai-chatインストール後、Claude Code で/ai-chatを入力して読み込まれたか確認します。
詳細
翻訳後に原文が更新されています。最新の内容は原文をご確認ください。
AI チャット — 統合 LLM ゲートウェイ
AceDataCloud では、以下のチャットエンドポイントを利用できます。
| エンドポイント | 用途 |
|---|---|
POST /aichat2/conversations | ステートフル、マルチモーダル、エージェント型の会話に推奨 |
POST /aichat/conversations | 旧式の会話エンドポイント |
POST /openai/chat/completions (パブリックエイリアス /v1/chat/completions) | OpenAI 互換のステートレスなチャット補完 |
POST /openai/responses (パブリックエイリアス /v1/responses) | OpenAI 互換の Responses API |
POST /v1/messages (エイリアス /claude/messages) | 思考機能とツール呼び出しを含む、Claude Messages ネイティブ API |
POST /v1/messages/count_tokens (エイリアス /claude/messages/count_tokens) | 出力を生成せずに、Claude ネイティブ API の入力トークン数をカウント |
POST /v1beta/models/{model}:generateContent | 音声入力を含む、Gemini ネイティブのコンテンツ生成 |
POST /v1beta/models/{model}:streamGenerateContent?alt=sse | Gemini ネイティブの SSE ストリーミング |
初回セットアップ
- 公式 Skill を
clawhub install @acedatacloud/ai-chatでインストールします。ClawHub の公開元が @acedatacloud であることを確認してください。 - AceDataCloud → Applications にサインインし、General application を開いて、AI Chat へのアクセス、残高、現在の料金を確認します。その API キーをコピーするか、Manage Keys → Create を選択して別のキーを作成します。
Bearerを除いたキーの値をコピーしてください。platform-...形式の管理トークンは、サービス API キーではありません。 - Allowed APIs の制限を有効にする場合は、最初の例で使用する
/aichat2/conversationsを含めてください。ほかのチャットルートには、それぞれ個別のアクセス権が必要です。以下の高度なワークフローでは、追加のルートを呼び出す場合があります。 - OpenClaw Gateway ホストで、
ACEDATACLOUD_API_TOKEN=your_api_key_hereを~/.openclaw/.envに設定し、Gateway を再起動して新しいセッションを開始します。ターミナルから直接テストする場合は、そのシェルでexport ACEDATACLOUD_API_TOKEN="your_api_key_here"を実行します。キーをプロンプトに記載したり、.envファイルをコミットしたりしないでください。 - 以下の クイックスタート を実行します。このワークフローからタスク ID が返された場合は、完了するまで同じタスクを照会してください。進捗を確認するためだけに、同じ課金対象のリクエストを再送信しないでください。
キーの設定、初回実行、トラブルシューティングの図解 · トークンの詳細
クイックスタート
推奨:ステートフルな会話
curl -X POST https://api.acedata.cloud/aichat2/conversations \
-H "Authorization: Bearer $ACEDATACLOUD_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"model":"gpt-4.1","question":"Summarize the latest release notes.","stateful":true}'
OpenAI 互換 SDK
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["ACEDATACLOUD_API_TOKEN"],
base_url="https://api.acedata.cloud/openai"
)
response = client.chat.completions.create(
model="gpt-5.5",
messages=[{"role": "user", "content": "Explain quantum computing"}]
)
print(response.choices[0].message.content)
Dify:OpenAI API 互換プロバイダー
Base URL に https://api.acedata.cloud/v1、API Key に AceDataCloud サービスのトークン、model に gpt-5.5(またはサポートされている別のチャットモデル)、model type に LLM を設定します。conversation type で Chat、API type で Chat Completions を選択します。Dify は /chat/completions を自動で付加するため、Base URL に /openai/v1 を指定したり、エンドポイント全体を含めたりしないでください。Workflow/Chatflow の LLM ノードでモデルを選択する前に、接続をテストしてください。
現在ドキュメントに記載されているモデルファミリー
OpenAPI 仕様では、幅広く変化の速いモデルカタログを公開しています。現在の代表的なモデルは次のとおりです。
| ファミリー | 現在の例 |
|---|---|
| OpenAI/推論 | gpt-6-astra、gpt-6.1-sol、gpt-6-sol、gpt-6-luna、gpt-5.6-luna、gpt-5.6-terra、gpt-5.6-sol-fast、gpt-5.6-sol、gpt-5.5、gpt-5.5-pro、gpt-5.4、gpt-5.4-pro、gpt-5.2、gpt-5.1、gpt-5、gpt-5-mini、gpt-5-nano、gpt-4.1、gpt-4.1-mini、gpt-4.1-nano、gpt-4o、gpt-4o-mini、o1、o3、o4-mini |
| OpenAI 無料枠のチャット補完 | gpt-5.5:free、gpt-5:free、gpt-4.1:free、gpt-4o:free、gpt-4o-mini:free、gpt-oss:free |
| Claude | claude-opus-5-5 と claude-sonnet-5-5(Messages 専用)、claude-fable-5-1、claude-fable-5、claude-opus-5、claude-sonnet-5、claude-opus-4-8、claude-opus-4-7、claude-opus-4-6、claude-opus-4-5-20251101、claude-sonnet-4-6、claude-sonnet-4-5-20250929、claude-sonnet-4-20250514、claude-haiku-4-5-20251001、claude-3-7-sonnet-20250219 |
| Gemini | gemini-3.8-flash、gemini-3.6-flash、gemini-3.5-flash、gemini-3.1-pro、gemini-3.1-pro-preview、gemini-3.1-flash-lite-preview、gemini-3-pro-preview、gemini-2.5-flash-lite、gemini-2.0-flash-lite |
| Grok | grok-4.7、grok-4.5、grok-4、grok-4-0709、grok-3、grok-3-fast |
| DeepSeek | deepseek-v4.1-flash、deepseek-v4-pro、deepseek-v4-flash、deepseek-r1、deepseek-r1-0528、deepseek-v3、deepseek-v3-250324、deepseek-v3.2-exp |
| Kimi | kimi-k3、kimi-k2.6、kimi-k2.5、kimi-k2-thinking-turbo、kimi-k2-thinking |
| GLM | glm-5.2、glm-5.1、glm-5、glm-5-turbo、glm-4.7、glm-4.6、glm-4.5、glm-4.5v、glm-3-turbo |
ユーザーから推奨モデルを尋ねられた場合は、現在公開されている GET https://platform.acedata.cloud/api/v1/models/ のレスポンスを確認し、recommended=true の適切な項目を優先してください。これは編集上の優先事項であり、アクセス権の付与や新たな API 機能を意味するものではありません。recommended=false になってもモデルが廃止されたわけではありません。選択したモデルの対応ルートと現在の料金を呼び出し前に確認し、ユーザーが明示的に選択したモデルを黙って別のモデルに置き換えないでください。
gpt-5.6-sol-fast を選択するには、Chat Completions、Responses、Messages、または上記のいずれかの会話エンドポイントで、公開モデル ID をそのまま指定してください。公開モデル/料金カタログにはビジョン機能対応モデルとして掲載されていますが、公開されているモデル紹介はありません。リクエストする前にアカウントの利用資格と現在の料金を確認してください。カタログに掲載されていても、アクセスが保証されるわけではありません。料金ルールでは、記録された prompt_tokens が 272,000 を超えると(ちょうど 272,000 の場合ではなく)、より高い料金ティアが適用されます。アクセスエラーやパラメーターエラーが発生しても、gpt-5.6-sol に黙って置き換えないでください。プロトコル固有の機能はモデルによって異なります。
gpt-6.1-sol は low、medium、high、xhigh、max の推論強度に対応しています。none または minimal は送信しないでください。提供開始から最初の 1 週間は、ACE T1 以上の保有状況が確認済みであるか、アクセス権が付与されている必要があります。提供開始時刻はプラットフォームのアクセスレスポンスで確認してください。
claude-opus-5-5 と claude-sonnet-5-5 は、専用の Claude Messages API でのみ利用できます。/openai/chat/completions または /aichat2/conversations には送信しないでください。
/aichat2/conversations では、chatgpt、claude、gemini、grok、kimi、glm、deepseek の model_group 値も受け付けます。
画像生成モデルはチャットモデルではありません。
-imageで終わる名前 (例:gemini-*-image、gpt-4o-image)は画像生成モデルであり、 OpenAI 互換のチャット、Claude Messages、または会話ルートでは 動作しません。画像は専用のエンドポイントから生成してください。Gemini の場合はPOST /v1beta/models/{model}:generateContent、または/nano-banana/imagesを使用します。
OpenAI互換チャット
POST /openai/chat/completions
{
"model": "gpt-4.1",
"messages": [{"role": "user", "content": "Write a haiku about observability."}],
"stream": true,
"tools": [
{
"type": "function",
"function": {
"name": "get_weather",
"parameters": {"type": "object", "properties": {"location": {"type": "string"}}}
}
}
]
}
共通パラメーター:
| パラメーター | 型 | 説明 |
|---|---|---|
model | string | ドキュメントに記載されているOpenAI互換モデルのいずれか |
messages | array | 標準的なOpenAIチャットメッセージのリスト |
temperature / top_p | number | サンプリングの制御 |
max_tokens | integer | 出力上限 |
stream | boolean | SSEストリーミングを有効にします |
tools / tool_choice | array / string-object | 関数呼び出しの制御 |
service_tier | string | 処理ティア(auto、default、flex、scale、priority) |
Geminiネイティブのコンテンツ生成
同じAceDataCloud Bearerトークンを使って、音声分析にはGeminiネイティブルートを使用します。送信する前に、Gemini APIへのアクセス、現在の料金、選択した公開モデル、および Allowed APIs の制限を確認してください。これらのルートでは、OpenAIのmessagesではなく、contentsとpartsを使用します。
- プロンプトと音声は、ユーザーコンテンツ項目の
partsに入れます。mimeTypeとbase64エンコードされたdataを指定するinlineData、またはmimeTypeとfileUriを指定するfileDataを使用します。このネイティブインターフェースでは、テキスト、画像、動画の入力、思考の設定、カスタム関数宣言も受け付けますが、OpenAI互換ルートや会話ルートでサポートされることを保証するものではありません。 fileData.fileUriには、ログインなしでHTTPS経由で直接アクセスできるファイルを使用します。署名付きURLは、リクエスト全体を通して有効である必要があります。以下のHTTPS_AUDIO_URLを実際のファイルURLに置き換え、実際の音声MIMEタイプを設定してください。この例ではWAVを想定しています。- ファイルサイズと処理内容に合わせて、クライアントのリクエスト全体のタイムアウトを設定します。ストリーミングなしの音声分析では、モデルの処理が完了してから結果が返されるため、90秒を超えることがあります。90秒はサーバーの処理上限ではありません。クライアントが切断されても、サーバーで処理が続いている場合があります。課金対象となる可能性のあるリクエストを自動的に再送信しないでください。
- 以下のネイティブリクエストを送信します。Gemini 3.x Flashの思考モデルでは、推論によって出力予算がすべて消費されないよう、
generationConfig.maxOutputTokensを512以上に設定してください。
POST /v1beta/models/gemini-3.5-flash:generateContent
{
"contents": [
{
"role": "user",
"parts": [
{"text": "Summarize this audio."},
{"fileData": {"mimeType": "audio/wav", "fileUri": "HTTPS_AUDIO_URL"}}
]
}
],
"generationConfig": {"maxOutputTokens": 1024}
}
ストリーミングの場合は、同じネイティブボディをPOST /v1beta/models/{model}:streamGenerateContent?alt=sseに送信し、SSEイベントを処理します。音声出力、組み込みツール(codeExecution、googleSearch、urlContext)、明示的なコンテキストキャッシュ(cachedContent)について、すべての環境で利用できる保証はありません。選択したモデルの実際の応答に従い、サポートを約束したり、これらのフィールドが常に400を返すと想定したりせず、エラーを表面化してください。
OpenAI Embeddings
チャット生成ではなく、セマンティック検索またはRAGには、同じAceDataCloud Bearerトークンを使ってPOST /openai/embeddings(公開エイリアス/v1/embeddings)を使用します。text-embedding-3-smallまたはtext-embedding-3-largeを選択してください。modelとinputは必須です。
POST /openai/embeddings
{
"model": "text-embedding-3-small",
"input": "Hello!"
}
text-embedding-ada-002は廃止されています。このモデルを指定した新しいリクエストは送信しないでください。既存のインデックスをクエリする前に、選択したサポート対象モデルで再構築してください。同じインデックス内で異なるモデルのベクトルを混在させたり、既存のインデックスでモデルを黙って切り替えたりしないでください。
ネイティブ Claude メッセージ
Messages 専用モデルを含むネイティブ Claude 呼び出しには、POST /v1/messages(公開エイリアス /claude/messages)を使用します。認証には同じ AceDataCloud Bearer トークンを使用します。必須フィールドは model、messages、max_tokens です。システム指示にはトップレベルの system を使用します。
curl -X POST https://api.acedata.cloud/v1/messages \
-H "Authorization: Bearer $ACEDATACLOUD_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"model":"claude-sonnet-5-5",
"messages":[{"role":"user","content":"Review this implementation plan."}],
"max_tokens":8192,
"thinking":{"type":"adaptive"},
"output_config":{"effort":"high"}
}'
thinking、output_config、effort、サンプリングパラメーター、拡張フィールドは変更せずに送信します。プラットフォームは、モデルごとに固定された列挙値を適用したり、thinking モードを書き換えたりしません。選択したモデルが受け入れる値や組み合わせを決定し、パラメーターエラーは呼び出し元に返されます。パススルーは、すべてのモデルやプロトコルで機能がサポートされることを保証するものではありません。- 一般的な
thinking.typeの値はadaptive、enabled、disabledです。between_toolsなどの新しいモード、固定のbudget_tokens、thinking を無効にできるかどうかは、モデルによって異なります。一般的な effort 値にはlow、medium、high、xhigh、maxなどがありますが、限定された列挙値ではありません。 thinking.display="summarized"は、読みやすい要約を返します。生の推論は返しません。omittedは、隠されたsignatureを保持しながら thinking テキストを非表示にします。ベータ版のupdatesは、推論を非表示にしたまま、ツール呼び出しの間に短い進行状況の更新を要求します。anthropic-beta: thinking-display-updates-2026-08-18を送信し、thinking.display="updates"を指定してください。この値とベータヘッダーはsummarizedに書き換えられず、そのまま転送されます。実際のサポート状況と出力は、選択したモデルによって異なります。- thinking は、最終テキストと
max_tokensの予算を共有します。表示設定によって thinking が無効になったり、thinking のトークン使用量が減ったりすることはありません。最終回答が空または途中で切れている場合は、予算を増やすか、サポートされている effort の値を下げてください。 - 複数ターンやツール使用の会話では、アシスタントの thinking ブロックと署名を完全な状態のまま変更せずに返します。署名を作成したり編集したりしないでください。プロトコルをまたぐ
redacted_thinkingの処理はモデルサービスによって異なります。ブロックを削除したり、リクエストを黙って変更したりせず、エラーをそのまま表面化させてください。
入力サイズを推定するには、モデル、メッセージ、および該当する system/tools/thinking フィールドを同じにして、ネイティブ入力を POST /v1/messages/count_tokens(エイリアス /claude/messages/count_tokens)に送信します。input_tokens を確認してください。このエンドポイントはモデル出力を生成せず、クォータも消費しません。thinking の設定も拡張可能です。ローカルにハードコードしたモデル検証に置き換えないでください。
ステートフル/エージェント型の会話
POST /aichat2/conversations は、マルチモーダルなユーザーコンテンツ、CRUD 形式のアクション、サーバー側の会話状態をサポートするよう、従来の会話 API を拡張したものです。
POST /aichat2/conversations
{
"action": "chat",
"model": "claude-sonnet-4-6",
"message": [
{"type": "text", "text": "Describe this image."},
{"type": "image_url", "image_url": {"url": "https://example.com/photo.jpg"}}
],
"stateful": true,
"allowed_skills": ["google-search"],
"allowed_mcp_servers": ["mcp-google-search"]
}
便利なパラメーター:
| パラメーター | 型 | 説明 |
|---|---|---|
action | string | chat、retrieve、retrieve_batch、update、delete |
model | string | モデル名 |
question | string | シンプルなテキストプロンプト |
message | string or array | text、image_url、file_url の各項目を使用したマルチモーダルコンテンツ |
stateful | boolean | 会話履歴をサーバー側に保持します |
references | array | 追加のコンテキストドキュメント |
preset | string | プリセット/システムプロンプト |
max_turns | integer | リクエストごとのエージェントの反復回数:1~500、デフォルトは 500。保持される履歴ではありません |
allowed_skills / allowed_mcp_servers | array | ツール使用の範囲を制限します |
unattended_policy | object | ツール使用許可ポリシー |
tool_results | array | 以前に要求されたツール呼び出しの結果を返します |
model_group | string | ファミリーセレクター(chatgpt、claude、gemini、grok、kimi、glm、deepseek) |
offset / limit | integer | 取得アクションのページネーション |
callback_url / async | string / boolean | 非同期実行 |
想定されるツールチェーンに合わせて max_turns を慎重に設定してください。各反復はモデル呼び出しであり、履歴を保持する設定ではありません。max_turns: 1 は、ツール呼び出しなしで単一の回答を要求します。省略すると最大 500 回の反復が可能になりますが、すべてが実行される保証はありません。
スケジュールされたエージェントタスク
同じサービスの Bearer トークンと aichat API アクセスを使用して、https://api.acedata.cloud の POST /aichat2/scheduled-tasks を利用します。すべての操作は action を指定した POST で実行します。このエンドポイントはプラットフォーム管理トークン用ではありません。
- タスクを作成または有効化する前に、プロンプト、モデル、アカウント、許可するツール、スケジュール、IANA タイムゾーン、利用料金の適用範囲を確認してください。実行には料金が発生し、無人で行われます。まず対話形式でサードパーティの認証を完了し、追加の確認が必要になる曖昧さを解消してください。対応している書き込みヘルパーには無人実行時の確認ガードを使用してください。スケジュールを設定しても、公開や送信が一律に許可されるわけではありません。
schedule.typeを選択します。cronでは5フィールドのcron式とtzが必要です。intervalではinterval_secondsとtzが必要です。onceでは Unix 秒単位のatとtzが必要です。UTC+8ではなく、UTCなどの IANA タイムゾーンを使用してください。保存されたタイムゾーンは、デバイスのタイムゾーンが変わっても Cron の現地時刻に適用されます。- 会話のプロンプトとモデルを
templateに指定します。省略可能なtemplate.max_turnsは1~500で、デフォルトは500です。これはスケジュールの頻度ではなく、1回の実行あたりの反復回数の上限です。各モデル呼び出しには実際の使用量に応じた料金が発生します。タイムアウト、認証、その他の実行条件により、上限に達する前に実行が終了する場合があります。必要に応じて Unix 秒単位のends_atを明示的に設定してください。設定しない場合、タスクは作成から3か月後に停止します。 - 作成後、返されたタスクの
idを保存してください。action="retrieve_batch"で一覧を取得します。action="retrieve_runs"とそのidを指定して実行履歴を確認するか、action="retrieve_runs_batch"ですべてのタスクを確認します(status、offset、limitは省略可能)。各実行のstatus、error_code、conversation_idを確認し、完全な結果は/aichat2/conversationsから会話を取得して確認してください。タスクのstate="enabled"(一覧では「running」と表示されます)は、実行が成功した証拠ではありません。 - AI 実行の連続した失敗によって、タスクが自動一時停止されることはありません。次のスケジュール実行も引き続き試行されます。自動一時停止は、実行サービスへの引き継ぎが5回連続で失敗した場合に発生し、AI 実行が5回失敗した場合ではありません。残高不足では実行が失敗し、ユーザー入力または同意が必要な場合は
awaiting_user_inputで失敗します。実行履歴を調査し、残高、認証、プロンプトの問題を解決してください。失敗が続く場合は、さらなる試行を防ぐため明示的に一時停止してください。 action="update"、タスクのid、state="disabled"を指定して一時停止します。確認後にのみ、state="enabled"で再開してください。完全に削除することを確認した後にのみ、action="delete"とidを指定して削除してください。
作成ペイロード(ローカルでプレビューし、送信前に確認を得てください):
POST /aichat2/scheduled-tasks
{
"action": "create",
"name": "Daily AI news summary",
"schedule": {"type": "cron", "cron": "0 9 * * *", "tz": "UTC"},
"template": {
"model": "gpt-4o-mini",
"question": "Today is {{date}}. Search and summarize the three most important AI news items. Do not publish or send messages.",
"max_turns": 5
}
}
POST /aichat2/scheduled-tasks
{"action": "retrieve_runs", "id": "TASK_ID"}
POST /aichat2/scheduled-tasks
{"action": "update", "id": "TASK_ID", "state": "disabled"}
注意点
/openai/*配下の OpenAI 互換ルートでは、公開エイリアス/v1/chat/completions、/v1/responses、/v1/embeddingsが引き続き利用できます。/chat/completionsを付加するクライアントでは、ベース URL にhttps://api.acedata.cloud/v1を使用してください(/openai/v1ではありません)。上記の SDK の例では、既存の/openaiベースを使用しています。- 状態を保持するエンドポイントとしては
POST /aichat2/conversationsが推奨されます。従来のクライアント向けにPOST /aichat/conversationsも引き続き利用できます。 /aichat2/conversationsのmessageはマルチモーダル(text、image_url、file_url)に対応しています。シンプルなテキストプロンプトには、従来どおりquestionを使用できます。/aichat2/conversationsのactionはチャット専用ではなく、retrieve、retrieve_batch、update、deleteにも対応しています。gpt-5.5:freeなどの無料プラン用モデルのバリエーションは、/openai/chat/completionsに記載されています。