Skip to content

juxiaoming/pkg_ai

Repository files navigation

pkg_ai

各平台大模型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模型建议,请联系我!

About

ai功能封装

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages