LlamaIndex
Dùng mô hình của cheapaimodel trong LlamaIndex qua API tương thích OpenAI.
LlamaIndex kết nối với các dịch vụ tương thích OpenAI qua OpenAILike từ gói llama-index-llms-openai-like. Vì OpenAILike không tự tra được thông tin của mô hình lạ, bạn cần tự khai báo hai điều: đây là mô hình chat, và cửa sổ ngữ cảnh của nó dài bao nhiêu.
| Thiết lập LlamaIndex | Giá trị | |
|---|---|---|
| Base URL | api_base | https://api.cheapaimodel.ai/v1 |
| API key | api_key | Key của bạn từ trang API key trong bảng điều khiển |
| ID mô hình | model | deepseek-v4-1-flash, hoặc bất kỳ ID nào trong danh mục |
| Mô hình chat | is_chat_model | True |
| Cửa sổ ngữ cảnh | context_window | Độ dài ngữ cảnh của mô hình tính bằng token, xem trên trang của mô hình đó trong danh mục |
Thiết lập
Các gói LlamaIndex hiện tại cần Python 3.10 trở lên.
pip install llama-index-llms-openai-likeTra độ dài ngữ cảnh trên trang của mô hình, ví dụ deepseek-v4-1-flash, rồi điền vào 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)Với is_chat_model=True, mọi lệnh gọi, kể cả complete, đều được gửi tới /v1/chat/completions.
Dùng trong toàn bộ LlamaIndex
Gán llm vào Settings để làm mặc định cho index, query engine và chat engine:
from llama_index.core import Settings
Settings.llm = llmVector index còn cần một mô hình embedding, và mặc định Settings.embed_model dùng mô hình của OpenAI. cheapaimodel chưa có mô hình embeddings, nên đặt Settings.embed_model thành mô hình embedding của nhà cung cấp khác hoặc một mô hình chạy cục bộ. Đừng trỏ mô hình embedding tới Base URL của chúng tôi.
Lỗi thường gặp
- Yêu cầu bị gửi tới
/v1/completions. Mặc địnhis_chat_modellàFalse, khiếncomplete, thậm chí cảchat, được gửi tới endpoint completions cũ dưới dạng một prompt duy nhất. Các mô hình của chúng tôi chỉ liệt kê/v1/chat/completionsvà/v1/responses. Đặtis_chat_model=True. ValueError: Unknown model 'deepseek-v4-1-flash'. Please provide a valid OpenAI model name. LLM đang dùng làOpenAItừllama_index.llms.openai, vốn chỉ nhận tên mô hình của chính OpenAI. DùngOpenAILike.Could not load OpenAI embedding modelkhi tạo index.Settings.embed_modelvẫn là mặc định của OpenAI. Đổi sang mô hình embedding của nhà cung cấp khác hoặc một mô hình chạy cục bộ.503kèmmodel_not_foundở/v1/embeddings. Cùng nguyên nhân, khiOPENAI_API_KEYvàOPENAI_API_BASEđược đặt thành key cheapaimodel của bạn và Base URL của chúng tôi: mô hình embedding mặc định cũng đọc các biến này nên gửi yêu cầu embeddings sang chúng tôi. Thay vào đó, hãy truyềnapi_keyvàapi_basechoOpenAILike, rồi đặtSettings.embed_model.kimi-k3trả về400.OpenAILikeluôn gửitemperature, mặc định là0.1, trong khi kimi-k3 chỉ nhận1hoặc0.6. Truyềntemperature=1.0. Xem Giới hạn tham số lấy mẫu.- Một truy vấn tạo ra nhiều yêu cầu. Mặc định
context_windowlà 3900 token, và LlamaIndex chia nhỏ văn bản truy xuất được cho vừa, nên query engine gửi nhiều yêu cầu hơn mức cần thiết. Đặtcontext_windowbằng độ dài ngữ cảnh của mô hình.
Với các lỗi Base URL như thiếu /v1, xem Base URL.