Java SDK调用对话Chat
更新时间:2025-09-28
安装Java SDK
注意:需要Java 8及以后版本。
- Gradle
Plain Text
1implementation("com.openai:openai-java:0.22.0")
说明:建议使用最新版本,上述版本号为示例
- Maven
Plain Text
1<dependency>
2 <groupId>com.openai</groupId>
3 <artifactId>openai-java</artifactId>
4 <version>0.22.0</version> # 按需更新版本号
5</dependency>
说明:建议使用最新版本,上述版本号为示例
调用示例
非流式
- 请求示例
Java
1import com.openai.client.OpenAIClient;
2import com.openai.client.okhttp.OpenAIOkHttpClient;
3import com.openai.models.ChatCompletion;
4import com.openai.models.ChatCompletionCreateParams;
5import com.openai.models.ChatCompletionUserMessageParam;
6
7public class main {
8 public static void main(String[] args) {
9 OpenAIClient client = OpenAIOkHttpClient.builder()
10 .apiKey("your_APIKey") //将your_APIKey替换为真实值,如何获取API Key请查看:https://console.bce.baidu.com/iam/#/iam/apikey/list
11 .baseUrl("https://qianfan.baidubce.com/v2/") //千帆ModelBuilder平台地址
12 .build();
13
14 ChatCompletionCreateParams params = ChatCompletionCreateParams.builder()
15 .addUserMessage("你好") // 对话messages信息
16 .model("deepseek-r1-distill-qianfan-70b") // 模型对应的model值,请查看支持的模型列表:https://cloud.baidu.com/doc/qianfan-docs/s/7m95lyy43
17 .build();
18
19 ChatCompletion chatCompletion = client.chat().completions().create(params);
20 System.out.println(chatCompletion.choices().get(0).message().content());
21 }
22}
- 返回示例
Text
1你好!有什么可以帮你的吗?
流式
- 请求示例
Java
1import com.openai.client.OpenAIClient;
2import com.openai.client.okhttp.OpenAIOkHttpClient;
3import com.openai.core.http.StreamResponse;
4import com.openai.models.ChatCompletionChunk;
5import com.openai.models.ChatCompletionCreateParams;
6import com.openai.models.ChatCompletionUserMessageParam;
7
8import java.util.function.Consumer;
9
10public class main {
11 public static void main(String[] args) {
12 OpenAIClient client = OpenAIOkHttpClient.builder()
13 .apiKey("your_APIKey") //将your_APIKey替换为真实值,如何获取API Key请查看:https://console.bce.baidu.com/iam/#/iam/apikey/list
14 .baseUrl("https://qianfan.baidubce.com/v2/") //千帆ModelBuilder平台地址
15 .build();
16
17 ChatCompletionCreateParams params = ChatCompletionCreateParams.builder()
18 .addUserMessage("你好") // 对话messages信息
19 .model("deepseek-r1-distill-qianfan-70b") // 模型对应的model值,请查看支持的模型列表:https://cloud.baidu.com/doc/qianfan-docs/s/7m95lyy43
20 .build();
21
22 StreamResponse<ChatCompletionChunk> chatCompletion = client.chat().completions().createStreaming(params);
23 Consumer<ChatCompletionChunk> consumer = s -> System.out.println(s.choices().get(0).delta().content());
24 chatCompletion.stream().forEach(consumer);
25 }
26}
- 返回示例
Text
1你好!
2很高兴和你交流。
3很高兴见到你,有什么想问的吗?
自定义 Headers 与自定义 Body 参数
- 请求示例
Java
1import com.openai.client.OpenAIClient;
2import com.openai.client.okhttp.OpenAIOkHttpClient;
3import com.openai.core.JsonValue;
4import com.openai.models.ChatCompletionCreateParams;
5import com.openai.models.ChatCompletion;
6import java.util.HashMap;
7import java.util.Map;
8
9public class Main {
10 public static void main(String[] args) {
11 OpenAIClient client = OpenAIOkHttpClient.builder()
12 .apiKey("your_APIKey") //将your_APIKey替换为真实值,如何获取API Key请查看:https://console.bce.baidu.com/iam/#/iam/apikey/list
13 .baseUrl("https://qianfan.baidubce.com/v2/") //千帆ModelBuilder平台地址
14 .build();
15
16 Map<String, String> safetyMap = new HashMap<>();
17 safetyMap.put("input_level", "standard");
18
19 Map<String, Boolean> websearchMap = new HashMap<>();
20 websearchMap.put("enable", true);
21 websearchMap.put("enable_trace", true);
22
23
24 // 创建一个 HashMap 来表示整个 JSON 对象
25 Map<String, Map<String, String>> extraDataMap = new HashMap<>();
26 extraDataMap.put("safety", safetyMap);
27
28 ChatCompletionCreateParams params = ChatCompletionCreateParams.builder()
29 .addUserMessage("今天上海天气怎么样") // 对话messages信息
30 .model("deepseek-r1-distill-qianfan-70b") //模型对应的model值,请查看支持的模型列表:https://cloud.baidu.com/doc/qianfan-docs/s/7m95lyy43
31 .putAdditionalBodyProperty("safety", JsonValue.from(safetyMap))
32 .putAdditionalBodyProperty("web_search", JsonValue.from(websearchMap))
33 .putAdditionalHeader("appid", "app-xxxxxxxx")
34 .build();
35
36 ChatCompletion chatCompletion = client.chat().completions().create(params);
37 System.out.println(chatCompletion.choices().get(0).message().content());
38 }
39}
- 返回示例
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综上所述,今天上海天气以多云转中雨为主,夜间可能转为小雨,气温适中但略偏低,湿度较大,风力适中。建议市民外出时携带雨具并注意适当增添衣物以防感冒。%