Disputa
Студенту

Доступ к моделям

Как подключить модель в своём коде через платформу курса, сколько можно потратить и что делать, когда запрос не проходит.

Если на курсе включён доступ к моделям, платформа выдаёт вам адрес и личный ключ. С ними модель подключается в ваш код так же, как любой OpenAI-совместимый сервис: подойдёт библиотека openai, LangChain и всё, что умеет задавать base_url.

Платить самому не нужно, но и бесконечно тратить нельзя: у вас личный лимит, у курса — общий.

Где взять ключ

Страница «Доступ к моделям» в меню курса. Там три вещи:

  • адрес — вида https://<адрес платформы>/api/llm/v1;
  • ключ — вида sk-disputa-…;
  • модельdisputa-standard.

Ключ показывается один раз

Платформа хранит не сам ключ, а его отпечаток: утечка её базы не должна отдавать ключи всего потока. Скопируйте ключ сразу после выдачи. Потеряли — нажмите «перевыпустить»: старый перестанет работать, потраченное при этом не обнулится.

Первый запрос

Ключ держите в переменной окружения, а не в коде: репозиторий вашей команды открыт, и ключ, попавший в коммит, считается утёкшим.

import os
from openai import OpenAI

client = OpenAI(
    base_url=os.environ["DISPUTA_BASE_URL"],
    api_key=os.environ["DISPUTA_API_KEY"],
)

reply = client.chat.completions.create(
    model="disputa-standard",
    messages=[{"role": "user", "content": "Объясни, что такое golden dataset, в двух предложениях."}],
)
print(reply.choices[0].message.content)

Потоковый ответ и вызов инструментов работают так же, как у OpenAI.

Модель

Вы пишете в коде disputa-standard, а какая модель за этим стоит, решает платформа. Когда модель заменят на новую, ваш код менять не придётся.

По умолчанию модель отвечает сразу, без рассуждения. Рассуждение можно включить — ответы на сложные задачи станут точнее, но медленнее и дороже:

reply = client.chat.completions.create(
    model="disputa-standard",
    messages=[...],
    extra_body={"thinking": {"type": "enabled"}},
)

Рассуждение расходует max_tokens

Если рассуждение включено, а max_tokens маленький, весь запас может уйти на рассуждение, и ответ придёт пустым. Ставьте предел с запасом или не ставьте вовсе.

Сколько можно

  • Личный лимит в условных единицах и период, после которого он обновляется, — на странице «Доступ к моделям». Там же видно, сколько уже потрачено.
  • Лимит курса — общий на поток. Может кончиться раньше вашего личного, если группа тратит много.
  • Частота — до 60 запросов в минуту и до 4 одновременно с одного ключа. Это защищает остальных: цикл без паузы в коде одного студента иначе занял бы общий канал всей группы.

Когда запрос не проходит

Платформа отвечает по-русски и говорит, что делать. Сверьтесь с таблицей:

кодчто случилосьчто делать
402кончился личный лимит или лимит курсаждать нового периода или попросить преподавателя добавить кредитов
401ключ повреждён или не подходитскопировать ключ заново целиком; потеряли — перевыпустить
403ключ погашен или доступ курсу закрытперевыпустить ключ; если не помогло — спросить преподавателя
403модели нет в доступе курсаписать в коде disputa-standard; список моделей — GET /v1/models
429слишком много запросов подрядподождать минуту, добавить паузу между запросами

На этой странице