# gotalk **Repository Path**: xueming-li/gotalk ## Basic Information - **Project Name**: gotalk - **Description**: readme - **Primary Language**: Go - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2026-07-30 - **Last Updated**: 2026-08-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # GoTalk > 基于 Go + Gin + Vue3 的全栈短视频平台,支持视频流、用户互动、实时私信、搜索和 AI 能力。 [![Go Version](https://img.shields.io/badge/Go-1.25-blue)](https://golang.org) [![Vue Version](https://img.shields.io/badge/Vue-3.0-green)](https://vuejs.org) [![License](https://img.shields.io/badge/License-MIT-yellow)](LICENSE) ## 特性 - 视频流推送与播放 - 用户注册/登录(bcrypt 密码加密 + JWT 鉴权) - 点赞、评论、关注/粉丝 - **WebSocket 实时私信** - **视频/用户搜索** - **AI 能力**:封面描述生成、内容审核(支持 OpenAI/通义千问) - 结构化日志(Zap) - Swagger API 文档 - Docker 一键部署 ## 快速开始 ### Docker 部署(推荐) ```bash # 1. 克隆项目 git clone https://github.com/your-org/gotalk.git cd gotalk # 2. 配置环境变量 cp .env.example .env # 编辑 .env 修改敏感配置 # 3. 启动所有服务 docker-compose up -d # 4. 访问应用 # Web: http://localhost:8080 # API Docs: http://localhost:8080/swagger/index.html ``` ### 本地开发 **后端** ```bash # 安装依赖 go mod download # 配置数据库(修改 config/config.toml) # 启动服务 go run . ``` **前端** ```bash cd frontend npm install npm run dev ``` ## 技术栈 ### 后端 - **Go 1.25** + **Gin** - Web 框架 - **GORM** - ORM - **MySQL 8.0** - 关系型数据库 - **Redis 7.x** - 缓存 - **JWT** - 用户鉴权 - **WebSocket** - 实时通信 - **Zap** - 结构化日志 ### 前端 - **Vue 3** + **Vite 4** - **Pinia** - 状态管理 - **Element Plus** - UI 组件库 - **Vue Router 4** - 路由 ## 项目结构 ``` . ├── backend/ # Go 后端 │ ├── handlers/ # HTTP Handler │ ├── service/ # 业务逻辑 │ ├── models/ # 数据模型 │ ├── pkg/ # 公共包 │ │ ├── logger/ # 日志 │ │ ├── ws/ # WebSocket │ │ └── ai/ # AI 客户端 │ └── router/ # 路由 │ ├── frontend/ # Vue3 前端 │ └── src/ │ ├── api/ # API 请求 │ ├── views/ # 页面 │ ├── components/ # 组件 │ └── stores/ # Pinia │ ├── docs/ # 技术文档 │ ├── ARCHITECTURE.md # 架构设计 │ ├── API.md # API 文档 │ └── DEVELOPMENT.md # 开发指南 │ ├── Dockerfile # 多阶段构建 ├── docker-compose.yml # 容器编排 └── README.md ``` ## API 文档 启动服务后访问:`http://localhost:8080/swagger/index.html` 主要接口: | 接口 | 说明 | |------|------| | `GET /douyin/feed/` | 视频流 | | `POST /douyin/user/login/` | 登录 | | `POST /douyin/publish/action/` | 发布视频 | | `POST /douyin/favorite/action/` | 点赞 | | `GET /douyin/message/ws/` | WebSocket 私信 | | `GET /douyin/search/video/` | 搜索视频 | | `POST /douyin/ai/describe/` | AI 描述生成 | 详见 [API.md](./docs/API.md) ## AI 能力配置 默认使用 `mock` 模式(本地模拟),如需真实 AI: ```bash # OpenAI export AI_PROVIDER=openai export AI_API_KEY=sk-xxx export AI_BASE_URL=https://api.openai.com # 或阿里云通义千问 export AI_PROVIDER=qwen export AI_API_KEY=sk-xxx export AI_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1 ``` ## 截图 | 首页视频流 | 个人中心 | 私信 | |-----------|---------|------| | ![home](docs/images/home.png) | ![profile](docs/images/profile.png) | ![message](docs/images/message.png) | ## 文档 - [架构设计](./docs/ARCHITECTURE.md) - [API 文档](./docs/API.md) - [开发指南](./docs/DEVELOPMENT.md) ## 贡献 欢迎提交 Issue 和 PR! 1. Fork 项目 2. 创建特性分支 (`git checkout -b feature/xxx`) 3. 提交更改 (`git commit -am 'feat: xxx'`) 4. 推送分支 (`git push origin feature/xxx`) 5. 创建 Pull Request ## 许可证 [MIT](./LICENSE) --- Made with ❤️ by GoTalk Team