Skip to content

Commit 2689dba

Browse files
authored
Merge pull request baidubce#904 from zhangairku/go-support-CustomMetadata
Go support custom metadata
2 parents 7617629 + fb61461 commit 2689dba

File tree

2 files changed

+97
-0
lines changed

2 files changed

+97
-0
lines changed

go/appbuilder/app_builder_client_data.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,8 @@ type AppBuilderClientRunRequest struct {
6969
ToolChoice *ToolChoice `json:"tool_choice"`
7070
Action *Action `json:"action"`
7171
McpAuthorization *[]map[string]interface{} `json:"mcp_authorization,omitempty"`
72+
Parameters map[string]any `json:"parameters,omitempty"`
73+
CustomMetadata *CustomMetadata `json:"custom_metadata,omitempty"`
7274
}
7375

7476
type AppBuilderClientUploadFileRequest struct {
@@ -127,6 +129,10 @@ type ActionInterruptEvent struct {
127129
Type string `json:"type"`
128130
}
129131

132+
type CustomMetadata struct {
133+
OverrideRoleInstruction string `json:"override_role_instruction"`
134+
}
135+
130136
func NewResumeAction(eventId string) *Action {
131137
return NewAction("resume", eventId, "chat")
132138
}

go/appbuilder/app_builder_client_test.go

Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -923,3 +923,94 @@ func TestAppBuilderClientUploadFile(t *testing.T) {
923923
t.Logf("%s========== OK: %s ==========%s", "\033[32m", t.Name(), "\033[0m")
924924
}
925925
}
926+
927+
func TestAppBuilderClientRunParameters(t *testing.T) {
928+
t.Parallel() // 并发运行
929+
// 测试逻辑
930+
config, err := NewSDKConfig("", "")
931+
if err != nil {
932+
t.Logf("%s========== FAIL: %s ==========%s", "\033[31m", t.Name(), "\033[0m")
933+
t.Fatalf("new http client config failed: %v", err)
934+
}
935+
936+
appID := "2313e282-baa6-4db6-92dd-a21e99cfd59e"
937+
client, err := NewAppBuilderClient(appID, config)
938+
if err != nil {
939+
t.Logf("%s========== FAIL: %s ==========%s", "\033[31m", t.Name(), "\033[0m")
940+
t.Fatalf("new AppBuilderClient instance failed")
941+
}
942+
943+
conversationID, err := client.CreateConversation()
944+
if err != nil {
945+
t.Logf("%s========== FAIL: %s ==========%s", "\033[31m", t.Name(), "\033[0m")
946+
t.Fatalf("create conversation failed: %v", err)
947+
}
948+
949+
res, err := client.Run(AppBuilderClientRunRequest{
950+
AppID: appID,
951+
Query: "国庆长假",
952+
Stream: false,
953+
ConversationID: conversationID,
954+
Parameters: map[string]any{
955+
"city": "上海",
956+
},
957+
})
958+
if err != nil {
959+
t.Errorf("run err: %v", err)
960+
}
961+
962+
for answer, err := res.Next(); err == nil; answer, err = res.Next() {
963+
t.Log(answer.Answer)
964+
}
965+
966+
}
967+
func TestAppBuilderClientRunCustomMetadata(t *testing.T) {
968+
t.Parallel() // 并发运行
969+
// 测试逻辑
970+
config, err := NewSDKConfig("", "")
971+
if err != nil {
972+
t.Logf("%s========== FAIL: %s ==========%s", "\033[31m", t.Name(), "\033[0m")
973+
t.Fatalf("new http client config failed: %v", err)
974+
}
975+
976+
appID := "a3654cd9-378a-4b46-a33b-2259ca3b304e"
977+
client, err := NewAppBuilderClient(appID, config)
978+
if err != nil {
979+
t.Logf("%s========== FAIL: %s ==========%s", "\033[31m", t.Name(), "\033[0m")
980+
t.Fatalf("new AppBuilderClient instance failed")
981+
}
982+
983+
conversationID, err := client.CreateConversation()
984+
if err != nil {
985+
t.Logf("%s========== FAIL: %s ==========%s", "\033[31m", t.Name(), "\033[0m")
986+
t.Fatalf("create conversation failed: %v", err)
987+
}
988+
989+
res, err := client.Run(AppBuilderClientRunRequest{
990+
AppID: appID,
991+
Query: "我要回老家相亲",
992+
Stream: false,
993+
ConversationID: conversationID,
994+
CustomMetadata: &CustomMetadata{
995+
OverrideRoleInstruction: `# 角色任务\n" +
996+
"作为高情商大师,你的主要任务是根据提问,做出最佳的建议。\n" +
997+
"\n" +
998+
"# 工具能力\n" +
999+
"\n" +
1000+
"无工具集提供\n" +
1001+
"\n" +
1002+
"# 要求与限制\n" +
1003+
"\n" +
1004+
"1. 输出内容的风格为幽默\n" +
1005+
"2.输出的字数限制为100字以内"`,
1006+
},
1007+
})
1008+
if err != nil {
1009+
t.Errorf("run err: %v", err)
1010+
}
1011+
1012+
for answer, err := res.Next(); err == nil; answer, err = res.Next() {
1013+
t.Log(answer.Answer)
1014+
}
1015+
1016+
}

0 commit comments

Comments
 (0)