概要
Shannonは、既存のOpenAI SDK、ツール、およびインテグレーションを使用してShannonのエージェントオーケストレーションプラットフォームとやり取りできるOpenAI互換APIレイヤーを提供します。互換レイヤーはOpenAIチャット補完リクエストをShannonタスクに変換し、結果をOpenAI形式でストリーミング返却します。 つまり、OpenAI PythonまたはNode.js SDKをShannonに向けるだけで、マルチエージェント研究、ツール利用、深度分析にアクセスできます——すべておなじみのインターフェースを通じて。OpenAI互換APIは既存ツールとの互換性のために設計されています。完全なShannon機能(スキル、セッションワークスペース、研究戦略、タスク制御)を使用するには、ネイティブの
/api/v1/tasksエンドポイントを使用してください。エンドポイント
ベースURL:
http://localhost:8080(開発環境)
認証
OpenAI互換エンドポイントは他のShannon APIと同じ認証を使用します。開発デフォルト:
GATEWAY_SKIP_AUTH=1設定時は認証が無効です。本番環境では認証を有効にしてください。利用可能なモデル
Shannonはモデル名を異なるワークフローモードと戦略にマッピングします。モデルを選択してリクエストの処理方法を制御します。
モデルが指定されない場合、
shannon-chatが使用されます。
Shannon Cloud のみ:
shannon-ads-researchモデルはエンタープライズ機能であり、広告リサーチベンダーアダプターが設定されたShannon Cloudデプロイメントでのみ利用可能です。チャット補完
POST /v1/chat/completions
リクエストボディ
メッセージオブジェクト:
ストリーミングオプション:
メッセージの処理方法
ShannonはOpenAIメッセージ配列をShannonタスクに変換します:- 最後のユーザーメッセージがタスククエリになる
- 最初のシステムメッセージがシステムプロンプトになる
- その他のすべてのメッセージ(システムメッセージと最後のユーザーメッセージを除く)が会話履歴になる
- モデル名がワークフローモードと研究戦略を決定する
非ストリーミングレスポンス
ストリーミングレスポンス
stream: trueの場合、レスポンスはServer-Sent Eventsとして配信されます:
最初のチャンク(ロールを含む):
最終チャンクの使用データは、
stream_options.include_usageがtrueに設定されている場合にのみ含まれます。Shannon拡張
shannon_eventsフィールド
ストリーミング中、Shannonはshannon_eventsフィールドで標準OpenAIチャンク形式を拡張します。このフィールドはエージェントライフサイクルイベントを伝達し、Shannonのエージェントがバックグラウンドで何をしているかを可視化します。
転送されるイベントタイプ:
X-Session-IDヘッダー
ShannonはX-Session-IDリクエストヘッダーを介してマルチターン会話をサポートします。提供すると、Shannonはリクエスト間で会話コンテキストを維持します。
X-Session-IDが提供されない場合、Shannonは会話内容(システムメッセージ + 最初のユーザーメッセージのハッシュ)またはuserフィールドからセッションIDを推導します。
新しいセッションが作成されたり衝突が検出された場合、レスポンスにはX-Session-IDとX-Shannon-Session-IDヘッダーが含まれます。
レート制限
レート制限はAPIキーごと、モデルごとに適用されます。デフォルトの制限は:- モデルごとに毎分60リクエスト
- モデルごとに毎分200,000トークン
エラー処理
エラーはOpenAIエラーレスポンス形式に従います:モデル一覧
GET /v1/models
利用可能なすべてのShannonモデルを返します。GET /v1/models/
特定のモデルの詳細を返します。モデルの説明はX-Model-Descriptionレスポンスヘッダーに含まれます。
OpenAI SDKでの使用
Python
Node.js / TypeScript
curl
Shannonイベント付きストリーミング
エージェントの進捗を表示するリッチUIを構築するには、ストリーミングチャンクからshannon_eventsフィールドを解析します:
ハートビートとキープアライブ
ストリーミング中、Shannonは接続を維持するために30秒ごとにSSEコメント行(: keepalive)を送信します。準拠するSSEクライアントはこれらを自動的に無視します。これにより、長時間実行される研究タスク中にロードバランサーやプロキシがアイドル接続を閉じることを防ぎます。
制限事項
以下のOpenAI API機能はサポートされていません:標準OpenAI APIとの違い
関連
タスク送信(ネイティブAPI)
全機能を備えたShannonタスク送信
イベントストリーミング
ShannonネイティブSSEおよびWebSocketストリーミング
イベントタイプリファレンス
Shannonイベントタイプの完全なリスト
Python SDK
ShannonネイティブPythonクライアント