# GinSkeleton **Repository Path**: flyPanda/GinSkeleton ## Basic Information - **Project Name**: GinSkeleton - **Description**: 基于go语言gin框架封装的web项目骨架 ↓↓↓ 在线文档 ↓↓↓ (gin框架QQ群:129885228) V1.4.00版本后要求go语言版本>=1.15 - **Primary Language**: Go - **License**: MIT - **Default Branch**: master - **Homepage**: http://114.115.223.249:22003 - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 695 - **Created**: 2025-09-04 - **Last Updated**: 2025-12-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # English Learning Assistant 后台项目 ## 项目简介 本项目是 [English Learning Assistant](https://gitee.com/flyPanda/english-learning-assistant) 的后台部分,基于 [GinSkeleton](https://gitee.com/daitougege/GinSkeleton) 框架开发,旨在为前端应用提供稳定、高效的后端支持。 本项目实现了"英语世界引擎"的核心功能,通过双 Agent 架构(对话生成 Agent 和语言分析 Agent)为用户提供沉浸式的英语学习体验,让用户在自然对话中不知不觉提升英语水平。 ## 功能特性 - **用户管理**:实现用户注册、登录、信息修改等功能,确保用户数据的安全性和完整性。 - **角色系统**:支持创建和管理英语学习角色,每个角色具有独特的性格、背景和场景设定,提供沉浸式的对话体验。 - **智能对话**:基于 Agent A(对话生成)实现自然流畅的英语对话,模拟真实场景中的英语交流。 - **语言分析**:通过 Agent B(语言分析)实时分析用户输入,识别语法错误和表达问题,提供更地道的英语表达建议。 - **学习进度跟踪**:记录用户的学习进度和成果,包括对话记录、错误分析、学习标签等,提供个性化的学习建议。 - **LLM 可插拔架构**:支持多种大语言模型(DeepSeek、OpenAI 等),可灵活切换和配置。 - **统计分析**:对用户的学习数据进行统计分析,帮助改进学习内容和方法。 ## 技术栈 - **后端框架**:基于 [GinSkeleton](https://gitee.com/daitougege/GinSkeleton) 开发,GinSkeleton 是一个基于 Go 语言 Gin 框架的 Web 项目骨架,专注于前后端分离的业务场景,封装了用户管理、权限控制等基础功能,便于快速开发和部署。 - **编程语言**:Go 1.24.0+ - **数据库**:使用 MySQL 进行数据存储,确保数据的高效读写和安全性。 - **缓存**:采用 Redis 进行缓存处理,提高系统响应速度和并发能力。 - **大语言模型**:支持 DeepSeek、OpenAI 等多种 LLM 提供商,采用可插拔架构设计。 - **日志管理**:集成日志记录功能,方便对系统运行状况进行监控和调试。 - **权限控制**:集成 Casbin 进行权限管理,支持灵活的权限策略配置。 ## 在线体验 [english-partner](http://chat.forever24.cn/) ## 项目结构 ``` app/ ├── http/ │ └── controller/ │ └── api/ │ └── english_world/ # 英语世界引擎控制器 │ ├── conversation_controller.go # 对话控制器 │ └── character_controller.go # 角色控制器 ├── service/ │ └── english_world/ │ ├── agent_a.go # Agent A服务(对话生成) │ └── agent_b.go # Agent B服务(语言分析) ├── model/ │ └── english_world/ │ ├── characters.go # 角色模型 │ ├── conversations.go # 对话模型 │ ├── analyses.go # 分析模型 │ ├── user_profiles.go # 用户画像模型 │ └── progress_tracks.go # 进步轨迹模型 └── utils/ └── llm/ ├── interface.go # LLM接口定义 ├── factory.go # 工厂模式 ├── deepseek.go # DeepSeek实现 └── openai.go # OpenAI实现 ``` ## 部署指南 ### 1. 环境准备 - 安装 Go 语言环境,版本要求 >= 1.24.0 - 安装 MySQL 数据库,并创建相应的数据库和用户 - 安装 Redis 缓存服务 ### 2. 项目配置 #### 2.1 克隆项目 ```bash git clone <项目地址> cd GinSkeleton ``` #### 2.2 数据库初始化 执行 SQL 脚本创建表结构: ```bash mysql -u your_user -p db_goskeleton < database/tb_english_world_mysql.sql ``` #### 2.3 配置文件设置 根据实际情况修改 `config/config.yml` 配置文件,包括: - 数据库连接信息(MySQL) - Redis 配置 - JWT Token 配置 - 日志配置 #### 2.4 LLM 配置 复制并编辑 LLM 配置文件: ```bash cp config/llm.yml.example config/llm.yml ``` 编辑 `config/llm.yml`,配置 LLM 提供商信息: ```yaml llm: provider: "deepseek" deepseek: api_key: "sk-your-deepseek-api-key" # 替换为你的 DeepSeek API Key base_url: "https://api.deepseek.com" model: "deepseek-chat" ``` 或者使用环境变量: ```bash export DEEPSEEK_API_KEY=sk-your-deepseek-api-key ``` ### 3. 运行项目 #### 3.1 安装依赖 ```bash go mod download ``` #### 3.2 启动服务 ```bash go run cmd/api/main.go ``` 或者使用 Makefile: ```bash make run ``` #### 3.3 验证服务 访问 `http://localhost:20191` 验证服务是否正常运行。 API 基础路径:`http://localhost:20191/api/v2/english-world/` ## API 接口文档 ### 认证方式 所有接口都需要在 Header 中携带 Token: ``` Authorization: Bearer your_token_here ``` ### 主要接口 - **角色管理** - `POST /character/create` - 创建角色 - `GET /character/list` - 获取角色列表 - `GET /character/detail` - 获取角色详情 - **对话相关** - `POST /conversation/send` - 发送消息 - `GET /conversation/history` - 获取对话历史 - `GET /conversation/analysis` - 获取语言分析结果 详细的 API 文档请参考 `docs/2.0/implementation_guide.md`。 ## 开发文档 - [项目目标](./docs/2.0/project_target.md) - [产品设计文档](./docs/2.0/product_design.md) - [实现指南](./docs/2.0/implementation_guide.md) - [交互流程图](./docs/2.0/interaction_flows.md) ## 贡献指南 欢迎对本项目提出建议和改进,您可以通过提交 Issue 或 Pull Request 的方式参与贡献。 ## 许可证 本项目遵循 MIT 开源许可证,详细信息请参阅 LICENSE 文件。 ## 相关链接 - [English Learning Assistant 前端项目](https://gitee.com/flyPanda/english-learning-assistant) - [GinSkeleton 框架文档](https://www.yuque.com/xiaofensinixidaouxiang/bkfhct/mar1g7) - [GinSkeleton 项目地址](https://gitee.com/daitougege/GinSkeleton)