关于 exa-rag
exa-rag 汇总 Exa 与 LangChain、LlamaIndex、Vercel AI SDK 及 MCP 等集成的 RAG 使用模式,面向构建网页检索与问答应用的开发者。内容涵盖检索配置、来源引用和结果筛选。
主要功能
- 01LangChain 检索器集成
- 02LlamaIndex 数据源集成
- 03Vercel AI SDK 搜索工具
- 04OpenAI 兼容端点
- 05RAG 结果筛选建议
适用场景
- 01为 LangChain RAG 链添加网页检索
- 02将 Exa 接入 LlamaIndex 文档问答
- 03在 Next.js AI 应用中配置搜索工具
MCP 相关
介绍将 Exa 用作 Claude MCP 服务及工具调用的集成方式。
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ ejirocodes/ agent-skills --skill exa-rag安装后在 Claude Code 中输入/exa-rag确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/langchain.mdllamaindex.mdmcp-tools.mdvercel-ai.md详细介绍
Exa RAG 集成
快速参考
| 主题 | 适用场景 | 参考 |
|---|---|---|
| LangChain | 使用 LangChain 构建 RAG 链 | langchain.md |
| LlamaIndex | 将 Exa 用作 LlamaIndex 数据源 | llamaindex.md |
| Vercel AI SDK | 在 Next.js AI 应用中添加网页搜索 | vercel-ai.md |
| MCP 与工具 | Claude MCP 服务、OpenAI 工具、函数调用 | mcp-tools.md |
核心模式
LangChain 检索器
from langchain_exa import ExaSearchRetriever
retriever = ExaSearchRetriever(
exa_api_key="your-key",
k=5,
highlights=True
)
docs = retriever.invoke("latest AI research papers")
LlamaIndex 读取器
from llama_index.readers.web import ExaReader
reader = ExaReader(api_key="your-key")
documents = reader.load_data(
query="machine learning best practices",
num_results=10
)
Vercel AI SDK 工具
import { exa } from "@agentic/exa";
import { createOpenAI } from "@ai-sdk/openai";
import { generateText } from "ai";
const result = await generateText({
model: openai("gpt-4"),
tools: { search: exa.searchAndContents },
prompt: "Search for the latest TypeScript features",
});
OpenAI 兼容端点
from openai import OpenAI
client = OpenAI(
base_url="https://api.exa.ai/v1",
api_key="your-exa-key"
)
response = client.chat.completions.create(
model="exa",
messages=[{"role": "user", "content": "What are the latest AI trends?"}]
)
集成方案选择
| 框架 | 最适合 | 主要特性 |
|---|---|---|
| LangChain | 复杂链、Agent | ExaSearchRetriever、工具集成 |
| LlamaIndex | 文档索引、问答 | ExaReader、查询引擎 |
| Vercel AI SDK | Next.js 应用、流式处理 | 工具定义、适用于边缘环境 |
| OpenAI Compat | 即插即用替代方案 | 最少的代码改动 |
| Claude MCP | Claude Desktop、Claude Code | 原生工具调用 |
常见错误
- 未在 RAG 中使用摘要片段 - 全文会浪费上下文;使用
highlights=True获取相关片段 - 缺少来源归属 - 始终在引用中包含
result.url,以确保回答有据可依 - 忽略摘要 -
summary=True可在不增加整页内容开销的情况下提供精简上下文 - 获取过多结果 - 从 3-5 条结果开始;更多结果并不总能提升 RAG 质量
- 未筛选域名 - 使用
include_domains限定权威来源 - 跳过日期筛选 - 对于时事内容,始终添加
start_published_date,避免信息过时 - 忘记异步模式 - 在生产环境中使用异步检索器,以提升吞吐量
评论
支持 Markdown