DigitalBase Docs

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/responsesResponses 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-keysAPIアクセスキー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 系)GeminiGrok
temperature適用reasoning モデルでは無視思考オフ時のみ適用(Opus 4.7 以降の新世代は常に非対応)適用適用
top_p適用reasoning モデルでは無視temperature と排他(temperature 優先)。適用条件は同上適用適用
top_k適用無視適用条件は temperature と同じ適用無視
max_tokensコンテキストに収まるよう自動調整reasoning モデルでは max_completion_tokens に変換モデル上限内に丸め無視(モデル既定)適用
reasoning_effort下表参照下表参照下表参照下表参照無視
tools / tool_choicetool 対応モデルのみ適用無視適用適用
stream適用(SSE)適用適用適用適用

reasoning_effort(思考の深さ)

値は "none" / "low" / "medium" / "high" / "max" で、未指定はモデル既定です。互換のため metadata.digitalbase.thinking(bool も可。true=high / false=none)でも指定でき、両方ある場合は metadata 側が優先されます。思考機能のないモデルに指定してもエラーにはなりません。

モデル挙動
ローカル vLLM思考のオン/オフとして扱われます(none=オフ、それ以外=オン)。maxhigh として送信されます
ローカル Ollamanonehigh を適用(maxhigh)。思考非対応モデルでは指定を外して自動リトライし、モデル既定で応答します
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 以上=オン)
Gemininonehigh を適用(maxhigh
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)。

関連