Bagian Basis Pengetahuan ▾

Navigasi

▸ Mulai di sini Berdasarkan peran

Kategori

Alat 54
Glosarium 12

Alat

LlamaIndex + Gonka AI — Aplikasi RAG dengan biaya rendah

LlamaIndex adalah framework utama untuk membangun aplikasi RAG dan agen AI menggunakan Python (juga tersedia versi TypeScript, LlamaIndex.TS). Framework ini menangani pemuatan dokumen, pemecahan menjadi chunk, pengindeksan, pencarian vektor, dan penyusunan jawaban — Anda mendeskripsikan data, dan LlamaIndex mengubahnya menjadi sistem tanya-jawab di atas LLM apa pun.

Satu-satunya masalah adalah biaya inferensi. RAG secara alami sangat boros: untuk setiap pertanyaan, model menerima permintaan ditambah beberapa fragmen konteks yang ditemukan, dan untuk pengindeksan koleksi besar, ditambahkan embedding. Dalam skala produksi, ini berarti ribuan permintaan per hari. Dengan OpenAI (2,50 $ – 15 $ per 1 juta token) atau Anthropic (3 $ – 15 $ per 1 juta), bahkan layanan tanya-jawab sederhana bisa menghabiskan puluhan ribu dolar per bulan.

LlamaIndex bekerja secara native dengan endpoint apa pun yang kompatibel dengan OpenAI melalui class OpenAILike. Artinya, JoinGonka Gateway dapat terhubung hanya dengan beberapa baris kode — tanpa penyedia kustom atau patch tambahan. Hasilnya: sistem RAG yang sama berjalan dengan biaya $0.0062/1 juta token input (output ×3) melalui jaringan desentralisasi Gonka — ratusan hingga ribuan kali lebih murah daripada API cloud.

Mulai Cepat: Terhubung melalui OpenAILike

API key JoinGonka: daftar di gate.joingonka.ai/register — di awal kami beri 3M token gratis — lalu buat key jg-xxx di Dashboard.

Instalasi:

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

Untuk API apa pun yang kompatibel dengan OpenAI, LlamaIndex menyediakan class OpenAILike dari paket llama_index.llms.openai_like. Contoh minimal permintaan ke 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 is a chat endpoint
    is_function_calling_model=True, # native tool calling is supported
    context_window=180000,         # MiniMax M2.7 context window
    max_tokens=8192,               # Gateway output cap
)

response = llm.complete("Explain what RAG is in three sentences.")
print(response)

Penting soal OpenAILike: wajib set is_chat_model=True — kalau tidak, LlamaIndex akan memakai endpoint Completions lama dengan prompt mentah alih-alih dialog. is_function_calling_model=True mengaktifkan tool call native. Set context_window sesuai model agar LlamaIndex memotong konteks dengan benar.

Contoh: Pipeline RAG dengan mesin query

Skenario klasik LlamaIndex: indeks atas dokumen Anda dan kueri ke sana melalui query_engine. LLM global ditetapkan sekali melalui Settings.llm, selanjutnya seluruh pipeline otomatis menggunakan 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 via Gonka (set once, globally)
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=180000,
    max_tokens=8192,
)

# 2. Local embeddings (free, no OpenAI)
Settings.embed_model = HuggingFaceEmbedding(
    model_name="BAAI/bge-small-en-v1.5"
)

# 3. Load and index documents from the ./data folder
documents = SimpleDirectoryReader("data").load_data()
index = VectorStoreIndex.from_documents(documents)

# 4. Query the knowledge base
query_engine = index.as_query_engine()
response = query_engine.query("What is this document about?")
print(response)

Nuansa penting soal embedding: secara default, VectorStoreIndex menggunakan embedding OpenAI (text-embedding-ada-002) — ini adalah panggilan berbayar terpisah ke OpenAI, bukan ke Gonka. Agar sepenuhnya lepas dari OpenAI, tetapkan model embedding lokal melalui Settings.embed_model (seperti pada contoh di atas — HuggingFaceEmbedding, paket pip install llama-index-embeddings-huggingface). Dengan begitu, generasi berjalan melalui Gonka, sedangkan vektorisasi dilakukan secara lokal dan gratis.

Biaya: satu kueri pipeline RAG (pencarian + generasi) menghabiskan sekitar 2–5K token LLM. Melalui Gonka, biayanya hanya sebagian kecil dari satu sen; melalui OpenAI/Anthropic, 3–4 orde lebih mahal. Pada volume ribuan kueri per hari, selisihnya berubah menjadi penghematan puluhan ribu dolar per bulan.

Perbandingan biaya beban kerja RAG

Aplikasi RAG bukanlah obrolan sekali pakai, melainkan aliran permintaan yang terus-menerus: setiap pertanyaan pengguna menarik 2–5K token LLM (pertanyaan itu sendiri plus fragmen konteks yang ditemukan). Mari kita hitung volume tipikalnya dan berapa biayanya di berbagai penyedia. Harga Gonka melalui JoinGonka Gateway: input ~$0.0062/1J, output ×3.

SkenarioToken LLMOpenAI / AnthropicJoinGonka Gonka
Satu pertanyaan ke basis pengetahuan~4K$0.01 — $0.06~$0.00004
Chatbot dukungan (1K permintaan/hari)~4J/hari$10 — $60 per hari~$0.038 per hari
Indeksasi + Q&A atas korpus (1J kata)~5J$12 — $75~$0.048
Layanan produksi, 50K permintaan/bulan~200J/bulan$500 — $3.000 per bulan~$1.92 per bulan

Dengan 3M token gratis, Anda bisa menjalankan permintaan pertama pipeline RAG, mengindeks korpus uji, dan menjalankan ribuan permintaan — tanpa mengeluarkan satu sen pun. Pada volume produksi, JoinGonka Gateway mengubah RAG dari layanan mahal menjadi pos pengeluaran yang bahkan bisa Anda abaikan sepenuhnya.

Agen, panggilan alat, dan pemilihan model

LlamaIndex tidak hanya bisa menjawab berdasarkan dokumen, tetapi juga membangun agen dengan berbagai tool. Ketiga model Gonka mendukung tool calling native — agen memanggil fungsi secara terstruktur, tanpa perlu parsing teks. Contoh agen dengan sebuah tool:

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=180000,
    max_tokens=8192,
)

def multiply(a: float, b: float) -> float:
    """Multiplies two numbers."""
    return a * b

agent = FunctionAgent(
    tools=[multiply],
    llm=llm,
    system_prompt="You are a helpful assistant. Use the tools for calculations.",
)

async def main():
    result = await agent.run("What is 1234 multiplied by 5678?")
    print(result)

asyncio.run(main())

Pemilihan model (kolom model dan batas terkait context_window / max_tokens):

Model (model)KonteksOutput maks.Kapan dipakai
MiniMaxAI/MiniMax-M2.7180K8192Default (seperti pada contoh): tool calling, agen, RAG
deepseek-ai/DeepSeek-V4-Flash-0731380K32768Konteks terpanjang kedua di jaringan, output terpanjang, prompt besar yang murah
zai-org/GLM-5.3-Flash390K8192Model reasoning: logika rumit, konteks terpanjang di jaringan; penalaran menghabiskan sebagian max_tokens

Batas max_tokens melalui Gateway hingga 8192 untuk MiniMax M2.7 dan GLM-5.3 Flash, hingga 32768 untuk DeepSeek V4 Flash. Jika max_tokens tidak ditetapkan untuk permintaan non-streaming, secara default akan mengembalikan hingga 1500 token — untuk jawaban RAG dan langkah agen, tetapkan nilainya secara eksplisit.

TypeScript: untuk LlamaIndex.TS tersedia jalur serupa — kelas OpenAI dari paket @llamaindex/openai menerima baseURL dan apiKey (atau membaca variabel OPENAI_BASE_URL / OPENAI_API_KEY), sehingga Gateway yang sama juga bisa dihubungkan pada stack Node.js. Jika Anda juga membangun aplikasi AI dengan framework Python, lihat pula panduan LangChain.

LlamaIndex + Gonka = RAG dan agen siap produksi seharga sepersekian sen. Koneksi melalui OpenAILike (is_chat_model=True), native tool calling, embedding lokal — input $0.0062/1M alih-alih $2.50–15 di OpenAI. Token awal memungkinkan Anda mencoba pipeline tanpa kartu kredit.

Ingin tahu lebih banyak?

Jelajahi bagian lain atau mulai hasilkan GNK sekarang.

Dapatkan token gratis →