From f51a28c6ece6409e75a30d4243fadeaef8b5bb65 Mon Sep 17 00:00:00 2001 From: zhangxin Date: Mon, 1 Dec 2025 10:08:23 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E7=BB=84=E4=BB=B6=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E8=AF=B7=E6=B1=82=E5=A4=B4=E9=83=A8=E2=80=98X-Appbuilder-From?= =?UTF-8?q?=E2=80=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- go/appbuilder/component_client.go | 1 + go/appbuilder/component_client_test.go | 43 +++++++++++++++++++ java/pom.xml | 2 +- .../componentclient/ComponentClient.java | 1 + .../appbuilder/ComponentClientTest.java | 30 +++++++++++++ python/__init__.py | 2 +- .../component_client/component_client.py | 1 + python/tests/test_component_client.py | 17 ++++++++ setup.py | 2 +- 9 files changed, 96 insertions(+), 3 deletions(-) diff --git a/go/appbuilder/component_client.go b/go/appbuilder/component_client.go index 4ab5d2aa2..294e259ff 100644 --- a/go/appbuilder/component_client.go +++ b/go/appbuilder/component_client.go @@ -65,6 +65,7 @@ func (t *ComponentClient) Run(component, version, action string, stream bool, pa request.URL = serviceURL request.Method = "POST" header.Set("Content-Type", "application/json") + header.Set("X-Appbuilder-From", "sdk") request.Header = header req := ComponentRunRequest{ diff --git a/go/appbuilder/component_client_test.go b/go/appbuilder/component_client_test.go index aad7b2fae..5fc90d564 100644 --- a/go/appbuilder/component_client_test.go +++ b/go/appbuilder/component_client_test.go @@ -87,3 +87,46 @@ func TestComponentClient(t *testing.T) { t.Logf("%s========== OK: %s ==========%s", "\033[32m", t.Name(), "\033[0m") } } + +func TestComponentClientHeader(t *testing.T) { + os.Setenv("APPBUILDER_LOGLEVEL", "DEBUG") + config, err := NewSDKConfig("", "") + if err != nil { + t.Logf("%s========== FAIL: %s ==========%s", "\033[31m", t.Name(), "\033[0m") + t.Fatalf("new http client config failed: %v", err) + } + + componentID := "c-wf-a39ee06c-808f-4a19-9f5f-544044283749" + parameters := map[string]any{ + SysOriginQuery: "梦到巨人,是怎么回事", + } + componentClient, err := NewComponentClient(config) + if err != nil { + t.Error(err) + return + } + + ret, err := componentClient.Run(componentID, "latest", "", false, parameters) + if err != nil { + t.Error(err) + return + } + + for answer, err := ret.Next(); err == nil; answer, err = ret.Next() { + t.Log(answer.Content[0].Text["info"]) + } + + ret2, err := componentClient.Run(componentID, "latest", "", true, parameters) + if err != nil { + t.Error(err) + return + } + + for answer, err := ret2.Next(); err == nil; answer, err = ret2.Next() { + if len(answer.Content) == 0 { + continue + } + t.Log(answer.Content[0].Text["info"]) + } + +} diff --git a/java/pom.xml b/java/pom.xml index 86faf7398..99a03d4ab 100644 --- a/java/pom.xml +++ b/java/pom.xml @@ -6,7 +6,7 @@ com.baidubce appbuilder - 1.1.1 + 1.1.4 jar app-builder diff --git a/java/src/main/java/com/baidubce/appbuilder/console/componentclient/ComponentClient.java b/java/src/main/java/com/baidubce/appbuilder/console/componentclient/ComponentClient.java index 9afc1883b..83a963b91 100644 --- a/java/src/main/java/com/baidubce/appbuilder/console/componentclient/ComponentClient.java +++ b/java/src/main/java/com/baidubce/appbuilder/console/componentclient/ComponentClient.java @@ -67,6 +67,7 @@ public ComponentClientIterator run(String componentId, String version, String ac ClassicHttpRequest postRequest = httpClient.createPostRequestV2(urlSuffix, new StringEntity(jsonBody, StandardCharsets.UTF_8)); postRequest.setHeader("Content-Type", "application/json"); + postRequest.setHeader("X-Appbuilder-From", "sdk"); HttpResponse> response = httpClient.executeSSE(postRequest, ComponentClientRunResponse.class); return new ComponentClientIterator(response.getBody()); diff --git a/java/src/test/java/com/baidubce/appbuilder/ComponentClientTest.java b/java/src/test/java/com/baidubce/appbuilder/ComponentClientTest.java index 9c8f9f163..460fe3e55 100644 --- a/java/src/test/java/com/baidubce/appbuilder/ComponentClientTest.java +++ b/java/src/test/java/com/baidubce/appbuilder/ComponentClientTest.java @@ -51,4 +51,34 @@ public void TestComponentClientRunStream() throws IOException, AppBuilderServerE } assertNotNull(text); } + + @Test + public void TestComponentClientHeaderRun() throws IOException, AppBuilderServerException { + this.componentId = "c-wf-a39ee06c-808f-4a19-9f5f-544044283749"; + ComponentClient client = new ComponentClient(); + Map parameters = new HashMap<>(); + parameters.put(ComponentClientRunRequest.SysOriginQuery, "梦到巨人"); + ComponentClientIterator iter = client.run(componentId, "latest", "", false, parameters); + while (iter.hasNext()) { + ComponentClientRunResponse response = iter.next(); + System.out.println((response.getContent()[0].getText().get("info"))); + } + } + + @Test + public void TestComponentClientHeaderRunStream() throws IOException, AppBuilderServerException { + this.componentId = "c-wf-a39ee06c-808f-4a19-9f5f-544044283749"; + ComponentClient client = new ComponentClient(); + Map parameters = new HashMap<>(); + parameters.put(ComponentClientRunRequest.SysOriginQuery, "梦到巨人"); + ComponentClientIterator iter = client.run(componentId, "latest", "", true, parameters); + + while (iter.hasNext()) { + ComponentClientRunResponse response = iter.next(); + if (response.getContent().length > 0) { + System.out.println((response.getContent()[0].getText().get("info"))); + } + } + + } } diff --git a/python/__init__.py b/python/__init__.py index 030c1ade5..6679b2a57 100644 --- a/python/__init__.py +++ b/python/__init__.py @@ -13,7 +13,7 @@ # limitations under the License. -__version__ = '1.1.3' +__version__ = '1.1.4' import os import sys diff --git a/python/core/console/component_client/component_client.py b/python/core/console/component_client/component_client.py index 915d20781..c9252b3b7 100644 --- a/python/core/console/component_client/component_client.py +++ b/python/core/console/component_client/component_client.py @@ -62,6 +62,7 @@ def run( """ headers = self.http_client.auth_header_v2() headers["Content-Type"] = "application/json" + headers["X-Appbuilder-From"] = "sdk" url_suffix = f"/components/{component_id}" if version is not None: diff --git a/python/tests/test_component_client.py b/python/tests/test_component_client.py index 756bfca23..7c5691e2e 100644 --- a/python/tests/test_component_client.py +++ b/python/tests/test_component_client.py @@ -35,6 +35,23 @@ def test_component_client_stream(self): for data in res.content: print(data) + def test_component_header_client(self): + appbuilder.logger.setLoglevel("DEBUG") + client = appbuilder.ComponentClient() + + res = client.run(component_id="c-wf-a39ee06c-808f-4a19-9f5f-544044283749", + version="latest", sys_origin_query="梦到巨人") + print(res.content) + + def test_component_header_client_stream(self): + appbuilder.logger.setLoglevel("DEBUG") + client = appbuilder.ComponentClient() + + res = client.run(component_id="c-wf-a39ee06c-808f-4a19-9f5f-544044283749", + version="latest", sys_origin_query="梦到巨人", stream=True) + for data in res.content: + print(data) + if __name__ == "__main__": unittest.main() diff --git a/setup.py b/setup.py index d2b4bc7bd..d8512273f 100755 --- a/setup.py +++ b/setup.py @@ -55,7 +55,7 @@ setup( name="appbuilder-sdk", # NOTE(chengmo): 修改此版本号时,请注意同时修改 __init__.py 中的 __version__ - version="1.1.3", + version="1.1.4", author="dongdaxiang", author_email="dongdaxiang@baidu.com", packages=packages, From 1abc97bcf496c9b9ac3ea9049aed279874bdfb50 Mon Sep 17 00:00:00 2001 From: zhangxin Date: Thu, 11 Dec 2025 15:13:47 +0800 Subject: [PATCH 2/3] fix_issue_914 --- python/mcp_server/server.py | 1 - 1 file changed, 1 deletion(-) diff --git a/python/mcp_server/server.py b/python/mcp_server/server.py index a99c3933b..524d3fdf1 100644 --- a/python/mcp_server/server.py +++ b/python/mcp_server/server.py @@ -33,7 +33,6 @@ try: from mcp.server.fastmcp import FastMCP - from mcp.server.fastmcp.server import _convert_to_content from mcp.types import ( ImageContent, TextContent, From 21d7c65ea03d249354e2f3d7223e3efab09c6fe4 Mon Sep 17 00:00:00 2001 From: zhangxin Date: Fri, 12 Dec 2025 12:06:16 +0800 Subject: [PATCH 3/3] fix_issue_914 --- python/mcp_server/server.py | 1 + requirements.txt | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/python/mcp_server/server.py b/python/mcp_server/server.py index 524d3fdf1..a99c3933b 100644 --- a/python/mcp_server/server.py +++ b/python/mcp_server/server.py @@ -33,6 +33,7 @@ try: from mcp.server.fastmcp import FastMCP + from mcp.server.fastmcp.server import _convert_to_content from mcp.types import ( ImageContent, TextContent, diff --git a/requirements.txt b/requirements.txt index 1df7f80f7..cde83ca08 100644 --- a/requirements.txt +++ b/requirements.txt @@ -14,4 +14,5 @@ opentelemetry-api>=1.23.0 pydub>=0.10.0 ffmpeg aiohttp -urllib3<2.0.0 \ No newline at end of file +urllib3<2.0.0 +mcp==1.3.0 \ No newline at end of file