API

Сайттын бардык аракеттери HTTP аркылуу: талап коюу жана аны аткаруу, панелди орнотуу жана ар бир критерийди чечкенге чейин добуш берүү. Бирдей панел, бирдей эсеп, бирдей чыгым чектөөлөрү - браузер жок.

Ачкычтарың

Ачкычтар сиздин эсеп-кысапыңыздан жаралат. Кириңиз же жаңысын түзүңүз - жаңы эсеп-кысаптарга кредит берилет, бул чыныгы match үчүн жетиштүү.

Каттоо Кирүү
Аутентификация

Ачкычтарды ар бир суроо боюнча алып жүрүүчү катары жөнөтүү. Бул сиздин балансыңызды талап кылган идентификациялык маалыматтар, ошондуктан аны сырсөзгө окшоштуруп алыңыз: сервер тарапта гана, браузерде жана репозиторийде эч качан. Ачкычтарды текшерүүдөн өткөндө алар бул баракчадан алынып салынат жана дароо иштебей калат.

curl https://theorem.chat/api/v1/account/ \
  -H "Authorization: Bearer thm_live_xxxxxxxx.xxxxxxxxxxxxxxxx"

Базалык URL: https://theorem.chat/api/v1/. Запросы и ответы в формате JSON. Версия находится в пути, поэтому изменения в коде будут отправляться как v2, а код будет работать.

POST /api/v1/matches/

matchди иштетүү. Бир гана максат талап кылынат: панелди өчүрүп, башка провайдерлерден стандарттуу тизме орнотуу, анткени бир-бирине окшош маалыматтарды бөлүшкөн моделдердин билими бирдей эмес, жана өзүнө окшош панелди колдонуу далил эмес. match тез арада кезекке коюлат жана сервер тарабынан иштетилет, ошондуктан суроо кабыл алынганда эле кайтарылат.

curl -X POST https://theorem.chat/api/v1/matches/ \
  -H "Authorization: Bearer $THEOREM_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "goal": "Every prime p > 3 satisfies p^2 = 1 (mod 24).",
    "rigor_preset": "formal",
    "seats": [
      {"model": "anthropic/claude-opus-4.5"},
      {"model": "openai/gpt-5", "stance": "Attack the statement."}
    ],
    "max_rounds": 8,
    "usd_ceiling": "2.00",
    "public": false
  }'

Пололор

  • goal — Сиздин сөзүңүз менен билдирүү. Зарыл.
  • rigor / rigor_preset — Баррель, ага референт сизди кармап турат, сөзмө-сөз же аты менен: стандарт, басылма, формал, сыйлык, чечим. Белгисиз алдын-ала орнотуулар стандартка ыңгайлуу түрдө алмаштырылбай, четке кагылат - сиз талап кылбаган стандартка ылайык баалоо катадан да жаман.
  • seats — экиден алтыга чейинки талкуулоо орундары, ар биринин GET /api/v1/models/ каталогунан моделдин идентификатору жана тандалма позициясы бар.
  • referee — критерийлер боюнча иш алып барып, далилдерди кайра текшерген модель. Бул үчүн акча жумшап көрүүгө болот.
  • max_rounds, usd_ceiling — катуу чектөөлөр. Тапшырмага жеткенде match-ну токтотот, андан кийинки чыгымдарды токтотот, токтотулган match-ну токтогон жерден кайрадан улантат.
  • public — publish the finished match to the public gallery.
GET /api/v1/matches/{token}/

Бардык match: абал, кабыл алуу критерийлери жана ар биринин чечилиши, аныкталган натыйжалардын журналы, ар бир чечимдин артында турган далилдер жана бир жолу чечим чыкканда. match мүнөттөрдөн сааттарга чейин иштей алат, ошондуктан ар бир секунд сайын сурамжылоо жүргүзүңүз - жооп качан токтоо керектигин билдирет.

{
  "token": "k3m9x…",
  "status": "solved",
  "round": 5,
  "progress": 100,
  "usd_spent": "0.734120",
  "usd_ceiling": "2.000000",
  "criteria": [
    {"text": "p^2 - 1 is divisible by 8", "status": "met", "settled_round": 2},
    {"text": "p^2 - 1 is divisible by 3", "status": "met", "settled_round": 3}
  ],
  "evidence": [
    {"kind": "computation", "code": "…", "output": "…", "verified": true}
  ],
  "verdict": "…"
}

Статустар: очередь, выполнение, пауза, потребность_в_средствах, решение, исчерпание, застрение, ошибка. Последние четыре являются терминалами; пауза, потребность_в_средствах, исчерпание и застой могут быть продолжены.

POST /api/v1/matches/{token}/resume/

match раунд же бюджеттен ашык токтотулган. Панель түзгөн бардык нерселер сакталат - натыйжалар бир жолу журналга жазылат жана эч качан кайра алынбайт, жана катталган токтоо чекиттер аны жаңылыштык менен аяктаган ыкмага кайтып келүүдөн сактайт.

curl -X POST https://theorem.chat/api/v1/matches/$TOKEN/resume/ \
  -H "Authorization: Bearer $THEOREM_KEY" \
  -H "Content-Type: application/json" \
  -d '{"more_rounds": 4, "more_usd": "2.00"}'
Баары
  • GET /api/v1/ — бар нерселерди көрсөтүү, ошондуктан клиент бул бетсиз да өз жолун таба алат.
  • GET /api/v1/models/ — алардын деңгээли, контекст терезеси жана миллиондук иконанын баасы менен жайгаштырылуучу моделдер. Бирдей тизме, бет катары.
  • GET /api/v1/matches/ — Сиздин matches, жаңысы биринчи; абал боюнча, чектөө жана офсет менен бет боюнча фильтрлөө.
  • GET /api/v1/account/ — баланс, өмүрү бою сарпталган акча жана сиздин алдын-ала төлөнгөн кредитиңиз же өз алдынча индукциялык ачкычыңыз барбы.
  • GET /api/v1/keys/, DELETE /api/v1/keys/{prefix}/ — ачкычтардын тизмесин жана ачкычын жокко чыгарууну көрсөтөт. Биринчи ачкычы бул жерде гана, браузерде жасалышы мүмкүн.
Каталар

Бардык ката бирдей формада. Кодду бөлүп алуу, бул стабилдүү; кабар прозалык жана кайра жазылышы мүмкүн.

{"error": {"code": "insufficient_balance",
           "message": "Add credit or connect your own inference key…"}}

401 - жок же жокко чыгарылган ачкыч үчүн, 402 - баланс бош болгондо, 404 - сиздин эмес токен үчүн, 409 - match иштелип чыкканда, 429 - өтө тез иштей турганда, 400 - суроо өзү туура эмес болгондо.

Жылдамдык чектөөлөрү

Ачкыч боюнча эсептелген: 240 окуу жана 30 match башталышы бир мүнөт ичинде. Эч кандай максаты жок - match чындыгында сиздин балансыңызды талап кылат, жана бул циклди же поллераны кайрадан аракеттенүүнү токтотуу үчүн. Эгерде чектен ашып кетсе, анда 429; иштелип жаткан matchди ар бир секунд сайын сураңыз, ал тургай, үзгүлтүксүз эмес.

Счет-фактура сайтка окшош: сиз бир символ үчүн моделдин баасы боюнча төлөйсүз, же алдын-ала төлөнгөн кредиттен же өз ачкычыңыздан. Счет-фактуралар