Các phần cơ sở kiến thức ▾

Điều hướng

▸ Bắt đầu tại đây Theo vai trò

Danh mục

Công cụ 32
Bảng thuật ngữ 12

Công cụ

LlamaIndex + Gonka AI — Ứng dụng RAG giá rẻ

LlamaIndex là framework hàng đầu để xây dựng các ứng dụng RAG và AI-agents trên Python (cũng có phiên bản LlamaIndex.TS cho TypeScript). Nó xử lý việc tải tài liệu, chia nhỏ thành chunks, lập chỉ mục, tìm kiếm vector và lắp ráp câu trả lời — bạn mô tả dữ liệu, và LlamaIndex biến chúng thành hệ thống hỏi đáp dựa trên bất kỳ LLM nào.

Vấn đề duy nhất là chi phí inferenced. RAG về bản chất rất tốn kém: mỗi câu hỏi gửi đến model bao gồm truy vấn cộng với một vài đoạn ngữ cảnh đã tìm thấy, và đối với việc lập chỉ mục các bộ sưu tập lớn, các embeddings được cộng thêm vào. Ở quy mô production, đây là hàng ngàn yêu cầu mỗi ngày. Với OpenAI ($2.50–15 cho 1M tokens) hoặc Anthropic ($3–15 cho 1M), ngay cả một dịch vụ hỏi đáp khiêm tốn cũng có thể tốn hàng chục ngàn đô la mỗi tháng.

LlamaIndex hoạt động native với bất kỳ endpoint tương thích OpenAI nào thông qua class OpenAILike. Điều này có nghĩa là JoinGonka Gateway có thể kết nối chỉ với vài dòng code — không cần các provider tùy chỉnh hay patch. Kết quả: cùng một hệ thống RAG đó hoạt động với giá $0.003/1M tokens đầu vào (đầu ra ×3) thông qua mạng lưới phi tập trung Gonka — rẻ hơn hàng trăm đến hàng ngàn lần so với API đám mây.

Bắt đầu nhanh: kết nối qua OpenAILike

API-key JoinGonka: đăng ký tại gate.joingonka.ai/register — chúng tôi tặng 10M token miễn phí khi bắt đầu — và tạo key jg-xxx trong Dashboard.

Cài đặt:

pip install llama-index llama-index-llms-openai-like

Đối với bất kỳ API nào tương thích với OpenAI, LlamaIndex cung cấp lớp OpenAILike từ gói llama_index.llms.openai_like. Ví dụ mininal về yêu cầu gửi tới Gonka:

from llama_index.llms.openai_like import OpenAILike

llm = OpenAILike(
    api_base="https://gate.joingonka.ai/v1",
    api_key="jg-your-key",
    model="MiniMaxAI/MiniMax-M2.7",
    is_chat_model=True,            # Gonka là một chat-endpoint
    is_function_calling_model=True, # hỗ trợ native tool calling
    context_window=200000,         # 200K cho các model trong mạng lưới
    max_tokens=8192,               # giới hạn đầu ra qua Gateway
)

response = llm.complete("Giải thích RAG là gì trong ba câu.")
print(response)

Lưu ý về OpenAILike: bắt buộc chỉ định is_chat_model=True — nếu không LlamaIndex sẽ truy cập vào completion-endpoint mà chúng tôi không hỗ trợ. is_function_calling_model=True kích hoạt native tool calls. Hãy thiết lập context_window theo model để LlamaIndex phân đoạn ngữ cảnh chính xác.

Ví dụ: Đường ống RAG với query engine

Kịch bản LlamaIndex cổ điển là tạo index từ tài liệu của bạn và gửi yêu cầu thông qua query_engine. Global LLM được xác định một lần qua Settings.llm, sau đó toàn bộ pipeline sẽ tự động sử dụng Gonka.

from llama_index.core import (
    VectorStoreIndex,
    SimpleDirectoryReader,
    Settings,
)
from llama_index.llms.openai_like import OpenAILike
from llama_index.embeddings.huggingface import HuggingFaceEmbedding

# 1. LLM qua Gonka (một lần — toàn cục)
Settings.llm = OpenAILike(
    api_base="https://gate.joingonka.ai/v1",
    api_key="jg-your-key",
    model="MiniMaxAI/MiniMax-M2.7",
    is_chat_model=True,
    context_window=200000,
    max_tokens=8192,
)

# 2. Local embeddings (miễn phí, không dùng OpenAI)
Settings.embed_model = HuggingFaceEmbedding(
    model_name="BAAI/bge-small-en-v1.5"
)

# 3. Tải và index tài liệu từ thư mục ./data
documents = SimpleDirectoryReader("data").load_data()
index = VectorStoreIndex.from_documents(documents)

# 4. Truy vấn cơ sở tri thức
query_engine = index.as_query_engine()
response = query_engine.query("Tài liệu này nói về cái gì?")
print(response)

Điểm quan trọng về embeddings: theo mặc định VectorStoreIndex sử dụng embeddings của OpenAI (text-embedding-ada-002) — đây là các lệnh gọi trả phí riêng biệt tới OpenAI, không phải Gonka. Để hoàn toàn loại bỏ OpenAI, hãy thiết lập local embedding model thông qua Settings.embed_model (như ví dụ trên — HuggingFaceEmbedding, gói pip install llama-index-embeddings-huggingface). Khi đó, quá trình tạo nội dung sẽ sử dụng Gonka, còn vector hóa thực hiện cục bộ và miễn phí.

Chi phí: một yêu cầu RAG-pipeline (tìm kiếm + tạo nội dung) tiêu tốn khoảng ~2–5K token LLM. Qua Gonka, con số này chỉ là một phần nhỏ của cent; qua OpenAI/Anthropic — chi phí cao hơn từ 3–4 lần bậc. Với hàng ngàn yêu cầu mỗi ngày, sự khác biệt có thể lên tới hàng chục nghìn đô la tiết kiệm được mỗi tháng.

So sánh chi phí tải RAG

Ứng dụng RAG không phải là một chat bot sử dụng một lần mà là luồng yêu cầu liên tục: mỗi câu hỏi của người dùng kéo theo 2–5K tokens LLM (chính câu hỏi đó cộng với các đoạn ngữ cảnh đã tìm thấy). Hãy cùng tính toán các khối lượng điển hình và chi phí của chúng ở các nhà cung cấp khác nhau. Giá Gonka thông qua JoinGonka Gateway: đầu vào ~$0.003/1M, đầu ra ×3.

Kịch bảnLLM TokensOpenAI / AnthropicJoinGonka Gonka
Một câu hỏi đến cơ sở kiến thức~4K$0.01 — $0.06~$0.00002
Chat-bot hỗ trợ (1K yêu cầu/ngày)~4M/ngày$10 — $60/ngày~$0.019/ngày
Lập chỉ mục + Q&A trên bộ dữ liệu (1M từ)~5M$12 — $75~$0.024
Dịch vụ Production, 50K yêu cầu/tháng~200M/tháng$500 — $3,000/tháng~$0.96/tháng

Với 10M tokens miễn phí, bạn có thể debug toàn bộ lộ trình RAG, lập chỉ mục bộ dữ liệu thử nghiệm và chạy hàng ngàn yêu cầu — mà không tốn một xu. Ở quy mô production, JoinGonka Gateway biến RAG từ một dịch vụ đắt đỏ thành một khoản chi phí mà bạn gần như không nhận thấy.

Đại lý, gọi công cụ và lựa chọn mô hình

LlamaIndex không chỉ có khả năng phản hồi theo tài liệu mà còn xây dựng được các agent với công cụ. Cả hai model của Gonka đều hỗ trợ native tool calling — các agent gọi hàm một cách có cấu trúc mà không cần phân tích văn bản. Ví dụ về agent với công cụ:

import asyncio
from llama_index.core.agent.workflow import FunctionAgent
from llama_index.llms.openai_like import OpenAILike

llm = OpenAILike(
    api_base="https://gate.joingonka.ai/v1",
    api_key="jg-your-key",
    model="MiniMaxAI/MiniMax-M2.7",
    is_chat_model=True,
    is_function_calling_model=True,
    context_window=200000,
    max_tokens=8192,
)

def multiply(a: float, b: float) -> float:
    """Nhân hai số."""
    return a * b

agent = FunctionAgent(
    tools=[multiply],
    llm=llm,
    system_prompt="Bạn là trợ lý hữu ích. Hãy sử dụng công cụ để tính toán.",
)

async def main():
    result = await agent.run("1234 nhân với 5678 bằng bao nhiêu?")
    print(result)

asyncio.run(main())

Lựa chọn model (trường model và các giới hạn context_window / max_tokens tương ứng):

Model (model)ContextMax đầu raKhi nào sử dụng
moonshotai/Kimi-K2.6200K8192Mặc định: lập luận mạnh, tool calling, agent
MiniMaxAI/MiniMax-M2.7200K8192RAG, context dài, câu trả lời dài

Giới hạn max_tokens qua Gateway là lên đến 8192 cho tất cả các model trong mạng lưới. Nếu max_tokens không được chỉ định cho yêu cầu không stream, mặc định sẽ trả về tối đa 1500 token — đối với phản hồi RAG và bước thực thi của agent, hãy chỉ định giá trị này một cách rõ ràng.

TypeScript: đối với LlamaIndex.TS, có một cách tiếp cận tương tự — lớp OpenAI từ gói @llamaindex/openai chấp nhận baseURLapiKey (hoặc đọc từ biến môi trường OPENAI_BASE_URL / OPENAI_API_KEY), vì vậy cùng một Gateway đó cũng có thể kết nối trong Node.js stack. Nếu bạn đang xây dựng ứng dụng AI trên các framework Python, hãy xem thêm hướng dẫn về LangChain.

LlamaIndex + Gonka = RAG và AI-agents sẵn sàng cho production với chi phí chỉ bằng một phần nhỏ. Kết nối qua OpenAILike (is_chat_model=True), hỗ trợ tool calling native, embeddings cục bộ — đầu vào $0.003/1M thay vì $2.50–15 của OpenAI. 10M tokens miễn phí là đủ để bạn debug toàn bộ lộ trình.

Muốn tìm hiểu thêm?

Khám phá các phần khác hoặc bắt đầu kiếm GNK ngay bây giờ.

Nhận 10M token miễn phí →