Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/soryetong/go-easy-llm

又一个满足你的调用多种大模型API的轮子,支持目前市面多家第三方大模型,包含ChatGPT、通义千问、文心大模型、混元、盘古、百川智能等; 一套写法兼容所有平台,简单配置即可灵活使用第三方大模型API。
https://github.com/soryetong/go-easy-llm

Last synced: 6 days ago
JSON representation

又一个满足你的调用多种大模型API的轮子,支持目前市面多家第三方大模型,包含ChatGPT、通义千问、文心大模型、混元、盘古、百川智能等; 一套写法兼容所有平台,简单配置即可灵活使用第三方大模型API。

Awesome Lists containing this project

README

        

go-easy-llm

一个满足你的调用多种大模型API的轮子

## 特点

1. 支持目前市面多家第三方大模型
2. 一套写法兼容所有平台
3. 简单配置即可灵活使用第三方
4. 更多等你改进...

## 已支持的第三方

- [阿里 通义千问](https://help.aliyun.com/zh/model-studio/developer-reference/tongyi-qianwen)

- 自定义配置 `globalParams := new(easyai.QWenParameters)` 按需设置参数

- [腾讯 混元](https://cloud.tencent.com/document/api/1729/105701)

- 自定义配置 `globalParams := new(easyai.HunYuanParameters)` 按需设置参数
- 腾讯官方建议使用默认参数, 所以可不设置该参数
- 腾讯使用`secretId`、`secretKey`进行鉴权, 所以需要使用`DefaultConfigWithSecret()`添加配置

## 当前go版本

- go 1.22

## 安装

```shell
go get github.com/soryetong/go-easy-llm
```

## 使用

1. 添加你自己的配置
```go
config := easyllm.DefaultConfig("your-token", easyai.ChatTypeQWen)

// 第一个参数是你的token, 第二个参数是你的大模型类型
// 可用的大模型, 通过easyai.ChatType*** 获取
```
> 如果需要代理请求
```go
config := easyllm.DefaultConfigWithProxy("your-token", easyai.ChatTypeQWen, "your-proxy-url")
```

> 如果使用secretId、secretKey
```go
config := easyllm.DefaultConfigWithSecret("your-secretId", "your-secretKey", easyai.ChatTypeHunYuan)
```

2. 创建 `Chat` 客户端
```go
client := easyllm.NewChatClient(config)
```
> 创建客户端可以自定义全局配置
```go
client := easyllm.NewChatClient(config).SetGlobalParams(globalParams)

// 或
client.SetCustomParams(globalParams)

// 两个方法的最终效果都是一样的,设置一个全局的参数
```

3. 调用 `Chat` 模式大模型
> 一次性回复 `NormalChat`
```go
resp, reply, err := client.NormalChat(context.Background(), &easyai.ChatRequest{
Model: easyai.ChatModelQWenTurbo,
Message: "请介绍一下自己",
})
// resp 为定义的通用类型, `easyai.ChatResponse`
// reply 为大模型返回的文本
```

> 流式回复 `StreamChat`
```go
resp, err := client.StreamChat(context.Background(), &easyai.ChatRequest{
Model: easyai.ChatModelQWenTurbo,
Message: "介绍一下你自己",
})

for content := range resp {
fmt.Println(content)
}
```

## 说明
1. `ChatRequest.Tips`:提示词,用于引导模型生成更符合要求的答案。
2. 目前只支持 `chat` 模式,绘画等功能将在后续完善

## 示例
1. 在unitest目录下有示例代码