Skip to content

Commit b76f044

Browse files
wellenzhengzhengweijun
andauthored
fix: agent error type checking and unit test (#96)
Co-authored-by: zhengweijun <[email protected]>
1 parent 50361a3 commit b76f044

File tree

6 files changed

+86
-8
lines changed

6 files changed

+86
-8
lines changed

pyproject.toml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[tool.poetry]
22
name = "zhipuai"
3-
version = "2.1.5.20250717"
3+
version = "2.1.5.20250724"
44
description = "A SDK library for accessing big model apis from ZhipuAI"
55
authors = ["Zhipu AI"]
66
readme = "README.md"
@@ -51,9 +51,9 @@ extended_testing = [
5151

5252
[tool.ruff.lint]
5353
select = [
54-
"E", # pycodestyle
55-
"F", # pyflakes
56-
"I", # isort
54+
"E", # pycodestyle
55+
"F", # pyflakes
56+
"I", # isort
5757
"T201", # print
5858
]
5959

tests/integration_tests/test_agents.py

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,3 +52,48 @@ def test_completions_stream(logging_conf):
5252
print(err)
5353
except zhipuai.core._errors.APIStatusError as err:
5454
print(err)
55+
56+
def test_correction():
57+
client = ZhipuAI() # 请替换为实际API密钥
58+
59+
response = client.agents.invoke(
60+
agent_id="intelligent_education_correction_agent",
61+
messages=[
62+
{
63+
"role": "user",
64+
"content": [
65+
{
66+
"type": "image_url",
67+
"image_url": "https://b0.bdstatic.com/e24937f1f6b9c0ff6895e1012c981515.jpg"
68+
}
69+
]
70+
}
71+
]
72+
)
73+
print(response)
74+
75+
def test_correction_result(image_id,uuids,trace_id):
76+
client = ZhipuAI()
77+
78+
response = client.agents.async_result(
79+
agent_id="intelligent_education_correction_polling",
80+
custom_variables={
81+
"images": [
82+
{
83+
"image_id": image_id,
84+
"uuids": uuids
85+
}
86+
],
87+
"trace_id": trace_id
88+
}
89+
)
90+
print(response)
91+
92+
def main():
93+
test_completions_sync()
94+
test_completions_stream()
95+
# test_correction()
96+
# test_correction_result(image_id,uuids,trace_id)
97+
98+
if __name__ == "__main__":
99+
main()

tests/unit_tests/test_agents.py

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
def test_agents_completion_error_field():
2+
from zhipuai.types.agents.agents_completion import AgentsCompletion, AgentsError, AgentsCompletionChoice, AgentsCompletionMessage, AgentsCompletionUsage
3+
4+
# 构造一个 AgentsError
5+
error = AgentsError(code="404", message="Not Found")
6+
7+
# 构造一个完整的 AgentsCompletion
8+
completion = AgentsCompletion(
9+
agent_id="test_agent",
10+
conversation_id="conv_1",
11+
status="failed",
12+
choices=[
13+
AgentsCompletionChoice(
14+
index=0,
15+
finish_reason="error",
16+
message=AgentsCompletionMessage(content="error", role="system")
17+
)
18+
],
19+
request_id="req_1",
20+
id="id_1",
21+
usage=AgentsCompletionUsage(prompt_tokens=1, completion_tokens=1, total_tokens=2),
22+
error=error
23+
)
24+
25+
# 检查 error 字段是否为 AgentsError 实例
26+
assert isinstance(completion.error, AgentsError)
27+
assert completion.error.code == "404"
28+
assert completion.error.message == "Not Found"
29+
30+
# 检查序列化
31+
as_dict = completion.model_dump()
32+
assert as_dict["error"]["code"] == "404"
33+
assert as_dict["error"]["message"] == "Not Found"
34+
print("test_agents_completion_error_field passed.")

zhipuai/__version__.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1 @@
1-
2-
__version__ = 'v2.1.0'
1+
__version__ = 'v2.1.5.20250724'

zhipuai/types/agents/agents_completion.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ class AgentsCompletionChoice(BaseModel):
1919
finish_reason: str
2020
message: AgentsCompletionMessage
2121

22-
class AgentsError:
22+
class AgentsError(BaseModel):
2323
code: Optional[str] = None
2424
message: Optional[str] = None
2525

zhipuai/types/agents/agents_completion_chunk.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ class AgentsCompletionUsage(BaseModel):
2626
completion_tokens: int
2727
total_tokens: int
2828

29-
class AgentsError:
29+
class AgentsError(BaseModel):
3030
code: Optional[str] = None
3131
message: Optional[str] = None
3232

0 commit comments

Comments
 (0)