API: структурированный запрос и ответ
Сервисы искусственного интеллекта обычно работают через API: программа отправляет сервису структурированный запрос, сервис возвращает структурированный ответ. Запрос и ответ чаще всего в формате JSON. В этом уроке мы не подключаемся к настоящему сервису: тренируем только структуру запроса и ответа.
Запрос обычно состоит из названия модели и списка сообщений; у каждого сообщения есть роль (система, пользователь) и текст. В ответе результат лежит вложенно, поэтому достают его слой за слоем. Названия полей зависят от сервиса: читайте их в официальной документации.
import json
javob_matn = """{"holat": "ok", "natija": {"matn": "Salom", "tokenlar": 3}}"""
javob = json.loads(javob_matn)
print(javob["holat"])
print(javob["natija"]["matn"])Результатok
SalomВажное правило: перед использованием ответа проверьте его статус (успех или ошибка). Секретные ключи (API-ключ) не записывайте в код, который выкладывают открыто, и не отправляйте их диалоговому инструменту.
Запомните
- Запрос и ответ обычно в JSON.
- Нужное значение из ответа достают слой за слоем.
- Сначала проверьте статус; API-ключ храните в секрете.
Упражнение
Что разумно проверить, прежде чем брать текст из ответа?
Ответ и пояснение
- Статус ответа: успех это или ошибка. (верный ответ)в ответе с ошибкой нужного поля может не быть.
- Ничего: ответ всегда верный.сеть и сервис могут вернуть ошибку.
- Только длину ответа.длина не говорит об успехе.
Упражнения с кодом
- Создайте словарь
payload: ключmodelсо значениемmini, ключmessagesсо списком из одного сообщения; в сообщенииrol=userиmatn= значениеsavol.
Подсказка: Внутри спискаmessagesсловарь:[{"rol": "user", "matn": savol}]. - Используйте
d: еслиholatравноok, выведите сначала текст, затем число токенов; иначе выведитеxato.
Подсказка: Проверьтеd["holat"] == "ok"; значения лежат внутриd["natija"].
Выполните упражнение в приложении.
Практическое задание
Для воображаемого сервиса вопросов и ответов запишите запрос в виде JSON (название модели, одно сообщение). Реальные ключи и данные не вписывайте.
- Записал JSON запроса
- В нём есть роль и текст
Словарь
Интерактивный режим: поиск, прогресс и упражнения на Python.
