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 timestamp, секунди).
  • 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 є новим текстовим фрагментом, доданим до поточного chunk, ви можете з’єднати ці фрагменти, щоб сформувати повну відповідь. Коли вміст data дорівнює [DONE], це означає, що потік відповіді закінчився. Останній chunk з 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, коли це буде потрібно.
Якщо модель вирішить викликати інструмент, у повернутому результаті finish_reason зміниться на tool_calls, і в message.tool_calls буде вказано ім’я функції та параметри у формі JSON-рядка. Ви можете виконати цю функцію та повернути результат як повідомлення з role як tool назад до моделі, завершуючи повний цикл виклику інструменту.

Рекомендації щодо вибору моделі

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

Висновок

Завдяки цьому документу, ви дізналися, як використовувати GLM Chat Completion API для виклику моделей серії GLM від Zhizhu AI, включаючи базові виклики, потокові відповіді, багатократні діалоги, системні підказки та виклики інструментів. Сподіваємося, що цей документ допоможе вам краще інтегрувати та використовувати цей API. Якщо у вас є будь-які питання, будь ласка, звертайтеся до нашої команди технічної підтримки.