基于modelscope-agent实现的类家教对话场景:
- 知识库:各科目可以内嵌知识库,例如教材
- 记忆:对话时,“实时”加载、更新保存对话内容
-
history
:- 在关闭前端后,也可以在
history
文件夹看到历史对话 run.sh
默认在启动前端之前删除历史对话,可通过简单修改继续本次之前的对话
- 在关闭前端后,也可以在
-
streamlit
:- 前端只支持本次(即打开网页)的聊天内容显示
- 前端可任意切换对话角色,例如:可和“助手”聊天后去咨询“化学老师”问题,咨询完之后可继续返回“助手”聊天框,和“助手”的历史聊天内容仍在相应聊天框内可见
- 不支持在对方未输出回答前切换对话对象:对方的输出内容不会出现在前端,但实际
history
中会保存
-
- 工具:“助手”包含几个基本的tools,包括arxiv、python和艺术字
- 其他:
chat/chat_qwenapi.py
对llm调用函数的过程进行了详细拆解(基于对modelscope-agent role play的理解)
teach-chat/
├── LOCALPATH.py: 一些本地路径
├── README.md
├── avatar: 头像
├── chat: 定义chat函数
│ ├── chat_qwenapi.py:使用qwen api
│ └── chat_modelscope_agent.py:使用modelscope-agent
├── data: 存储原始教材和知识库
│ ├── chemistry: 化学教材
│ ├── physics: 物理教材
│ ├── knowledge_vector_chemistry: 化学知识库
│ │ ├── chemistry.faiss
│ │ └── chemistry.pkl
│ ├── knowledge_vector_physics: 物理知识库
│ │ ├── physics.faiss
│ │ └── physics.pkl
│ └── vector_store.ipynb: 知识库生成
├── history: 对话历史,每次对话“实时”加载、更新和保存
│ ├── chemistry.json
│ ├── chinese.json
│ └── helper.json
├── modelscope_agent: copy from modelsope-agent repo+修改+debug
├── ocr
│ ├── ocr_api.py
│ └── paddleocr.py
├── requirements.txt: ≈python3.10+modelsope-agent环境+ocr环境
├── run.sh: ```shell bash run.sh 运行:清空history和启动setup.py
└── setup.py
https://www.bilibili.com/video/BV1eK42187sS/?vd_source=a10c8ca489cddbffa661b7501e54cf0c
chemistry.mp4
chinese.mp4
helper.mp4
- 创建虚拟环境:
conda create -n teachchat python=3.10 conda activate teachchat
- 安装各种:如使用非在线OCR(即在
setup.py
中是from ocr.paddleocr import ocr
),还需安装paddleocr
和paddlepaddle-gpu
(paddlepaddle
报错)pip install -r requirements.txt
- 修改
LOCALPATH.py
bash run.sh
avatar生成:https://www.modelscope.cn/studios/WordArt/WordArt/summary
教材下载:
化学选择性必修1 化学反应原理:https://r1-ndr.ykt.cbern.com.cn/edu_product/esp/assets/3502fe81-b23e-4f68-aa3d-7921e7932ec9.pkg/pdf.pdf
化学选择性必修2 物质结构与性质:https://r1-ndr.ykt.cbern.com.cn/edu_product/esp/assets/b82cefe7-d631-4bde-baf9-352ca033cba4.pkg/pdf.pdf
化学选择性必修3 有机化学基础:https://r1-ndr.ykt.cbern.com.cn/edu_product/esp/assets/c561d8ee-7c06-4cb1-9a4d-e34036f02d53.pkg/pdf.pdf
modelscope-agent:https://github.com/modelscope/modelscope-agent/tree/release/0.3.0
前端:LimingFang