2026-04-04 23:56:18 +08:00
|
|
|
|
# LLM in Text - 智能写作助手
|
2026-01-11 14:11:14 +00:00
|
|
|
|
|
2026-04-04 23:56:18 +08:00
|
|
|
|
基于 Vue3 和 FastAPI 的智能 Markdown 编辑器,集成大语言模型(LLM)实时补全建议功能。
|
2026-01-12 12:23:44 +08:00
|
|
|
|
|
2026-02-13 09:24:50 +08:00
|
|
|
|
## 功能特性
|
2026-02-07 08:53:37 +08:00
|
|
|
|
|
2026-02-13 09:24:50 +08:00
|
|
|
|
### Markdown 编辑器
|
2026-02-07 08:53:37 +08:00
|
|
|
|
- 基于 Milkdown Crepe 的所见即所得编辑体验
|
2026-04-04 23:56:18 +08:00
|
|
|
|
- 支持 Markdown 语法和 LaTeX 公式
|
|
|
|
|
|
- 支持 Mermaid 图表渲染
|
2026-02-13 09:24:50 +08:00
|
|
|
|
- 导入/导出 Markdown 文件
|
2026-04-04 23:56:18 +08:00
|
|
|
|
- 导出 DOCX 和 PDF 格式
|
2026-02-07 08:53:37 +08:00
|
|
|
|
|
2026-02-13 09:24:50 +08:00
|
|
|
|
### AI 智能补全
|
|
|
|
|
|
- 实时生成文本补全建议(灰色显示)
|
|
|
|
|
|
- 流式响应,低延迟体验
|
2026-04-04 23:56:18 +08:00
|
|
|
|
- 多种交互方式:Tab接受、Esc拒绝、点击接受
|
2026-02-13 09:24:50 +08:00
|
|
|
|
|
2026-04-04 23:56:18 +08:00
|
|
|
|
### 文档处理
|
|
|
|
|
|
- OCR 图片识别:上传图片自动识别文字
|
|
|
|
|
|
- 文档转换:PDF、DOCX、PPTX、TXT 转 Markdown
|
|
|
|
|
|
- 文档块嵌入:可折叠的文档预览块
|
|
|
|
|
|
- 智能大小限制:32KB自动禁用AI
|
2026-02-13 09:24:50 +08:00
|
|
|
|
|
2026-04-04 23:56:18 +08:00
|
|
|
|
### 设置面板
|
|
|
|
|
|
- 外观主题:亮色/暗色/跟随系统
|
|
|
|
|
|
- 背景模式:默认/暖色/阅读灯/自定义图片
|
|
|
|
|
|
- 模型智能:低/中/高思考级别
|
|
|
|
|
|
- 隐私控制:隐私模式防止发送IP
|
|
|
|
|
|
- 多语言界面:中英日韩德法
|
2026-02-13 09:24:50 +08:00
|
|
|
|
|
2026-04-04 23:56:18 +08:00
|
|
|
|
### 语音功能
|
|
|
|
|
|
- TTS文字转语音(macOS)
|
|
|
|
|
|
- STT语音转文字
|
2026-02-07 08:53:37 +08:00
|
|
|
|
|
2026-04-04 23:56:18 +08:00
|
|
|
|
## 技术架构
|
2026-02-07 08:53:37 +08:00
|
|
|
|
|
2026-04-04 23:56:18 +08:00
|
|
|
|
前端: Vue3 + Vite + Milkdown + ProseMirror
|
|
|
|
|
|
后端: FastAPI + Python + Ollama
|
2026-02-07 08:53:37 +08:00
|
|
|
|
|
|
|
|
|
|
## 快速开始
|
|
|
|
|
|
|
2026-04-04 23:56:18 +08:00
|
|
|
|
环境: Node.js 18+、Python 3.8+、Ollama
|
2026-02-07 08:53:37 +08:00
|
|
|
|
|
2026-04-04 23:56:18 +08:00
|
|
|
|
安装:
|
|
|
|
|
|
- 前端: npm install
|
|
|
|
|
|
- 后端: pip install -r backend/requirements.txt
|
2026-02-07 08:53:37 +08:00
|
|
|
|
|
2026-04-04 23:56:18 +08:00
|
|
|
|
启动:
|
|
|
|
|
|
- 后端: python backend/main.py (端口8001)
|
|
|
|
|
|
- 前端: npm run dev (端口5173)
|
2026-02-07 08:53:37 +08:00
|
|
|
|
|
2026-04-04 23:56:18 +08:00
|
|
|
|
## API接口
|
2026-02-07 08:53:37 +08:00
|
|
|
|
|
2026-04-04 23:56:18 +08:00
|
|
|
|
- POST /v1/completions 流式补全建议
|
|
|
|
|
|
- POST /v1/ocr 图片文字识别
|
|
|
|
|
|
- POST /v1/convert 文档转换
|
|
|
|
|
|
- POST /v1/completions/cancel 取消请求
|
2026-02-07 08:53:37 +08:00
|
|
|
|
|
2026-02-13 09:24:50 +08:00
|
|
|
|
## 核心实现
|
2026-02-07 08:53:37 +08:00
|
|
|
|
|
2026-04-04 23:56:18 +08:00
|
|
|
|
### 后端
|
|
|
|
|
|
- main.py: FastAPI服务器、SSE流式响应
|
|
|
|
|
|
- llm.py: 异步Ollama调用、超时控制
|
|
|
|
|
|
- prompt.py: 7条Prompt规则
|
|
|
|
|
|
- tts_asr.py: macOS 语音处理
|
2026-02-14 18:28:37 +08:00
|
|
|
|
|
2026-04-04 23:56:18 +08:00
|
|
|
|
### 前端
|
|
|
|
|
|
- copilotPlugin.ts: ProseMirror Mark系统
|
|
|
|
|
|
- 关键函数: scheduleFetch、insertGhostText
|
|
|
|
|
|
- Pinia Store状态管理
|
2026-02-14 18:28:37 +08:00
|
|
|
|
|
|
|
|
|
|
## 设计亮点
|
2026-02-07 08:53:37 +08:00
|
|
|
|
|
2026-04-04 23:56:18 +08:00
|
|
|
|
1. 前后端分离
|
|
|
|
|
|
2. 低延迟优化:防抖+SSE+AbortController
|
|
|
|
|
|
3. ProseMirror Mark系统
|
|
|
|
|
|
4. 多种交互方式
|
|
|
|
|
|
5. 智能大小限制
|
|
|
|
|
|
6. 隐私保护
|
|
|
|
|
|
7. 多语言支持
|
|
|
|
|
|
8. 主题定制
|
|
|
|
|
|
9. 文档处理
|
|
|
|
|
|
10. 语音功能
|
|
|
|
|
|
|
|
|
|
|
|
## 开发指南
|
|
|
|
|
|
|
|
|
|
|
|
代码风格: Python(4空格,snake_case) JS/TS(2空格,camelCase)
|
|
|
|
|
|
测试: pytest
|
|
|
|
|
|
构建: npm run build
|
2026-02-07 08:53:37 +08:00
|
|
|
|
|
|
|
|
|
|
## 许可证
|
|
|
|
|
|
|
|
|
|
|
|
MIT License
|