# graph **Repository Path**: wwb101/graph ## Basic Information - **Project Name**: graph - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-27 - **Last Updated**: 2026-02-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Graph 项目说明 ## 项目结构总览(树状) ```text graph/ ├─ .idea/ ├─ .vscode/ ├─ checkpoint/ │ ├─ intent_classify_bert/best.pt │ ├─ spell_check_bert/best.pt │ ├─ spell_check_t5/best.pt │ └─ uie/model_best/ │ ├─ added_tokens.json │ ├─ config.json │ ├─ model.safetensors │ ├─ special_tokens_map.json │ ├─ tokenizer.json │ ├─ tokenizer_config.json │ └─ vocab.txt ├─ data/ │ ├─ gmall.sql │ ├─ images/36..43/*.jpg │ ├─ intent_classify/raw/data.csv │ ├─ spell_check/raw/data.txt │ ├─ spell_check/processed/bert/ │ │ ├─ dataset_dict.json │ │ ├─ train/*.arrow + dataset_info.json + state.json │ │ ├─ test/*.arrow + dataset_info.json + state.json │ │ └─ valid/*.arrow + dataset_info.json + state.json │ └─ uie/ │ ├─ raw/doccano.jsonl │ └─ processed/{train.txt,test.txt,dev.txt,sample_index.json} ├─ external_lib/ │ └─ uie_pytorch/ │ ├─ README.md / LICENSE / requirements.txt │ ├─ uie_predictor.py / model.py / tokenizer.py / utils.py │ ├─ ernie.py / ernie_m.py │ ├─ finetune.py / evaluate.py / export_model.py / convert.py │ └─ doccano.py / doccano.md / labelstudio2doccano.py ├─ pretrained/ │ ├─ bert-base-chinese/ │ ├─ mengzi-t5/ │ └─ uie_base_pytorch/ ├─ src/ │ ├─ config/config.py │ ├─ dataset/{spell_check_dataset.py,intention_classification_dataset.py} │ ├─ data_sync/{mysql_data_sync.py,mysql_image_sync.py,user_view_sync.py} │ ├─ model/{spell_check_bert.py,spell_check_t5.py,intention_classification_bert.py,__init__.py} │ ├─ predict/spell_check_predicter.py │ ├─ process/{spell_check_process.py,intention_classification_process.py} │ ├─ scripts/{get_models.py,tackle_message.py,train_*.py} │ ├─ templates/{index.html,marked.min.js,purify.min.js} │ ├─ train/spell_check_trainer.py │ └─ web/{app.py,schemas.py} ├─ .gitignore ├─ console.sql ├─ Dockerfile ├─ requirements.txt ├─ requirements.webtest.txt ├─ requirements_venv.txt └─ test.py ``` ## 目录与文件说明 ### 1) 根目录 - `.gitignore`: Git 忽略规则。 - `console.sql`: SQL 脚本(控制台/测试用)。 - `Dockerfile`: 容器构建文件。 - `requirements.txt`: 项目基础依赖。 - `requirements.webtest.txt`: 运行测试时导出的依赖子集(用于跳过不可安装项)。 - `requirements_venv.txt`: 当前虚拟环境 `F:\AIprograming\.venv` 的完整依赖清单。 - `test.py`: 临时测试脚本入口(非主流程)。 ### 2) `.idea/`(IDE 配置) - JetBrains/IDEA 工程配置目录。 - 主要用于本地开发,不参与业务运行。 ### 3) `.vscode/`(编辑器配置) - VS Code 本地工作区配置。 - 不参与业务运行。 ### 4) `checkpoint/`(训练后模型权重) - `intent_classify_bert/best.pt`: 意图分类模型最佳权重。 - `spell_check_bert/best.pt`: BERT 纠错模型最佳权重。 - `spell_check_t5/best.pt`: T5 纠错模型最佳权重。 - `uie/model_best/*`: UIE 信息抽取模型相关 tokenizer 与权重文件。 ### 5) `data/`(数据与样例资源) - `gmall.sql`: 业务数据库初始化/结构数据脚本。 - `images/36..43/*.jpg`: 商品图片样本(OCR/实体抽取数据源)。 - `intent_classify/raw/data.csv`: 意图分类原始语料。 - `spell_check/raw/data.txt`: 纠错原始语料。 - `spell_check/processed/bert/*`: BERT 纠错已处理数据集(HF Arrow 格式)。 - `uie/raw/doccano.jsonl`: Doccano 标注原始数据。 - `uie/processed/train.txt/test.txt/dev.txt/sample_index.json`: UIE 训练/验证/测试数据与索引。 ### 6) `external_lib/uie_pytorch/`(第三方 UIE 库) - `README.md`: 该库说明文档。 - `LICENSE`: 许可证。 - `requirements.txt`: 该库自身依赖声明。 - `uie_predictor.py`: UIE 推理主入口。 - `model.py`: UIE 模型结构定义。 - `tokenizer.py`: tokenizer 适配与转换。 - `utils.py`: 日志、后处理等工具函数。 - `ernie.py`: ERNIE 模型实现(已做兼容修补)。 - `ernie_m.py`: ERNIE-M 模型实现(已做兼容修补)。 - `finetune.py`: 微调训练脚本。 - `evaluate.py`: 评估脚本。 - `export_model.py`: 导出模型脚本。 - `convert.py`: 模型转换脚本。 - `doccano.py`: Doccano 数据处理脚本。 - `doccano.md`: Doccano 使用说明。 - `labelstudio2doccano.py`: 标注格式转换脚本。 ### 7) `pretrained/`(预训练模型) - `bert-base-chinese/*`: BERT 预训练模型及 tokenizer 文件。 - `mengzi-t5/*`: T5 预训练模型及 SentencePiece 文件。 - `uie_base_pytorch/*`: UIE 预训练模型基础文件。 - `.cache/huggingface/*`: HuggingFace 缓存与 metadata 文件。 ### 8) `src/config/` - `config.py`: 全局路径、模型参数、批次大小、意图标签等配置;已加入路径兼容逻辑(`checkpoint`/`checkpoints`、`t5`/`mengzi-t5`)。 ### 9) `src/dataset/` - `spell_check_dataset.py`: 纠错数据集 DataLoader 构建。 - `intention_classification_dataset.py`: 意图分类数据集 DataLoader 构建。 ### 10) `src/data_sync/` - `mysql_data_sync.py`: 从 MySQL 读取商品基础/属性数据并写入 Neo4j。 - `mysql_image_sync.py`: 图片 OCR + 文本纠错 + UIE 抽取 + 写入 Neo4j。 - `user_view_sync.py`: 用户浏览日志从 MySQL 同步到 Neo4j。 ### 11) `src/model/` - `spell_check_bert.py`: BERT 纠错模型结构与预测逻辑。 - `spell_check_t5.py`: T5 纠错模型结构与预测逻辑。 - `intention_classification_bert.py`: 意图分类模型结构与预测逻辑。 - `__init__.py`: 模型模块包初始化。 ### 12) `src/predict/` - `spell_check_predicter.py`: 纠错预测器封装(模型 + tokenizer + device)。 ### 13) `src/process/` - `spell_check_process.py`: 纠错数据预处理与切分。 - `intention_classification_process.py`: 意图分类数据预处理与切分。 ### 14) `src/scripts/` - `get_models.py`: 模型加载聚合器(纠错、意图、UIE)。 - `tackle_message.py`: Chat 主处理逻辑(纠错 -> 意图 -> 实体抽取 -> 图查询)。 - `train_spell_check_bert.py`: BERT 纠错模型训练/加载脚本。 - `train_spell_check_t5.py`: T5 纠错模型训练/加载脚本。 - `train_intention_classification_bert.py`: 意图分类模型训练/加载脚本。 ### 15) `src/templates/` - `index.html`: 前端聊天页面模板。 - `marked.min.js`: Markdown 渲染库。 - `purify.min.js`: HTML 清洗库(XSS 防护)。 ### 16) `src/train/` - `spell_check_trainer.py`: 训练器(训练、验证、early stopping、checkpoint)。 ### 17) `src/web/` - `app.py`: FastAPI 应用入口与路由(`/`、`/chat`)。 - `schemas.py`: 请求/响应数据模型定义(Pydantic)。 ## 运行链路(简述) 1. 浏览器访问 `src/web/app.py` 暴露的 `/` 与 `/chat`。 2. `/chat` 调用 `src/scripts/tackle_message.py`。 3. `tackle_message` 通过 `src/scripts/get_models.py` 获取模型。 4. 完成纠错、意图识别、UIE 抽取后查询 Neo4j 返回答案。 5. 数据侧通过 `src/data_sync/*.py` 与 MySQL/Neo4j 同步更新。