logo
0
0
WeChat Login

AI 问答系统

注意:本项目90%以上的代码都是AI生成的,生产环境使用前请自行阅读检查。 基于AI的问答系统,集成了OCR(光学字符识别)和AI对话功能。 可以通过摄像头采集视频流,截图后通过图片给输入系统 对于多模态大模型会直接发送图片给大模型进行回答 对于文字大模型会通过系统ocr识别图片中的文字,传送给大模型进行回答

功能特性

  • 视频流管理:支持摄像头采集,实时视频流显示
  • AI对话:流式响应,支持Markdown渲染,对话历史记录
  • 双平台支持:支持兼容OpenAI和Anthropic (Claude)两种AI接口协议的接入
  • OCR识别:对视频截图进行文字识别,支持中英文
  • 多模态分析:支持直接发送截图给AI进行视觉分析
  • 知识库:添加和管理知识内容,作为AI对话的上下文
  • 配置管理:支持自定义API Base URL、模型名称、系统提示词
  • 配置日志:记录配置变更历史,便于追踪
  • 用户认证:支持密码登录保护设置页面
  • 文件上传:支持上传图片文件进行分析
  • 调试功能:提供调试日志记录功能

问题必读

问题必读

项目结构

ai-job/
├── backend/
│   ├── main.py              # Flask服务器主文件
│   ├── requirements.txt     # Python依赖
│   ├── app.pid              # 运行时进程ID文件(自动生成)
│   └── services/
│       ├── ai_service.py    # AI服务(OpenAI/Anthropic)
│       ├── ocr_service.py   # OCR服务(Tesseract)
│       ├── video_service.py # 视频流服务(OpenCV)
│       ├── knowledge_base.py# 知识库管理
│       ├── debug_service.py # 调试服务
│       ├── config.py        # 配置管理类
│       ├── upload_service.py# 文件上传服务
│       ├── image_service.py # 图像处理服务
│       └── password_service.py # 密码服务
├── config/
│   ├── config.json          # 配置文件(自动生成)
│   ├── config.MD            # 配置说明文件
│   ├── base_prompt.md       # 系统提示词文件
│   ├── knowledge.json       # 知识库文件(自动生成)
├── frontend/
│   ├── index.html           # 主界面
│   ├── settings.html        # 设置页面
│   ├── login.html           # 登录页面
│   ├── css/
│   │   ├── style.css        # 主样式文件
│   │   └── settings.css     # 设置页面样式文件
│   └── js/
│       ├── app.js           # 主应用脚本
│       ├── settings.js      # 设置页面脚本
│       ├── debugInfo.js     # 调试信息脚本
│       └── marked.min.js    # Markdown渲染库
├── logs/
│   ├── config.log           # 配置变更日志
│   └── running.log          # 运行日志
├── start.ps1                # 启动脚本(Windows)
├── stop.ps1                 # 停止脚本(Windows)
├── restart.ps1              # 重启脚本(Windows)
├── 问题必读.md              # 注意事项文档
├── README.md                # 项目说明文档
└── HTTPS.md                 # HTTPS配置说明

快速开始

1. 安装依赖

cd backend
pip install -r requirements.txt

2. 安装 Tesseract OCR

下载安装 Tesseract,安装后在设置页面配置 Tesseract 路径(例如:C:\Program Files\Tesseract-OCR\tesseract.exe)。

3. 启动服务

方式一:使用脚本(推荐)

# 启动服务
.\start.ps1

# 停止服务
.\stop.ps1

# 重启服务
.\restart.ps1

方式二:直接运行

cd backend
python main.py

4. 访问系统

脚本说明

脚本功能说明
start.ps1启动服务检查是否已运行,记录进程ID到 backend/app.pid
stop.ps1停止服务停止主进程及端口5000相关进程,清理PID文件
restart.ps1重启服务先停止后启动,适用于配置更新后重启

注意:backend/app.pid 文件在服务运行时自动创建,服务停止时自动删除。

配置说明

在设置页面 (/settings) 配置以下内容:

AI 配置

请查看config.MD文件,了解详细的配置说明。

AI模型名称请使用提供平台的完整名称,例如:minimax-m2.5deepseek-v3.2. 请从你api提供商的模型列表中选择,确保模型名称与提供商的模型名称一致。

视频配置

配置项说明
Tesseract 路径Tesseract OCR 可执行文件路径
视频源目前支持摄像头
启用OCR是否启用OCR功能
流式响应是否启用流式响应

使用说明

基本操作

  1. 启动视频:点击"启动视频"按钮开始摄像头采集
  2. 截图分析:点击"截图分析"捕获当前帧
  3. AI对话:在输入框输入问题,点击"发送"与AI交互
  4. 上传图片:点击"上传图片"按钮选择本地图片进行分析

分析模式

  • 视觉分析:勾选"使用视觉分析",直接将截图发送给AI进行图像理解
  • OCR识别:勾选"OCR识别后发送",先进行文字识别,再将识别结果发送给AI

知识库

在右侧"知识库"面板添加内容,这些内容会作为AI对话的上下文,帮助AI更好地理解特定领域的问题。

用户认证

  • 首次密码设置:首次设置密码需要通过以下步骤:
    1. 在项目根目录创建 OTP.env 文件,内容为您想要设置的初始密码(例如:123456
    2. 打开 config/config.json 文件,将 OTP 字段设置为 true
    3. 启动服务后,系统会自动读取 OTP.env 文件中的密码,将其哈希存储,并将 OTP 设置为 false,然后删除 OTP.env 文件
  • 登录:设置密码后,再次访问设置页面时需要输入密码登录。
  • 修改密码:登录后,在设置页面的安全配置部分可以修改密码。

技术栈

  • 后端:Flask, OpenCV, pytesseract, OpenAI SDK, Anthropic SDK
  • 前端:原生 HTML/CSS/JavaScript, Marked.js (Markdown渲染)
  • OCR:Tesseract OCR
  • 认证:Flask session, password hashing

注意事项

  • 首次使用需要在设置页面配置API Key
  • OCR功能需要安装Tesseract并配置正确路径
  • 服务默认运行在5000端口,确保端口未被占用
  • 设置页面需要密码保护,首次访问时需要设置密码

HTTPS 配置

如需启用 HTTPS,请参阅 HTTPS 配置说明,包含:

  • 方法一:反向代理(推荐生产环境)
  • 方法二:Flask 直接启用 HTTPS(开发测试用)

About

No description, topics, or website provided.
Language
JavaScript35.4%
Python31%
HTML18.9%
CSS11.7%
Others3%