feat: update new models glm-5.2 and support reasoning_effort (#72)

This commit is contained in:
Tomsun28 2026-06-16 11:03:38 +08:00 committed by GitHub
parent d8d898bbf1
commit ca5109c0aa
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
9 changed files with 25 additions and 22 deletions

View file

@ -11,7 +11,7 @@
## ✨ Core Features
### 🤖 **Chat Completions**
- **Standard Chat**: Create chat completions with various models including `glm-5.1`
- **Standard Chat**: Create chat completions with various models including `glm-5.2`
- **Streaming Support**: Real-time streaming responses for interactive applications
- **Tool Calling**: Function calling capabilities for enhanced AI interactions
- **Multimodal Chat**: Image understanding capabilities with vision models
@ -104,7 +104,7 @@ client = ZhipuAiClient(api_key="your-api-key")
# Create chat completion
response = client.chat.completions.create(
model="glm-5.1",
model="glm-5.2",
messages=[
{"role": "user", "content": "Hello, Z.ai!"}
]
@ -278,7 +278,7 @@ client = ZaiClient(api_key="your-api-key")
try:
response = client.chat.completions.create(
model="glm-5.1",
model="glm-5.2",
messages=[
{"role": "user", "content": "Hello, Z.ai!"}
]

View file

@ -11,7 +11,7 @@
## ✨ 核心功能
### 🤖 **对话补全**
- **标准对话**: 支持 `glm-5.1` 等多种模型的对话补全
- **标准对话**: 支持 `glm-5.2` 等多种模型的对话补全
- **流式支持**: 实时流式响应,适用于交互式应用
- **工具调用**: 函数调用能力,增强 AI 交互体验
- **多模态对话**: 支持图像理解的视觉模型
@ -106,7 +106,7 @@ client = ZhipuAiClient(api_key="your-api-key")
# Create chat completion
response = client.chat.completions.create(
model="glm-5.1",
model="glm-5.2",
messages=[
{"role": "user", "content": "Hello, Z.ai!"}
]
@ -285,7 +285,7 @@ client = ZaiClient(api_key="your-api-key") # 请填写您自己的APIKey
try:
response = client.chat.completions.create(
model="glm-5.1",
model="glm-5.2",
messages=[
{"role": "user", "content": "你好, Z.ai "}
]

View file

@ -6,7 +6,7 @@ def completion():
# Create chat completion
response = client.chat.completions.create(
model='glm-5.1',
model='glm-5.2',
messages=[{'role': 'user', 'content': 'Hello, Z.ai!'}],
temperature=1.0,
)
@ -19,7 +19,7 @@ def completion_with_stream():
# Create chat completion
response = client.chat.completions.create(
model='glm-5.1',
model='glm-5.2',
messages=[
{'role': 'system', 'content': 'You are a helpful assistant.'},
{'role': 'user', 'content': 'Tell me a story about AI.'},
@ -38,7 +38,7 @@ def completion_with_websearch():
# Create chat completion
response = client.chat.completions.create(
model='glm-5.1',
model='glm-5.2',
messages=[
{'role': 'system', 'content': 'You are a helpful assistant.'},
{'role': 'user', 'content': 'What is artificial intelligence?'},
@ -66,7 +66,7 @@ def completion_with_mcp_server_url():
# Create chat completion with MCP server URL
response = client.chat.completions.create(
model='glm-5.1',
model='glm-5.2',
stream=False,
messages=[{'role': 'user', 'content': 'Hello, please introduce GPT?'}],
tools=[
@ -95,7 +95,7 @@ def completion_with_mcp_server_label():
# Create chat completion with MCP server label
response = client.chat.completions.create(
model='glm-5.1',
model='glm-5.2',
stream=False,
messages=[{'role': 'user', 'content': 'Hello, please introduce GPT?'}],
tools=[
@ -217,7 +217,7 @@ def ofZai():
client = ZaiClient()
print(client.base_url)
response = client.chat.completions.create(
model='glm-5.1',
model='glm-5.2',
messages=[{'role': 'user', 'content': 'Hello, Z.ai!'}],
temperature=0.7,
)
@ -227,7 +227,7 @@ def ofZhipu():
client = ZhipuAiClient()
print(client.base_url)
response = client.chat.completions.create(
model='glm-5.1',
model='glm-5.2',
messages=[{'role': 'user', 'content': 'Hello, Z.ai!'}],
temperature=0.7,
)

View file

@ -23,7 +23,7 @@ def stream_web_search_example():
}]
client = ZaiClient()
response = client.chat.completions.create(
model="glm-5.1",
model="glm-5.2",
messages=messages,
tools=tools,
stream=True
@ -35,7 +35,7 @@ def sync_example():
print("=== GLM-4 Synchronous Example ===")
client = ZaiClient()
response = client.chat.completions.create(
model="glm-5.1",
model="glm-5.2",
messages=[
{"role": "system", "content": "You are a helpful assistant who provides professional, accurate, and insightful advice."},
{"role": "user", "content": "I'm very interested in the planets of the solar system, especially Saturn. Please provide basic information about Saturn, including its size, composition, ring system, and any unique astronomical phenomena."},
@ -47,7 +47,7 @@ def async_example():
print("=== GLM-4 Async Example ===")
client = ZaiClient()
response = client.chat.asyncCompletions.create(
model="glm-5.1",
model="glm-5.2",
messages=[
{
"role": "user",

View file

@ -15,7 +15,7 @@ class ZaiSampler(SamplerBase):
def __init__(
self,
model: str = "glm-5",
model: str = "glm-5.2",
api_key: str = '',
system_message: Optional[str] = None,
temperature: float = 0.0,

View file

@ -4,7 +4,7 @@ def main():
client = ZhipuAiClient()
# create chat completion with tool calls and streaming
response = client.chat.completions.create(
model="glm-5.1",
model="glm-5.2",
messages=[
{"role": "user", "content": "How is the weather in Beijing and Shanghai? Please provide the answer in Celsius."},
],

View file

@ -1,6 +1,6 @@
[tool.poetry]
name = "zai-sdk"
version = "0.2.2"
version = "0.2.3"
description = "A SDK library for accessing big model apis from Z.ai"
authors = ["Z.ai"]
readme = "README.md"

View file

@ -1,2 +1,2 @@
__title__ = 'Z.ai'
__version__ = '0.2.2'
__version__ = '0.2.3'

View file

@ -66,7 +66,8 @@ class Completions(BaseAPI):
response_format: object | None = None,
thinking: object | None = None,
watermark_enabled: Optional[bool] | NotGiven = NOT_GIVEN,
tool_stream: bool | NotGiven = NOT_GIVEN,
tool_stream: bool | NotGiven = NOT_GIVEN,
reasoning_effort: Optional[str] | NotGiven = NOT_GIVEN,
) -> Completion | StreamResponse[ChatCompletionChunk]:
"""
Create a chat completion
@ -95,6 +96,7 @@ class Completions(BaseAPI):
thinking (Optional[object]): Configuration parameters for model reasoning
watermark_enabled (Optional[bool]): Whether to enable watermark on generated audio
tool_stream (Optional[bool]): Whether to enable tool streaming
reasoning_effort (Optional[str]): Reasoning effort level, supports none, minimal, low, medium, high, xhigh, max. Effective for glm-5.2 and above models.
"""
logger.debug(f'temperature:{temperature}, top_p:{top_p}')
if temperature is not None and temperature != NOT_GIVEN:
@ -143,7 +145,8 @@ class Completions(BaseAPI):
'response_format': response_format,
'thinking': thinking,
'watermark_enabled': watermark_enabled,
'tool_stream': tool_stream,
'tool_stream': tool_stream,
'reasoning_effort': reasoning_effort,
}
)
return self._post(