Sezioni dell'archivio conoscenza ▾

Strumenti

Strumenti

LlamaIndex + Gonka AI — Applicazioni RAG a basso costo

LlamaIndex è il framework leader per la costruzione di applicazioni RAG e agenti AI in Python (esiste anche una versione TypeScript di LlamaIndex.TS). Si occupa del caricamento dei documenti, della suddivisione in chunk, dell'indicizzazione, della ricerca vettoriale e dell'assemblaggio delle risposte — tu descrivi i dati, e LlamaIndex li trasforma in un sistema di domande e risposte basato su qualsiasi LLM.

Il problema è uno solo — il costo dell'inferenza. Il RAG è per sua natura avido: per ogni domanda, la richiesta della query più diversi frammenti di contesto trovati vengono inviati al modello, e per l'indicizzazione di grandi collezioni si aggiungono gli embedding. Su volumi di produzione, si tratta di migliaia di richieste al giorno. Con OpenAI ($2.50–15 per 1M di token) o Anthropic ($3–15 per 1M), anche un modesto servizio di domande e risposte si trasforma in decine di migliaia di dollari al mese.

LlamaIndex funziona nativamente con qualsiasi endpoint compatibile con OpenAI tramite la classe OpenAILike. Ciò significa che JoinGonka Gateway si collega con poche righe — senza provider personalizzati o patch. Il risultato: lo stesso sistema RAG funziona a $0.0005/1M di token in ingresso (output ×3) tramite la rete decentralizzata Gonka — centinaia e migliaia di volte più economico delle API cloud.

Avvio rapido: connessione tramite OpenAILike

Chiave API JoinGonka: registrati su gate.joingonka.ai/register — all'inizio ti diamo 10 milioni di token gratuiti — e crea una chiave jg-xxx nella Dashboard.

Installazione:

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

Per un'API arbitraria compatibile con OpenAI, LlamaIndex fornisce la classe OpenAILike dal pacchetto llama_index.llms.openai_like. Un esempio minimo di query a Gonka:

from llama_index.llms.openai_like import OpenAILike

llm = OpenAILike(
    api_base="https://gate.joingonka.ai/v1",
    api_key="jg-la-tua-chiave",
    model="Qwen/Qwen3-235B-A22B-Instruct-2507-FP8",
    is_chat_model=True,            # Gonka è un endpoint di chat
    is_function_calling_model=True, # il tool calling nativo è supportato
    context_window=131072,         # 128K per Qwen3-235B
    max_tokens=8192,               # limite di output tramite Gateway (Qwen)
)

response = llm.complete("Spiega cos'è il RAG in tre frasi.")
print(response)

Importante su OpenAILike: assicurati di specificare is_chat_model=True — altrimenti LlamaIndex andrà all'endpoint di completamento, che non abbiamo. is_function_calling_model=True abilita le chiamate native agli strumenti. Imposta context_window in base al modello in modo che LlamaIndex tronchi correttamente il contesto.

Esempio: pipeline RAG con query engine

Uno scenario classico di LlamaIndex è un indice dei tuoi documenti e le query a esso tramite query_engine. L'LLM globale viene impostato una volta tramite Settings.llm, quindi l'intera pipeline utilizza Gonka automaticamente.

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 tramite Gonka (una volta — globalmente)
Settings.llm = OpenAILike(
    api_base="https://gate.joingonka.ai/v1",
    api_key="jg-la-tua-chiave",
    model="Qwen/Qwen3-235B-A22B-Instruct-2507-FP8",
    is_chat_model=True,
    context_window=131072,
    max_tokens=8192,
)

# 2. Embedding locali (gratuiti, senza OpenAI)
Settings.embed_model = HuggingFaceEmbedding(
    model_name="BAAI/bge-small-en-v1.5"
)

# 3. Caricamento e indicizzazione dei documenti dalla cartella ./data
documents = SimpleDirectoryReader("data").load_data()
index = VectorStoreIndex.from_documents(documents)

# 4. Query alla base di conoscenza
query_engine = index.as_query_engine()
response = query_engine.query("Di cosa tratta questo documento?")
print(response)

Nuanza critica sugli incorporamenti: per impostazione predefinita, VectorStoreIndex utilizza gli incorporamenti OpenAI (text-embedding-ada-002) — si tratta di chiamate a pagamento separate a OpenAI, non a Gonka. Per abbandonare completamente OpenAI, imposta un modello di incorporamento locale tramite Settings.embed_model (come nell'esempio sopra — HuggingFaceEmbedding, pacchetto pip install llama-index-embeddings-huggingface). In questo modo, la generazione avviene tramite Gonka, mentre la vettorizzazione è locale e gratuita.

Costo: una query nella pipeline RAG (ricerca + generazione) consuma circa 2-5K token LLM. Tramite Gonka, si tratta di frazioni di centesimo; tramite OpenAI/Anthropic — 3-4 ordini di grandezza più costoso. Su un flusso di migliaia di query al giorno, la differenza si traduce in decine di migliaia di dollari di risparmio al mese.

Confronto dei costi del carico di lavoro RAG

Un'applicazione RAG non è una chat una tantum, ma un flusso costante di richieste: ogni domanda dell'utente comporta 2-5K token LLM (la domanda stessa più i frammenti di contesto trovati). Calcoliamo i volumi tipici e quanto costano ai diversi fornitori. Prezzi Gonka tramite JoinGonka Gateway: ingresso ~$0.0005/1M, uscita ×3.

ScenarioToken LLMOpenAI / AnthropicJoinGonka Gonka
Una domanda alla base di conoscenza~4K$0.01 — $0.06~$0.000005
Chatbot di supporto (1K richieste/giorno)~4M/giorno$10 — $60 al giorno~$0.005 al giorno
Indicizzazione + Q&A per corpus (1M parole)~5M$12 — $75~$0.006
Servizio di produzione, 50K richieste/mese~200M/mese$500 — $3,000 al mese~$0.25 al mese

Con 10 milioni di token gratuiti, puoi mettere a punto l'intera pipeline RAG, indicizzare un corpus di test ed eseguire migliaia di query — senza spendere un centesimo. Su volumi di produzione, JoinGonka Gateway trasforma il RAG da un servizio costoso a una voce di spesa che può essere completamente ignorata.

Agenti, richiamo strumenti e selezione del modello

LlamaIndex non solo può rispondere ai documenti, ma anche costruire agenti con strumenti. Tutti e tre i modelli Gonka supportano il tool calling nativo — gli agenti chiamano le funzioni in modo strutturato, senza analizzare il testo. Esempio di un agente con uno strumento:

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-la-tua-chiave",
    model="Qwen/Qwen3-235B-A22B-Instruct-2507-FP8",
    is_chat_model=True,
    is_function_calling_model=True,
    context_window=131072,
    max_tokens=8192,
)

def multiply(a: float, b: float) -> float:
    """Moltiplica due numeri."""
    return a * b

agent = FunctionAgent(
    tools=[multiply],
    llm=llm,
    system_prompt="Sei un assistente utile. Usa gli strumenti quando necessario.",
)

async def main():
    result = await agent.run("Quanto fa 1234 moltiplicato per 5678?")
    print(result)

asyncio.run(main())

Selezione del modello (campo model e limiti corrispondenti context_window / max_tokens):

Modello (model)ContestoMax outputQuando usarlo
Qwen/Qwen3-235B-A22B-Instruct-2507-FP8128K8192Predefinito: RAG, agenti, risposte lunghe
moonshotai/Kimi-K2.6128K3072Forte ragionamento e tool calling
MiniMaxAI/MiniMax-M2.7128K4096Alternativa per attività da agente

Il limite max_tokens tramite Gateway è fino a 8192 sul modello Qwen3; per Kimi e MiniMax, specifica rispettivamente 3072 e 4096. Se max_tokens non è specificato per una richiesta non in streaming, per impostazione predefinita verranno restituiti fino a 1500 token — per le risposte RAG e i passaggi dell'agente, specifica il valore esplicitamente.

TypeScript: per LlamaIndex.TS esiste un percorso speculare — la classe OpenAI del pacchetto @llamaindex/openai accetta baseURL e apiKey (o legge le variabili OPENAI_BASE_URL / OPENAI_API_KEY), quindi lo stesso Gateway si connette anche nello stack Node.js. Se stai costruendo applicazioni AI anche su framework Python, vedi anche la guida per LangChain.

LlamaIndex + Gonka = RAG e agenti pronti per la produzione a frazioni di centesimo. Connessione tramite OpenAILike (is_chat_model=True), tool calling nativo, embedding locali - ingresso $0.0005/1M invece di $2.50-15 con OpenAI. 10M di token gratuiti bastano per mettere a punto l'intera pipeline.

Vuoi saperne di più?

Esplora altre sezioni o inizia a guadagnare GNK subito.

Ottieni 10 milioni di token gratuiti →