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
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)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|