- Add AGENTS.md knowledge base with project documentation - Move UserPreferences model to separate models.py file - Extract API_KEY to environment variable for security - Enhance Univer Editor with PPTX support and improved UI - Improve file system handling with binary file detection - Add HF_ENDPOINT mirror for better China connectivity - Clean up unused imports and code structure
91 lines
3.4 KiB
Markdown
91 lines
3.4 KiB
Markdown
# LLM in Text 项目知识库
|
||
|
||
**生成时间:** 2025-04-10
|
||
**Commit:** 2fdc996
|
||
**Branch:** main
|
||
|
||
## 概述
|
||
|
||
智能 Markdown 编辑器,集成 LLM 实时补全建议。前端 Vue3 + Vite + Milkdown,后端 FastAPI + Python + Ollama。核心功能:AI 补全、OCR 图片识别、文档转换、TTS/ASR 语音功能。
|
||
|
||
## 结构
|
||
|
||
```
|
||
llm-in-text/
|
||
├── backend/ # FastAPI 后端 (Python)
|
||
│ ├── main.py # API 入口,路由定义
|
||
│ ├── llm.py # Ollama 调用封装
|
||
│ ├── prompt.py # Prompt 构建逻辑
|
||
│ ├── prompts/ # JSON 格式的提示模板
|
||
│ └── tests/ # pytest 测试套件
|
||
├── src/ # 前端源码 (Vue3 + Vite)
|
||
│ ├── main.js # Vue 入口
|
||
│ ├── App.vue # 根组件
|
||
│ ├── components/ # Vue 组件
|
||
│ ├── plugins/ # Milkdown/Copilot 插件
|
||
│ ├── stores/ # Pinia 状态管理
|
||
│ ├── views/ # 页面视图
|
||
│ └── utils/ # 工具函数
|
||
├── public/ # 静态资源
|
||
├── milkdown-docs/ # Milkdown 官方文档(只读)
|
||
└── index.html # HTML 入口
|
||
```
|
||
|
||
## 查找指南
|
||
|
||
| 任务 | 位置 | 说明 |
|
||
|------|------|------|
|
||
| 后端 API 入口 | `backend/main.py` | FastAPI 路由、CORS、启动逻辑 |
|
||
| LLM 调用 | `backend/llm.py` | Ollama 异步调用、超时控制 |
|
||
| Prompt 构建 | `backend/prompt.py` | 系统提示、上下文准备 |
|
||
| AI 补全核心 | `src/plugins/copilotPlugin.ts` | ProseMirror Mark、ghost text |
|
||
| 编辑器组件 | `src/components/MilkdownEditor.vue` | Milkdown 编辑器封装 |
|
||
| 状态管理 | `src/stores/settings.js` | 用户设置、主题、偏好 |
|
||
| API 调用 | `src/utils/api.js` | fetchSuggestion、TTS 接口 |
|
||
| 测试运行 | `pytest.ini` + `backend/tests/` | 测试配置与用例 |
|
||
|
||
## 约定(项目特定)
|
||
|
||
- **前端入口**:`src/main.js`(非 TypeScript),使用 Vue3 + Pinia + Vue Router
|
||
- **后端入口**:`backend/main.py`,端口 8001,uvicorn 启动
|
||
- **代理配置**:开发时 `/v1` 代理到远程 API,生产需调整
|
||
- **文件命名**:全小写+短横线(`my-module.py`、`my-component.vue`)
|
||
- **语言**:UI 默认中文,响应必须使用中文
|
||
|
||
## 反模式(本项目禁止)
|
||
|
||
- ❌ 硬编码 API_KEY(必须从环境变量读取)
|
||
- ❌ 在前端暴露密钥(应通过后端代理)
|
||
- ❌ `npm run dev` 运行网页(无法看到内容)
|
||
- ❌ 修改 `milkdown-docs/` 目录
|
||
- ❌ 类型错误使用 `as any` / `@ts-ignore`
|
||
- ❌ 空的 catch 块
|
||
|
||
## 命令
|
||
|
||
```bash
|
||
# 前端开发
|
||
npm install
|
||
npm run dev # 端口 5173
|
||
npm run build # 构建到 dist/
|
||
|
||
# 后端运行
|
||
pip install -r backend/requirements.txt
|
||
python backend/main.py # 端口 8001
|
||
# 或
|
||
uvicorn backend.main:app --reload --port 8001
|
||
|
||
# 测试
|
||
pytest # 运行所有测试,覆盖率要求 90%
|
||
python backend/tests/run_tests.py unit # 单元测试
|
||
python backend/tests/run_tests.py integration # 集成测试
|
||
```
|
||
|
||
## 注意事项
|
||
|
||
- **架构分离**:前端仅渲染和数据回传,后端负责 LLM API 调用和数据解析
|
||
- **延迟优先**:代码效率优先,降低延迟放在第一位
|
||
- **大小限制**:文档超过 32KB 自动禁用 AI 补全
|
||
- **milkdown-docs/**:官方文档参考,不可修改,编辑器相关问题需核对此目录
|
||
|