添加公众号助手

This commit is contained in:
Jackzhou
2026-08-26 10:35:46 +08:00
parent 4f33b036d1
commit b00e55f0e5
16 changed files with 4905 additions and 49 deletions
@@ -58,6 +58,8 @@ func Init(dbPath string) (*gorm.DB, error) {
&model.WorkerTask{},
&model.WorkerArtifact{},
&model.WorkerRun{},
&model.OfficialAccountArticle{},
&model.OfficialAccountHotspot{},
); err != nil {
return nil, err
}
+57 -33
View File
@@ -1,13 +1,13 @@
package store
import (
"encoding/json"
"io"
"log"
"os"
"path/filepath"
"runtime"
"strings"
"encoding/json"
"io"
"log"
"os"
"path/filepath"
"runtime"
"strings"
"eaisalestrain/backend/internal/auth"
"eaisalestrain/backend/internal/config"
@@ -381,6 +381,30 @@ func seedSpecialists() error {
State: "active",
SortOrder: 40,
},
{
Key: "wechat-official-account",
Label: "公众号助手",
Tier: "generic",
WorkerType: "dw",
Route: "/apps/wechat-official-account",
Summary: "热点选题、标题、提纲、正文四步创作工作流",
WorkStatus: "4 个节点可执行",
RiskLabel: "0 个异常",
Color: "#2563eb",
Stage: "正文创作",
Progress: 0,
MarketTag: "已安装",
Version: "v1.0",
ConnectorScope: "连接知识库 / 公众号工作区上下文",
PermissionScope: "文章任务创建、步骤执行、草稿保存、人工确认",
ResourceBindings: "公众号工作流、知识库、事项运行记录、文章草稿",
InfoSources: "选题关键词、目标受众、文章目标、风格要求",
BaseSkills: "推荐热点选题、标题生成、提纲生成、正文创作",
AIAssistance: "按步骤生成中间结果,并展示进度与可追溯输出",
GeneratedSkills: "公众号选题建议、标题建议、文章提纲、正文草稿",
State: "active",
SortOrder: 45,
},
{
Key: "contract-review",
Label: "合同审查专员",
@@ -635,40 +659,40 @@ func ensureMediaLink(src, dst string) error {
if err := os.MkdirAll(filepath.Dir(dst), 0o755); err != nil {
return err
}
if err := os.Symlink(absSrc, dst); err == nil {
return nil
} else if shouldCopySeedMedia(err) {
return copySeedMedia(absSrc, dst)
} else {
return err
}
if err := os.Symlink(absSrc, dst); err == nil {
return nil
} else if shouldCopySeedMedia(err) {
return copySeedMedia(absSrc, dst)
} else {
return err
}
}
func shouldCopySeedMedia(err error) bool {
if err == nil {
return false
}
// Windows 普通终端默认没有创建符号链接权限,开发环境回退为复制文件即可。
return runtime.GOOS == "windows" || strings.Contains(strings.ToLower(err.Error()), "privilege")
if err == nil {
return false
}
// Windows 普通终端默认没有创建符号链接权限,开发环境回退为复制文件即可。
return runtime.GOOS == "windows" || strings.Contains(strings.ToLower(err.Error()), "privilege")
}
func copySeedMedia(src, dst string) error {
in, err := os.Open(src)
if err != nil {
return err
}
defer in.Close()
in, err := os.Open(src)
if err != nil {
return err
}
defer in.Close()
out, err := os.Create(dst)
if err != nil {
return err
}
defer out.Close()
out, err := os.Create(dst)
if err != nil {
return err
}
defer out.Close()
if _, err := io.Copy(out, in); err != nil {
return err
}
return out.Close()
if _, err := io.Copy(out, in); err != nil {
return err
}
return out.Close()
}
func firstExistingPath(paths ...string) string {