Sezioni dell'archivio conoscenza ▾

Navigazione

▸ Inizia qui Per ruolo

Categorie

Strumenti 37
Glossario 12

Strumenti

LlamaIndex + Gonka AI — Applicazioni RAG a basso costo

LlamaIndex è il framework leader per la creazione di applicazioni RAG e AI agent in Python (esiste anche la versione TypeScript LlamaIndex.TS). Gestisce il caricamento dei documenti, lo splitting in chunk, l'indicizzazione, la ricerca vettoriale e la generazione della risposta — 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'inferenced. Il RAG è intrinsecamente avido di risorse: per ogni domanda, il modello riceve la query più diversi frammenti di contesto trovati, e per l'indicizzazione di grandi collezioni si aggiungono gli embeddings. 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 Q&A può costare 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 di codice — senza provider personalizzati o patch. Risultato: lo stesso sistema RAG funziona a $0.0069/1M di token in input (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 offriamo 3M token gratuiti — e crea una chiave jg-xxx nella Dashboard.

Installazione:

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

Per qualsiasi API compatibile con OpenAI, LlamaIndex fornisce la classe OpenAILike dal pacchetto llama_index.llms.openai_like. Esempio minimo di richiesta verso 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="MiniMaxAI/MiniMax-M2.7",
    is_chat_model=True,            # Gonka è un chat-endpoint
    is_function_calling_model=True, # tool calling nativo supportato
    context_window=200000,         # 200K per i modelli di rete
    max_tokens=8192,               # limite di output tramite Gateway
)

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

Importante su OpenAILike: è necessario specificare is_chat_model=True, altrimenti LlamaIndex cercherà un completion-endpoint che non abbiamo. is_function_calling_model=True abilita i tool calls nativi. Imposta il context_window in base al modello, così LlamaIndex gestirà correttamente il contesto.

Esempio: pipeline RAG con query engine

Lo scenario classico di LlamaIndex è l'indice sui tuoi documenti e le richieste tramite query_engine. La LLM globale viene impostata una volta sola tramite Settings.llm, dopodiché l'intera pipeline utilizzerà 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-tua-chiave",
    model="MiniMaxAI/MiniMax-M2.7",
    is_chat_model=True,
    context_window=200000,
    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. Richiesta alla base di conoscenza
query_engine = index.as_query_engine()
response = query_engine.query("Di cosa tratta questo documento?")
print(response)

Un dettaglio critico sugli embedding: di default VectorStoreIndex utilizza gli embedding OpenAI (text-embedding-ada-002) — queste sono chiamate a pagamento separate verso OpenAI, non verso Gonka. Per evitare completamente OpenAI, imposta un modello di embedding locale tramite Settings.embed_model (come nell'esempio sopra — HuggingFaceEmbedding, pacchetto pip install llama-index-embeddings-huggingface). In tal caso la generazione avviene tramite Gonka, mentre la vettorizzazione è locale e gratuita.

Costi: una singola richiesta RAG-pipeline (ricerca + generazione) consuma ~2-5K di token LLM. Tramite Gonka questo equivale a frazioni di centesimo; tramite OpenAI/Anthropic è di 3-4 ordini di grandezza più costoso. Su migliaia di richieste 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 consuma 2–5K token LLM (la domanda stessa più i frammenti di contesto trovati). Calcoliamo i volumi tipici e il costo sui diversi provider. Prezzi Gonka tramite JoinGonka Gateway: input ~$0.0069/1M, output ×3.

ScenarioToken LLMOpenAI / AnthropicJoinGonka Gonka
Una domanda alla knowledge base~4K$0.01 — $0.06~$0.00004
Supporto chat-bot (1K richieste/giorno)~4M/giorno$10 — $60 al giorno~$0.038 al giorno
Indicizzazione + Q&A su corpus (1M parole)~5M$12 — $75~$0.048
Servizio in produzione, 50K richieste/mese~200M/mese$500 — $3,000 al mese~$1.92 al mese

Con i 3M token gratuiti è possibile avviare le prime richieste della RAG-pipeline, indicizzare il corpus di prova ed eseguire migliaia di richieste — senza spendere un centesimo. Con volumi di produzione, JoinGonka Gateway trasforma la RAG da un servizio costoso a una voce di spesa trascurabile.

Agenti, richiamo strumenti e selezione del modello

LlamaIndex non solo sa rispondere basandosi sui documenti, ma può anche creare 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-tua-chiave",
    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:
    """Moltiplica due numeri."""
    return a * b

agent = FunctionAgent(
    tools=[multiply],
    llm=llm,
    system_prompt="Sei un assistente utile. Per i calcoli usa gli strumenti.",
)

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

asyncio.run(main())

Scelta del modello (campo model e relativi limiti context_window / max_tokens):

Modello (model)ContestoMax OutputQuando utilizzarlo
MiniMaxAI/MiniMax-M2.7200K8192Predefinito (come nell'esempio): tool calling, agenti, RAG
deepseek-ai/DeepSeek-V4-Flash-0731380K32768Secondo contesto più lungo della rete, output più lungo, prompt grandi a basso costo
zai-org/GLM-5.3-Flash390K8192Reasoning-model: logica complessa, contesto più lungo della rete; i processi di ragionamento consumano parte dei max_tokens

Il limite max_tokens tramite Gateway arriva fino a 8192 per MiniMax M2.7 e GLM-5.3 Flash, e fino a 32768 per DeepSeek V4 Flash. Se max_tokens non è impostato per una richiesta non in streaming, per impostazione predefinita verranno restituiti fino a 1500 token: per risposte RAG e passaggi degli agenti, 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 può essere collegato anche nello stack Node.js. Se stai costruendo applicazioni AI con framework Python, dai un'occhiata anche alla guida su LangChain.

LlamaIndex + Gonka = RAG e agenti pronti per la produzione a una frazione del costo. Connessione tramite OpenAILike (is_chat_model=True), native tool calling, embedding locali — input $0.0069/1M invece di $2.50–15 di OpenAI. I token iniziali consentono di testare la pipeline senza bisogno di una carta.

Vuoi saperne di più?

Esplora altre sezioni o inizia a guadagnare GNK subito.

Ottieni token gratuiti →