chore: add base64 image chat completion sample (#40)

This commit is contained in:
tomsun28 2025-08-20 17:55:56 +08:00 committed by GitHub
parent f89b0e6db7
commit 5343980209
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 66 additions and 0 deletions

View file

@ -0,0 +1,66 @@
package ai.z.openapi.samples;
import ai.z.openapi.ZhipuAiClient;
import ai.z.openapi.service.model.ChatCompletionCreateParams;
import ai.z.openapi.service.model.ChatCompletionResponse;
import ai.z.openapi.service.model.ChatMessage;
import ai.z.openapi.service.model.ChatMessageRole;
import ai.z.openapi.service.model.ChatThinking;
import ai.z.openapi.service.model.ImageUrl;
import ai.z.openapi.service.model.MessageContent;
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.util.Arrays;
import java.util.Base64;
/**
* Streaming Chat Example
* Demonstrates how to use ZaiClient for streaming chat conversations
*/
public class ChatCompletionBase64Example {
public static void main(String[] args) throws IOException {
// Create client
// for Z.ai use the `ZaiClient`, for Zhipu AI use the ZhipuAiClient
ZhipuAiClient client = ZhipuAiClient.builder().build();
String file = ClassLoader.getSystemResource("grounding.png").getFile();
byte[] bytes = Files.readAllBytes(new File(file).toPath());
Base64.Encoder encoder = Base64.getEncoder();
String base64 = encoder.encodeToString(bytes);
// Create chat request
ChatCompletionCreateParams streamRequest = ChatCompletionCreateParams.builder()
.model("glm-4.5v")
.messages(Arrays.asList(
ChatMessage.builder()
.role(ChatMessageRole.USER.value())
.content(Arrays.asList(
MessageContent.builder()
.type("image_url")
.imageUrl(ImageUrl.builder()
.url(base64)
.build())
.build(),
MessageContent.builder()
.type("text")
.text("What are the pic talk about?")
.build()
))
.build()
))
.thinking(ChatThinking.builder().type("enabled").build())
.build();
ChatCompletionResponse response = client.chat().createChatCompletion(streamRequest);
if (response.isSuccess()) {
Object content = response.getData().getChoices().get(0).getMessage();
System.out.println("Response: " + content);
} else {
System.err.println("Error: " + response.getMsg());
}
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 618 KiB