一个简易的使用Qdrant数据库配合Temporal工作流引擎的RAG项目
- main 分支:包含完整的RAG功能实现,使用Qdrant进行向量存储和检索,Temporal进行数据处理和保存。
- tool_use 分支:包含了llms使用tools以及mcp的示例代码
client是temporal的client示例
worker文件夹下是temporal的worker示例
workflow 中写了workflow的详细逻辑,并且调用了activity
activity 中写了activity的详细逻辑
activity_rag 中写了RAG相关的activity逻辑
llm_helper 中封装了调用大模型的逻辑, 使用openrouter调用embedding和chat模型,进行向量数据的生成和RAG检索对话。
rag_search 中写了一个简单的RAG检索逻辑,即通过把用户的问题生成embedding,然后在Qdrant中进行向量检索,最后把检索到的上下文信息给LLM,LLM根据上下文信息生成回答并返回。
- 安装并运行Qdrant数据库,可以参考Docker运行Qdrant。
- 安装并运行Temporal服务器,可以参考Temporal安装文档。
- 配置环境变量:
export OPENROUTER_API_KEY=your_openrouter_api_key - 启动worker:
go run ./worker/main.go
- 启动client,提交workflow:
go run ./client/main.go
- 此时qdrant数据库中会保存被抓去到的新闻的向量数据
- 启动rag_search,进行RAG检索对话:
go run ./client/rag_search.go
推荐使用GoLand作为编辑器,支持Go语言的开发和调试。