Защо от код, а не от чат
В чат прозореца отговорът се чете от човек. В програма отговорът трябва да влезе в друга функция — да се запише в база, да се покаже в интерфейс, да задейства действие. За това е нужно извикване по мрежата.
API на езиков модел
Мрежова услуга, на която изпращаме промпт и настройки и получаваме отговор — обикновено като JSON.
Ключът
Всяко извикване се придружава от API ключ, който казва на услугата кой плаща и чии лимити се използват. Ключът е като парола.
- Никога не се записва в кода.
- Никога не влиза в git — разкрит ключ се използва от чужди хора за минути.
- В Colab се пази в „Secrets“ (иконата с ключето отляво) и се чете оттам.
- В приложение стои в променлива на средата и се използва само на сървъра.
Ако все пак изтече
Отменете го веднага от таблото на услугата и създайте нов. Изтеклият ключ не се „поправя“ — само се анулира.
Какво изпращаме
| Поле | Какво прави | Обичайна стойност |
|---|---|---|
| модел | кой модел да отговори | бърз и евтин за упражнения |
| системно указание | правилата, които важат за целия разговор | „Ти си помощник по информатика. Отговаряй кратко.“ |
| съобщения | историята на разговора | роли: user и model |
| температура | колко разнообразен да е изходът | 0 за данни, 0.7 за текст |
| максимални токени | таван на дължината на отговора | по преценка — пази от изненадващи сметки |
Моделът няма памет
Услугата не помни предишните ви заявки. Ако искате разговор, вие изпращате цялата история всеки път. Оттам следва и че дългият разговор става все по-скъп — всяко ново съобщение носи със себе си всички предишни.
Безплатните нива
За курса ползваме безплатно ниво: няколко заявки в минута и ограничен брой на ден. Това стига за упражнения, но налага дисциплина:
- Пробвайте промпта първо в чат прозореца, чак после от код.
- Не пускайте цикли по 100 заявки, докато не сте сигурни в кода.
- Ограничавайте дължината на отговора.
- Пазете отговорите в променлива, вместо да питате пак за същото.
Кодът остарява
Имената на моделите и библиотеките се менят на месеци. Ако примерът даде грешка, отворете официалната документация на услугата и вземете текущото име — това е нормална част от работата, а не изключение.
Грешките, които ще срещнете
| Код | Значение | Какво да направим |
|---|---|---|
| 401 / 403 | невалиден ключ или липсващо право | проверете ключа и достъпа |
| 429 | твърде много заявки | изчакайте и повторете след пауза |
| 400 | лоша заявка | проверете името на модела и структурата |
| 500 / 503 | проблем при услугата | повторете след кратко изчакване |
Заявките по мрежа се провалят понякога — това е нормално. Затова сериозният код повтаря опита след изчакване и има какво да покаже на потребителя, когато не успее.