mirror of
https://github.com/yangjian102621/geekai.git
synced 2026-04-14 23:24:27 +08:00
增加3D生成功能需求文档
This commit is contained in:
@@ -26,7 +26,6 @@ require (
|
||||
|
||||
require (
|
||||
github.com/go-pay/gopay v1.5.101
|
||||
github.com/go-rod/rod v0.116.2
|
||||
github.com/golang-jwt/jwt v3.2.2+incompatible
|
||||
github.com/google/go-tika v0.3.1
|
||||
github.com/microcosm-cc/bluemonday v1.0.26
|
||||
@@ -47,13 +46,10 @@ require (
|
||||
github.com/go-pay/xtime v0.0.2 // indirect
|
||||
github.com/golang/snappy v0.0.4 // indirect
|
||||
github.com/gorilla/css v1.0.0 // indirect
|
||||
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ai3d v1.1.0 // indirect
|
||||
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.20 // indirect
|
||||
github.com/tklauser/go-sysconf v0.3.13 // indirect
|
||||
github.com/tklauser/numcpus v0.7.0 // indirect
|
||||
github.com/ysmood/fetchup v0.3.0 // indirect
|
||||
github.com/ysmood/goob v0.4.0 // indirect
|
||||
github.com/ysmood/got v0.40.0 // indirect
|
||||
github.com/ysmood/gson v0.7.3 // indirect
|
||||
github.com/ysmood/leakless v0.9.0 // indirect
|
||||
github.com/yusufpapurcu/wmi v1.2.4 // indirect
|
||||
go.uber.org/mock v0.4.0 // indirect
|
||||
)
|
||||
|
||||
21
api/go.sum
21
api/go.sum
@@ -78,8 +78,6 @@ github.com/go-playground/validator/v10 v10.14.0 h1:vgvQWe3XCz3gIeFDm/HnTIbj6UGmg
|
||||
github.com/go-playground/validator/v10 v10.14.0/go.mod h1:9iXMNT7sEkjXb0I+enO7QXmzG6QCsPWY4zveKFVRSyU=
|
||||
github.com/go-redis/redis/v8 v8.11.5 h1:AcZZR7igkdvfVmQTPnu9WE37LRrO/YrBH5zWyjDC0oI=
|
||||
github.com/go-redis/redis/v8 v8.11.5/go.mod h1:gREzHqY1hg6oD9ngVRbLStwAWKhA0FEgq8Jd4h5lpwo=
|
||||
github.com/go-rod/rod v0.116.2 h1:A5t2Ky2A+5eD/ZJQr1EfsQSe5rms5Xof/qj296e+ZqA=
|
||||
github.com/go-rod/rod v0.116.2/go.mod h1:H+CMO9SCNc2TJ2WfrG+pKhITz57uGNYU43qYHh438Mg=
|
||||
github.com/go-sql-driver/mysql v1.7.0 h1:ueSltNNllEqE3qcWBTD0iQd3IpL/6U+mJxLkazJ7YPc=
|
||||
github.com/go-sql-driver/mysql v1.7.0/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI=
|
||||
github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 h1:tfuBGBXKqDEevZMzYi5KSi8KkcZtzBcTgAUUtapy0OI=
|
||||
@@ -247,6 +245,11 @@ github.com/stretchr/testify v1.8.3 h1:RP3t2pwF7cMEbC1dqtB6poj3niw/9gnV4Cjg5oW5gt
|
||||
github.com/stretchr/testify v1.8.3/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
|
||||
github.com/syndtr/goleveldb v1.0.0 h1:fBdIW9lB4Iz0n9khmH8w27SJ3QEJ7+IgjPEwGSZiFdE=
|
||||
github.com/syndtr/goleveldb v1.0.0/go.mod h1:ZVVdQEZoIme9iO1Ch2Jdy24qqXrMMOU6lpPAyBWyWuQ=
|
||||
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ai3d v1.1.0 h1:hOyYsl35o74hOhnnPVQIK/bdSIPNp3TKJlCEOXGO7ms=
|
||||
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ai3d v1.1.0/go.mod h1:3689peGF1zp+P9c+GnUcAzkMp+kXi0Tr44zeQ57Z+7Y=
|
||||
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.0/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
|
||||
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.20 h1:8B80/p+WvzBVz+jM6dosTcfhRe7Jotpyqj0NoGW1wfE=
|
||||
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.1.20/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
|
||||
github.com/tklauser/go-sysconf v0.3.13 h1:GBUpcahXSpR2xN01jhkNAbTLRk2Yzgggk8IM08lq3r4=
|
||||
github.com/tklauser/go-sysconf v0.3.13/go.mod h1:zwleP4Q4OehZHGn4CYZDipCgg9usW5IJePewFCGVEa0=
|
||||
github.com/tklauser/numcpus v0.7.0 h1:yjuerZP127QG9m5Zh/mSO4wqurYil27tHrqwRoRjpr4=
|
||||
@@ -261,20 +264,6 @@ github.com/ugorji/go/codec v1.2.11 h1:BMaWp1Bb6fHwEtbplGBGJ498wD+LKlNSl25MjdZY4d
|
||||
github.com/ugorji/go/codec v1.2.11/go.mod h1:UNopzCgEMSXjBc6AOMqYvWC1ktqTAfzJZUZgYf6w6lg=
|
||||
github.com/volcengine/volc-sdk-golang v1.0.23 h1:anOslb2Qp6ywnsbyq9jqR0ljuO63kg9PY+4OehIk5R8=
|
||||
github.com/volcengine/volc-sdk-golang v1.0.23/go.mod h1:AfG/PZRUkHJ9inETvbjNifTDgut25Wbkm2QoYBTbvyU=
|
||||
github.com/ysmood/fetchup v0.3.0 h1:UhYz9xnLEVn2ukSuK3KCgcznWpHMdrmbsPpllcylyu8=
|
||||
github.com/ysmood/fetchup v0.3.0/go.mod h1:hbysoq65PXL0NQeNzUczNYIKpwpkwFL4LXMDEvIQq9A=
|
||||
github.com/ysmood/goob v0.4.0 h1:HsxXhyLBeGzWXnqVKtmT9qM7EuVs/XOgkX7T6r1o1AQ=
|
||||
github.com/ysmood/goob v0.4.0/go.mod h1:u6yx7ZhS4Exf2MwciFr6nIM8knHQIE22lFpWHnfql18=
|
||||
github.com/ysmood/gop v0.2.0 h1:+tFrG0TWPxT6p9ZaZs+VY+opCvHU8/3Fk6BaNv6kqKg=
|
||||
github.com/ysmood/gop v0.2.0/go.mod h1:rr5z2z27oGEbyB787hpEcx4ab8cCiPnKxn0SUHt6xzk=
|
||||
github.com/ysmood/got v0.40.0 h1:ZQk1B55zIvS7zflRrkGfPDrPG3d7+JOza1ZkNxcc74Q=
|
||||
github.com/ysmood/got v0.40.0/go.mod h1:W7DdpuX6skL3NszLmAsC5hT7JAhuLZhByVzHTq874Qg=
|
||||
github.com/ysmood/gotrace v0.6.0 h1:SyI1d4jclswLhg7SWTL6os3L1WOKeNn/ZtzVQF8QmdY=
|
||||
github.com/ysmood/gotrace v0.6.0/go.mod h1:TzhIG7nHDry5//eYZDYcTzuJLYQIkykJzCRIo4/dzQM=
|
||||
github.com/ysmood/gson v0.7.3 h1:QFkWbTH8MxyUTKPkVWAENJhxqdBa4lYTQWqZCiLG6kE=
|
||||
github.com/ysmood/gson v0.7.3/go.mod h1:3Kzs5zDl21g5F/BlLTNcuAGAYLKt2lV5G8D1zF3RNmg=
|
||||
github.com/ysmood/leakless v0.9.0 h1:qxCG5VirSBvmi3uynXFkcnLMzkphdh3xx5FtrORwDCU=
|
||||
github.com/ysmood/leakless v0.9.0/go.mod h1:R8iAXPRaG97QJwqxs74RdwzcRHT1SWCGTNqY8q0JvMQ=
|
||||
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
|
||||
github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0=
|
||||
github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0=
|
||||
|
||||
@@ -1,16 +0,0 @@
|
||||
package test
|
||||
|
||||
import (
|
||||
"geekai/utils"
|
||||
"testing"
|
||||
)
|
||||
|
||||
// TestNewService 测试创建爬虫服务
|
||||
func TestNewService(t *testing.T) {
|
||||
videoURL := `https://p3-aiop-sign.byteimg.com/tos-cn-i-vuqhorh59i/2025072310444223AAB2C93CE2B9BB8573-6843-0~tplv-vuqhorh59i-image.image?rk3s=7f9e702d&x-expires=1753325083&x-signature=%2F5V3H%2FWPQlOej6VtVZyf%2BNJBWok%3D`
|
||||
filePath := "test_video.png"
|
||||
err := utils.DownloadFile(videoURL, filePath, "")
|
||||
if err != nil {
|
||||
t.Fatalf("下载视频失败: %v", err)
|
||||
}
|
||||
}
|
||||
122
docs.md
Normal file
122
docs.md
Normal file
@@ -0,0 +1,122 @@
|
||||
## 开发 3D 图片生成功能
|
||||
|
||||
对接 3D 图片生成接口,为当前系统添加 3D 模型生成功能,默认支持腾讯云和 Gitee 的图生 3D API 接口。
|
||||
|
||||
## 要求
|
||||
|
||||
1. 完成数据库设计,后端 API 设计,前端页面设计。
|
||||
2. 完成前端功能页面以及后台管理页面,具体设计结构可以参考即梦 AI,在对应的模块建立独立的模块 。
|
||||
3. 页面设计要精美,但是整体风格要跟整站风格一致。
|
||||
4. 支持前端 3D 模型预览,支持 3D 模型下载。
|
||||
|
||||
## 腾讯云图生 3D API 接口文档
|
||||
|
||||
1. 提交任务: https://cloud.tencent.com/document/product/1804/120826
|
||||
2. 查询任务: https://cloud.tencent.com/document/product/1804/120827
|
||||
3. Golang SDK: https://gitee.com/TencentCloud/tencentcloud-sdk-go/blob/master/tencentcloud/ai3d/v20250513/client.go 依赖已经安装到本地了
|
||||
|
||||
## Gitee 图生 3D API 接口文档
|
||||
|
||||
1. 提交任务: https://ai.gitee.com/docs/openapi/v1#tag/3d-%E7%94%9F%E6%88%90/post/async/image-to-3d
|
||||
2. 查询任务:https://ai.gitee.com/docs/openapi/v1#tag/%E5%BC%82%E6%AD%A5%E4%BB%BB%E5%8A%A1/get/task/{task_id}/get
|
||||
|
||||
首先,你需要认真阅读上述接口文档,然后按照接口文档的示例代码实现腾讯云和 Gitee 的图生 3D API 接口,并且将接口集成到现有的系统中。
|
||||
|
||||
📋 功能概述
|
||||
|
||||
为现有的GeekAI-Plus系统添加3D图片生成功能,集成腾讯云和Gitee的图生3D API接口,包含完整的前后端功能和管理界面。
|
||||
|
||||
🗄️ 数据库设计
|
||||
|
||||
新增数据表:geekai_3d_jobs
|
||||
- id (uint): 主键
|
||||
- type (string): API类型 (tencent/gitee)
|
||||
- user_id (uint): 用户ID
|
||||
- power (int): 消耗算力
|
||||
- task_id (string): 第三方任务ID
|
||||
- img_url (string): 生成的3D模型文件地址
|
||||
- model (string): 使用的3D模型类型
|
||||
- status (string): 任务状态
|
||||
- err_msg (string): 错误信息
|
||||
- params (JSON): 任务参数(包含输入图片、提示词等所有参数)
|
||||
- created_at (int64): 创建时间
|
||||
|
||||
🔧 后端API实现
|
||||
|
||||
路由结构:/api/3d/*
|
||||
- POST /api/3d/generate - 创建3D生成任务
|
||||
- GET /api/3d/jobs - 获取任务列表
|
||||
- GET /api/3d/job/{id} - 获取任务详情
|
||||
- GET /api/3d/download/{id} - 下载3D模型
|
||||
- DELETE /api/3d/job/{id} - 删除任务
|
||||
|
||||
核心服务:
|
||||
- service/3d/tencent_client.go - 腾讯云3D API客户端
|
||||
- service/3d/gitee_client.go - Gitee 3D API客户端
|
||||
- service/3d/service.go - 3D生成服务统一接口
|
||||
- handler/3d_handler.go - HTTP处理器
|
||||
- store/vo/3d_job.go - 数据模型
|
||||
|
||||
🎨 前端界面设计
|
||||
|
||||
用户端页面:/3d - 3D生成主页面
|
||||
- 参考JiMeng.vue的设计风格和布局
|
||||
- 使用CustomTab组件分离平台参数:
|
||||
- Tab 1: "魔力方舟" (Gitee平台参数)
|
||||
- Tab 2: "腾讯混元" (腾讯云平台参数)
|
||||
- 每个Tab内包含:
|
||||
- 图片上传区域
|
||||
- 模型选择下拉框
|
||||
- 算力消耗实时显示
|
||||
- 平台特定的参数配置
|
||||
- 生成按钮
|
||||
- 任务列表和状态显示
|
||||
- 集成3D模型预览器 (three.js)
|
||||
- 模型下载功能
|
||||
|
||||
移动端适配:
|
||||
- mobile/3dCreate.vue - 移动端3D生成页面
|
||||
- 保持Tab切换功能
|
||||
- 响应式设计,触控优化
|
||||
|
||||
🛠️ 管理后台
|
||||
|
||||
管理功能:
|
||||
- admin/3d/3dJobs.vue - 任务管理列表
|
||||
- admin/3d/3dSetting.vue - API配置页面
|
||||
- 模型配置管理:
|
||||
- 分平台配置模型列表
|
||||
- 设置每个模型的算力消耗值
|
||||
- API密钥和端点配置
|
||||
|
||||
🔌 API集成方案
|
||||
|
||||
腾讯云集成:
|
||||
- 使用官方Golang SDK
|
||||
- 支持异步任务提交和状态查询
|
||||
|
||||
Gitee集成:
|
||||
- HTTP客户端实现
|
||||
- 标准化响应处理
|
||||
|
||||
🎯 核心功能特性
|
||||
|
||||
- 平台切换:通过CustomTab在魔力方舟和腾讯混元间切换
|
||||
- 模型选择:每个平台支持不同的3D模型
|
||||
- 动态算力:切换模型时实时更新算力消耗显示
|
||||
- 参数隔离:不同平台的参数配置完全分离
|
||||
- 3D预览:集成Three.js实现模型预览
|
||||
- 统一体验:保持与JiMeng.vue相似的交互风格
|
||||
|
||||
📱 用户体验
|
||||
|
||||
- JiMeng.vue风格的简洁界面
|
||||
- Tab切换流畅的平台选择
|
||||
- 模型选择时算力消耗实时更新
|
||||
- 支持拖拽上传图片
|
||||
- 实时任务状态显示
|
||||
- 3D模型交互式预览
|
||||
|
||||
这个设计将创建一个与现有JiMeng功能风格一致的3D生成模块,通过Tab分离实现平台参数的清晰管理。
|
||||
|
||||
整个实现严格按照现有系统的代码规范和架构模式,与 JiMeng 等模块保持一致的用户体验!
|
||||
Reference in New Issue
Block a user