"github.com/volcengine/ark-runtime-go/arkruntime"
arkmodel "github.com/volcengine/ark-runtime-go/arkruntime/model"
"github.com/volcengine/ark-runtime-go/arkruntime/model/chat"
client := arkruntime.NewClientWithApiKey(
os.Getenv("ARK_API_KEY"),
// The base URL for model invocation
arkruntime.WithBaseUrl("https://ark.cn-beijing.volces.com/api/v3"),
ctx := context.Background()
fmt.Println("----- streaming request -----")
req := &chat.ChatCompletionRequest{
// Replace with Model ID
Model: "doubao-seed-2-1-pro-260628",
Messages: []chat.ChatCompletionRequestMessage{
systemMessage("你是 AI 人工智能助手"),
userMessage("常见的十字花科植物有哪些?"),
stream, err := client.CreateChatCompletionStream(ctx, req)
apiErr := &arkmodel.APIError{}
if errors.As(err, &apiErr) {
fmt.Printf("stream chat error: %v\n", apiErr)
recv, err := stream.Recv()
apiErr := &arkmodel.APIError{}
if errors.As(err, &apiErr) {
fmt.Printf("stream chat error: %v\n", apiErr)
if len(recv.Choices) > 0 {
fmt.Print(recv.Choices[0].Delta.Content.Or(""))
func systemMessage(content string) chat.ChatCompletionRequestMessage {
return chat.ChatCompletionRequestMessage{
OneOf: chat.NewChatCompletionRequestSystemMessageChatCompletionRequestMessageSum(
chat.ChatCompletionRequestSystemMessage{
Role: chat.ChatCompletionRequestSystemMessageRoleSystem,
Content: chat.NewStringChatCompletionMessageContent(content),
func userMessage(content string) chat.ChatCompletionRequestMessage {
return chat.ChatCompletionRequestMessage{
OneOf: chat.NewChatCompletionRequestUserMessageChatCompletionRequestMessageSum(
chat.ChatCompletionRequestUserMessage{
Role: chat.ChatCompletionRequestUserMessageRoleUser,
Content: chat.NewStringChatCompletionMessageContent(content),