Sections de la base de connaissances ▾

Outils

Outils

LlamaIndex + Gonka AI — Applications RAG pour une bouchée de pain

LlamaIndex est le framework leader pour la création d'applications RAG et d'agents IA en Python (il existe également une version TypeScript de LlamaIndex.TS). Il prend en charge le chargement de documents, la segmentation en morceaux, l'indexation, la recherche vectorielle et la construction de réponses — vous décrivez les données, et LlamaIndex les transforme en un système de questions-réponses sur n'importe quel LLM.

Le problème est le même — le coût de l'inférence. Le RAG est naturellement gourmand : pour chaque question, la requête et plusieurs fragments de contexte trouvés sont envoyés au modèle, et pour l'indexation de grandes collections, les embeddings s'ajoutent. En production, cela représente des milliers de requêtes par jour. Avec OpenAI (2,50 $ à 15 $ par million de jetons) ou Anthropic (3 $ à 15 $ par million), même un modeste service de questions-réponses se transforme en dizaines de milliers de dollars par mois.

LlamaIndex fonctionne nativement avec n'importe quel point de terminaison compatible OpenAI via la classe OpenAILike. Cela signifie que JoinGonka Gateway se connecte en quelques lignes — sans fournisseurs ni patches personnalisés. Résultat : le même système RAG fonctionne pour 0,0005 $/1M jetons en entrée (sortie ×3) via le réseau décentralisé Gonka — des centaines et des milliers de fois moins cher que les API cloud.

Démarrage rapide : connexion via OpenAILike

Clé API JoinGonka : inscrivez-vous sur gate.joingonka.ai/register — nous vous offrons 10 millions de jetons gratuits au démarrage — et créez une clé jg-xxx dans le tableau de bord.

Installation :

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

Pour toute API compatible OpenAI arbitraire, LlamaIndex fournit la classe OpenAILike du package llama_index.llms.openai_like. Un exemple minimal de requête à Gonka :

from llama_index.llms.openai_like import OpenAILike

llm = OpenAILike(
    api_base="https://gate.joingonka.ai/v1",
    api_key="jg-votre-clé",
    model="Qwen/Qwen3-235B-A22B-Instruct-2507-FP8",
    is_chat_model=True,            # Gonka est un point de terminaison de chat
    is_function_calling_model=True, # l'appel de fonctions natif est pris en charge
    context_window=131072,         # 128K pour Qwen3-235B
    max_tokens=8192,               # plafond de sortie via Gateway (Qwen)
)

response = llm.complete("Expliquez le RAG en trois phrases.")
print(response)

Important pour OpenAILike : assurez-vous de spécifier is_chat_model=True — sinon LlamaIndex ira vers le point de terminaison de complétion, que nous n'avons pas. is_function_calling_model=True active les appels d'outils natifs. Définissez context_window en fonction du modèle pour que LlamaIndex coupe correctement le contexte.

Exemple : pipeline RAG avec moteur de requête

Un scénario classique de LlamaIndex est un index de vos documents et des requêtes via query_engine. Le LLM global est défini une seule fois via Settings.llm, puis tout le pipeline utilise Gonka automatiquement.

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 (une seule fois - globalement)
Settings.llm = OpenAILike(
    api_base="https://gate.joingonka.ai/v1",
    api_key="jg-votre-clé",
    model="Qwen/Qwen3-235B-A22B-Instruct-2507-FP8",
    is_chat_model=True,
    context_window=131072,
    max_tokens=8192,
)

# 2. Embeddings locaux (gratuits, sans OpenAI)
Settings.embed_model = HuggingFaceEmbedding(
    model_name="BAAI/bge-small-en-v1.5"
)

# 3. Chargement et indexation des documents du dossier ./data
documents = SimpleDirectoryReader("data").load_data()
index = VectorStoreIndex.from_documents(documents)

# 4. Requête à la base de connaissances
query_engine = index.as_query_engine()
response = query_engine.query("De quoi parle ce document ?")
print(response)

Nuance critique concernant les embeddings : par défaut, VectorStoreIndex utilise les embeddings OpenAI (text-embedding-ada-002) — ce sont des appels payants distincts à OpenAI, et non à Gonka. Pour vous affranchir complètement d'OpenAI, définissez un modèle d'embeddings local via Settings.embed_model (comme dans l'exemple ci-dessus — HuggingFaceEmbedding, package pip install llama-index-embeddings-huggingface). La génération passera alors par Gonka, et la vectorisation sera locale et gratuite.

Coût : une requête de pipeline RAG (recherche + génération) consomme environ 2 à 5 000 jetons LLM. Via Gonka, cela représente des fractions de cent ; via OpenAI/Anthropic — 3 à 4 ordres de grandeur plus cher. Pour un flux de milliers de requêtes par jour, la différence se traduit par des dizaines de milliers de dollars d'économies par mois.

Comparaison des coûts de charge RAG

Une application RAG n'est pas un chat ponctuel, mais un flux constant de requêtes : chaque question d'utilisateur entraîne 2 à 5K jetons LLM (la question elle-même plus les fragments de contexte trouvés). Calculons les volumes typiques et leur coût chez différents fournisseurs. Prix Gonka via JoinGonka Gateway : entrée ~0,0005 $/1M, sortie ×3.

ScénarioJetons LLMOpenAI / AnthropicJoinGonka Gonka
Une question à la base de connaissances~4K0,01 $ — 0,06 $~0,000005 $
Chatbot d'assistance (1K requêtes/jour)~4M/jour10 $ — 60 $ par jour~0,005 $ par jour
Indexation + Q&A sur un corpus (1M mots)~5M12 $ — 75 $~0,006 $
Service de production, 50K requêtes/mois~200M/mois500 $ — 3 000 $ par mois~0,25 $ par mois

Avec les 10 millions de jetons gratuits, vous pouvez déboguer l'ensemble du pipeline RAG, indexer un corpus de test et exécuter des milliers de requêtes, sans dépenser un centime. À des volumes de production, JoinGonka Gateway transforme le RAG d'un service coûteux en une dépense négligeable.

Agents, appel d'outils et sélection de modèle

LlamaIndex sait non seulement répondre aux documents, mais aussi construire des agents avec des outils. Les trois modèles Gonka prennent en charge l'appel d'outils natif — les agents appellent des fonctions de manière structurée, sans analyse de texte. Exemple d'agent avec un outil :

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-votre-clé",
    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:
    """Multiplie deux nombres."""
    return a * b

agent = FunctionAgent(
    tools=[multiply],
    llm=llm,
    system_prompt="Vous êtes un assistant utile. Utilisez les outils pour les calculs.",
)

async def main():
    result = await agent.run("Combien font 1234 multiplié par 5678 ?")
    print(result)

asyncio.run(main())

Choix du modèle (champ model et limites correspondantes context_window / max_tokens) :

Modèle (model)ContexteSortie max.Quand l'utiliser
Qwen/Qwen3-235B-A22B-Instruct-2507-FP8128K8192Défaut : RAG, agents, réponses longues
moonshotai/Kimi-K2.6128K3072Raisonnement et appel d'outils forts
MiniMaxAI/MiniMax-M2.7128K4096Alternative pour les tâches d'agent

La limite max_tokens via Gateway est jusqu'à 8192 pour le modèle Qwen3 ; pour Kimi et MiniMax, spécifiez 3072 et 4096 respectivement. Si max_tokens n'est pas défini pour une requête non-stream, par défaut, jusqu'à 1500 jetons seront renvoyés — pour les réponses RAG et les étapes d'agent, définissez la valeur explicitement.

TypeScript : pour LlamaIndex.TS, il existe un chemin miroir — la classe OpenAI du package @llamaindex/openai accepte baseURL et apiKey (ou lit les variables OPENAI_BASE_URL / OPENAI_API_KEY), de sorte que la même passerelle se connecte également à la pile Node.js. Si vous construisez des applications AI avec des frameworks Python, consultez également le guide sur LangChain.

LlamaIndex + Gonka = RAG et agents prêts pour la production pour des fractions de cent. Connexion via OpenAILike (is_chat_model=True), appel d'outils natif, embeddings locaux — entrée 0,0005 $ / 1M au lieu de 2,50 $ à 15 $ chez OpenAI. 10 millions de jetons gratuits suffisent pour régler l'ensemble du pipeline.

Vous voulez en savoir plus ?

Explorez d'autres sections ou commencez à gagner des GNK dès maintenant.

Obtenez 10 millions de jetons gratuits →