メインコンテンツまでスキップ

Public API

Libre WebUI は OpenAI 互換 API を公開しています。既存の SDK、エディター、スクリプトは、ベース URL を変更するだけで自分のインスタンスへ接続できます。

認証

設定 → アカウント → API トークンでスコープ付き API トークンを作成します(トークンには lwk_ プレフィックスが付き、ハッシュ化して保存されます)。/v1 インターフェースには chat スコープが必要です。通常の Bearer キーとしてトークンを渡します。

export OPENAI_BASE_URL="https://your-instance/v1"
export OPENAI_API_KEY="lwk_..."

リクエストには、トークンごとのレート制限(1 分あたり 600 リクエスト)と、共有のチャットレート制限が適用されます。

エンドポイント

エンドポイント用途
GET /v1/models利用可能なモデル(ローカルおよびプロバイダープラグイン経由)
POST /v1/chat/completionsステートレスなチャット補完(ストリーミング/非ストリーミング)

POST /v1/chat/completions は、おなじみのリクエスト本文、すなわち modelmessages(system/user/assistant。マルチモーダルのテキスト部分は平坦化されます)、streamtemperaturetop_pmax_tokens/max_completion_tokensseedstop を受け付けます。ストリーミング応答は chat.completion.chunk SSE フレームで、data: [DONE] により終了します。非ストリーミング応答には、プロバイダーが報告する場合に usage のトークン数が含まれます。

curl "$OPENAI_BASE_URL/chat/completions" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "llama3.2",
"messages": [{"role": "user", "content": "One sentence on herons."}]
}'

意図的な境界

/v1 インターフェースはステートレス推論です。チャットを作成せず、ナレッジベースに触れず、ツールも実行しません。永続的で再生可能なイベントを持つステートフルな会話、ID によるキャンセル、冪等なキュー投入、ネイティブのツールループは、ネイティブの /api/chat イベント API にあります。同じトークンから chat スコープで呼び出せます。system/user/assistant 以外のロール(tool など)は、黙って受け入れず拒否されます。

関連ドキュメント

  • 認証 — アカウント、セッション、API トークン
  • チャットツール — イベント API のネイティブツールループ