{"id":31421477,"url":"https://github.com/liyupi/literature-assistant","last_synced_at":"2025-09-30T00:57:37.178Z","repository":{"id":314375576,"uuid":"1054588671","full_name":"liyupi/literature-assistant","owner":"liyupi","description":"Spring Boot 3 + Vue 3 的 AI 文献阅读助手项目，帮助用户生成文献阅读指南、智能文献管理和检索。","archived":false,"fork":false,"pushed_at":"2025-09-12T03:13:27.000Z","size":64648,"stargazers_count":9,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-09-12T05:44:02.996Z","etag":null,"topics":["ai","backend","frontend","java","kimi","springboot","vue","web"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/liyupi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-09-11T04:08:44.000Z","updated_at":"2025-09-12T03:13:31.000Z","dependencies_parsed_at":"2025-09-12T05:54:16.826Z","dependency_job_id":null,"html_url":"https://github.com/liyupi/literature-assistant","commit_stats":null,"previous_names":["liyupi/literature-assistant"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/liyupi/literature-assistant","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/liyupi%2Fliterature-assistant","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/liyupi%2Fliterature-assistant/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/liyupi%2Fliterature-assistant/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/liyupi%2Fliterature-assistant/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/liyupi","download_url":"https://codeload.github.com/liyupi/literature-assistant/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/liyupi%2Fliterature-assistant/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":277612763,"owners_count":25847502,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-29T02:00:09.175Z","response_time":84,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","backend","frontend","java","kimi","springboot","vue","web"],"created_at":"2025-09-30T00:57:33.769Z","updated_at":"2025-09-30T00:57:37.171Z","avatar_url":"https://github.com/liyupi.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 鱼皮文献助手\n\n一个基于 Spring Boot 3 + Vue 的现代化文献管理后端服务，集成 AI 技术为用户提供智能文献阅读指南生成、文献管理和检索功能。\n\n![](docs/wenxianzhushou-image.png)\n\n\u003e 项目利用 AI Vibe Coding 实现\n\n## ✨ 功能特性\n\n- 📚 **文献上传与解析**: 支持 PDF、Word (.doc/.docx)、Markdown 格式文献的上传和内容解析\n- 🤖 **AI 阅读指南生成**: 集成 Kimi AI，基于文献内容自动生成结构化阅读指南\n- 🏷️ **智能分类标签**: AI 自动为文献生成分类标签，便于管理和检索\n- 🔍 **多维度检索**: 支持关键词、标签、文件类型、时间范围等多种筛选条件\n- ⚡ **实时流式响应**: 基于 SSE 技术，实时推送 AI 生成进度和结果\n- 🔧 **完善的异常处理**: 统一异常处理机制，提供友好的错误信息\n- 📖 **API 文档**: 集成 Knife4j，提供完善的 API 接口文档\n\n![](docs/manage-image.png)\n\n## 环境准备\n\n在启动项目前，请确保您的开发环境已经安装并正确配置了以下依赖。\n\n- Java: 21+\n- Node: 20+\n\n\n### 1、Java 21+\n\n**验证安装**\n\n打开终端（macOS）或命令提示符（Windows），输入以下命令。如果能正确显示版本号（21 或更高版本），则说明 Java 环境已配置成功。\n\n```bash\njava -version\n```\n\n-----\n\n**Windows 安装指南**\n\n1. 访问官方 OpenJDK 发行版网站，例如 [Oracle JDK 21](https://www.oracle.com/java/technologies/downloads/#java21)。\n2. 下载适用于 Windows x64 的 `.msi` 安装程序。\n3. 双击运行安装程序，并按照图形化界面的提示完成安装。安装程序会自动配置 `JAVA_HOME` 环境变量和系统 `Path`。\n\n-----\n\n**macOS 安装指南**\n\n推荐使用 [Homebrew](https://brew.sh/) 进行安装，方便管理。\n\n1. 打开终端。\n2. 执行以下命令安装 OpenJDK 21：\n   ```bash\n   brew install openjdk@21\n   ```\n3. 安装完成后，根据 Homebrew 的提示，将 Java 添加到环境变量中。\n\n再次执行以下命令，如果能正常展示版本号即是安装成功：\n\n```bash\njava -version\n```\n\n### 2、Node.js (20+)\n\n**验证安装**\n\n打开终端或命令提示符，输入以下命令。如果能正确显示版本号（Node.js 为 20 或更高版本），则说明 Node.js 环境已配置成功。\n\n```bash\nnode -v\n```\n\n-----\n\n**Windows 安装指南**\n\n1. 访问 [Node.js 官方网站](https://nodejs.org/en/download)。\n2. 下载推荐的 Windows Installer (`.msi`) 版本（LTS，长期支持版）。\n3. 双击运行安装程序，并按照默认选项完成安装。\n\n-----\n\n**macOS 安装指南**\n\n推荐使用 [Homebrew](https://brew.sh/) 进行安装。\n\n1. 打开终端。\n2. 执行以下命令安装 Node.js 20：\n   ```bash\n   brew install node@20\n   ```\n3. 安装完成后即可直接使用 `node` 和 `npm` 命令。\n\n## 🚀 快速开始\n\n项目已内置 H2 数据库，无需安装和额外配置，开箱即用。\n\n### 方式一：使用启动脚本 (推荐)\n\n- **Windows 系统**: 双击运行根目录下的 `start.bat` 脚本。\n\n- **Linux / macOS 系统**: 在项目根目录下执行 `start.sh` 脚本：\n\n  ```bash\n  sh start.sh\n  ```\n\n### 方式二：手动编译运行\n\n```bash\n# 编译项目\nmvn clean compile\n\n# 运行项目\nmvn spring-boot:run\n\n# 或者打包后运行\nmvn clean package\njava -jar target/literature-assistant-0.0.1-SNAPSHOT.jar\n```\n\n### 访问验证\n\n- **应用服务**: http://localhost:8086/api\n- **API 文档**: http://localhost:8086/api/doc.html\n- **健康检查**: http://localhost:8086/api/literature/health\n\n## 🛠 技术栈\n\n- **框架**: Spring Boot 3.5.5\n- **数据库**: H2 Database + MyBatis-Plus 3.5.5\n- **连接池**: HikariCP\n- **文档处理**: Apache POI (Word)、PDFBox (PDF)、CommonMark (Markdown)\n- **AI 集成**: Kimi AI API + OkHttp SSE\n- **API 文档**: Knife4j 4.5.0\n- **工具库**: Hutool 5.8.29\n- **Java 版本**: Java 21\n\n\n## 🔧 核心配置说明\n\n### 数据库配置\n\n项目默认使用 H2 嵌入式数据库，数据文件将存储在项目根目录的 `data` 文件夹下，无需额外配置。\n\n```yaml\nspring:\n  datasource:\n    # 使用 H2 嵌入式数据库，无需安装\n    driver-class-name: org.h2.Driver\n    url: jdbc:h2:file:./data/literature_assistant\n```\n\n### 文件上传配置\n\n```yaml\nliterature:\n  file:\n    upload-path: ./uploads/documents           # 文件存储路径\n    max-file-size: 10MB                       # 单文件最大大小\n    allowed-extensions: pdf,doc,docx,md,markdown # 允许的文件类型\n```\n\n### AI 服务配置\n\n```yaml\nliterature:\n  ai:\n    base-url: https://api.moonshot.cn/v1      # Kimi AI API 地址\n    model: kimi-k2-turbo-preview              # 使用的模型\n    max-tokens: 20480                         # 最大 token 数\n    temperature: 0.7                          # 生成随机性\n    timeout: 60000                            # 请求超时时间（毫秒）\n```\n\n## 🔄 开发指南\n\n### 添加新的文件类型支持\n\n1. 在 `FileProcessingService` 中添加新的解析方法\n2. 更新 `allowedExtensions` 配置\n3. 在 `extractFileContent` 方法中添加类型判断\n\n### 扩展查询条件\n\n1. 在 `LiteratureQueryRequest` 中添加新的查询字段\n2. 更新 `LiteratureMapper.xml` 中的查询条件\n3. 确保数据库索引支持新的查询字段\n\n## 🙏 致谢\n\n- [Spring Boot](https://spring.io/projects/spring-boot) - 企业级 Java 应用框架\n- [MyBatis-Plus](https://baomidou.com/) - MyBatis 增强工具\n- [Kimi AI](https://www.moonshot.cn/) - 智能对话 AI 服务\n- [Apache POI](https://poi.apache.org/) - Java 文档处理库\n- [PDFBox](https://pdfbox.apache.org/) - Java PDF 处理库\n- [Knife4j](https://doc.xiaominfo.com/) - API 文档生成工具\n- [Hutool](https://hutool.cn/) - Java 工具类库\n\n---\n\n让 AI 赋能学术阅读，让文献理解更高效！","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fliyupi%2Fliterature-assistant","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fliyupi%2Fliterature-assistant","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fliyupi%2Fliterature-assistant/lists"}