# UnslothをAPIエンドポイントとして使う方法

使用できます **ローカルLLMを** 次のようなツールと [Claude Code](/docs/jp/ji-ben/claude-code.md) および [Codex](/docs/jp/ji-ben/codex.md) を、これらのツールを Unsloth の **OpenAI互換APIエンドポイント**に接続することで。これにより、次のようなモデルを [Qwen](/docs/jp/moderu/qwen3.6.md) および [Gemma](/docs/jp/moderu/gemma-4.md) をローカルでエージェント的コーディングに利用できます。Unsloth には、自己修復型の **ツール呼び出し**, **コード実行**や **ウェブ検索**.

を含む、便利な機能もあります。Unsloth は、次の機能を提供する高速な API 推論エンドポイントのデプロイを簡単にします:

* [**自己修復型ツール呼び出し**](/docs/jp/xin-zhe/studio/chat.md#auto-healing-tool-calling)。壊れた、または不正な形式のツール呼び出しを50%削減するのに役立ちます
* [**コード実行**](/docs/jp/xin-zhe/studio/chat.md#code-execution) サポート。Bash と Python の実行が可能になり、より正確なコード出力を得られます。
* **高度な** [**ウェブ検索**](/docs/jp/xin-zhe/studio/chat.md#advanced-web-search) 。ページを実際に訪問して読み込み、詳細な情報を収集します。
* [**自動推論** 設定](/docs/jp/xin-zhe/studio/chat.md#auto-parameter-tuning) GGUFモデル向け（temp、top-k など）

{% columns %}
{% column %}
Unsloth で読み込まれたモデル（GGUF を含む）は、 **認証済みAPI** として `llama-server`経由で公開されます。OpenAI が提供するのと同様に、セキュリティ上の理由から長いAPIキーが生成されます。

あなたの **ローカルモデル** は、その後、好みのAIエージェント、SDK、またはチャットクライアントで直接使用できます。Unsloth は同じポートで2つの方言を話します。どちらもストリーミング、ツール呼び出し（OpenAI `tools`  / Anthropic `tools`）、およびビジョン入力をサポートしています:
{% endcolumn %}

{% column %}

<figure><img src="/files/77e863c5bd956050b90ee75739b6a07e63ef9f71" alt=""><figcaption></figcaption></figure>
{% endcolumn %}
{% endcolumns %}

* **Anthropic互換 `/v1/messages`**  は Claude Code、OpenClaw、Anthropic SDK、そして Messages API を期待するあらゆるクライアント向けです。
* **OpenAI互換 `/v1/chat/completions`** および **`/v1/responses`** は OpenAI SDK、OpenCode、Cursor、Continue、Cline、Open WebUI、SillyTavern、そしてあらゆる OpenAI互換ツール向けです。

### ⚡ クイックスタート

1. **インストールまたは更新** [**Unsloth Studio**](/docs/jp/xin-zhe/studio.md)**.** その後、Unsloth を起動します。
2. **モデルを読み込みます。** クリックして **新しいチャット**を開き、モデル（GGUF）を選ぶか検索して、読み込み完了を待ちます。
3. **APIキーを作成します。** 左下の **Unsloth** アバターをクリック → **設定** → **API** → キー名を入力 → **作成**。表示された `sk-unsloth-…` の値をコピーします。Unsloth は一度しか表示しません。
4. **クライアントを Unsloth に向けます。** 次を使用します `http://localhost:PORT` をベースURLとして、認証にはあなたの `sk-unsloth-…` キーを使います。以下のツール別レシピへ進んでください。

### 🔑 APIキーの作成

1. サイドバーを開き、左下のあなたの **Unsloth** アバターをクリックします。
2. 次へ移動します **設定** → **API** （地球 :globe\_with\_meridians: アイコン）。
3. わかりやすい名前を入力します（例: `claude-code-macbook`）。有効期限を設定します（任意）
4. クリックして **作成**.
5. **キーをコピーします。** Unsloth はハッシュのみを保存するため、再度表示することはできません。

<div data-with-frame="true"><figure><img src="/files/2552df3313dace7735a365c0b734bbb215081dd4" alt="" width="375"><figcaption></figcaption></figure></div>

すべてのキーは `sk-unsloth-` プレフィックスで始まります。キーの失効は同じページからいつでも行えます。失効したキーでのリクエストは `401 Unauthorized`.

{% hint style="warning" %}
APIキーはパスワードのように扱ってください。キーとあなたの Unsloth インスタンスへのネットワークアクセスを持つ誰でも、読み込まれたモデルにリクエストを送信できます。
{% endhint %}

### ⏳ モデルの読み込み

{% stepper %}
{% step %}

#### モデルを選択

API を使う前に、Chat ページ左上の **モデルを選択** ドロップダウンからモデルを読み込んでください。

<figure><img src="/files/e29038cb1426e393aee3cb144c904bc7a9438f27" alt=""><figcaption></figcaption></figure>

このガイドでは次を使います:

`unsloth/gemma-4-26B-A4B-it-GGUF` 推奨の `UD-Q4_K_XL` 量子化を使用します。
{% endstep %}

{% step %}

#### モデルのテスト

クライアントを使う前に、短いメッセージを送信してください:

<div data-with-frame="true"><figure><img src="/files/6037fb7bcfd78472b5ddadc37e90255377de6580" alt="" width="563"><figcaption></figcaption></figure></div>

{% hint style="info" %}
これにより、モデルが正しく読み込まれ、応答可能な状態であることを確認できます。
{% endhint %}
{% endstep %}

{% step %}

#### **Unsloth APIキー**

Studio で **設定 → API** を開いて、APIキーを表示または作成します。

<figure><img src="/files/ff7840d9317331aed891f8636717121d17346f61" alt=""><figcaption></figcaption></figure>

APIキーはパスワードのように扱い、スクリーンショットやリポジトリに露出しないようにしてください。
{% endstep %}
{% endstepper %}

### <i class="fa-terminal">:terminal:</i> Unsloth 実行コマンド

1. **Unsloth をインストールまたは更新します。** 古いバージョンでは外部APIは公開されません。インストールを参照してください。
2. **GGUFモデルを読み込みます。** 実行コマンドを使ってGGUFモデルを読み込みます。これにより、デフォルトポートでUIも読み込まれます。エンドポイントURLとAPIキーがコンソールに表示され、好みのクライアントですぐに使用できます。

   ```bash
   unsloth run --model unsloth/gemma-4-26B-A4B-it-GGUF:UD-Q4_K_XL
   ```

#### CLI からモデルを読み込む

次を使用して、モデルを読み込み、APIキーを自動生成できます `unsloth` CLIツール。モデルの読み込みが完了すると、エンドポイントURLとAPIキーがコンソールに表示されます。それらを好みのクライアントにコピーすれば準備完了です。

#### 始める前に

Unsloth Studio の最近のバージョンを使っていることを確認してください。古いバージョンでは外部APIは公開されません。参照してください [インストール](/docs/jp/xin-zhe/studio/install.md).

#### 最短の方法

ターミナルを開いてGGUFモデルを読み込みます:

```bash
unsloth run --model unsloth/gemma-4-26B-A4B-it-GGUF:UD-Q4_K_XL
```

これにより、デフォルトポートでサーバーが起動し、UIが読み込まれ、エンドポイントURLとAPIキーが表示されます。

#### モデル名の仕組み

モデルは数通りの方法で指定できます。いちばん簡単だと思うものを選んでください:

```bash
# 組み合わせ: リポジトリと量子化バリアントを1つの文字列にまとめる（推奨 — 最短）
unsloth run --model unsloth/gemma-4-26B-A4B-it-GGUF:UD-Q4_K_XL

# 分離: リポジトリとバリアントを2つのフラグとして指定する（古い形式だが、まだ使えます）
unsloth run --model unsloth/gemma-4-26B-A4B-it-GGUF --gguf-variant UD-Q4_K_XL

# -hf / --hf-repo を使う（llama.cpp の表記に一致。そちらに慣れているなら便利）
unsloth run -hf unsloth/gemma-4-26B-A4B-it-GGUF:UD-Q4_K_XL
```

#### 実行の調整（任意）

基本的な読み込みならこれらは不要ですが、より細かく制御したい場合は追加フラグを渡せます。これらはそのまま下層の `llama-server`へ転送されます。あなたの値は Studio の既定値を上書きします。

いくつかの例:

```bash
# コンテキストウィンドウを大きくし、スレッドを固定する
unsloth run --model unsloth/gemma-4-26B-A4B-it-GGUF:UD-Q4_K_XL -c 131072 --threads 32

# サンプリングを調整する
unsloth run --model unsloth/Qwen3-1.7B-GGUF --top-k 20 --seed 42

# カスタムチャットテンプレートを使う
unsloth run --model unsloth/gemma-4-26B-A4B-it-GGUF:UD-Q4_K_XL \
  --chat-template-file /path/to/template.jinja
```

ほとんどの `llama-server` フラグは、コンテキストサイズ、GPUレイヤー、サンプリングパラメータ、KVキャッシュ型、推論設定などとして機能します。 [llama-server のドキュメント](https://github.com/ggml-org/llama.cpp/tree/master/tools/server) を参照して完全な一覧を確認してください。

#### **サーバー側ツールポリシー**

`unsloth run` は、推論サーバーがサーバー側ツール（ウェブ検索、コード実行など）を公開するかどうかを制御します。既定値はバインドアドレスに基づきます:

* **`127.0.0.1` （localhost）** — ツール **は** 既定で有効。サーバーに到達できるのはあなたのマシンだけです。
* **`0.0.0.0` または任意の非ループバックアドレス** — ツール **は** 既定で無効。ネットワーク公開されたサーバーでAPIキーが漏れると、ホスト上で任意コード実行が可能になります。

**フラグ:**

* `--enable-tools` / `--disable-tools` — 強制的に有効または無効にします。有効の場合 `0.0.0.0`, `--enable-tools` は y/N のセキュリティプロンプトを表示します。
* `--yes` / `-y` — プロンプトを省略します（自動化用）。

解決されたポリシーはプロセスレベルの強制上書きです。個々のリクエストは `enable_tools=true` をリクエスト本文に入れても回避できません。

<div data-with-frame="true"><figure><img src="/files/c83a32967cec19ed5df47338a161004dc2a0dba9" alt=""><figcaption></figcaption></figure></div>

### 🌐 **エンドポイント**

Studio は、起動したポート上でこれらのエンドポイントを公開します（通常は `http://localhost:8000` または `http://localhost:8888`):

| エンドポイント                     | 互換性があるもの                    | 次から使用                                                        |
| --------------------------- | --------------------------- | ------------------------------------------------------------ |
| `POST /v1/messages`         | Anthropic Messages API      | Claude Code、Anthropic SDK、OpenClaw、Anthropic を話すあらゆるもの       |
| `POST /v1/chat/completions` | OpenAI Chat Completions API | OpenAI SDK、opencode、Cursor、Continue、Cline、Open WebUI、curl など |
| `GET /v1/models`            | OpenAI モデル一覧                | 現在 Unsloth に読み込まれているモデルを一覧表示します                              |

次のヘッダーで認証します `Authorization: Bearer sk-unsloth-…` を各リクエストに付与します。

{% hint style="info" %}
2つの形式に対して別々のサーバーを実行する必要はありません。Studio は同じポートで両方を処理します。
{% endhint %}

### 🖇️ クライアントの接続

Unsloth を使うと、次のような多くのフレームワークを介してローカル LLM を実行できます [Claude Code](/docs/jp/ji-ben/claude-code.md), [Codex](/docs/jp/ji-ben/codex.md), [OpenClaw](/docs/jp/tong-he/openclaw.md), [OpenCode](/docs/jp/tong-he/opencode.md) など。以下の特定ツールをクリックしてガイドを確認してください:

{% columns %}
{% column width="50%" %}
{% content-ref url="/pages/ee610b22aa43d29d8415fd27eb7de15ba88f7385" %}
[Claude Code](/docs/jp/ji-ben/claude-code.md)
{% endcontent-ref %}

{% content-ref url="/pages/c87896ff7159620f4c01bb39fe9df1fd1a55274e" %}
[OpenAI Codex](/docs/jp/ji-ben/codex.md)
{% endcontent-ref %}

{% content-ref url="/pages/f70478a97a94b1f315a2c502fe67fb5f4f746cb9" %}
[Curl & HTTP](/docs/jp/tong-he/curltohttpwounslothni.md)
{% endcontent-ref %}
{% endcolumn %}

{% column width="50%" %}
{% content-ref url="/pages/1040e353b555381fe4f250e6417f1e51602685b2" %}
[OpenClaw](/docs/jp/tong-he/openclaw.md)
{% endcontent-ref %}

{% content-ref url="/pages/3864bcb37ba6a47277fdce43a7f1d4bc977d7edb" %}
[OpenCode](/docs/jp/tong-he/opencode.md)
{% endcontent-ref %}

{% content-ref url="/pages/1cb063d078a6ee398eff3b5e436d43e1fb2d6e52" %}
[Python SDK](/docs/jp/tong-he/python-sdkwounslothni.md)
{% endcontent-ref %}
{% endcolumn %}
{% endcolumns %}

### 🧰 ツール呼び出し

両方のエンドポイントは、それぞれのネイティブ形式での関数 / ツール呼び出しに加え、Studio の組み込みツール向けの Unsloth 専用の短縮記法もサポートします。

**OpenAI スタイルのツール:** 送信して `tools` および `tool_choice` を `/v1/chat/completions` OpenAI の場合と同じように扱います。Claude Code（ `/v1/messages`経由）、opencode、Cursor、Continue、Cline はすべてそのまま動作します。

**Anthropic スタイルのツール:** 送信して `tools` （ `input_schema`付き）と `tool_choice` を `/v1/messages` Claude の場合と同じように扱います。

**Studio サーバー側ツール:** Studio は Python、ウェブ検索、bash を実行できます *サーバー側で* 、結果を `tool_result` イベントとしてストリームで返します。どちらのエンドポイントにも以下の追加フィールドを加えて有効化します:

```json
{
  "messages": [{"role": "user", "content": "123 * 456 はいくつですか？Python を使ってください。"}],
  "stream": true,
  "enable_tools": true,
  "enabled_tools": ["python", "web_search","terminal"],
  "session_id": "my-session"
}
```

モデルは次のターンで各ツールの出力を見ます。より詳しい内容（スキーマ、ストリーミングイベント、連鎖）については、 を参照してください。

{% hint style="info" %}
Anthropic の `/v1/messages` エンドポイントを使っているなら、 `tool_choice` はきれいに対応します: Anthropic `auto` → OpenAI `auto`、Anthropic `any` → OpenAI `required`、Anthropic `{type: "tool", name: "x"}` → OpenAI `{type: "function", function: {name: "x"}}`、Anthropic `none` → OpenAI `none`.
{% endhint %}

### ❔ トラブルシューティング

**`401 Unauthorized`** :  どちらか一方、 `Authorization` ヘッダーがないか、キーが間違っています。キーは `Authorization: Bearer sk-unsloth-…`として渡す必要があります。キーを紛失した場合は、 **設定 → API。** Studio は作成後に古いキーを表示しません。

**`モデルサーバーへの接続を失いました`** : Studio は基盤となる llama.cpp サーバーに到達できませんでした。通常はモデルの読み込みが完了したがクラッシュしたか、Studio 内でモデルタブが閉じられたことが原因です。 **新しいチャット** からモデルを再読み込みして再試行してください。

**Claude Code がデフォルトの Anthropic モデルを表示し、ローカルのものが表示されない** :  3つの環境変数すべてが **同じ** シェルでエクスポートされているか確認してください。そこで `claude`:

```bash
echo $ANTHROPIC_BASE_URL
echo $ANTHROPIC_AUTH_TOKEN
echo $ANTHROPIC_MODEL
```

次に `/model` を Claude Code 内で実行して確認します。Windows PowerShell では `$env:ANTHROPIC_BASE_URL` などを使います。

**`stream: true` は SSE ではなく単一の JSON ブロブを返す** :  正しいパス（`/v1/messages` または `/v1/chat/completions`）にアクセスしていること、そしてHTTPクライアントが応答を実際にストリームとして処理しており、バッファリングしていないことを確認してください。

**opencode（または OpenClaw / その他のクライアント）に追加するモデル名が見つかりません** :  Studio に直接問い合わせてください。 `GET /v1/models` は、クライアントの "Model ID" フィールドに入力すべき正確なモデルIDを返します:

```bash
curl http://localhost:8888/v1/models \
  -H "Authorization: Bearer sk-unsloth-xxxxxxxxxxxx"
```

次の形式の JSON ペイロードが返ってきます `{"data": [{"id": "gemma-4-26B-A4B-it-GGUF", ...}]}`。表示された `id` の値が、opencode の **Model ID** フィールド（左列）と OpenClaw の `models[].id` が期待する文字列です。右側の表示名は、ユーザーに見せたい任意のものにできます。

**ツール呼び出しが実行されない** :  クライアント側ツール（`tools` / `tool_choice`）には、モデルがツール呼び出しをサポートしている必要があります。Studio の組み込みツールでは、 `enable_tools: true` **および** を設定し、必要なものを `enabled_tools` に列挙することを忘れないでください（例: `["python", "web_search"]`).


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://unsloth.ai/docs/jp/ji-ben/api.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
