diff --git a/api/go.mod b/api/go.mod index 2eb0affc..37a6180d 100644 --- a/api/go.mod +++ b/api/go.mod @@ -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 ) diff --git a/api/go.sum b/api/go.sum index 6b50c5ab..b33b4082 100644 --- a/api/go.sum +++ b/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= diff --git a/api/test/app_test.go b/api/test/app_test.go deleted file mode 100644 index 819604bd..00000000 --- a/api/test/app_test.go +++ /dev/null @@ -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) - } -} diff --git a/docs.md b/docs.md new file mode 100644 index 00000000..ee474d67 --- /dev/null +++ b/docs.md @@ -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 等模块保持一致的用户体验! diff --git a/image.png b/image.png deleted file mode 100644 index 77040b6b..00000000 Binary files a/image.png and /dev/null differ