Skip to main content
GLM (General Language Model) — это новое поколение серии больших языковых моделей, выпущенное Zhipu AI (智谱 AI / Z.ai), обладающее мощными способностями понимания и генерации как на китайском, так и на английском языках, демонстрируя отличные результаты в задачах, связанных с китайскими сценами, генерацией кода, выводами и многократными диалогами. Новые модели, такие как GLM-5.3, GLM-5.2, GLM-4.7, были значительно оптимизированы для работы с длинными контекстами, вызовами инструментов и задачами кода и могут широко применяться в таких сценариях, как интеллектуальные вопросы и ответы, создание контента, помощь в кодировании, чат-боты и т.д. В этом документе в основном описывается процесс использования GLM Chat Completion API, с помощью которого вы можете легко вызывать модели серии GLM через единый совместимый интерфейс OpenAI.

Процесс заявки

Чтобы использовать GLM Chat Completion API, сначала перейдите в консоль Ace Data Cloud, чтобы получить ваш API Token и сохранить его для дальнейшего использования. Если вы еще не вошли в систему или не зарегистрированы, вы будете автоматически перенаправлены на страницу входа, где вас пригласят зарегистрироваться и войти в систему, после чего вы будете автоматически возвращены на текущую страницу. Один API Token позволяет вызывать все услуги платформы, не требуя отдельной заявки для каждой услуги. При первой заявке предоставляется бесплатный лимит, который можно использовать бесплатно; если лимит исчерпан, вы можете пополнить общий баланс в консоли.
📘 Полная документация: GLM Chat Completion API →

Основное использование

Адрес запроса GLM Chat Completion API: https://api.acedata.cloud/glm/chat/completions, используется аутентификация Bearer Token, тело запроса совместимо с протоколом OpenAI Chat Completions. При первом использовании этого интерфейса нам необходимо заполнить как минимум три поля:
  • authorization: просто выберите Bearer Token из выпадающего списка.
  • model: выберите модель GLM, которую хотите вызвать, в настоящее время поддерживаемые модели включают:
    • glm-5.3: новейшая флагманская модель, поддерживающая 1M контекста и максимальный вывод 128K, подходит для сложных выводов, задач кода и Agent. Вывод всегда включен, можно выбрать reasoning_effort как low, high или max.
    • glm-5.2: предшествующая флагманская модель, обладающая сильными комплексными способностями.
    • glm-5.1: зрелая флагманская модель, подходящая для общих сложных задач.
    • glm-4.7: демонстрирует отличные результаты в выводах, вызовах инструментов и задачах кода.
    • glm-4.6: универсальная диалоговая модель, сбалансированная по эффективности и стоимости.
    • glm-3-turbo: классическая диалоговая модель, подходящая для общих задач генерации текста.
  • messages: массив подсказок, каждое сообщение содержит role и content, role поддерживает три роли: user, assistant, system.
Распространенные дополнительные параметры:
  • max_tokens: ограничение на максимальное количество токенов в одном ответе.
  • temperature: случайность генерации, от 0 до 2, чем больше значение, тем более разнообразным будет ответ.
  • top_p: параметр ядерной выборки, контролирующий порог накопленной вероятности кандидатов токенов.
  • n: сколько кандидатов ответов генерировать за раз.
  • stream: включить ли потоковый ответ, по умолчанию false.
  • stop: пользовательская последовательность остановки.
Вот самый простой пример вызова на Python:
После вызова мы получаем следующий результат:
Основные поля возвращаемого результата описаны ниже:
  • id: уникальный ID текущей задачи диалога.
  • created: время создания текущей задачи диалога (Unix временная метка, в секундах).
  • model: название фактически вызванной модели GLM.
  • choices: список ответов, сгенерированных моделью. choices[i].message.content — это конкретный текст ответа модели, finish_reason указывает причину завершения (stop, length, tool_calls, content_filter и т.д.).
  • usage: статистика использования токенов для текущего запроса, включает prompt_tokens, completion_tokens, total_tokens.

Потоковый ответ

Этот интерфейс поддерживает потоковые ответы (Server-Sent Events), что очень полезно для веб-интеграции, позволяя веб-странице реализовать эффект отображения по буквам. Если вы хотите получить потоковый ответ, просто установите параметр stream в true в теле запроса. Пример кода вызова на Python:
Вывод будет следующим (выдержка):
Можно увидеть, что в ответе много data, каждая data содержит фрагмент инкремента. choices[i].delta.content — это текущий новый текстовый фрагмент, который вы можете соединить, чтобы сформировать полный ответ. Когда содержимое data равно [DONE], это означает, что потоковый ответ завершен. Последний фрагмент с usage подводит итог использованию токенов в этом запросе. Пример на JavaScript (Node.js):
Пример кода на Java:
Другие языки можно переписать самостоятельно, принцип остается тем же.

Многоуровневый диалог

Если вы хотите реализовать функцию многоуровневого диалога, вам нужно последовательно помещать историю диалога в массив messages, сохраняя порядок чередования user и assistant. Пример вызова на Python:
Загрузив несколько вопросов, вы можете легко реализовать многоуровневый диалог и получить следующий ответ:
Можно увидеть, что информация, содержащаяся в choices, соответствует основному использованию, модель дает ответ на основе полной истории диалога, поддерживая многоуровневое взаимодействие в контексте.

Системные подсказки (System Prompt)

Вы можете добавить сообщение с role равным system в начале messages, чтобы ограничить роль, стиль или поведение модели:

Вызов функций (Function Calling)

Модель GLM поддерживает совместимый с OpenAI вызов функций, вы можете объявить вызываемые функции через параметр tools, модель вернет структурированную информацию о вызове функции в choices[i].message.tool_calls, когда это необходимо.
Если модель решит вызвать инструмент, причина завершения в результате изменится на tool_calls, и в message.tool_calls будет указано имя функции и параметры в формате JSON-строки. Вы можете выполнить эту функцию и вернуть результат как сообщение с role, равным tool, модели, чтобы завершить полный цикл вызова инструмента.

Рекомендации по выбору модели

Когда возвращается api_error и сообщение Сервис временно недоступен, пожалуйста, попробуйте позже., это обычно означает, что upstream GLM сервис временно недоступен, рекомендуется повторить попытку с экспоненциальной задержкой или переключиться на другую доступную модель GLM (например, временно переключиться с glm-5.1 на glm-4.7 или glm-4.6).

Заключение

С помощью этого документа вы узнали, как использовать GLM Chat Completion API для вызова моделей серии GLM от Zhizhu AI, включая основные вызовы, потоковые ответы, многократные диалоги, системные подсказки и вызовы инструментов. Надеемся, что этот документ поможет вам лучше интегрировать и использовать этот API. Если у вас есть какие-либо вопросы, пожалуйста, не стесняйтесь обращаться в нашу техническую поддержку.