# LiteLLM (/ja/docs/guides/litellm)

LiteLLM Python SDKからcheapaimodelのモデルを呼び出すか、LiteLLM Proxy経由で提供します。



LiteLLMはモデル名の`openai/`プレフィックスでOpenAI互換サービスに接続します。Pythonから直接使うか、LiteLLM Proxyの設定にcheapaimodelのモデルを登録します。

|          | LiteLLMの設定項目 | 値                                                                      |
| -------- | ------------ | ---------------------------------------------------------------------- |
| Base URL | `api_base`   | `https://api.cheapaimodel.ai/v1`                                       |
| APIキー    | `api_key`    | コンソールの[APIキー](https://console.cheapaimodel.ai/keys)ページで発行したキー          |
| モデルID    | `model`      | `openai/deepseek-v4-1-flash`：`openai/`の後に[モデルカタログ](/ja/models)にある任意のID |

## 設定 [#set-it-up]

<Tabs items="[&#x22;Python SDK&#x22;, &#x22;Proxy&#x22;]">
  <Tab value="Python SDK">
    ```bash title="ターミナル"
    pip install litellm
    ```

    ```python title="app.py"
    import os
    import litellm

    response = litellm.completion(
        model="openai/deepseek-v4-1-flash",
        api_base="https://api.cheapaimodel.ai/v1",
        api_key=os.environ["CHEAPAIMODEL_API_KEY"],
        messages=[{"role": "user", "content": "Explain recursion in one sentence."}],
    )
    print(response.choices[0].message.content)

    # ストリーミング
    stream = litellm.completion(
        model="openai/deepseek-v4-1-flash",
        api_base="https://api.cheapaimodel.ai/v1",
        api_key=os.environ["CHEAPAIMODEL_API_KEY"],
        messages=[{"role": "user", "content": "Write a haiku about rivers."}],
        stream=True,
    )
    for chunk in stream:
        print(chunk.choices[0].delta.content or "", end="", flush=True)
    ```

    LiteLLMは送信前に`openai/`プレフィックスを取り除くため、リクエストは`"model": "deepseek-v4-1-flash"`として`/v1/chat/completions`に届きます。
  </Tab>

  <Tab value="Proxy">
    ```bash title="ターミナル"
    pip install 'litellm[proxy]'
    ```

    ```yaml title="config.yaml"
    model_list:
      - model_name: deepseek-v4-1-flash
        litellm_params:
          model: openai/deepseek-v4-1-flash
          api_base: https://api.cheapaimodel.ai/v1
          api_key: os.environ/CHEAPAIMODEL_API_KEY

    general_settings:
      master_key: os.environ/LITELLM_MASTER_KEY
    ```

    モデルごとにエントリーを1つ追加します。`model_name`は、クライアントがproxyに送るモデル名です。現行のLiteLLMでは、master keyを設定しないとproxyが起動しません。クライアントはmaster keyで認証し、proxyはcheapaimodelのAPIキーでcheapaimodelを呼び出します。

    ```bash title="ターミナル"
    export CHEAPAIMODEL_API_KEY="sk-..."
    export LITELLM_MASTER_KEY="sk-$(openssl rand -hex 32)"
    litellm --config config.yaml
    ```

    ```bash title="ターミナル"
    curl http://localhost:4000/v1/chat/completions \
      -H "Authorization: Bearer $LITELLM_MASTER_KEY" \
      -H "Content-Type: application/json" \
      -d '{"model": "deepseek-v4-1-flash", "messages": [{"role": "user", "content": "Hello"}]}'
    ```
  </Tab>
</Tabs>

## よくある間違い [#common-mistakes]

* **`LLM Provider NOT provided. Pass in the LLM provider you are trying to call. You passed model=deepseek-v4-1-flash`。** `openai/`プレフィックスがありません。LiteLLMはプレフィックスでプロバイダーを判別するため、リクエストを送る前にエラーになります。`openai/deepseek-v4-1-flash`と書いてください。
* **`litellm.NotFoundError`または`Invalid URL (POST /v1/chat/completions/chat/completions)`。** `api_base`に`/v1`がないか、エンドポイントのパスまで含めています。`api_base`は`https://api.cheapaimodel.ai/v1`に設定してください。
* **埋め込みのリクエストをcheapaimodelに送っている。** cheapaimodelにはまだ埋め込みモデルがないため、`litellm.embedding()`や`model_list`の埋め込み用エントリーは、cheapaimodel経由では呼び出せるモデルがありません。埋め込みは別のプロバイダーのまま使ってください。
* **LiteLLMでこれらのリクエストの費用が表示されない。** LiteLLM内蔵の価格表にはcheapaimodelのモデルが含まれていないため、proxyは費用を0と記録し、`litellm.completion_cost()`は`This model isn't mapped yet`を返します。実際の利用額はコンソールの[ログ](https://console.cheapaimodel.ai/logs)ページで確認できます。proxyで追跡するには、エントリーの`model_info`に`input_cost_per_token`と`output_cost_per_token`を設定します。値は[モデルのページ](/ja/models/deepseek-v4-1-flash)にある100万トークンあたりの価格を1,000,000で割ったものです。
