You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

146 lines
4.2 KiB

package doubao_test
import (
"context"
"yunyan/sys/doubao"
"fmt"
"io"
"testing"
"github.com/volcengine/volcengine-go-sdk/service/arkruntime"
"github.com/volcengine/volcengine-go-sdk/service/arkruntime/model"
"github.com/volcengine/volcengine-go-sdk/volcengine"
)
func Test_Sys_Chat(t *testing.T) {
if sys, err := doubao.NewSys(
doubao.SetApikey("168deb3d-fd0c-4912-b9f1-aaee5c6743e6"),
doubao.SetModel("doubao-1-5-pro-32k-250115"),
); err != nil {
fmt.Printf("Sys Init err:%v", err)
} else {
// xal, _ := axml.NewSys()
result, err := sys.Chat(context.Background(), []doubao.Message{{
Role: "user",
Content: "茅台的股价",
}})
fmt.Printf(" result:%v err:%v", result, err)
}
}
func Test_Sys_SDK(t *testing.T) {
client := arkruntime.NewClientWithApiKey(
"418ec475-e2dc-4b76-8aca-842d81bc3466", //ARK_API_KEY 需要替换为您在平台创建的 API Key
arkruntime.WithBaseUrl("https://ark.cn-beijing.volces.com/api/v3"),
arkruntime.WithRegion("cn-beijing"),
)
ctx := context.Background()
fmt.Println("----- standard request -----")
req := model.BotChatCompletionRequest{
BotId: "bot-20250328144214-rrln6", //bot-20250328144214-rrln6 为您当前的智能体的ID,注意此处与Chat API存在差异。差异对比详见 SDK使用指南
Messages: []*model.ChatCompletionMessage{
{
Role: model.ChatMessageRoleSystem,
Content: &model.ChatCompletionMessageContent{
StringValue: volcengine.String("你是豆包,是由字节跳动开发的 AI 人工智能助手"),
},
},
{
Role: model.ChatMessageRoleUser,
Content: &model.ChatCompletionMessageContent{
StringValue: volcengine.String("武汉今日天气如何?"),
},
},
},
}
resp, err := client.CreateBotChatCompletion(ctx, req)
if err != nil {
fmt.Printf("standard chat error: %v\n", err)
return
}
fmt.Println(*resp.Choices[0].Message.Content.StringValue)
if resp.References != nil {
for _, ref := range resp.References {
fmt.Printf("reference url: %s\n", ref.Url)
}
}
fmt.Println("----- multiple rounds request -----")
req = model.BotChatCompletionRequest{
BotId: "bot-20250328144214-rrln6", //bot-20250328144214-rrln6 为您当前的智能体的ID,注意此处与Chat API存在差异。差异对比详见 SDK使用指南
Messages: []*model.ChatCompletionMessage{ //通过会话传递历史信息,模型会参考上下文消息
{
Role: model.ChatMessageRoleSystem,
Content: &model.ChatCompletionMessageContent{
StringValue: volcengine.String("你是豆包,字节跳动开发的 AI 人工智能助手"),
},
},
{
Role: model.ChatMessageRoleUser,
Content: &model.ChatCompletionMessageContent{
StringValue: volcengine.String("茅台今日股价如何?"),
},
},
},
}
resp, err = client.CreateBotChatCompletion(ctx, req)
if err != nil {
fmt.Printf("multiple chat error: %v\n", err)
return
}
fmt.Println(*resp.Choices[0].Message.Content.StringValue)
if resp.References != nil {
for _, ref := range resp.References {
fmt.Printf("reference url: %s\n", ref.Url)
}
}
fmt.Println("----- streaming request -----")
req = model.BotChatCompletionRequest{
BotId: "bot-20250328144214-rrln6", //bot-20250328144214-rrln6 为您当前的智能体的ID,注意此处与Chat API存在差异。差异对比详见 SDK使用指南
Messages: []*model.ChatCompletionMessage{
{
Role: model.ChatMessageRoleSystem,
Content: &model.ChatCompletionMessageContent{
StringValue: volcengine.String("你是豆包,是由字节跳动开发的 AI 人工智能助手"),
},
},
{
Role: model.ChatMessageRoleUser,
Content: &model.ChatCompletionMessageContent{
StringValue: volcengine.String("深圳今日天气如何?"),
},
},
},
}
stream, err := client.CreateBotChatCompletionStream(ctx, req)
if err != nil {
fmt.Printf("stream chat error: %v\n", err)
return
}
defer stream.Close()
for {
recv, err := stream.Recv()
if err == io.EOF {
return
}
if err != nil {
fmt.Printf("Stream chat error: %v\n", err)
return
}
if len(recv.Choices) > 0 {
fmt.Print(recv.Choices[0].Delta.Content)
if recv.References != nil {
for _, ref := range recv.References {
fmt.Printf("reference url: %s\n", ref.Url)
}
}
}
}
}