Go SDK调用对话Chat
更新时间:2025-03-03
安装Go SDK
go get -u 'github.com/openai/openai-go@v0.1.0-alpha.61'
注意:请注意安装最新版本,以上版本是示例
调用示例
非流式示例
- 请求示例
package main
import (
"context"
"fmt"
"github.com/openai/openai-go"
"github.com/openai/openai-go/option"
)
func main() {
client := openai.NewClient(
// 替换下列示例中参数,将your_APIKey替换为真实值,如何获取API Key请查看https://cloud.baidu.com/doc/WENXINWORKSHOP/s/Um2wxbaps#步骤二-获取api-key
option.WithAPIKey("your_APIKey"),
option.WithBaseURL("https://qianfan.baidubce.com/v2/"), // 千帆ModelBuilder平台地址
)
chatCompletion, err := client.Chat.Completions.New(context.TODO(), openai.ChatCompletionNewParams{
Messages: openai.F([]openai.ChatCompletionMessageParamUnion{
openai.ChatCompletionMessage{Content: "你好", Role: "user"},
}),
Model: openai.F("ernie-tiny-8k"),//模型对应的model值,请查看支持的模型列表:https://cloud.baidu.com/doc/WENXINWORKSHOP/s/wm7ltcvgc
})
if err != nil {
panic(err.Error())
}
fmt.Println(chatCompletion.Choices[0].Message.Content)
}
- 返回示例
你好!有什么可以帮你的吗?
流式示例
- 请求示例
package main
import (
"context"
"fmt"
"github.com/openai/openai-go"
"github.com/openai/openai-go/option"
)
func main() {
client := openai.NewClient(
// 替换下列示例中参数,将your_APIKey替换为真实值,如何获取API Key请查看https://cloud.baidu.com/doc/WENXINWORKSHOP/s/Um2wxbaps#步骤二-获取api-key
option.WithAPIKey("your_APIKey"),
option.WithBaseURL("https://qianfan.baidubce.com/v2/"), // 千帆ModelBuilder平台地址
)
stream := client.Chat.Completions.NewStreaming(context.TODO(), openai.ChatCompletionNewParams{
// Messages信息
Messages: openai.F([]openai.ChatCompletionMessageParamUnion{
openai.ChatCompletionMessage{Content: "你好", Role: "user"},
}),
Model: openai.F("ernie-tiny-8k"),//模型对应的model值,请查看支持的模型列表:https://cloud.baidu.com/doc/WENXINWORKSHOP/s/wm7ltcvgc
})
for stream.Next() {
fmt.Println(stream.Current().Choices[0].Delta.Content)
}
}
- 返回示例
你好!
有什么可以帮助你的吗
?
自定义Headers和传入自定义参数示例
- 请求示例
package main
import (
"context"
"fmt"
"github.com/openai/openai-go"
"github.com/openai/openai-go/option"
)
func main() {
// 创建表示 "safety" 的内部 map
safetyMap := map[string]string{
"input_level": "none",
}
// 创建表示 "web_search" 的内部 map
webSearchMap := map[string]bool{
"enable": true,
"enable_trace": true,
}
client := openai.NewClient(
// 替换下列示例中参数,将your_APIKey替换为真实值,如何获取API Key请查看https://cloud.baidu.com/doc/WENXINWORKSHOP/s/Um2wxbaps#步骤二-获取api-key
option.WithAPIKey("your_APIKey"),
option.WithBaseURL("https://qianfan.baidubce.com/v2/"), // 千帆ModelBuilder平台地址
)
chatCompletion, err := client.Chat.Completions.New(
context.TODO(),
openai.ChatCompletionNewParams{
Messages: openai.F([]openai.ChatCompletionMessageParamUnion{
openai.ChatCompletionMessage{Content: "今天上海天气怎么样", Role: "user"},
}),
Model: openai.F("ernie-3.5-8k"),//模型对应的model值,请查看支持的模型列表:https://cloud.baidu.com/doc/WENXINWORKSHOP/s/wm7ltcvgc
},
option.WithHeader("key1", "value1"), // 自定义 Header,覆盖
option.WithHeaderAdd("appid", "app-xxxxxxx"), // 自定义appid
option.WithJSONSet("safety", safetyMap), // 自定义安全
option.WithJSONSet("web_search", webSearchMap), //开启搜索增强
)
if err != nil {
panic(err.Error())
}
fmt.Println(chatCompletion.Choices[0].Message.Content)
}
- 返回示例
今天上海的天气情况如下:
### 一、实时天气概况
* **天气现象**:多云。
* **温度**:当前温度为9℃,体感温度为7℃。
* **湿度**:相对湿度为84%。
* **风力**:西风2级。
* **紫外线指数**:1,属于紫外线最弱级别,外出时可轻微防护。
### 二、未来短时间天气预报(今天)
* **日间**:
+ 天气现象:中雨,降水概率为90%。
+ 风向风力:西北风3级。
+ 最高气温:11℃。
* **夜间**:
+ 天气现象:小雨,降水概率为80%。
+ 风向风力:西风3级。
+ 最低气温:7℃。
### 三、生活气象指数
* **钓鱼**:不太适宜。
* **穿衣**:建议穿大衣类衣物,因为天气较凉。
* **洗车**:不宜,因为近期有雨。
* **运动**:不适宜,可能受天气影响。
* **旅游**:一般,外出时需携带雨具以应对可能的降雨。
综上所述,今天上海天气以多云转中雨为主,夜间可能转为小雨,气温适中但略偏低,湿度较大,风力适中。建议市民外出时携带雨具并注意适当增添衣物以防感冒。%