From b3e0808c5f4fc44fa0b623d99a42b38f06136ddc Mon Sep 17 00:00:00 2001 From: zhengweijun Date: Thu, 24 Jul 2025 15:35:39 +0800 Subject: [PATCH 1/4] Update version to 2.1.5.20250724 in pyproject.toml and __version__.py; refactor AgentsError class to inherit from BaseModel; add new tests for correction functionality in test_agents.py. --- pyproject.toml | 16 ++++----- tests/integration_tests/test_agents.py | 43 +++++++++++++++++++++++ zhipuai/__version__.py | 3 +- zhipuai/types/agents/agents_completion.py | 2 +- 4 files changed, 51 insertions(+), 13 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 37f02c0..060b8bb 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "zhipuai" -version = "2.1.5.20250716" +version = "2.1.5.20250724" description = "A SDK library for accessing big model apis from ZhipuAI" authors = ["Zhipu AI"] readme = "README.md" @@ -45,15 +45,13 @@ cli = ["typer"] # An extra used to be able to add extended testing. # Please use new-line on formatting to make it easier to add new packages without # merge-conflicts -extended_testing = [ - "langchain", -] +extended_testing = ["langchain"] [tool.ruff.lint] select = [ - "E", # pycodestyle - "F", # pyflakes - "I", # isort + "E", # pycodestyle + "F", # pyflakes + "I", # isort "T201", # print ] @@ -66,9 +64,7 @@ indent-style = "tab" docstring-code-format = true [tool.coverage.run] -omit = [ - "tests/*", -] +omit = ["tests/*"] [build-system] requires = ["poetry-core>=1.0.0", "poetry-plugin-pypi-mirror==0.4.2"] diff --git a/tests/integration_tests/test_agents.py b/tests/integration_tests/test_agents.py index 7cebd9f..06f7fad 100644 --- a/tests/integration_tests/test_agents.py +++ b/tests/integration_tests/test_agents.py @@ -52,3 +52,46 @@ def test_completions_stream(logging_conf): print(err) except zhipuai.core._errors.APIStatusError as err: print(err) + +def test_correction(): + client = ZhipuAI() # 请替换为实际API密钥 + + response = client.agents.invoke( + agent_id="intelligent_education_correction_agent", + messages=[ + { + "role": "user", + "content": [ + { + "type": "image_url", + "image_url": "https://b0.bdstatic.com/e24937f1f6b9c0ff6895e1012c981515.jpg" + } + ] + } + ] + ) + print(response) + +def test_correction_result(image_id,uuids,trace_id): + client = ZhipuAI() + + response = client.agents.async_result( + agent_id="intelligent_education_correction_polling", + custom_variables={ + "images": [ + { + "image_id": image_id, + "uuids": uuids + } + ], + "trace_id": trace_id + } + ) + print(response) + +def main(): + test_correction() + # test_correction_result(image_id,uuids,trace_id) + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/zhipuai/__version__.py b/zhipuai/__version__.py index 712e5cb..355f8d5 100644 --- a/zhipuai/__version__.py +++ b/zhipuai/__version__.py @@ -1,2 +1 @@ - -__version__ = 'v2.1.0' \ No newline at end of file +__version__ = 'v2.1.5.20250724' \ No newline at end of file diff --git a/zhipuai/types/agents/agents_completion.py b/zhipuai/types/agents/agents_completion.py index 1f37a24..20fa271 100644 --- a/zhipuai/types/agents/agents_completion.py +++ b/zhipuai/types/agents/agents_completion.py @@ -19,7 +19,7 @@ class AgentsCompletionChoice(BaseModel): finish_reason: str message: AgentsCompletionMessage -class AgentsError: +class AgentsError(BaseModel): code: Optional[str] = None message: Optional[str] = None From 32c7ec72d40817194a5022b00dfe516b64ce8973 Mon Sep 17 00:00:00 2001 From: zhengweijun Date: Thu, 24 Jul 2025 15:39:01 +0800 Subject: [PATCH 2/4] fix --- zhipuai/types/agents/agents_completion_chunk.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zhipuai/types/agents/agents_completion_chunk.py b/zhipuai/types/agents/agents_completion_chunk.py index 32911c1..9df8624 100644 --- a/zhipuai/types/agents/agents_completion_chunk.py +++ b/zhipuai/types/agents/agents_completion_chunk.py @@ -26,7 +26,7 @@ class AgentsCompletionUsage(BaseModel): completion_tokens: int total_tokens: int -class AgentsError: +class AgentsError(BaseModel): code: Optional[str] = None message: Optional[str] = None From 778ad60af23956810a5c037e74ca99aadb05bb15 Mon Sep 17 00:00:00 2001 From: zhengweijun Date: Thu, 24 Jul 2025 15:45:58 +0800 Subject: [PATCH 3/4] add test --- tests/unit_tests/test_agents.py | 34 +++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 tests/unit_tests/test_agents.py diff --git a/tests/unit_tests/test_agents.py b/tests/unit_tests/test_agents.py new file mode 100644 index 0000000..d8108a1 --- /dev/null +++ b/tests/unit_tests/test_agents.py @@ -0,0 +1,34 @@ +def test_agents_completion_error_field(): + from zhipuai.types.agents.agents_completion import AgentsCompletion, AgentsError, AgentsCompletionChoice, AgentsCompletionMessage, AgentsCompletionUsage + + # 构造一个 AgentsError + error = AgentsError(code="404", message="Not Found") + + # 构造一个完整的 AgentsCompletion + completion = AgentsCompletion( + agent_id="test_agent", + conversation_id="conv_1", + status="failed", + choices=[ + AgentsCompletionChoice( + index=0, + finish_reason="error", + message=AgentsCompletionMessage(content="error", role="system") + ) + ], + request_id="req_1", + id="id_1", + usage=AgentsCompletionUsage(prompt_tokens=1, completion_tokens=1, total_tokens=2), + error=error + ) + + # 检查 error 字段是否为 AgentsError 实例 + assert isinstance(completion.error, AgentsError) + assert completion.error.code == "404" + assert completion.error.message == "Not Found" + + # 检查序列化 + as_dict = completion.model_dump() + assert as_dict["error"]["code"] == "404" + assert as_dict["error"]["message"] == "Not Found" + print("test_agents_completion_error_field passed.") \ No newline at end of file From 8a1730fda72c8bb2c8a1acf2a09a2f2ea40750fd Mon Sep 17 00:00:00 2001 From: zhengweijun Date: Thu, 24 Jul 2025 15:46:47 +0800 Subject: [PATCH 4/4] fix test --- tests/integration_tests/test_agents.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tests/integration_tests/test_agents.py b/tests/integration_tests/test_agents.py index 06f7fad..60db90e 100644 --- a/tests/integration_tests/test_agents.py +++ b/tests/integration_tests/test_agents.py @@ -90,7 +90,9 @@ def test_correction_result(image_id,uuids,trace_id): print(response) def main(): - test_correction() + test_completions_sync() + test_completions_stream() + # test_correction() # test_correction_result(image_id,uuids,trace_id) if __name__ == "__main__":