数学题库查重服务-python

Hai Lin a2a4a5e3c2 commit 2 săptămâni în urmă
.gitignore b916f15a7f Initial commit: Math question duplicate checker with GPT-4o fallback 3 săptămâni în urmă
API_DOCUMENT.md b916f15a7f Initial commit: Math question duplicate checker with GPT-4o fallback 3 săptămâni în urmă
Dockerfile b21cc65e4a 增加docker配置文件 3 săptămâni în urmă
README.md 4432e7959a Add README.md and requirements.txt 3 săptămâni în urmă
app.py a2a4a5e3c2 commit 2 săptămâni în urmă
check_duplicate_trigger.py b916f15a7f Initial commit: Math question duplicate checker with GPT-4o fallback 3 săptămâni în urmă
config.py b916f15a7f Initial commit: Math question duplicate checker with GPT-4o fallback 3 săptămâni în urmă
docker-compose.yml da058f09d1 调整docker-compose.yml配置文件 3 săptămâni în urmă
duplicate_checker.py a2a4a5e3c2 commit 2 săptămâni în urmă
requirements.txt b2a0ebca39 commit 增加跨域 3 săptămâni în urmă
test_similarity.py b916f15a7f Initial commit: Math question duplicate checker with GPT-4o fallback 3 săptămâni în urmă

README.md

数学题目查重服务

本服务基于向量相似度检索(FAISS)和 GPT-4o 深度模型,提供数学题目的查重功能。它能够识别语义相似的题目,并在相似度较低但存在重复风险时,调用大模型进行精准裁定。

主要功能

  • 向量查重:利用 OpenAI text-embedding-3-large 模型将题目向量化,通过 FAISS 进行高性能检索。
  • 加权比对:支持对题干、选项、答案、解析四个部分进行加权计算。
  • AI 兜底:当向量相似度处于 0.5 ~ 0.85 之间时,调用 GPT-4o 进行二次核验,提升准确率。
  • 增量更新:支持在录题过程中实时将新题目同步到向量索引库。

快速开始

1. 环境准备

确保已安装 Python 3.8+,并安装相关依赖:

pip install -r requirements.txt

2. 首次同步向量库

在首次使用前,需要将数据库中的存量题目同步到本地向量索引文件中:

python3 -c "from duplicate_checker import QuestionDuplicateChecker; checker = QuestionDuplicateChecker(); checker.sync_all_from_db()"

3. 启动 API 服务

启动 Flask 服务供录题系统调用:

python3 app.py

服务默认运行在 8888 端口。

接口文档

详细的 API 定义请参考 API_DOCUMENT.md