Secciones de la base de conocimientos ▾

Navegación

▸ Empiece aquí Por roles

Categorías

Herramientas 32
Glosario 12

Herramientas

LlamaIndex + Gonka AI — Aplicaciones RAG por centavos

LlamaIndex es el framework líder para construir aplicaciones RAG y agentes de IA en Python (también existe una versión TypeScript, LlamaIndex.TS). Se encarga de la carga de documentos, fragmentación (chunking), indexación, búsqueda vectorial y ensamblaje de respuestas; usted describe los datos y LlamaIndex los convierte en un sistema de preguntas y respuestas sobre cualquier LLM.

El problema es uno: el coste de la inferencia. RAG por naturaleza es voraz: por cada pregunta a la IA se envía la solicitud más varios fragmentos de contexto encontrados, y para la indexación de grandes colecciones se añaden embeddings. En volúmenes de producción, esto supone miles de peticiones al día. Con OpenAI ($2.50–15 por 1M de tokens) o Anthropic ($3–15 por 1M), incluso un servicio sencillo de preguntas y respuestas puede convertirse en decenas de miles de dólares al mes.

LlamaIndex trabaja nativamente con cualquier endpoint compatible con OpenAI mediante la clase OpenAILike. Esto significa que JoinGonka Gateway se conecta en pocas líneas, sin proveedores personalizados ni parches. Resultado: el mismo sistema RAG funciona por $0.003/1M de tokens de entrada (salida ×3) a través de la red descentralizada Gonka, cientos y miles de veces más barato que las API en la nube.

Inicio rápido: conexión a través de OpenAILike

API-ключ JoinGonka: regístrese en gate.joingonka.ai/register — le damos 10M de tokens gratis al inicio — y cree una clave jg-xxx en el Dashboard.

Instalación:

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

Para cualquier API compatible con OpenAI, LlamaIndex proporciona la clase OpenAILike del paquete llama_index.llms.openai_like. Un ejemplo mínimo de solicitud a Gonka:

from llama_index.llms.openai_like import OpenAILike

llm = OpenAILike(
    api_base="https://gate.joingonka.ai/v1",
    api_key="jg-tu-clave",
    model="MiniMaxAI/MiniMax-M2.7",
    is_chat_model=True,            # Gonka es un endpoint de chat
    is_function_calling_model=True, # soporte nativo para tool calling
    context_window=200000,         # 200K en los modelos de la red
    max_tokens=8192,               # límite de salida a través de Gateway
)

response = llm.complete("Explica qué es RAG en tres oraciones.")
print(response)

Importante sobre OpenAILike: asegúrese de especificar is_chat_model=True, de lo contrario LlamaIndex accederá al endpoint de completion que no tenemos. is_function_calling_model=True habilita los tool calls nativos. Configure context_window según el modelo para que LlamaIndex segmente el contexto correctamente.

Ejemplo: Pipeline RAG con motor de consulta

Un escenario clásico de LlamaIndex es un índice sobre sus documentos y consultas a través de query_engine. La LLM global se establece una vez a través de Settings.llm, y a partir de ahí todo el pipeline usa Gonka automáticamente.

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 a través de Gonka (una vez - globalmente)
Settings.llm = OpenAILike(
    api_base="https://gate.joingonka.ai/v1",
    api_key="jg-tu-clave",
    model="MiniMaxAI/MiniMax-M2.7",
    is_chat_model=True,
    context_window=200000,
    max_tokens=8192,
)

# 2. Embeddings locales (gratis, sin OpenAI)
Settings.embed_model = HuggingFaceEmbedding(
    model_name="BAAI/bge-small-en-v1.5"
)

# 3. Carga e indexación de documentos desde la carpeta ./data
documents = SimpleDirectoryReader("data").load_data()
index = VectorStoreIndex.from_documents(documents)

# 4. Consulta a la base de conocimiento
query_engine = index.as_query_engine()
response = query_engine.query("¿De qué trata este documento?")
print(response)

Matiz crítico sobre embeddings: por defecto, VectorStoreIndex utiliza embeddings de OpenAI (text-embedding-ada-002), lo cual implica llamadas de pago separadas a OpenAI, no a Gonka. Para dejar de depender de OpenAI, configure un modelo de embeddings local a través de Settings.embed_model (como en el ejemplo anterior: HuggingFaceEmbedding, paquete pip install llama-index-embeddings-huggingface). Entonces, la generación se realiza a través de Gonka y la vectorización localmente y gratis.

Costo: una solicitud de pipeline RAG (búsqueda + generación) consume ~2–5K tokens de LLM. A través de Gonka esto es una fracción de centavo; a través de OpenAI/Anthropic es 3–4 órdenes de magnitud más caro. Con miles de solicitudes al día, la diferencia se convierte en decenas de miles de dólares de ahorro al mes.

Comparación de costes de carga de trabajo RAG

Una aplicación RAG no es un chat puntual, sino un flujo constante de solicitudes: cada pregunta del usuario arrastra 2–5K tokens de LLM (la pregunta en sí más los fragmentos de contexto encontrados). Calculemos los volúmenes típicos y cuánto cuestan en varios proveedores. Precios de Gonka a través de JoinGonka Gateway: entrada ~$0.003/1M, salida ×3.

EscenarioTokens LLMOpenAI / AnthropicJoinGonka Gonka
Una pregunta a la base de conocimientos~4K$0.01 — $0.06~$0.00002
Chatbot de soporte (1K peticiones/día)~4M/día$10 — $60 al día~$0.019 al día
Indexación + Q&A de corpus (1M palabras)~5M$12 — $75~$0.024
Servicio en producción, 50K peticiones/mes~200M/mes$500 — $3,000 al mes~$0.96 al mes

Con 10M de tokens gratuitos puede depurar todo el pipeline RAG, indexar un corpus de prueba y realizar miles de consultas sin gastar un centavo. En volúmenes de producción, JoinGonka Gateway convierte el RAG de un servicio costoso a un gasto que ni siquiera notará.

Agencia, llamada a herramientas y selección de modelo

LlamaIndex no solo puede responder basándose en documentos, sino también construir agentes con herramientas. Ambos modelos de Gonka soportan tool calling nativo: los agentes invocan funciones de manera estructurada, sin parsear texto. Ejemplo de agente con una herramienta:

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-tu-clave",
    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:
    """Multiplica dos números."""
    return a * b

agent = FunctionAgent(
    tools=[multiply],
    llm=llm,
    system_prompt="Eres un asistente útil. Usa herramientas para los cálculos.",
)

async def main():
    result = await agent.run("¿Cuánto es 1234 multiplicado por 5678?")
    print(result)

asyncio.run(main())

Selección de modelo (campo model y sus límites correspondientes de context_window / max_tokens):

Modelo (model)ContextoSalida máx.¿Cuándo elegirlo?
moonshotai/Kimi-K2.6200K8192Por defecto: razonamiento sólido, tool calling, agentes
MiniMaxAI/MiniMax-M2.7200K8192RAG, contexto largo, respuestas largas

El límite de max_tokens a través del Gateway es de hasta 8192 para todos los modelos de la red. Si max_tokens no se especifica para una solicitud no streaming, se devolverán por defecto hasta 1500 tokens; para respuestas RAG y pasos de agente, especifique el valor explícitamente.

TypeScript: para LlamaIndex.TS existe un camino paralelo: la clase OpenAI del paquete @llamaindex/openai acepta baseURL y apiKey (o lee las variables OPENAI_BASE_URL / OPENAI_API_KEY), por lo que el mismo Gateway se puede conectar en el stack de Node.js. Si está construyendo aplicaciones de IA con frameworks de Python, consulte también la guía de LangChain.

LlamaIndex + Gonka = RAG y agentes listos para producción por una fracción de centavo. Conexión mediante OpenAILike (is_chat_model=True), tool calling nativo, embeddings locales; entrada a $0.003/1M frente a los $2.50–15 de OpenAI. Los 10M de tokens gratuitos son suficientes para depurar todo el pipeline.

¿Quieres saber más?

Explora otras secciones o empieza a ganar GNK ahora mismo.

Obtener 10M de tokens gratuitos →