Skip to content

juxiaoming/pkg_ai

Repository files navigation

pkg_ai

各平台大模型api请求封装,统一参数调用

安装

go get github.com/juxiaoming/pkg_ai

已接入大模型列表

LOGO模型名称参考文档应用申请
月之暗面 参考文档 应用申请
Minimax 参考文档 应用申请
火山引擎 参考文档 应用申请
百度千帆 参考文档 应用申请
通义千问 参考文档 应用申请
混元大模型 参考文档 应用申请
智谱清言 参考文档 应用申请
科大讯飞 参考文档 应用申请
百川智能 参考文档 应用申请
商汤日日新 参考文档 应用申请

使用

初始化配置

// 初始化单服务配置
pkg_ai.Init(pkg_ai.NewMoonshotConf("request_url" , "sk-your_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))
fmt.Println("响应体:", string(res.ResponseData))
fmt.Println("提示词消耗token数量:", res.PromptTokens)
fmt.Println("响应消耗token数量:", res.CompletionTokens)
fmt.Println("整理后的响应数据:", res.ResponseText)

建议

建议初始化配置文件之后单次调用pkg_login.Init()方法注册服务配置

更多

等我!

About

ai功能封装

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages