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.RequestData))
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