e1aa1ce4e81ccc76fafe34b3c4c7832733c1ac0f
Keyborad Backend
基于 Spring Boot 3.5.5 的后端服务,集成了 AI 能力、向量搜索、Apple 登录等功能。
技术栈
- Java 17 + Spring Boot 3.5.5
- Spring AI - LLM 对话和文本嵌入(OpenAI 兼容 API)
- Qdrant - 向量数据库,支持语义搜索
- PostgreSQL - 关系型数据库
- MyBatis Plus - ORM 框架
- Redis - 会话存储和缓存
- Sa-Token - 认证授权框架
- Knife4j - API 文档
- X-File-Storage - 文件上传(Cloudflare R2)
- MailerSend - 邮件服务
核心功能
认证系统
- Apple Sign-In JWT 验证
- Sa-Token 会话管理
- 请求签名校验(防篡改/防重放)
AI 能力
- LLM 对话(支持流式响应)
- 文本嵌入(1536 维向量)
- 语义搜索(Qdrant 向量检索)
通用功能
- 统一响应格式
- 全局异常处理
- 国际化支持(i18n)
- 请求日志记录
快速开始
环境要求
- JDK 17+
- Maven 3.8+
- PostgreSQL 14+
- Redis 6+
本地运行
- 克隆项目
git clone <repository-url>
cd keyborad-backend
- 配置数据库和 Redis
# 修改 src/main/resources/application-dev.yml
spring:
datasource:
url: jdbc:postgresql://localhost:5432/keyborad_db
username: your_username
password: your_password
redis:
host: localhost
port: 6379
- 启动应用
mvn spring-boot:run
- 访问 API 文档
http://localhost:7529/api/doc.html
项目结构
src/main/java/com/yolo/keyborad/
├── controller/ # REST API 端点
├── service/ # 业务逻辑层
│ └── impl/ # 服务实现
├── mapper/ # MyBatis 数据库映射
├── model/
│ ├── entity/ # 数据库实体
│ ├── dto/ # 请求数据传输对象
│ └── vo/ # 响应视图对象
├── config/ # Spring 配置类
├── aop/ # AOP 拦截器
├── Interceptor/ # 请求拦截器
├── filter/ # Servlet 过滤器
├── exception/ # 异常处理
├── common/ # 通用工具类
└── utils/ # 工具类
配置说明
| 配置项 | 说明 | 默认值 |
|---|---|---|
server.port |
服务端口 | 7529 |
server.servlet.context-path |
上下文路径 | /api |
spring.profiles.active |
激活配置文件 | dev |
API 认证
Sa-Token 认证
需要在请求头中携带 satoken 字段。
请求签名
部分接口需要签名校验,请求头需包含:
X-App-Id- 应用 IDX-Timestamp- 时间戳X-Nonce- 随机数X-Sign- 签名
开发指南
详细的开发指南请参考 CLAUDE.md。
License
MIT License
Description
Languages
Java
100%