项目简介
本项目是一个基于 LLM
+ Agent
+ RAG
的智能问答系统,源自阿里天池的挑战赛。利用自然语言处理技术,为用户提供金融领域的智能问答服务。
项目的主要特性和功能
- 基于大语言模型实现智能问答,支持自然语言的理解与生成,与用户交互。
- 运用 Agent 技术,自动选择最佳答案生成策略。
- 采用 RAG 技术,结合上下文生成更准确答案。
- 支持数据库检索,通过向量数据库和 SQLite 数据库高效存储和检索金融数据。
- 可处理 PDF 文档,将内容导入向量数据库。
- 具备自动化测试功能,测试结果保存至指定目录。
- 提供前后端服务,方便查看 Demo 效果。
安装使用步骤
拉取代码
shell
git clone --recurse-submodules https://gitee.com/deadwalk/smart-finance-bot.git
安装依赖
进入工程根目录:
bash
cd smart-finance-bot
建议使用 conda 虚拟环境:
bash
conda create --name langchain python=3.10
conda activate langchain
安装依赖:
bash
pip install -r requirements.txt
注意:请将 Python 版本切换为 3.10,Python 3.11 版本会存在依赖冲突问题。
配置大模型的 APIKey
打开 app/conf
目录下的配置文件,配置自己的 API Key:
- .qwen
文件中对应 QWen 的 API Key
- .ernie
文件中对应百度千帆的 API Key
- .zhipu
文件中对应智谱的 API Key
准备向量数据库
- 访问网盘下载链接:https://share.weiyun.com/wa3QocyY
- 下载
chroma_db_bge_0911
- 将
chroma_db_bge_0911
移动至smart-finance-bot
目录下,并重命名为chroma_db
。
启动 Chroma 数据库
Linux/Mac 用户
shell
cd smart-finance-bot
./scripts/start_chroma.sh
Windows 用户
bash
scripts\start_chroma.bat
开展工作
批量化执行问题提问测试
- SQLite 数据库批量建立索引
bash cd smart-finance-bot ./scripts/run_addindexs.sh
注意:该项工作仅运行一次即可。 - 配置自动化测试的 start 和 end 用例序号
- Linux/Mac 用户:编辑
scripts/run_test_cases.sh
文件,修改--start
和--end
参数。 - Windows 用户:编辑
scripts\run_test_cases.bat
文件,修改--start
和--end
参数。
- Linux/Mac 用户:编辑
- 执行自动化脚本
- Linux/Mac 用户:
bash cd smart-finance-bot ./scripts/run_test_cases.sh
- Windows 用户:
bash cd smart-finance-bot scripts\run_test_cases.bat
测试结果会保存在test_result
目录中,其中.json
是问题运行的结果,.log
是运行日志。如果执行过程中出现异常中断,重新执行脚本,选择 Y 可断点续跑。
- Linux/Mac 用户:
启动后端和前端查看 Demo 效果
- 启动后端服务
bash cd smart-finance-bot python app/server.py
- 启动前端服务
- 安装 Node.js:访问 https://nodejs.cn/download/,按照页面提示下载并安装。
- 安装依赖包(首次运行一次即可):
bash cd chatweb npm install
- 启动前端服务:
bash npm run dev
启动完毕后,访问http://localhost:5173/
即可查看效果。
代码调试
- VsCode:使用 vscode 打开
smart-finance-bot
工程根目录,在app
目录下找到test_framework.py
文件,启用 vscode 的调试模式。 - Pycharm:使用 pycharm 打开
app
目录(需将app
目录设置为项目根目录),找到test_framework.py
文件,启用调试模式。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】