geoGo/internal/collect/interface.go

63 lines
1.4 KiB
Go

package collect
import (
"context"
"geo/internal/config"
"log"
)
// CollectorInterface AI平台收集器接口
type CollectorInterface interface {
// WaitLogin 等待登录
WaitLogin() (bool, string)
// AskQuestion 提问并获取答案
AskQuestion(question string) (string, error)
}
// NewCollector 创建收集器的工厂函数类型
type NewCollector func(
ctx context.Context,
param *CollectParams,
cfg *config.Config,
logger *log.Logger) CollectorInterface
// CollectorValue 收集器配置信息
type CollectorValue struct {
Name string // 平台名称
InitMethod NewCollector // 初始化方法
Platform string // 平台标识: wenxin, deepseek, doubao, qianwen
}
// CollectParams 收集任务参数
type CollectParams struct {
Headless bool // 是否无头模式
UserIndex string // 用户索引
PlatIndex string // 平台索引
RequestID string // 请求ID
Platform string // 平台类型
}
// CollectorMap 收集器注册表
var CollectorMap = map[string]*CollectorValue{
"wenxin": {
Name: "文心一言",
InitMethod: NewWenxinCollector,
Platform: "wenxin",
},
"deepseek": {
Name: "DeepSeek",
InitMethod: NewDeepseekCollector,
Platform: "deepseek",
},
"doubao": {
Name: "豆包",
InitMethod: NewDoubaoCollector,
Platform: "doubao",
},
"qianwen": {
Name: "通义千问",
InitMethod: NewQianwenCollector,
Platform: "qianwen",
},
}