一个很小的多模态rag智能体实现。
项目背景:根据最新的行业调研报告,针对不同的用户,给出个性化的投资建议。
RAG实现:
- 爬取东方财富网的最新行研报告
- 通过MinerU将pdf报告解析为markdown文件
- 使用langchain-text-splitters将markdown文件切分为chunk
- 使用BM25算法作为第一条召回通道
- 使用gme模型将多模态chunk编码为embedding,并使用faiss进行向量检索作为第二条召回通道
- 使用jina模型作为多模态的reranker,融合多种召回结果
AGENT实现:
- 构建SQL查询的Function Calling MCP
- Qwen VL生成SQL语句查询用户的标签信息与投资行为序列作为个性化Query
- 使用Query进行RAG检索,得到用户可能偏好的投资信息
- 使用Qwen VL作为多模态模型给出投资建议
- 构建Email发送的Function Calling MCP
- Qwen VL 调用Email发送的Function,给用户发送当日投资建议的邮件
环境安装:
pip install -r requirements.txt 爬虫+PDF解析
chunk的格式为:
[
{"type":"text","text":"context 1"},
{"type":"image","image":"image path/url 1"},
{"type":"text","text":"context 2"},
{"type":"image","image":"image path/url 2"},
]这样的一行json可以被转化为markdown文本:
context 1

context 2
# 运行server,提供模型服务
python server.py --config config/config.yaml
# 运行 rag mcp
python ./tools/agent/mcp-rag-server.py --config config/config.yaml
# 运行 sql mcp
python ./tools/agent/mcp-sql-server.py --config config/config.yaml
# 运行 email mcp
python ./tools/agent/mcp-email-server.py --config config/config.yaml
# 运行 agent
python main.py --config config/config.yaml- [] 使用sql-lite构建 用户行为序列数据库 用户的姓名,邮箱,历史投资信息
- 使用memobase根据历史聊天记录构建agent
- 使用mcp来构建agent,初步实现agentic rag与send email功能
- 借鉴deep research构建真正的agentic rag
- 接入知识图谱,实现词频+向量+图谱三种形式的异构召回
- mcp理解:https://www.bilibili.com/video/BV1Y854zmEg9
- cline提示词抓取:https://www.youtube.com/watch?v=wiLQgCDzp44
- mcp服务器:https://modelcontextprotocol.io/quickstart/server
- mcp客户端:https://modelcontextprotocol.io/quickstart/client
- 推荐系统在金融领域的应用: https://zhuanlan.zhihu.com/p/718465775
- 提示词编写: https://github.com/x1xhlol/system-prompts-and-models-of-ai-tools