OpenAI 互換 API
DigitalBase は OpenAI 互換のエンドポイント(/v1/*)を提供します。既存の OpenAI SDK / ツールから、接続先(base URL)と API キーを差し替えるだけで利用できます。Anthropic 互換の /v1/messages にも対応します。
エンドポイント一覧
OpenAI / Anthropic 互換
標準 SDK / ツールからそのまま利用できる、互換エンドポイントです。
| エンドポイント | 説明 |
|---|---|
POST /v1/chat/completions | チャット補完(OpenAI 互換・ストリーミング対応) |
POST /v1/embeddings | 埋め込みベクトルの生成(OpenAI 互換) |
POST /v1/messages | メッセージ API(Anthropic 互換) |
POST /v1/responses | Responses API(OpenAI 互換・Codex 等向け。text / function ツール / ストリーミングに対応) |
GET /v1/models | 利用可能なモデル一覧(OpenAI 互換) |
GET/POST/DELETE /v1/assistants | アシスタント管理(OpenAI Assistants 形式。DigitalBase の Bot にマップ) |
GET /v1/vector_stores | ナレッジ参照(OpenAI Vector Stores 形式。RAG にマップ) |
DigitalBase 独自(管理系)
OpenAI / Anthropic の標準仕様にはない、DigitalBase 独自のエンドポイントです。詳細は各ページを参照してください。
| エンドポイント | 説明 |
|---|---|
POST/GET/PATCH/DELETE /v1/api-keys | APIアクセスキー(sk-)の発行・管理 |
/v1/bi-keys・/v1/data/* | BI キー(bk-)とデータ参照(APIアクセスキー・ダッシュボード) |
利用例
curl http://<HOST>:8000/v1/chat/completions \
-H "Authorization: Bearer <API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"model": "<model>",
"messages": [{"role": "user", "content": "こんにちは"}],
"stream": true
}'
OpenAI Python SDK からは base_url を差し替えるだけで利用できます。
from openai import OpenAI
client = OpenAI(base_url="http://<HOST>:8000/v1", api_key="<API_KEY>")
res = client.chat.completions.create(
model="<model>",
messages=[{"role": "user", "content": "こんにちは"}],
)
リクエストパラメータとモデル別の挙動
/v1/chat/completions の主なパラメータは、接続先のモデル(バックエンド)によって扱いが異なります。表にない標準パラメータ(stop / seed / response_format など)はローカルモデルにそのまま転送され、クラウドモデルでは無視されます。
| パラメータ | ローカル (vLLM / Ollama) | OpenAI (gpt 系) | Anthropic (claude 系) | Gemini | Grok |
|---|---|---|---|---|---|
temperature | 適用 | reasoning モデルでは無視 | 思考オフ時のみ適用(Opus 4.7 以降の新世代は常に非対応) | 適用 | 適用 |
top_p | 適用 | reasoning モデルでは無視 | temperature と排他(temperature 優先)。適用条件は同上 | 適用 | 適用 |
top_k | 適用 | 無視 | 適用条件は temperature と同じ | 適用 | 無視 |
max_tokens | コンテキストに収まるよう自動調整 | reasoning モデルでは max_completion_tokens に変換 | モデル上限内に丸め | 無視(モデル既定) | 適用 |
reasoning_effort | 下表参照 | 下表参照 | 下表参照 | 下表参照 | 無視 |
tools / tool_choice | tool 対応モデルのみ | 適用 | 無視 | 適用 | 適用 |
stream | 適用(SSE) | 適用 | 適用 | 適用 | 適用 |
reasoning_effort(思考の深さ)
値は "none" / "low" / "medium" / "high" / "max" で、未指定はモデル既定です。互換のため metadata.digitalbase.thinking(bool も可。true=high / false=none)でも指定でき、両方ある場合は metadata 側が優先されます。思考機能のないモデルに指定してもエラーにはなりません。
| モデル | 挙動 |
|---|---|
| ローカル vLLM | 思考のオン/オフとして扱われます(none=オフ、それ以外=オン)。max は high として送信されます |
| ローカル Ollama | none〜high を適用(max は high)。思考非対応モデルでは指定を外して自動リトライし、モデル既定で応答します |
| OpenAI(gpt-5 系 / o 系の reasoning モデル) | そのまま適用されます(none は gpt-5.1 以降)。tools 併用時は送信されません(サーバ既定で動作) |
| Anthropic(Opus 4.6 以降 / Sonnet 4.6 以降) | adaptive thinking + effort として適用されます。none は思考オフ(Fable / Mythos 5 は常時思考のため、モデル既定と同じ動作) |
| Anthropic(Haiku 4.5 等の旧世代) | オン/オフとして扱われます(low 以上=オン) |
| Gemini | none〜high を適用(max は high) |
| Grok | 未対応(モデル既定で動作) |
アシスタント(Bot)を指定する
model にアシスタント ID(asst_ で始まる)を渡すと、そのアシスタントの設定(ナレッジ・プロンプト・ツール)で応答します。
RAG の出典
RAG を使う応答では、レスポンスの拡張フィールド x_digitalbase.sources に参照した社内文書(出典)が含まれます。
Anthropic 互換(/v1/messages)
Anthropic Messages API 形式のリクエストにも対応します。Claude 向けの SDK やツールから、接続先と API キーを差し替えるだけで利用できます。
- 認証は OpenAI 互換と同じ API キー(
sk-)を使います。 system/messages(content ブロック)・tools/tool_choice・ストリーミング(SSE)に対応します。- 受信時に内部で OpenAI 形式へ変換して処理し、応答を Anthropic 形式(
message_start/content_block_delta/message_stopなど)で返します。 modelはそのまま渡され、クラウド振り分け/ローカルモデルで解決されます。thinking({"type":"adaptive"}/{"type":"disabled"}など)とoutput_config.effortは、上記のreasoning_effortと同じ思考制御に変換されます(disabled=none、adaptive/enabled=effort 指定または high)。