LlamaIndex
Pakai model cheapaimodel di LlamaIndex lewat API yang kompatibel dengan OpenAI.
LlamaIndex terhubung ke layanan yang kompatibel dengan OpenAI lewat OpenAILike dari paket llama-index-llms-openai-like. LlamaIndex tidak bisa mencari detail model dari ID yang tidak dikenalnya, jadi ada dua hal yang perlu kamu atur sendiri: bahwa model itu adalah model chat, dan jendela konteksnya.
| Pengaturan LlamaIndex | Nilai | |
|---|---|---|
| Base URL | api_base | https://api.cheapaimodel.ai/v1 |
| API key | api_key | Key kamu dari halaman API key di Konsol |
| ID model | model | deepseek-v4-1-flash, atau ID apa pun dari katalog |
| Model chat | is_chat_model | True |
| Jendela konteks | context_window | Panjang konteks model dalam token, ada di halaman model itu di katalog |
Penyiapan
Paket LlamaIndex versi saat ini butuh Python 3.10 atau yang lebih baru.
pip install llama-index-llms-openai-likeCek panjang konteks di halaman model, misalnya deepseek-v4-1-flash, lalu isikan ke CONTEXT_WINDOW:
import os
from llama_index.core.llms import ChatMessage
from llama_index.llms.openai_like import OpenAILike
CONTEXT_WINDOW = ... # the context length from the model's page, in tokens
llm = OpenAILike(
model="deepseek-v4-1-flash",
api_base="https://api.cheapaimodel.ai/v1",
api_key=os.environ["CHEAPAIMODEL_API_KEY"],
is_chat_model=True,
context_window=CONTEXT_WINDOW,
)
response = llm.complete("Explain recursion in one sentence.")
print(response.text)
# Streaming
messages = [ChatMessage(role="user", content="Write a haiku about the sea.")]
for chunk in llm.stream_chat(messages):
print(chunk.delta, end="", flush=True)Dengan is_chat_model=True, semua panggilan, termasuk complete, dikirim ke /v1/chat/completions.
Pakai di seluruh LlamaIndex
Pasang di Settings supaya jadi default untuk indeks, query engine, dan chat engine:
from llama_index.core import Settings
Settings.llm = llmIndeks vektor juga butuh model embedding, dan secara default Settings.embed_model memakai milik OpenAI. cheapaimodel belum punya model embedding, jadi isi Settings.embed_model dengan model embedding dari penyedia lain atau model lokal. Jangan arahkan ke Base URL kami.
Kesalahan umum
- Permintaan terkirim ke
/v1/completions. Secara defaultis_chat_modelbernilaiFalse, sehinggacomplete, bahkanchat, dikirim ke endpoint completions versi lama sebagai satu prompt. Model kami hanya mencantumkan/v1/chat/completionsdan/v1/responses. Aturis_chat_model=True. ValueError: Unknown model 'deepseek-v4-1-flash'. Please provide a valid OpenAI model name. LLM yang dipakai adalahOpenAIdarillama_index.llms.openai, yang hanya menerima nama model milik OpenAI sendiri. PakaiOpenAILike.Could not load OpenAI embedding modelsaat membangun indeks.Settings.embed_modelmasih memakai default OpenAI. Isi dengan model embedding dari penyedia lain atau model lokal.503denganmodel_not_founddi/v1/embeddings. Penyebabnya sama, tapi kali iniOPENAI_API_KEYdanOPENAI_API_BASEdiisi dengan key cheapaimodel kamu dan Base URL kami: model embedding default membacanya lalu meminta model embedding ke kami. Sebagai gantinya, berikanapi_keydanapi_basekeOpenAILike, lalu aturSettings.embed_model.400darikimi-k3.OpenAILikeselalu mengirimtemperature, default-nya0.1, sedangkan kimi-k3 hanya menerima1atau0.6. Berikantemperature=1.0. Lihat Batasan parameter sampling.- Satu query memicu beberapa permintaan. Secara default
context_windowbernilai 3900 token, dan LlamaIndex memecah teks hasil retrieval supaya muat, jadi query engine mengirim lebih banyak permintaan daripada yang perlu. Isi dengan panjang konteks model.
Untuk kesalahan Base URL seperti lupa /v1, lihat Base URL.