© 2026FindAgent  · @simprr
返回列表
z

zhaoyingjun/chatbot

Chatbot继续沿着LLM前进,近期更新小参数量SLM的和训练脚本,支持本地训练。新增ChatAgent,实现各种有实际场景价值的Agent实现。

agentic-aiaiaiagentschatbotpythonpytorchseq2seq-chatbotshoppingslm
⭐

3.6k

Stars

🔱

1.0k

Forks

👁

109

Watchers

📋

96

Issues

Python创建于 2018/1/8更新于 今天
在 GitHub 上查看
README
由 Gemini 翻译整理

项目文档导航

查看 Shopping Agent 文档 | 查看 Chatbot 文档


Shopping Agent

概述

ShoppingAgent 是一个智能订单分析 Agent,能够通过浏览器自动化、截图识别和大模型分析,帮助用户快速提取、汇总并生成 Excel 文件。它可以处理所有无法直接导出的订单后台信息。该项目采用 FastAPI 作为后端服务,Streamlit 作为前端界面,借助大模型能力实现自动化的 Agent 功能,提供直观的操作体验和强大的订单处理能力。

功能特点

  • 自然语言交互:通过聊天界面使用自然语言指令控制订单处理流程。
  • 浏览器自动化:自动打开网页并执行截图操作。
  • 灵活截图:支持全屏截图、元素选择截图和手动区域选择截图。
  • 批量分析:对多张订单截图进行批量处理和信息提取。
  • 数据导出:将分析结果导出为 Excel 文件。
  • 系统配置:可自定义服务器、模型和浏览器等参数。

快速开始

前提条件

  • Python 3.8+
  • Google Chrome 浏览器(版本 140.0 及以上,建议使用最新稳定版)
  • 下载对应的 Chrome 驱动(下载地址见 dist/resourece 文件夹下)

安装步骤

  1. 克隆项目代码库到本地。

  2. 安装依赖包:

    pip install -r requirements.txt
    

启动应用

  1. 启动后端服务:

    python -m app.main
    
  2. 打开新终端,启动前端界面:

    streamlit run app/frontend.py
    
  3. 浏览器会自动打开前端界面,或手动访问 http://localhost:8501。

使用指南

基本流程

  1. 打开订单页面:在 URL 输入框中输入订单页面地址,点击“打开网页”按钮。

  2. 截取订单截图:

    • 选择截图方式(默认全屏或手动选择区域)。
    • 对于手动选择区域:先获取全页截图,然后在图片上拖动鼠标选择订单区域,最后点击“截取所选区域”。
  3. 分析订单:点击“批量分析订单”按钮,系统会自动处理所有截图并提取订单信息。

  4. 查看和导出结果:在右侧面板查看分析结果,点击“导出为 Excel”保存数据。

智能交互

在左侧聊天窗口,可以使用自然语言指令控制系统。

系统配置

在侧边栏选择“系统设置”,可以配置:

  • 服务器地址和端口
  • AI 模型参数和 API 密钥
  • Chrome 浏览器和驱动路径

注意:配置修改后需要重启应用才能生效。

目录结构

project-root/
├── app/
│   ├── __init__.py
│   ├── main.py          # 后端服务入口
│   ├── frontend.py      # 前端界面
│   ├── config.py        # 配置文件
│   └── utils/           # 工具函数
├── screenshots/         # 截图保存目录
├── excels/              # Excel导出目录
├── .env                 # 环境变量
└── requirements.txt     # 依赖清单

常见问题

  1. 浏览器无法启动:

    • 检查 CHROME_PATH 配置是否正确。
    • 确保 Chrome 浏览器已安装且版本为 112.0 及以上。
    • 尝试更新 Chrome 浏览器到最新版本。
    • Windows 系统需确保 Chrome 安装路径不含中文或特殊字符。
  2. 截图失败:

    • 检查网页是否完全加载。
    • 尝试使用不同的截图方式。
    • 确认浏览器窗口没有被最小化。
    • 确保 Chrome 版本与 chromedriver 版本匹配。
  3. 分析结果不准确:

    • 确保订单截图清晰可见。
    • 尝试缩小截图区域,只包含订单信息。
    • 检查 API 密钥和网络连接。
  4. 前后端连接失败:

    • 确认后端服务已启动。
    • 检查服务器地址配置是否正确。
    • 确认端口没有被占用。

依赖说明

基础依赖

  • python-dotenv>=1.0.0 # 环境变量管理
  • fastapi>=0.103.1 # 后端 API 框架
  • uvicorn>=0.23.2 # ASGI 服务器
  • streamlit>=1.27.0 # 前端框架
  • requests>=2.31.0 # HTTP 请求
  • pandas>=2.1.1 # 数据处理
  • openpyxl>=3.1.2 # Excel 处理
  • pillow>=10.0.1 # 图像处理

浏览器自动化

  • selenium>=4.14.0 # 浏览器自动化(兼容 Chrome 112+)
  • webdriver-manager>=4.0.1 # WebDriver 管理(自动匹配 Chrome 版本)

图像处理与多模态理解

  • python-multipart>=0.0.6 # 处理 multipart 表单数据

切换到 Chatbot 文档


Chatbot

Chatbot 持续在 LLM 领域推进,近期更新了小参数量 SLM(小型语言模型)和训练脚本,支持本地训练。新增 ChatAgent,实现了多种具有实际场景价值的 Agent 功能。

ChatGPT 带火了聊天机器人,主流趋势已转向 GPT 类模式,本项目也与时俱进,近期进行了相关更新。这是一个可以使用自己语料进行训练的中文聊天机器人项目,欢迎大家实践交流以及 Star、Fork。

Seq2Seq 版本效果参考(训练进度 50%)

img_1.png img_2.png

路线图 (RoadMap):

V1.1: 更新日期: 2024-09-30

  1. 增加 MindSpore 版本,优先在 MindSpore 版本上引入 GPT 模型、RLHF 等特性。
  2. 整体工程架构分为 Seq2Seq 和 GPT 两大分支,继续保持多 AI 框架版本的演进。

V1.2: 更新日期: 2024-12-30 (预计)

  1. 实现类似 mini-GPT4 的功能,支持图文多模态对话,提升趣味性和丰富性。
  2. 增强分布式集群训练相关能力和 RLHF 等特性。

Seq2Seq 版本代码执行顺序

大家可以使用小黄鸡的语料,下载地址: https://github.com/zhaoyingjun/chatbot/blob/master/chineseChatbotWeb-tf2.0/seq2seqChatbot/train_data/xiaohuangji50w_nofenci.conv

  1. 在下载好代码和语料之后,将语料文件放入 train_data 目录下,超参配置在 config/seq2seq.ini 文件中设置。
  2. 按照数据预处理器 (data_utls.py) → execute.py(执行器)→ app.py(可视化对话模块)的顺序执行即可。
  3. 大规模分布式训练版本,参照 Horovod 的启动方式:
    horovodrun -np n -H host1_ip:port,host2_ip:port,hostn_ip:port python3 excute.py
    

建议训练环境配置

  • ubuntu==18.04
  • python==3.6

TF2.X:

  • tensorflow==2.6.0
  • flask==0.11.1
  • horovod==0.24 (分布式训练)

PyTorch:

  • torch==1.11.0
  • flask==0.11.1

开源交流与联系方式

QQ:934389697


切换到 Shopping Agent 文档

贡献者
z
项目信息
默认分支master
License未指定
创建时间2018/1/8
最近更新今天
GAI 中文摘要

Chatbot 是一个集成了大型语言模型(LLM)与小型语言模型(SLM)技术的智能化项目,旨在为用户提供本地化训练方案及自动化智能体(Agent)解决方案。它通过整合浏览器自动化与多模态模型能力,有效解决了特定业务场景下数据难以导出与分析的痛点。

该项目核心功能包括支持本地化的大模型训练与微调脚本、集成浏览器自动化实现网页交互与截图、提供基于视觉与大模型的批量数据提取与分析功能、支持将分析结果自动导出为Excel表格,以及提供自然语言驱动的智能体交互界面。

该项目适用于需要处理大量非标准化网页数据及订单信息的企业或个人,特别适合作为实现业务自动化流程与本地化AI模型部署的工具方案。