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 は、おなじみのリクエスト本文、すなわち model、messages(system/user/assistant。マルチモーダルのテキスト部分は平坦化されます)、stream、temperature、top_p、max_tokens/max_completion_tokens、seed、stop を受け付けます。ストリーミング応答は 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 など)は、黙って受け入れず拒否されます。