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

Panggil model cheapaimodel dari LiteLLM Python SDK, atau sediakan lewat LiteLLM Proxy.



LiteLLM terhubung ke layanan yang kompatibel dengan OpenAI lewat prefiks model `openai/`. Pakai langsung dari Python, atau daftarkan model cheapaimodel di konfigurasi LiteLLM Proxy.

|          | Pengaturan LiteLLM | Nilai                                                                                  |
| -------- | ------------------ | -------------------------------------------------------------------------------------- |
| Base URL | `api_base`         | `https://api.cheapaimodel.ai/v1`                                                       |
| API key  | `api_key`          | Key kamu dari halaman [API key](https://console.cheapaimodel.ai/keys) di Konsol        |
| ID model | `model`            | `openai/deepseek-v4-1-flash`: `openai/` ditambah ID apa pun dari [katalog](/id/models) |

## Penyiapan [#set-it-up]

<Tabs items="[&#x22;Python SDK&#x22;, &#x22;Proxy&#x22;]">
  <Tab value="Python SDK">
    ```bash title="Terminal"
    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)

    # Streaming
    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 membuang prefiks `openai/` sebelum mengirim, jadi permintaan sampai ke `/v1/chat/completions` dengan `"model": "deepseek-v4-1-flash"`.
  </Tab>

  <Tab value="Proxy">
    ```bash title="Terminal"
    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
    ```

    Tambahkan satu entri per model. `model_name` adalah nama yang dikirim klienmu ke proxy. Rilis LiteLLM saat ini menolak menjalankan proxy tanpa master key; klien melakukan autentikasi dengan master key itu, dan proxy memanggil cheapaimodel dengan key cheapaimodel kamu.

    ```bash title="Terminal"
    export CHEAPAIMODEL_API_KEY="sk-..."
    export LITELLM_MASTER_KEY="sk-$(openssl rand -hex 32)"
    litellm --config config.yaml
    ```

    ```bash title="Terminal"
    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>

## Kesalahan umum [#common-mistakes]

* **`LLM Provider NOT provided. Pass in the LLM provider you are trying to call. You passed model=deepseek-v4-1-flash`.** Prefiks `openai/` tidak ada. LiteLLM memakai prefiks itu untuk memilih penyedia, jadi gagal sebelum mengirim apa pun. Tulis `openai/deepseek-v4-1-flash`.
* **`litellm.NotFoundError` atau `Invalid URL (POST /v1/chat/completions/chat/completions)`.** `api_base` tidak memakai `/v1`, atau malah menyertakan path endpoint. Isi persis dengan `https://api.cheapaimodel.ai/v1`.
* **Embeddings diarahkan ke cheapaimodel.** cheapaimodel belum punya model embedding, jadi `litellm.embedding()` atau entri embedding di `model_list` tidak punya apa-apa untuk dipanggil di sini. Pakai penyedia lain untuk embedding.
* **LiteLLM tidak menampilkan biaya untuk panggilan ini.** Daftar harga bawaannya tidak mencakup model cheapaimodel: proxy mencatat biaya 0, dan `litellm.completion_cost()` memunculkan `This model isn't mapped yet`. Pengeluaranmu yang sebenarnya ada di halaman [Log](https://console.cheapaimodel.ai/logs) di Konsol. Untuk melacaknya di proxy, atur `input_cost_per_token` dan `output_cost_per_token` di bawah `model_info` milik entri itu: harga per 1 juta token di [halaman model](/id/models/deepseek-v4-1-flash), dibagi 1,000,000.
