56 lines
1.5 KiB
Go
56 lines
1.5 KiB
Go
|
package ai
|
|||
|
|
|||
|
import (
|
|||
|
"apigo.cc/ai/agent"
|
|||
|
"apigo.cc/ai/ai"
|
|||
|
"apigo.cc/apigo/plugin"
|
|||
|
"github.com/ssgo/u"
|
|||
|
)
|
|||
|
|
|||
|
func init() {
|
|||
|
plugin.Register(plugin.Plugin{
|
|||
|
Id: "apigo.cc/apigo/ai",
|
|||
|
Name: "",
|
|||
|
Objects: map[string]interface{}{
|
|||
|
"getAgent": func(name string) agent.Agent {
|
|||
|
return ai.GetAgent(name)
|
|||
|
},
|
|||
|
"messages": func() *ai.MessagesMaker {
|
|||
|
return ai.Messages()
|
|||
|
},
|
|||
|
},
|
|||
|
ConfigSample: `zhipu: # 代理名称
|
|||
|
apiKey: xxxx # API密钥
|
|||
|
ai01: # 自定义名称
|
|||
|
apiKey: xxxx # API密钥
|
|||
|
endpoint: https://xxxx # 可以指定一个接入点(例如代理)
|
|||
|
agent: zhipu # 当名称不是代理ID时需指定
|
|||
|
chatConfig: # 默认的模型配置
|
|||
|
model: GLM-4V # 模型名称
|
|||
|
maxTokens: 1000 # 最大Token数
|
|||
|
temperature: 0.8 # 生成文本时使用的随机性参数
|
|||
|
topP: 0.7 # 生成文本时使用的随机性参数
|
|||
|
tools: # 工具列表
|
|||
|
codeInterpreter: # 代码解释器(不需要指定值)
|
|||
|
webSearch: # 联网搜索(不需要指定值)
|
|||
|
`,
|
|||
|
Init: func(config map[string]interface{}) {
|
|||
|
for agentName, conf1 := range config {
|
|||
|
conf := ai.AgentConfig{}
|
|||
|
u.Convert(conf1, &conf)
|
|||
|
agent.CreateAgent(agentName, conf.Agent, agent.APIConfig{
|
|||
|
Endpoint: conf.Endpoint,
|
|||
|
ApiKey: conf.Endpoint,
|
|||
|
DefaultChatModelConfig: agent.ChatModelConfig{
|
|||
|
Model: conf.ChatConfig.Model,
|
|||
|
MaxTokens: conf.ChatConfig.MaxTokens,
|
|||
|
Temperature: conf.ChatConfig.Temperature,
|
|||
|
TopP: conf.ChatConfig.TopP,
|
|||
|
Tools: conf.ChatConfig.Tools,
|
|||
|
},
|
|||
|
})
|
|||
|
}
|
|||
|
},
|
|||
|
})
|
|||
|
}
|