# 神机阁 - AI驱动的智能命理分析平台 [![Version](https://img.shields.io/badge/version-3.1.0-blue.svg)](https://github.com/patdelphi/suanming) [![License](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE) [![Node.js](https://img.shields.io/badge/node-%3E%3D18.0.0-brightgreen.svg)](https://nodejs.org/) [![React](https://img.shields.io/badge/react-18.3.1-blue.svg)](https://reactjs.org/) [![TypeScript](https://img.shields.io/badge/typescript-5.6.2-blue.svg)](https://www.typescriptlang.org/) [![Docker](https://img.shields.io/badge/docker-ready-blue.svg)](https://www.docker.com/) [![Koyeb](https://img.shields.io/badge/deploy-koyeb-green.svg)](https://www.koyeb.com/) 一个集成AI智能解读的中华传统命理分析平台,提供八字命理、紫微斗数、易经占卜等专业分析服务,支持多种AI模型深度解读。 ## ✨ 核心功能 ### 🔮 命理分析服务 - 🎯 **八字命理分析** - 四柱排盘、五行分析、格局判断、大运流年 - 🌟 **紫微斗数分析** - 星盘排布、十二宫位、四化飞星、详细解读 - 🔮 **易经占卜分析** - 梅花易数、卦象解读、人生指导 ### 🤖 AI智能解读 - 🧠 **多模型支持** - OpenAI GPT、智谱AI、Azure OpenAI、Claude等主流AI模型 - 📝 **深度解读** - 将传统命理术语转换为现代语言,提供实用人生指导 - ⚙️ **灵活配置** - 自定义API密钥、模型参数、提示词模板 - 💾 **结果缓存** - 自动保存解读结果,避免重复调用节省费用 - 🔄 **流式输出** - 支持实时流式显示,提升用户体验 ### 💡 智能特性 - 📊 **星曜强度解释** - 旺、得地、平、不得地、陷的详细说明 - 🎨 **命宫位置详解** - 五行属性、深层含义、性格影响分析 - 📈 **数据可视化** - 五行分布图表、运势趋势分析 - 📱 **移动优化** - 完美适配手机端操作和显示 ### 🛠️ 系统功能 - 👤 **完整用户系统** - 注册登录、个人资料、分析历史管理 - 📊 **历史记录分页** - 智能分页显示,支持大量历史数据浏览 - 📥 **多格式导出** - 支持PDF、Markdown、TXT格式导出分析报告 - 📱 **响应式设计** - 完美支持桌面端、平板和移动端 - 🎨 **中国风UI** - 传统文化与现代设计的完美融合 - 🔒 **数据安全** - JWT认证、SQLite本地存储、数据持久化保护 ## 🚀 快速开始 ### 🐳 Docker 部署(推荐) ```bash # 使用 Docker Compose 一键启动 git clone https://github.com/patdelphi/suanming.git cd suanming cp .env.example .env # 编辑 .env 文件,设置 JWT_SECRET docker-compose up -d # 访问应用 # http://localhost:8000 ``` ### 📦 传统部署 #### 环境要求 - Node.js >= 18.0.0 - npm >= 8.0.0 #### 安装依赖 ```bash # 克隆项目 git clone https://github.com/patdelphi/suanming.git cd suanming # 安装依赖 npm install ``` #### 启动开发服务器 ```bash # 启动开发服务器(前后端同时启动) npm run dev # 或分别启动 npm run server # 后端服务器 (端口 3001) npm run dev # 前端开发服务器 (端口 5173) ``` #### 配置AI解读功能(可选) ```bash # 复制环境变量模板 cp .env.example .env # 编辑 .env 文件,添加AI配置 # VITE_AI_API_KEY=your-openai-api-key # VITE_AI_API_URL=https://api.openai.com/v1/chat/completions # VITE_AI_MODEL_NAME=gpt-3.5-turbo ``` #### 访问应用 - 🌐 前端应用: http://localhost:5173 - 🔌 后端API: http://localhost:3001/api - 🏥 健康检查: http://localhost:3001/api/health ## 🏗️ 项目架构 (v3.1) ### 架构特点 - **AI集成架构**: 完整的AI解读服务集成,支持多种AI模型 - **容器化部署**: Docker + Docker Compose 一键部署 - **云原生支持**: Koyeb、Railway等云平台部署优化 - **数据持久化**: SQLite + 持久化卷,确保数据安全 - **分离关注点**: 分析计算与历史记录存储完全分离 - **API去重**: 防止重复调用的请求去重机制 - **性能优化**: useMemo缓存和useEffect依赖优化 - **错误隔离**: 历史记录保存失败不影响分析功能 - **安全防护**: CSP策略、CORS配置、JWT认证 ### 技术栈 **前端技术** - React 18.3.1 + TypeScript 5.6.2 - Vite 6.0.1 (构建工具) - Tailwind CSS 3.4.16 (中国风主题) - React Router 6 (路由管理) - Radix UI (组件库) - React Hook Form + Zod (表单验证) - Recharts (数据可视化) - Lucide React (图标库) - React Markdown (AI解读渲染) - Sonner (通知组件) **后端技术** - Node.js + Express 4.18.2 - Better-SQLite3 12.2.0 (数据库) - JWT + bcryptjs (身份认证) - Helmet (安全中间件,CSP配置) - CORS (跨域处理) - 分层架构设计 **AI集成** - OpenAI GPT 系列模型 - 智谱AI (GLM系列) - Azure OpenAI Service - Anthropic Claude - Google Generative AI - 流式响应支持 **部署工具** - Docker + Docker Compose - Koyeb 云部署配置 - 数据持久化卷 - 健康检查机制 **开发工具** - ESLint + TypeScript ESLint (代码检查) - Concurrently (并发运行) - Nodemon (开发热重载) - npm (包管理器) ### 目录结构 ``` ├── src/ # 前端源码 │ ├── components/ # React组件 │ ├── pages/ # 页面组件 │ ├── lib/ # 工具库 │ ├── contexts/ # React Context │ └── types/ # TypeScript类型 ├── server/ # 后端源码 │ ├── routes/ # API路由 │ ├── services/ # 业务服务 │ ├── middleware/ # 中间件 │ └── database/ # 数据库配置 ├── docs/ # 项目文档 └── public/ # 静态资源 ``` ## 🔄 v3.1 重大更新 ### 🆕 新增功能 1. **AI智能解读系统** - 集成多种AI模型,提供深度个性化解读 2. **Docker容器化部署** - 一键部署,环境一致性保障 3. **云平台部署支持** - Koyeb等云平台优化配置 4. **数据持久化保护** - 解决部署更新时数据丢失问题 5. **历史记录分页** - 支持大量历史数据的高效浏览 6. **CSP安全策略** - 增强Web安全防护 ### 🔧 核心改进 1. **重复历史记录**: 一次分析产生多条记录 → 确保每次只产生1条记录 2. **架构耦合**: 分析与存储混合 → 完全分离,职责清晰 3. **性能问题**: 重复渲染和API调用 → 优化减少60%+重复调用 4. **部署复杂**: 手动配置环境 → Docker一键部署 5. **数据丢失**: 更新时数据重置 → 持久化卷保护 6. **AI集成**: 无AI功能 → 完整AI解读系统 ### 版本对比 | 方面 | v1.0 (初版) | v2.0 (重构) | v3.0 (优化) | v3.1 (当前) | |------|-------------|-------------|-------------|-------------| | 分析接口 | 分析+存储耦合 | 纯分析计算 | AI增强分析 | 多模型AI解读 | | 历史记录 | 自动存储 | 专门接口存储 | 优化存储 | 分页+持久化 | | 部署方式 | 手动部署 | 手动部署 | 手动部署 | Docker+云部署 | | 数据安全 | 基础保护 | JWT认证 | 全面容错 | 持久化+CSP | | AI功能 | 无 | 无 | 基础AI | 完整AI系统 | | 用户体验 | 术语晦涩 | 改进显示 | 详细解释 | AI深度解读 | ## 📚 文档 - [API文档](docs/API.md) - 详细的API接口说明 - [本地部署指南](docs/LOCAL_DEPLOYMENT.md) - 本地化部署和运行说明 - [Docker部署指南](DOCKER_DEPLOYMENT.md) - Docker容器化部署完整指南 - [Koyeb部署指南](KOYEB_DEPLOYMENT.md) - 云平台部署配置说明 - [AI解读使用指南](AI_INTERPRETATION_GUIDE.md) - AI功能配置和使用教程 - [更新日志](CHANGELOG.md) - 版本更新记录 ## 🧪 测试 ```bash # 运行前端测试 npm run test # 运行后端测试 cd server && npm run test # 运行端到端测试 npm run test:e2e ``` ## 🚀 部署 ### 🐳 Docker 部署(推荐) ```bash # 使用 Docker Compose docker-compose up -d # 或使用 Docker 命令 docker build -t suanming-app . docker run -d -p 8000:8000 \ -e JWT_SECRET=your-secret-key \ -v suanming-data:/app/data \ suanming-app ``` ### ☁️ 云平台部署 **Koyeb 部署** ```bash # 推送到 master 分支,Koyeb 自动部署 git push origin master ``` **其他云平台** - Railway: 支持自动检测和部署 - Render: 支持 Docker 部署 - Heroku: 支持 Node.js 应用部署 ### 📦 传统部署 ```bash # 构建前端 npm run build # 启动生产服务器 npm start ``` ### 📖 详细指南 - [Docker部署指南](DOCKER_DEPLOYMENT.md) - 完整的容器化部署说明 - [Koyeb部署指南](KOYEB_DEPLOYMENT.md) - 云平台部署配置 - [本地部署指南](docs/LOCAL_DEPLOYMENT.md) - 传统部署方式 ## 🤝 贡献 我们欢迎所有形式的贡献!请查看 [贡献指南](CONTRIBUTING.md) 了解如何参与项目开发。 ### 开发流程 1. Fork 项目 2. 创建功能分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 创建 Pull Request ## 📄 许可证 本项目采用 MIT 许可证 - 查看 [LICENSE](LICENSE) 文件了解详情。 ## 🙏 致谢 - 感谢所有贡献者的辛勤工作 - 感谢开源社区提供的优秀工具和库 - 感谢中华传统文化的深厚底蕴 ## 📞 联系我们 - 项目主页: [GitHub Repository](https://github.com/patdelphi/suanming) - 问题反馈: [GitHub Issues](https://github.com/patdelphi/suanming/issues) - 在线演示: [Koyeb部署版本](https://suanming-app-patdelphi.koyeb.app) - 邮箱: contact@shenjige.com --- **神机阁** - 传承千年智慧,拥抱现代科技 🌟