知识库章节 ▾

导航

▸ 从这里开始 按角色

类别

工具 32
词汇表 12

工具

LlamaIndex + Gonka AI — 低成本的 RAG 应用程序

LlamaIndex 是一个用于在 Python 中构建 RAG 应用和 AI 代理的领先框架(也有 TypeScript 版本 LlamaIndex.TS)。它负责文档加载、分块、索引、向量检索和回答合成——您只需描述您的数据,LlamaIndex 就能将其转化为基于任何 LLM 的问答系统。

唯一的问题是推理成本。RAG 本质上是资源消耗型的:对于每个问题,必须将请求加上几个检索到的上下文片段发送到模型,而大型集合的索引还需要嵌入(embeddings)。在生产规模下,每天有数千次请求。使用 OpenAI(每 1M tokens $2.50–$15)或 Anthropic(每 1M tokens $3–$15),即便是简单的问答服务每月也会产生数万美元的开销。

LlamaIndex 通过 OpenAILike 类原生支持任何符合 OpenAI 标准的接口。这意味着 JoinGonka Gateway 只需几行代码即可接入,无需自定义提供程序或补丁。结果是:相同的 RAG 系统在 去中心化的 Gonka 网络 上运行,成本仅为 每 1M 入站 tokens $0.003(出站 tokens ×3)——比云端 API 便宜数百到数千倍。

快速入门:通过 OpenAILike 连接

JoinGonka API 密钥:请在 gate.joingonka.ai/register 注册 — 注册即送 10M 免费 tokens — 并在 Dashboard 中创建 jg-xxx 密钥。

安装

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

对于任何兼容 OpenAI 的 API,LlamaIndex 提供了来自 llama_index.llms.openai_like 包中的 OpenAILike 类。向 Gonka 发起请求的最小示例:

from llama_index.llms.openai_like import OpenAILike

llm = OpenAILike(
    api_base="https://gate.joingonka.ai/v1",
    api_key="jg-您的密钥",
    model="MiniMaxAI/MiniMax-M2.7",
    is_chat_model=True,            # Gonka 是一个聊天端点
    is_function_calling_model=True, # 支持原生工具调用 (tool calling)
    context_window=200000,         # 网络模型为 200K
    max_tokens=8192,               # 通过 Gateway 的输出上限
)

response = llm.complete("用三句话解释什么是 RAG。")
print(response)

关于 OpenAILike 的重要提示:请务必指定 is_chat_model=True — 否则 LlamaIndex 将会访问 completion 端点(我们不支持该端点)。is_function_calling_model=True 可启用原生工具调用。请根据模型设置 context_window,以便 LlamaIndex 正确切分上下文。

示例:带有查询引擎的 RAG 管道

LlamaIndex 的经典场景是基于您的文档构建索引,并通过 query_engine 进行查询。通过 Settings.llm 全局设置一次 LLM,整个流水线即可自动使用 Gonka。

from llama_index.core import (
    VectorStoreIndex,
    SimpleDirectoryReader,
    Settings,
)
from llama_index.llms.openai_like import OpenAILike
from llama_index.embeddings.huggingface import HuggingFaceEmbedding

# 1. 通过 Gonka 使用 LLM (全局设置一次)
Settings.llm = OpenAILike(
    api_base="https://gate.joingonka.ai/v1",
    api_key="jg-您的密钥",
    model="MiniMaxAI/MiniMax-M2.7",
    is_chat_model=True,
    context_window=200000,
    max_tokens=8192,
)

# 2. 本地嵌入 (免费,不使用 OpenAI)
Settings.embed_model = HuggingFaceEmbedding(
    model_name="BAAI/bge-small-en-v1.5"
)

# 3. 加载并索引 ./data 目录下的文档
documents = SimpleDirectoryReader("data").load_data()
index = VectorStoreIndex.from_documents(documents)

# 4. 查询知识库
query_engine = index.as_query_engine()
response = query_engine.query("这份文档是关于什么的?")
print(response)

关于嵌入的关键点:默认情况下,VectorStoreIndex 使用 OpenAI 的嵌入模型 (text-embedding-ada-002) — 这需要向 OpenAI 单独付费,而不是调用 Gonka。为了完全脱离 OpenAI,请通过 Settings.embed_model 指定本地嵌入模型(如上例所示使用 HuggingFaceEmbedding,需安装包 pip install llama-index-embeddings-huggingface)。这样,生成部分由 Gonka 处理,向量化则在本地免费完成。

成本:单次 RAG 流水线请求(搜索 + 生成)消耗约 2–5K LLM tokens。通过 Gonka 使用只需几分之一美分;而使用 OpenAI/Anthropic 则贵出 3–4 个数量级。在大规模请求场景下(每天数千次),每个月便能节省数万美元的成本。

RAG 负载成本比较

RAG 应用不是一次性的聊天,而是连续的请求流:每个用户问题都会消耗 2–5K LLM tokens(问题本身加上找到的上下文片段)。我们计算一下不同提供商的典型业务量和费用。通过 JoinGonka Gateway 使用 Gonka 的价格:入站 ~$0.003/1M,出站 ×3。

场景LLM TokensOpenAI / AnthropicJoinGonka Gonka
知识库单次问答~4K$0.01 — $0.06~$0.00002
支持机器人(每天 1K 次请求)~4M/天每天 $10 — $60每天 ~$0.019
索引 + 问答(1M 字词)~5M$12 — $75~$0.024
生产服务,每月 50K 次请求~200M/月每月 $500 — $3,000每月 ~$0.96

通过 10M 免费 tokens,您可以调试整个 RAG 流水线,索引测试语料库,并运行数千次查询,而不花一分钱。在生产规模下,JoinGonka Gateway 将 RAG 从昂贵的服务转化为几乎可以忽略的运营支出。

代理、工具调用和模型选择

LlamaIndex 不仅能够根据文档回答问题,还能构建带有工具的 Agent。两个 Gonka 模型均支持 原生工具调用 — Agent 可以结构化调用函数,无需进行文本解析。带有工具的 Agent 示例:

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-您的密钥",
    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:
    """将两个数字相乘。"""
    return a * b

agent = FunctionAgent(
    tools=[multiply],
    llm=llm,
    system_prompt="你是一个有用的助手。请使用工具进行计算。",
)

async def main():
    result = await agent.run("1234 乘以 5678 等于多少?")
    print(result)

asyncio.run(main())

模型选择 (model 字段及对应的 context_window / max_tokens 限制):

模型 (model)上下文最大输出适用场景
moonshotai/Kimi-K2.6200K8192默认:强大的推理、工具调用、Agent
MiniMaxAI/MiniMax-M2.7200K8192RAG、超长上下文、长文本回复

通过 Gateway 限制的 max_tokens 在所有网络模型中最大为 8192。如果非流式请求未指定 max_tokens,则默认返回 1500 tokens — 对于 RAG 回答和 Agent 处理步骤,请明确设置该值。

TypeScript:LlamaIndex.TS 也有镜像路径 — @llamaindex/openai 包中的 OpenAI 类接受 baseURLapiKey(或读取环境变量 OPENAI_BASE_URL / OPENAI_API_KEY),因此相同的 Gateway 也可连接到 Node.js 栈。如果您正在使用 Python 框架构建 AI 应用,请参考 LangChain 指南。

LlamaIndex + Gonka = 生产级的 RAG 和 AI 代理,成本几乎为零。通过 OpenAILike (is_chat_model=True) 接入,支持原生的 tool calling 和本地嵌入——每 1M tokens 入站成本仅 $0.003,而 OpenAI 为 $2.50–$15。10M 免费 tokens 足以调试整个流水线。

想了解更多?

探索其他章节或立即开始赚取 GNK。

获取免费的 10M 令牌 →