最近由于多个项目需要调用到国内各大模型,所以造了一个轮子
go-easy-llm
点击 github go-easy-llm 查看更多
一个满足你的调用多种大模型API的轮子,支持目前市面多家第三方大模型,包含ChatGPT、通义千问、文心大模型、混元、盘古、百川智能等; 一套写法兼容所有平台,简单配置即可灵活使用第三方大模型API。
各位大佬们轻点喷
在AI异军突起的时代,我们很多项目都涉及到了AI,其中主要调用API接口。
所以这个轮子的主要目的就是为了解决大家在进行AI开发时,只专注自己的业务,不必关心第三方API的调用。可以快速接入第三方,也可以在项目中快速切换大模型。
目前v.0.0.2版本实现了 go 调用 阿里云通义千问大模型
调用步骤:
安装
代码语言:shell复制go get github.com/soryetong/go-easy-llm
使用
- 添加你自己的配置
config := easyllm.DefaultConfig("your-token", easyai.ChatTypeQWen)
// 第一个参数是你的token, 第二个参数是你的大模型类型
// 可用的大模型, 通过easyai.ChatType***
代码语言:go复制获取如果需要代理请求
config := easyllm.DefaultConfigWithProxy("your-token", easyai.ChatTypeQWen, "your-proxy-url")
- 创建
Chat
客户端client := easyllm.NewChatClient(config)创建客户端可以自定义全局配置
client := easyllm.NewChatClient(config).SetGlobalParams(globalParams)
// 或
client.SetCustomParams(globalParams)
// 两个方法的最终效果都是一样的,设置一个全局的参数
- 调用
Chat
模式大模型一次性回复NormalChat
resp, reply, err := client.NormalChat(context.Background(), &easyai.ChatRequest{
Model: easyai.ChatModelQWenTurbo,
Message: "请介绍一下自己",
})
// resp 为定义的通用类型, `easyai.ChatResponse`
// reply 为大模型返回的文本
代码语言:go复制流式回复
StreamChat
resp, err := client.StreamChat(context.Background(), &easyai.ChatRequest{
Model: easyai.ChatModelQWenTurbo,
Message: "介绍一下你自己",
})
for content := range resp {
fmt.Println(content)
}
单元测试
可移步 go-easy-llm 查看
各位大佬们轻点喷, 有改进意见欢迎讨论