# page2phrase **Repository Path**: codekpy/page2phrase ## Basic Information - **Project Name**: page2phrase - **Description**: 使用网页构建的生词本程序,能够将你的纸质生词本程序化扫描为电子生词本 - **Primary Language**: TypeScript - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-02 - **Last Updated**: 2026-05-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # page2phrase 📖 生词本桌面应用 - 通过拍照识别纸质生词本 ## 项目介绍 page2phrase 是一个现代化的生词本管理应用,能够将纸质生词本通过拍照/上传图片,利用多模态AI自动识别并结构化数据,支持手动管理词汇(查询、编辑、删除),并提供两种AI调用方式。 ## 技术栈 - **前端框架**: Vue 3 + TypeScript - **状态管理**: Pinia - **路由**: Vue Router - **桌面应用**: Tauri v2 - **数据库**: SQLite - **AI服务**: Python FastAPI + OpenAI兼容API - **构建工具**: Vite ## 功能特性 ✅ **AI智能解析** - 拍照或上传图片,多模态AI自动识别生词 ✅ **双模式AI调用** - 本地FastAPI服务 或 外部AI平台手动导入 ✅ **数据查重** - 自动检测重复单词,避免重复录入 ✅ **词汇管理** - 查询、编辑、删除生词,支持多词性释义 ✅ **灵活配置** - 支持所有OpenAI兼容API(智谱、DeepSeek等) ## 项目结构 ``` page2phrase/ ├── src/ # 前端源代码 │ ├── assets/styles/ # 样式文件 │ ├── database/ # 数据库模块(SQLite) │ ├── services/ # 服务层(AI调用) │ ├── stores/ # 状态管理(Pinia) │ ├── router/ # 路由配置 │ ├── types/ # TypeScript类型定义 │ ├── views/ # 页面组件 │ │ ├── WordList.vue # 词库页面 │ │ ├── AIParse.vue # AI解析页面 │ │ ├── ManualImport.vue # 手动导入页面 │ │ └── Settings.vue # 设置页面 │ ├── App.vue # 根组件 │ └── main.ts # 入口文件 ├── python-service/ # Python FastAPI服务 │ ├── main.py # 服务入口 │ └── requirements.txt # Python依赖 ├── src-tauri/ # Tauri桌面应用配置 ├── package.json # Node.js依赖 ├── vite.config.ts # Vite配置 └── tsconfig.json # TypeScript配置 ``` ## 安装教程 ### 前置要求 - Node.js >= 20.0.0 - Rust >= 1.70 (Tauri依赖) - Python >= 3.10 (可选,用于本地AI服务) ### 安装依赖 ```bash # 安装Node.js依赖 npm install # 安装Python依赖(可选) cd python-service pip install -r requirements.txt cd .. ``` ## 使用说明 ### 开发模式 ```bash # 启动前端开发服务器 npm run dev # 启动Tauri桌面应用(需要Rust环境) npm run tauri dev # 启动Python FastAPI服务(可选) cd python-service python main.py ``` ### 构建发布 ```bash # 构建前端 npm run build # 构建桌面应用 npm run tauri build ``` ### AI配置 1. 启动应用后进入"设置"页面 2. 配置以下信息: - **API Base URL**: OpenAI兼容API地址(如 `https://api.moonshot.cn/v1` 或 `https://api.openai.com`) - **API Key**: 您的API密钥 - **模型名称**: 支持多模态的模型(如 `kimi-k2.6`、`gpt-4o`、`glm-4v`) - **思考模式**: 关闭(更快)或开启(更准确) ### 使用AI解析 **方式一:AI解析页面(自动模式)** 1. 进入"AI解析"页面 2. 拍照或上传生词本图片 3. 点击"开始解析" 4. 查看结果并导入词库 **方式二:手动导入页面** 1. 进入"手动导入"页面 2. 复制提示词到AI平台(如Kimi、ChatGPT网页版) 3. 上传图片并获取JSON结果 4. 粘贴JSON到程序,程序自动查重后导入 ### Python FastAPI服务(可选) 程序内置Python FastAPI服务,用于本地AI调用。如需使用: ```bash cd python-service pip install -r requirements.txt python main.py ``` 服务启动后访问 `http://localhost:8000/health` 验证。 API端点: - `POST /api/parse-image` - 解析图片 - `POST /api/test-connection` - 测试AI连接 - `GET /health` - 健康检查 支持的特性: - Kimi K2.6 多模态调用(图片/视频) - OpenAI 兼容 API - Thinking 模式控制 - 自动JSON提取和验证 ## 数据库 使用SQLite存储数据,包含以下表: - **words**: 存储生词信息 - id: 主键 - english: 英文单词 - chinese: 中文释义 - definitions: 词性释义列表(JSON格式) - created_at: 创建时间 - updated_at: 更新时间 - **ai_config**: 存储AI配置信息 - id: 主键 - api_key: API密钥 - base_url: API地址 - model_name: 模型名称 ## 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request ## 开源协议 MIT License