# ai-project **Repository Path**: projectzone/ai-project ## Basic Information - **Project Name**: ai-project - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-07-13 - **Last Updated**: 2025-07-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # AI Prog 项目文档 ## 项目简介 AI Prog 是一个 AI 交互式应用程序,集成了多种 AI 功能,包括文本对话、深度思考、文档摘要、图像生成、MCP 交互、多模态交互以及 RAG(检索增强生成)能力。该项目分为两部分:后端(`ai-prog`)和前端(`ai-ui`)。 后端使用 Spring Boot 框架构建,集成了 Spring AI 与阿里巴巴的 DashScope API,提供强大的 AI 服务支撑;前端基于 React 框架开发,提供用户交互界面。 ## 功能特性 - **文本对话**:提供基本的 AI 聊天功能。 - **深度思考**:支持更复杂的推理和思考过程。 - **文档摘要**:可对文档内容进行摘要提取。 - **图像生成**:根据提示生成图像。 - **MCP 交互**:支持 MCP 协议交互。 - **RAG 支持**:基于检索增强生成的 AI 回答。 - **支持多种 AI 模型**:通过配置支持多种 AI 模型。 ## 目录结构 ``` . ├── ai-prog # 后端 Spring Boot 项目 └── ai-ui # 前端 React 项目 ``` ## 后端(ai-prog) ### 技术栈 - Spring Boot - Spring AI - DashScope API - MySQL(用于聊天记录存储) - Java 17+ ### 主要组件 - **AiProgApplication.java**:Spring Boot 启动类。 - **BaseController.java**:提供基础 API,如模型列表获取和健康检查。 - **ChatController.java**:提供 `/chat` 和 `/deep-thinking/chat` 的 API 接口。 - **ChatService.java**:封装了 DashScope 的调用逻辑。 - **模型配置类**:包括 `SystemPromptConfig`、`DeepThinkPromptTemplateConfig`、`DocsSummarizerPromptTemplate.java`。 - **异常处理**:`GlobalExceptionHandler.java` 处理全局异常并返回统一的 `Result` 响应。 - **工具类**:`ModelsUtils.java` 用于加载 DashScope 支持的模型列表。 ### 配置说明 - DashScope API Key 配置在 `application.yml` 中的 `spring.ai.dashscope.api-key` 字段。 - MySQL 配置在 `application.yml` 中的 `spring.ai.chat.memory.repository.jdbc.mysql` 字段。 ## 前端(ai-ui) ### 技术栈 - React - TypeScript - Vite - Ant Design - PNPM 包管理器 ### 页面功能 - **ChatPage**:文本对话页面。 - **FunctionCallingPage**:展示函数调用流程和架构。 - **DocSummaryPage**:文档摘要功能页面。 - **ImageGenPage**:图像生成功能页面。 - **McpPage**:MCP 协议交互页面。 - **RagPage**:检索增强生成(RAG)功能页面。 - **MultiModalPage**:多模态交互页面。 ### 主要组件 - **PromptInput**:用户输入框。 - **ChatConversationView**:聊天记录展示。 - **ResponseBubble**:AI 回复内容展示,支持文本、函数调用、思考过程。 - **FunctionMenu**:功能菜单导航。 - **TipsModal**:功能提示模态框。 ### 状态管理 - 使用 Jotai 进行状态管理: - `conversation.store.ts`:管理聊天记录。 - `functionMenu.store.ts`:管理功能菜单状态。 - `modelConfig.store.ts`:管理模型配置。 ### 主题支持 - 支持浅色/深色主题切换,配置在 `theme.css` 和 `useTheme.ts` 中。 ## 项目启动 ### 后端启动 1. 确保已安装 JDK 17 或更高版本。 2. 安装 Maven 并导入项目。 3. 配置 `application.yml` 中的 API Key 和 MySQL 数据库。 4. 运行 SQL 脚本 `ai-prog/src/main/resources/db/init.sql` 初始化数据库。 5. 启动 `AiProgApplication.java`。 ### 前端启动 1. 确保已安装 Node.js 和 pnpm。 2. 进入 `ai-ui` 目录。 3. 安装依赖:`pnpm install`。 4. 启动开发服务器:`pnpm dev`。 5. 打开浏览器访问 `http://localhost:5173`。 ## API 接口说明 - **GET /api/v1/dashscope/getModels**:获取 DashScope 支持的模型列表。 - **GET /api/v1/health**:健康检查。 - **POST /api/v1/chat**:基础文本对话接口。 - **POST /api/v1/deep-thinking/chat**:深度思考对话接口。 ## 异常处理 - 使用统一响应格式 `Result` 返回成功或失败信息。 - 异常类型: - `AIException`:AI 相关异常。 - `AppException`:应用程序异常。 - `MethodArgumentNotValidException`:请求参数校验失败。 ## 贡献指南 欢迎贡献代码!请确保遵循以下规范: - Fork 项目并创建新分支。 - 提交清晰且有说明的 Pull Request。 - 修改 `README.md` 以反映新功能或变更。 - 确保代码风格一致。 ## 许可证 本项目遵循 MIT 许可证,请参见 [LICENSE](LICENSE) 文件。