Sezioni dell'archivio conoscenza ▾

Navigazione

▸ Inizia qui Per ruolo

Categorie

Strumenti 54
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.0062/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 di JoinGonka: registrati su gate.joingonka.ai/register — per iniziare ti diamo 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 mette a disposizione la classe OpenAILike del pacchetto llama_index.llms.openai_like. Ecco un esempio minimo di chiamata a 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)

Attenzione con OpenAILike: specifica sempre is_chat_model=True — altrimenti LlamaIndex userà il vecchio endpoint Completions con un prompt grezzo invece di una conversazione. is_function_calling_model=True abilita le tool call native. Imposta context_window in base al modello, così LlamaIndex suddivide correttamente il contesto.

Esempio: pipeline RAG con query engine

Lo scenario classico di LlamaIndex: un indice sui tuoi documenti e query su di esso tramite query_engine. L'LLM globale si imposta una volta sola con Settings.llm, dopodiché l'intera pipeline usa 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 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)

Dettaglio critico sugli embedding: per impostazione predefinita VectorStoreIndex usa gli embedding di OpenAI (text-embedding-ada-002) — chiamate separate a pagamento verso OpenAI, non verso Gonka. Per eliminare del tutto OpenAI, imposta un modello di embedding locale tramite Settings.embed_model (come nell'esempio qui sopra — HuggingFaceEmbedding, pacchetto pip install llama-index-embeddings-huggingface). Così la generazione passa da Gonka, mentre la vettorizzazione avviene in locale e gratis.

Costi: una singola query di una pipeline RAG (ricerca + generazione) consuma ~2–5K token LLM. Con Gonka parliamo di frazioni di centesimo; con OpenAI/Anthropic costa 3–4 ordini di grandezza in più. Su un flusso di migliaia di query al giorno, la differenza si traduce in decine di migliaia di dollari risparmiati 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 trascina con sé 2–5K token LLM (la domanda stessa più i frammenti di contesto recuperati). Calcoliamo i volumi tipici e quanto costano presso i diversi provider. Prezzi Gonka tramite JoinGonka Gateway: input ~$0.0062/1M, output ×3.

ScenarioToken LLMOpenAI / AnthropicJoinGonka Gonka
Una domanda alla knowledge base~4K$0,01 — $0,06~$0,00004
Chatbot di supporto (1K richieste/giorno)~4M/giorno$10 — $60 al giorno~$0,038 al giorno
Indicizzazione + Q&A su un 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 puoi eseguire le prime richieste della pipeline RAG, indicizzare un corpus di test ed eseguire migliaia di richieste — senza spendere un centesimo. Sui volumi di produzione, JoinGonka Gateway trasforma il RAG da servizio costoso a voce di spesa che puoi non notare affatto.

Agenti, richiamo strumenti e selezione del modello

LlamaIndex non solo risponde sui documenti, ma costruisce anche agenti con strumenti. Tutti e tre i modelli Gonka supportano il native tool calling — gli agenti chiamano le funzioni in modo strutturato, senza parsing del testo. Ecco un esempio di 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-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())

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

Modello (model)ContestoOutput maxQuando sceglierlo
MiniMaxAI/MiniMax-M2.7180K8192Default (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-Flash390K8192Modello di reasoning: logica complessa, il contesto più lungo della rete; il ragionamento consuma parte dei max_tokens

Il limite max_tokens tramite Gateway arriva fino a 8192 per MiniMax M2.7 e GLM-5.3 Flash, fino a 32768 per DeepSeek V4 Flash. Se max_tokens non è impostato per una richiesta non in streaming, di default vengono restituiti fino a 1500 token — per risposte RAG e passaggi agentici imposta il valore esplicitamente.

TypeScript: per LlamaIndex.TS esiste un percorso speculare — la classe OpenAI del pacchetto @llamaindex/openai accetta baseURL e apiKey (oppure legge le variabili OPENAI_BASE_URL / OPENAI_API_KEY), così lo stesso Gateway si collega anche nello stack Node.js. Se costruisci applicazioni AI anche 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.0062/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 →