知识库章节 ▾

导航

▸ 从这里开始 按角色

类别

工具 37
词汇表 12

工具

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

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

存在一个问题——推理成本。RAG 本质上是资源密集型的:对于每个问题,模型接收查询以及检索到的多个上下文片段,对于大型集合的索引,还会添加嵌入。在生产环境规模下,这意味着每天数以千计的请求。使用 OpenAI(每 100 万 token $2.50–$15)或 Anthropic(每 100 万 token $3–$15),即使是一个适度的问答服务,每月的成本也会高达数万美元。

LlamaIndex 通过 OpenAILike 类原生支持任何兼容 OpenAI 的 endpoint。这意味着 JoinGonka Gateway 只需几行代码即可连接——无需自定义提供商或补丁。结果:同一个 RAG 系统通过 去中心化 Gonka 网络 运行,成本仅为 $0.0069/100 万输入 tokens(输出 ×3)——比云端 API 便宜数百到数千倍。

快速入门:通过 OpenAILike 连接

JoinGonka API 密钥:在 gate.joingonka.ai/register 注册 —— 我们初始提供 3M 免费 token —— 并在 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, # 支持原生工具调用
    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 token(问题本身加上检索到的上下文片段)。让我们计算一下不同提供商的典型用量和成本。通过 JoinGonka Gateway 使用 Gonka 的价格:输入约 $0.0069/1M,输出 ×3。

场景LLM TokensOpenAI / AnthropicJoinGonka Gonka
查询知识库一次~4K$0.01 — $0.06~$0.00004
支持类聊天机器人 (1K 请求/天)~4M/天$10 — $60/天~$0.038/天
语料库索引 + 问答 (1M 词)~5M$12 — $75~$0.048
生产级服务 (50K 请求/月)~200M/月$500 — $3,000/月~$1.92/月

利用免费的 3M token,你可以运行 RAG 流程的初始请求、索引测试语料库并处理数千次查询——无需花费一分钱。在生产规模下,JoinGonka Gateway 将 RAG 从昂贵的服务变成了一项几乎可以忽略不计的支出。

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

LlamaIndex 不仅能够根据文档进行回答,还能够构建带有工具的代理。所有三个 Gonka 模型都支持 native tool calling — 代理以结构化方式调用函数,无需解析文本。带工具的代理示例:

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)上下文最大输出使用场景
MiniMaxAI/MiniMax-M2.7200K8192默认(如示例所示):tool calling, 代理, RAG
deepseek-ai/DeepSeek-V4-Flash-0731380K32768网络中第二长的上下文,最长的输出,经济高效的大型提示词
zai-org/GLM-5.3-Flash390K8192推理模型:复杂的逻辑,网络中最长的上下文;推理会消耗部分 max_tokens

通过网关的 max_tokens 限制对于 MiniMax M2.7 和 GLM-5.3 Flash 最高为 8192,对于 DeepSeek V4 Flash 最高为 32768。如果非流式请求未设置 max_tokens,默认会返回最多 1500 个 token — 对于 RAG 回答和代理步骤,请显式设置该值。

TypeScript:对于 LlamaIndex.TS,存在镜像路径 — @llamaindex/openai 包中的 OpenAI 类接受 baseURLapiKey(或读取 OPENAI_BASE_URL / OPENAI_API_KEY 环境变量),因此相同的网关也可以在 Node.js 技术栈中连接。如果您正在使用 Python 框架构建 AI 应用程序,请同时查看 LangChain 指南。

LlamaIndex + Gonka = 以极低成本实现生产级的 RAG 和 Agent。通过 OpenAILike (is_chat_model=True) 连接,支持原生 tool calling 和本地嵌入 (local embeddings) — 输入价格仅为 $0.0069/1M,而 OpenAI 为 $2.50–15。初始免费 token 让你无需绑定银行卡即可测试流程。

想了解更多?

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

领取免费 token →