langchain试剂
一个小型示例工作空间,包括:
- 轻量级RAG MCP服务器(
rag-server)它公开了用于嵌入、搜索、列出和管理文档的工具 - 一个连接到RAG MCP服务器并可以使用RAG工具的示例代理集成
此README描述了如何设置环境、启动RAG服务器和运行代理或示例客户端代码。
先决条件
- Python 3.12或更高版本
- git(可选)
- 紫外线
- 拥抱面API密钥
- Google Gemini API密钥
存储库在此文件夹下使用两个单独的Python包:
.--thelangchain-agent包(主代理代码)(pyproject.toml存在)./rag-server--RAG MCP服务器包(pyproject.toml存在)
快速设置
从项目根目录(/workspaces/codespace blank/langchain agent):
- 创建并激活虚拟环境
uv sync --frozen
- 在项目根目录中创建一个.env文件,其中包含所需的环境变量(见下文)。
GOOGLE_API_KEY=
RAG_MCP_SERVER_URL=
LANGSMITH_API_KEY=
GOOGLE_GEMINI_MODEL_NAME=
RAG_DB_PATH=
HF_TOKEN=
MCP_PORT=
- 安装子模块mcp RAG服务器
git submodule init
git submodule update
- 启动RAG服务器包
cd rag-server
uv run rag-mcp-server
- 在单独的终端中,激活虚拟环境:
对于Windows:
source .venv/Scripts/activate对于Linux/Mac:
source .venv/bin/activate- 在项目根目录中运行代理代码:
langgraph dev --port 8080 --allow-blocking环境变量
服务器和代理使用一些环境变量:
- RAG_MCP_SERVER_URL--代理将用于联系正在运行的RAG MCP服务器的URL(例如。http://127.0.0.1:8000)
- HF_TOKEN--如果需要,通过嵌入代码使用拥抱脸令牌
- MCP_TRANSPORT、MCP_HOST、MCP_PORT——从命令行启动MCP服务器时使用的可选默认值
- GOOGLE_API_KEY-用于GOOGLE Gemini LLM访问的GOOGLE API密钥
您可以将它们放入rag-server/src中的.env文件中,也可以在启动服务之前在shell中设置它们。
RAG MCP服务器
您还可以在HTTP模式(默认)下单独手动启动RAG MCP服务器,以便代理可以连接:
uv run rag-mcp-server --mode http --host 127.0.0.1 --port 8000 --db-path ./data/rag_database.db这将:
- 创建。/data/rag_database.db(目录将自动创建)
- 启动FastMCP服务器,公开RAG工具(嵌入/搜索/列表/删除/获取/提问)
如果您更喜欢在stdio模式下运行,以便使用使用stdio传输的MCP客户端进行本地测试,请使用--mode stdio。
常见工作流程
- 摄取文档:
- 调用embed_document(file_path,metadata)以添加文件并创建嵌入块
- 搜索上下文:
- 调用search_documents(query、top_k、min_similarity)以检索相似的块和分数
- 问一个问题(推荐):
- 使用ask_question({“question”:…,“context_limit”:N,“similarity_threshold”:X})运行端到端RAG问答,并接收包含来源的答案
- 管理数据库:
- list_documents()--列表文件 - get_datatabase_stats()--获取计数和数据库信息 - delete_document(文件名)--删除文件的块
故障排除
- 如果代理无法连接到RAG MCP服务器,请检查RAG_MCP_server_URL,并确保服务器正在运行且可访问。
- 如果由于缺少模型密钥而导致嵌入失败,请设置HF_TOKEN或特定于提供商的凭据。
贡献
请随时打开问题或PR。在添加新行为时,保持更改较小,并添加最少的测试。
许可证
请参阅顶级项目许可证文件(如果有的话)。
