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