Skip to main content

GLM-ZHIPU

本ドキュメントでは、Alibaba Cloud Model Studio で Z.AI モデル推論サービスを呼び出す方法について説明します。

本ドキュメントに記載されている機能は、シンガポールリージョンでのみ利用可能です。モデルを使用するには、シンガポールリージョンから呼び出してください。
Alibaba Cloud Model Studio は、中国(北京)、シンガポール、および中国(香港)リージョン向けにワークスペース固有のドメインをリリースしました。新しい専用ドメインは、推論リクエストに対して優れたパフォーマンスと高い安定性を提供します。新しいドメインへの移行を推奨します。
  • 中国(北京):https://dashscope.aliyuncs.com から https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com へ
  • シンガポール:https://dashscope-intl.aliyuncs.com から https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com へ
  • 中国(香港):https://cn-hongkong.dashscope.aliyuncs.com から https://{WorkspaceId}.cn-hongkong.maas.aliyuncs.com へ
{WorkspaceId}はワークスペースIDであり、Alibaba Cloud Model StudioコンソールのWorkspace Detailsページで確認できます。既存のドメインは引き続き完全に機能します。

サービスの有効化

  1. Model Studio コンソール に移動し、ZHIPU/GLM を検索して、Z.AI GLM-series テキストモデルカードを見つけ、「今すぐ有効化」をクリックします。
  2. ダイアログボックスで、有効化と承認を確認します。
これらの手順を完了すると、Z.AI の GLM モデルサービスを呼び出すことができます。

クイックスタート

ZHIPU/GLM-5.3 は GLM シリーズのモデルであり、1M のコンテキストをサポートしています。以下のコードを実行して、思考モードで ZHIPU/GLM-5.3 モデルを素早く呼び出してください。 API キーを取得 し、API キーを環境変数として設定 している必要があります。SDK を使用してモデルを呼び出す場合は、SDK をインストール する必要もあります。
  • OpenAI 互換性
enable_thinking パラメータは標準的な OpenAI のパラメータではありません。OpenAI Python SDK では、extra_body に渡します。Node.js SDK では、トップレベルのパラメータとして渡します。
  • Python
  • Node.js
  • HTTP

サンプルコード

from openai import OpenAI
import os

# Initialize the OpenAI client
client = OpenAI(
    # If the environment variable is not set, replace "sk-xxx" with your Alibaba Cloud Model Studio API Key.
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    # Singapore region. Replace {WorkspaceId} with your Bailian workspace ID. URLs vary by region.
    base_url="https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1",
)

messages = [{"role": "user", "content": "Who are you?"}]
completion = client.chat.completions.create(
    model="ZHIPU/GLM-5.3",
    messages=messages,
    # Enable thinking mode by setting enable_thinking in extra_body.
    # reasoning_effort controls the reasoning effort. Optional values: max (default), high, low.
    extra_body={"enable_thinking": True},
    reasoning_effort="max",
    stream=True,
    stream_options={
        "include_usage": True
    },
)

reasoning_content = ""  # Full reasoning process
answer_content = ""  # Full response
is_answering = False  # Tracks if the model is in the answering phase
print("\n" + "=" * 20 + " Reasoning Process " + "=" * 20 + "\n")

for chunk in completion:
    if not chunk.choices:
        print("\n" + "=" * 20 + " Token Usage " + "=" * 20 + "\n")
        print(chunk.usage)
        continue

    delta = chunk.choices[0].delta

    # Collect only the reasoning content
    if hasattr(delta, "reasoning_content") and delta.reasoning_content is not None:
        if not is_answering:
            print(delta.reasoning_content, end="", flush=True)
        reasoning_content += delta.reasoning_content

    # When content is received, start generating the response
    if hasattr(delta, "content") and delta.content:
        if not is_answering:
            print("\n" + "=" * 20 + " Full Response " + "=" * 20 + "\n")
            is_answering = True
        print(delta.content, end="", flush=True)
        answer_content += delta.content

レスポンス

==================== Reasoning Process ====================

Let me carefully consider the user's question. It seems simple, but it is actually quite profound.

From a linguistic perspective, the user is using English, which means I should respond in English. This is a fundamental self-introduction question, but it may have multiple layers of meaning.

First, I need to be clear that as a language model, I should honestly state my identity and nature. I am not a human, nor do I possess true emotions or consciousness. I am an AI assistant trained with deep learning technology. This is a basic fact.

Second, considering the user's potential needs, they might want to know:
1. What services can I provide?
2. What are my areas of expertise?
3. What are my limitations?
4. How can they interact with me more effectively?

In my answer, I should express a friendly and open attitude while maintaining professionalism and accuracy. I should state my main areas of expertise, such as knowledge Q&A, writing assistance, and creative support, while also frankly pointing out my limitations, such as the lack of real emotional experience.

Furthermore, to make the answer more complete, I should also express a positive attitude and willingness to help users solve problems. I can guide the user to ask more specific questions to better showcase my abilities.

Considering this is an open-ended opening, the answer should be concise and clear, yet contain enough information to give the user a clear understanding of my basic situation and lay a good foundation for subsequent conversations.

Finally, the tone should remain humble and professional, neither too technical nor too casual, to make the user feel comfortable and natural.
==================== Full Response ====================

I am a GLM large language model trained by ZHIPU AI, designed to provide users with information and help solve problems. I am designed to understand and generate human language, and I can answer questions, provide explanations, or participate in discussions on various topics.

I do not store your personal data, and our conversations are anonymous. Is there any topic I can help you understand or explore?
==================== Token Usage ====================

CompletionUsage(completion_tokens=344, prompt_tokens=7, total_tokens=351, completion_tokens_details=None, prompt_tokens_details=None)

ストリーミングツール呼び出し

ZHIPU/GLM-5.3、ZHIPU/GLM-5.2 の各モデルは tool_stream パラメータをサポートしています。このパラメータはブール値で、デフォルトは false であり、stream が true の場合にのみ機能します。有効にすると、Function calling の tool_call パラメータの arguments がストリームとして増分的に返されます。 stream パラメータと tool_stream パラメータは、以下のように連動します。

stream

tool_stream

tool_calltool_callの返し方

true

true

arguments が複数のチャンクに分割されて増分的に返されます。

true

false(デフォルト)

arguments は単一のチャンクで完全に返されます。

false

true/false

tool_stream は効果がありません。arguments は完全なレスポンス内で一度にすべて返されます。

  • OpenAI 互換
  • Python
  • Node.js
  • curl

サンプルコード

from openai import OpenAI
import os

client = OpenAI(
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    # Singapore region. Replace {WorkspaceId} with your Bailian workspace ID. URLs vary by region.
    base_url="https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1",
)

tools = [
    {
        "type": "function",
        "function": {
            "name": "get_weather",
            "description": "Get weather information for a specified city",
            "parameters": {
                "type": "object",
                "properties": {
                    "city": {"type": "string", "description": "The name of the city"}
                },
                "required": ["city"]
            }
        }
    }
]

messages = [{"role": "user", "content": "What is the weather like in Beijing"}]

completion = client.chat.completions.create(
    model="ZHIPU/GLM-5.3",
    tools=tools,
    messages=messages,
    extra_body={
        "tool_stream": True,
    },
    stream=True,
    stream_options={"include_usage": True},
)

for chunk in completion:
    if chunk.choices:
        delta = chunk.choices[0].delta
        if hasattr(delta, 'content') and delta.content:
            print(f"[content] {delta.content}")
        if hasattr(delta, 'tool_calls') and delta.tool_calls:
            for tc in delta.tool_calls:
                print(f"[tool_call] id={tc.id}, name={tc.function.name}, args={tc.function.arguments}")
        if chunk.choices[0].finish_reason:
            print(f"[finish_reason] {chunk.choices[0].finish_reason}")
    if not chunk.choices and chunk.usage:
        print(f"[usage] {chunk.usage}")

思考制御(thinking.type および reasoning_effort)

ZHIPU/GLM-5.3 は常に思考モードで実行され、思考の無効化はサポートされていません。thinking.type を enabled に設定したままにする(または enable_thinking を true に設定したままにする)ことで、reasoning_effort を使用して推論の深さを制御してください。

パラメーター

説明

サポートされている値

thinking.type

思考を有効にするかどうかを制御します。デフォルト値は enabled です。ZHIPU/GLM-5.3 は disabled をサポートしなくなりました。disabled を渡すと API リクエストが失敗します。

enabled

reasoning_effort

モデルの推論の深さを制御します。このパラメータが指定されていない場合、デフォルト値は max です。max を使用することを推奨します。

  • max(デフォルト):深層推論

  • high:強化推論

  • low:軽量推論

過去の推論内容のクリア(clear_thinking)

clear_thinking パラメータは、マルチターン会話において以前のターンの reasoning_content(推論プロセス)をコンテキストとしてモデルに渡すかどうかを制御します。このパラメータをサポートするのは GLM シリーズのモデルのみです。
  • true:以前のターンの reasoning_content を無視し、表示されるテキスト、ツール呼び出し、ツール結果などの非推論コンテンツのみをコンテキストとして使用します。これにより、コンテキストの長さとコストが削減されます。
  • false(デフォルト):以前のターンの reasoning_content を保持し、コンテキストとともにモデルに提供します。Preserved Thinking を有効にするには、過去の reasoning_content をメッセージ内で完全に、変更せず、元の順序のまま渡す必要があります。省略、切り捨て、書き換え、または並べ替えを行うと、効果が低下するか、有効にならなくなります。
このパラメータは、ターンをまたぐ過去の推論内容にのみ影響します。現在のターン内でモデルが推論を生成または出力するかどうかは変更しません。
以下の例では同じマルチターンメッセージのセットを使用しており、assistant メッセージには reasoning_content が含まれています。clear_thinking=true の場合、過去の推論内容はコンテキストにカウントされないため、prompt_tokens はデフォルトである false の場合よりも少なくなります。実際の値は過去の reasoning_content の長さに依存します。
  • OpenAI 互換
Python
from openai import OpenAI
import os

client = OpenAI(
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    # The following is the URL for the Singapore region. Replace {WorkspaceId} with your Model Studio workspace ID. URLs differ by region.
    base_url="https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1",
)

# Multi-turn conversation. The assistant messages carry reasoning_content (historical reasoning process).
messages = [
    {"role": "user", "content": "What is 15 * 23?"},
    {"role": "assistant", "content": "15 multiplied by 23 equals 345.", "reasoning_content": "15 * 23 = 345"},
    {"role": "user", "content": "What if you add 55 to that?"},
    {"role": "assistant", "content": "345 plus 55 equals 400.", "reasoning_content": "345 + 55 = 400"},
    {"role": "user", "content": "What was the intermediate result?"},
]

completion = client.chat.completions.create(
    model="ZHIPU/GLM-5.3",
    messages=messages,
    extra_body={
    "thinking": {
        "type": "enabled",
        "clear_thinking": False  # False = retain reasoning content
      }
  }
)
print(completion.usage.prompt_tokens)  # Lower with true than with false

その他の機能

モデルマルチターン会話Function calling構造化出力インターネット検索プレフィックス補完コンテキストキャッシュ推論強度の制御
ZHIPU/GLM-5.3サポート済みサポート済みサポート済み未サポートサポート済みサポート済みサポート済み
reasoning_effort
ZHIPU/GLM-5.2サポート済みサポート済みサポート済み
非思考モードのみ
未サポートサポート済みサポート済みサポート済み
reasoning_effort
コンテキストキャッシュは暗黙的キャッシュを使用し、デフォルトで有効になっています。これは Alibaba Cloud Model Studio の 暗黙的キャッシュ サービスと以下の点で異なります。
  • キャッシュされるトークンの最小数は 512 で、Model Studio の 1024 と異なります。

デフォルトパラメータ値

モデル

enable_thinking

temperature

top_p

top_k

repetition_penalty

ZHIPU/GLM-5.3

true(無効化不可)

1.0

0.95

-

-

ZHIPU/GLM-5.2

true

1.0

0.95

-

-

ハイフン(-)は、パラメータにデフォルト値がなく、サポートされていないことを示します。

モデル一覧と課金

GLM シリーズのモデルは Z.AI のハイブリッド推論モデルです。これらはインテリジェントエージェント向けに設計されており、思考モードと非思考モードの2つのモードを提供します。ZHIPU/GLM-5.3 は思考モードのみをサポートしています。 モデルのコンテキスト長と価格情報については、Model Studio コンソールModel Studio コンソール を参照してください。 課金はモデルの入力トークンと出力トークンに基づきます。
思考モードでは、思考連鎖は出力トークンに基づいて課金されます。

エラーコード

エラーが発生した場合は、エラーコードを参照して問題を解決してください。 以下は Z.AI 固有のサービスエラーコードです。HTTP エラーコードは Model Studio の一般的なエラーコードと同じです。上記のリンクを参照してください。

エラーカテゴリ

エラーコード

エラーメッセージ

基本エラー

500

内部エラー

認証エラー

1000

認証に失敗しました

1001

ヘッダーで Authentication パラメータが受信されませんでした。認証を実行できません。

1002

認証トークンが無効です。認証トークンが正しく渡されていることを確認してください。

1003

認証トークンの有効期限が切れています。再生成するか、新しいトークンを取得してください。

1004

認証トークンの検証に失敗しました。

1100

アカウント読み取り/書き込み

アカウントエラー

1110

アカウントが非アクティブです。アカウント情報を確認してください。

1111

アカウントが存在しません。

1112

アカウントがロックされています。ロックを解除するにはカスタマーサービスにお問い合わせください。

1113

アカウントの残高が不足しています。アカウントに入金してから再試行してください。

1120

アカウントにアクセスできません。後でもう一度お試しください。

1121

ポリシー違反によりアカウントがロックされました。

API呼び出しエラー

1200

API呼び出しエラー

1210

API呼び出しパラメータが無効です。ドキュメントを確認してください。

1211

モデルが存在しません。モデルコードを確認してください。

1212

現在のモデルは ${method} 呼び出し方式をサポートしていません。

1213

${field} パラメータが受信されませんでした。

1214

${field} パラメータが無効です。ドキュメントを確認してください。

1215

${field1} と ${field2} を同時に設定することはできません。ドキュメントを確認してください。

1220

${API_name} にアクセスする権限がありません。

1221

API ${API_name} は利用できなくなりました。

1222

API ${API_name} は存在しません。

1230

API呼び出しプロセスエラー。

1231

すでにリクエストが存在します:${request_id}

1234

ネットワークエラー。エラー ID:${error_id}。カスタマーサービスにお問い合わせください。

1261

プロンプトが長すぎます。

APIポリシーブロックエラー

1300

API呼び出しがポリシーによってブロックされました。

1301

システムが入力または出力に潜在的に安全でない、あるいは機微なコンテンツを検出しました。機微なコンテンツを生成する可能性のあるプロンプトの使用は避けてください。ご協力ありがとうございます。

1302

この API の同時実行数が高すぎます。同時実行数を減らすか、カスタマーサービスに連絡して上限を引き上げてください。

1303

この API のリクエストレートが高すぎます。リクエストレートを下げるか、カスタマーサービスに連絡して上限を引き上げてください。

1304

この API の日次呼び出し上限に達しました。上限を引き上げるには、カスタマーサービスにお問い合わせください。

1305

このAPIのトラフィック制限に達しました。

1308

${number} ${unit} の使用量上限に達しました。上限は ${next_flush_time} にリセットされます。

1309

お客様の GLM Coding Plan は有効期限切れのため利用できません。サービスを復旧するには、https://bigmodel.cn/claude-code でプランを更新してください。

1310

週間または月間の使用量上限に達しました。上限は ${next_flush_time} にリセットされます。

1311

現在のご契約プランには ${model_name} へのアクセスが含まれていません。

1312

このモデルはトラフィックが集中しています。後でもう一度お試しいただくか、${model_name} などの別のモデルに切り替えてください。

1313

アカウントの使用状況がフェアユースポリシーに違反しており、リクエストレートが制限されています。詳細については、「利用規約 - サブスクリプションおよび自動更新契約」を参照してください。フルアクセスを復旧するには、パーソナルセンター > プログラミングプラン概要 に移動し、制限解除を申請してください。