メインコンテンツへスキップ

概要

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デプロイメントでのみ利用可能です。
モデルはconfig/openai_models.yamlでカスタマイズできます。カスタムモデルの追加については、Shannon設定ドキュメントを参照してください。

チャット補完

POST /v1/chat/completions

リクエストボディ

メッセージオブジェクト: ストリーミングオプション:

メッセージの処理方法

ShannonはOpenAIメッセージ配列をShannonタスクに変換します:
  • 最後のユーザーメッセージがタスククエリになる
  • 最初のシステムメッセージがシステムプロンプトになる
  • その他のすべてのメッセージ(システムメッセージと最後のユーザーメッセージを除く)が会話履歴になる
  • モデル名がワークフローモードと研究戦略を決定する

非ストリーミングレスポンス

非ストリーミングリクエストは、深度研究や長時間実行ワークフローをサポートするために35分のタイムアウトがあります。非常に長いタスクにはストリーミングモードをお勧めします。

ストリーミングレスポンス

stream: trueの場合、レスポンスはServer-Sent Eventsとして配信されます: 最初のチャンク(ロールを含む):
コンテンツチャンク
最終チャンク(終了理由を含む):
ストリーム終了マーカー
最終チャンクの使用データは、stream_options.include_usagetrueに設定されている場合にのみ含まれます。

Shannon拡張

shannon_eventsフィールド

ストリーミング中、Shannonはshannon_eventsフィールドで標準OpenAIチャンク形式を拡張します。このフィールドはエージェントライフサイクルイベントを伝達し、Shannonのエージェントがバックグラウンドで何をしているかを可視化します。
ShannonEventフィールド 転送されるイベントタイプ
標準的なOpenAIクライアントは未知のフィールドを無視するため、shannon_eventsフィールドは任意のOpenAI互換ツールで安全に使用できます。より詳細な進捗情報が必要な場合に解析してください。

X-Session-IDヘッダー

ShannonはX-Session-IDリクエストヘッダーを介してマルチターン会話をサポートします。提供すると、Shannonはリクエスト間で会話コンテキストを維持します。
X-Session-IDが提供されない場合、Shannonは会話内容(システムメッセージ + 最初のユーザーメッセージのハッシュ)またはuserフィールドからセッションIDを推導します。 新しいセッションが作成されたり衝突が検出された場合、レスポンスにはX-Session-IDX-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機能はサポートされていません
messages[].contentフィールドはプレーンテキスト文字列のみを受け入れます。マルチパートコンテンツ(image_urlオブジェクトを含む配列)はサポートされていません。

標準OpenAI APIとの違い

関連

タスク送信(ネイティブAPI)

全機能を備えたShannonタスク送信

イベントストリーミング

ShannonネイティブSSEおよびWebSocketストリーミング

イベントタイプリファレンス

Shannonイベントタイプの完全なリスト

Python SDK

ShannonネイティブPythonクライアント