各平台大模型api请求封装,统一参数调用
go get github.com/juxiaoming/pkg_ai
LOGO | 模型名称 | 参考文档 | 应用申请 |
---|---|---|---|
月之暗面 | 参考文档 | 应用申请 | |
Minimax | 参考文档 | 应用申请 | |
火山引擎 | 参考文档 | 应用申请 | |
百度千帆 | 参考文档 | 应用申请 | |
通义千问 | 参考文档 | 应用申请 | |
混元大模型 | 参考文档 | 应用申请 | |
智谱清言 | 参考文档 | 应用申请 | |
科大讯飞 | 参考文档 | 应用申请 | |
百川智能 | 参考文档 | 应用申请 | |
商汤日日新 | 参考文档 | 应用申请 | |
( ✘ )ChatGpt | 参考文档 | 应用申请 | |
( ✘ )Gemini | 参考文档 | 应用申请 |
// 初始化单服务配置
pkg_ai.Init(pkg_ai.NewMoonshotConf("request_url" , "sk-your_key"))
// 追加配置,用于配置多个服务(如果追加相同服务的配置,后者会覆盖前面的配置信息)
pkg_ai.Init(pkg_ai.NewMoonshotConf("request_url" , "sk-your_key") ,WithBaiChuanConfig("baichuan_url" , "baichuan_key"))
// 自定义初始化服务配置
pkg_ai.Init(&pkg_ai.Config{...})
server, err := pkg_ai.NewServer(pkg_ai.ImplementMoonshot)
if err != nil {
fmt.Println("服务初始化失败", err)
return
}
requestData := pkg_ai.RequestData{
Model: "moonshot-v1-8k",
UserQuery: "帮我写出岳飞的满江红",
}
// 常规请求
res, err := server.Chat(data)
// 自定义请求参数
res , err := server.CustomizeChat([]byte("{....}"))
msgChan, errChan := make(chan string, 10000), make(chan error)
go func() {
// 常规请求
res , err := server.ChatStream(data, msgChan, errChan)
// 自定义请求参数
res , err := server.CustomizeChatStream([]byte("{....}"), msgChan, errChan)
}()
for {
select {
//todo 可引入stopChan控制请求流程
case err := <-errChan:
fmt.Println("发生错误了:", err)
time.Sleep(time.Second * 10)
return
case data, ok := <-msgChan:
if !ok {
fmt.Println("消息管道关闭了")
time.Sleep(time.Second * 10)
return
}
if len(data) == 0 {
continue
}
fmt.Println("收到数据:", data)
}
}
// 请求头
fmt.Println(string(res.RequestHeader))
// 请求体
fmt.Println(string(res.RequestBody))
// 响应体:
for _, item := range res.ResponseData {
fmt.Println("响应数据:" , string(item))
}
// 提示词消耗token数量
fmt.Println(res.PromptTokens)
// 响应消耗token数量
fmt.Println(res.CompletionTokens)
// 整理后的响应数据
fmt.Println(res.ResponseText)
// 请求耗时
fmt.Println(res.SpendTime)
// 请求唯一ID
fmt.Println(res.RequestId)
fmt.Println(server.Supplier())
建议初始化配置文件之后单次调用pkg_login.Init()方法注册服务配置
如果有好的ai模型建议,请联系我!