
Книга рассказывает о проектировании API для обработки данных и взаимодействия с большими языковыми моделями. Рассматривается работа с языком Python и его фреймворками FastAPI, Streamlit и LangChain. Рассматривается интеграция API в имеющиеся рабочие процессы, типичные для обработки данных, вывод приложения в облако, подбор интерфейсов для обслуживания различных задач, применение больших языковых моделей класса GPT для оптимизации и ускорения проектирования API.
Для специалистов по проектированию API, науке о данных и машинному обучению
Навыки создания API незаменимы при работе с искусственным интеллектом и в науке о данных (Data Science). Умение проектировать и поддерживать API для искусственного интеллекта понадобится как новичкам, так и опытным профессионалам. Эта практическая книга поможет вам на собственном опыте освоить разработку и поддержку API на Python с применением популярных фреймворков этого языка — FastAPI, LangChain и Streamlit .
Книга делится на три части и рассказывает, как разрабатывать API с нуля, интегрировать их в рабочие процессы, типичные для обработки данных, научиться использовать такие инструменты как ChatGPT и LangChain, чтобы взаимодействовать с API при помощи больших языковых моделей (LLM). Проработав книгу, вы приобретете портфолио готовых проектов с качественными API, которые в самом выгодном свете продемонстрируют ваше мастерство в работе с ИИ, машинным обучением и наукой о данных.
- Научитесь проектировать API для различных приложений из области data science
- Откройте для себя, как собирать и развертывать API при помощи Python и FastAPI
- Изучите, как интегрировать API в рабочие процессы, связанные с обработкой данных, применять API для доступа к данным и их визуализации
- Тренируйте модели машинного обучения, а затем развертывайте их в виде API
- Освойте эффективное взаимодействие с API при помощи искусственного интеллекта и больших языковых моделей
Эта книга — потрясающая новинка для всего сообщества исследователей данных. Порадуйте себя — добавьте эту книгу в свою профессиональную библиотеку, чтобы расти, совершенствоваться и становиться всё более эффективным специалистом по data science!
Алекс Гутман, автор книги «Becoming a Data Head: How to Think, Speak, and Understand Data Science, Statistics, and Machine Learning»
Интерфейсы API становятся всё более важной составляющей в области искусственного интеллекта и исследования данных, и эта книга — ценнейший ресурс, позволяющий рассмотреть их с практической точки зрения.
Джеймс Гоф, заслуженный инженер в компании Morgan Stanley, автор книги «Проектирование архитектуры API»

Райан Дэй — высокопрофессиональный исследователь данных, работающий в компании CSBS и участвующий в разработке свободного ПО. Один из разработчиков фреймворка FastAPI, обладает опытом облачных вычислений и разработки API в государственном секторе.
Книгу “Прикладные API для искусственного интеллекта и Data Science” можно купить в нашем интенет-магазине.
Отзывы о книге……………………………………………………………………………………… 15
Предисловие…………………………………………………………………………………………… 17
Зачем вам читать эту книгу?…………………………………………………………………………………………………….. 17
Для кого эта книга……………………………………………………………………………………………………………………… 17
Для специалистов по работе с данными………………………………………………………………………. 17
Для разработчиков и проектировщиков API………………………………………………………………… 18
Для ищущих работу и желающих сменить свою роль………………………………………………… 18
Создание портфолио-проектов…………………………………………………………………………………………………. 18
Как пользоваться данной книгой……………………………………………………………………………………………… 19
Чем не является данная книга…………………………………………………………………………………………………… 19
Почему именно фэнтези-футбол?……………………………………………………………………………………………… 20
Получение дополнительных советов по API, искусственному интеллекту и науке о работе с данными 20
Соглашения, принятые в данной книге……………………………………………………………………………………. 21
Использование примеров кода…………………………………………………………………………………………………. 21
Платформа онлайн-обучения O’Reilly……………………………………………………………………………………… 22
Контактная информация…………………………………………………………………………………………………………… 22
Благодарности…………………………………………………………………………………………………………………………… 23
Часть I. Разработка API для задач Data Science…………………… 25
Глава 1. Создание API, которые понравятся специалистам по обработке данных 27
Для чего специалисты по обработке данных используют API-интерфейсы?………………………. 27
Какие инструменты используют специалисты по обработке данных?………………………………… 28
Проектирование API для специалистов по обработке данных……………………………………………… 29
Предоставление первой части вашего портфолио-проекта…………………………………………………… 30
У каждого API есть своя история……………………………………………………………………………………………… 31
Знакомьтесь с вашей компанией: SportsWorldCentral…………………………………………………. 31
SWC нуждается в API…………………………………………………………………………………………………….. 33
Выбор первых API-продуктов………………………………………………………………………………………………….. 34
Выявление потенциальных пользователей………………………………………………………………….. 34
Создание пользовательских историй……………………………………………………………………………. 36
Дополнительные источники информации……………………………………………………………………………….. 37
Резюме…………………………………………………………………………………………………………………………………………. 37
Глава 2. Выбор архитектуры, подходящей для API………………………………… 39
Архитектурные стили API…………………………………………………………………………………………………………. 39
Обмен репрезентациями ресурсов (Representational State Transfer, REST)……………….. 40
Язык графических запросов Graph Query Language (GraphQL)………………………………….. 40
gRPC…………………………………………………………………………………………………………………………………. 41
Ваш выбор: REST…………………………………………………………………………………………………………… 41
Технологическая архитектура…………………………………………………………………………………………………. 43
Программные средства, используемые в данной главе………………………………………………………….. 45
Python………………………………………………………………………………………………………………………………. 45
GitHub………………………………………………………………………………………………………………………………. 45
Начало работы с GitHub Codespace………………………………………………………………………………………… 46
Создание учетной записи в GitHub……………………………………………………………………………….. 46
Клонирование репозитория части первой……………………………………………………………………. 46
Запуск вашей среды GitHub Codespace………………………………………………………………………… 47
Знакомство с новым кодовым пространством……………………………………………………………… 47
Совершение вашего первого коммита………………………………………………………………………….. 49
Дополнительные источники информации……………………………………………………………………………….. 52
Резюме…………………………………………………………………………………………………………………………………………. 52
Глава 3. Создание базы данных…………………………………………………………….. 53
Компоненты API………………………………………………………………………………………………………………………… 53
Программные средства, используемые в данной главе………………………………………………………….. 54
SQLite……………………………………………………………………………………………………………………………….. 54
SQLAlchemy…………………………………………………………………………………………………………………….. 54
pytest………………………………………………………………………………………………………………………………… 55
Создание базы данных SQLite………………………………………………………………………………………………….. 55
Создание таблиц базы данных……………………………………………………………………………………… 56
Принципы формирования таблиц…………………………………………………………………………………. 58
Загрузка данных…………………………………………………………………………………………………………….. 59
Доступ к данным из Python……………………………………………………………………………………………………….. 61
Установка SQLAlchemy в вашу среду………………………………………………………………………….. 61
Создание Python-файлов для доступа к базе данных…………………………………………………. 62
Создание файла конфигурации базы данных……………………………………………………………… 67
Создание вспомогательных функций SQLAlchemy…………………………………………………….. 68
Установка pytest в вашу среду………………………………………………………………………………………. 72
Тестирование нашего кода SQLAchemy………………………………………………………………………. 73
Дополнительные источники информации……………………………………………………………………………….. 76
Резюме…………………………………………………………………………………………………………………………………………. 76
Глава 4. Разработка кода FastAPI………………………………………………………….. 79
Продолжение разработки портфолио-проекта……………………………………………………………………….. 79
Программные средства, используемые в данной главе………………………………………………………….. 80
FastAPI…………………………………………………………………………………………………………………………….. 80
HTTPX……………………………………………………………………………………………………………………………… 81
Pydantic……………………………………………………………………………………………………………………………. 81
Uvicorn……………………………………………………………………………………………………………………………… 82
Копирование файлов из каталога третьей главы……………………………………………………………………. 82
Установка в кодовое пространство новых библиотек……………………………………………………………. 82
Создание файлов на языке Python для нашего API………………………………………………………………… 83
Создание Pydantic-схем…………………………………………………………………………………………………. 83
Создание контроллера FastAPI…………………………………………………………………………………….. 87
Тестирование API………………………………………………………………………………………………………………………. 94
Запуск API………………………………………………………………………………………………………………………………….. 97
Дополнительные источники информации……………………………………………………………………………….. 99
Резюме………………………………………………………………………………………………………………………………………. 100
Глава 5. Документирование API…………………………………………………………… 101
Документация как сигнал доверия…………………………………………………………………………………………. 101
Создание высококачественной API-документации………………………………………………………………. 102
Основные функции……………………………………………………………………………………………………….. 102
Дополнительные функции……………………………………………………………………………………………. 103
Просмотр примеров документации по API……………………………………………………………………………. 104
Приложение Sleeper………………………………………………………………………………………………………. 104
MyFantasyLeague…………………………………………………………………………………………………………. 105
Yahoo! Фэнтези-футбол……………………………………………………………………………………………….. 105
Просмотр встроенной документации вашего API………………………………………………………………… 107
Копирование файлов из каталога четвертой главы………………………………………………….. 107
Вариант документации 1: Swagger UI………………………………………………………………………… 108
Вариант документации 2: Redoc………………………………………………………………………………… 113
Работа с файлом спецификации OpenAPI……………………………………………………………………………… 114
Продолжение разработки портфолио-проекта…………………………………………………………………….. 117
Добавление сведений к OAS-объекту info………………………………………………………………….. 118
Добавление тегов для классификации путей……………………………………………………………… 119
Добавление дополнительных сведений к конкретным конечным точкам………………. 120
Добавление описаний параметров……………………………………………………………………………… 121
Просмотр изменений в Swagger UI………………………………………………………………………………. 121
Регрессионное тестирование API………………………………………………………………………………… 123
Обновление файла README.md……………………………………………………………………………………………. 123
Дополнительные источники информации……………………………………………………………………………… 125
Резюме………………………………………………………………………………………………………………………………………. 126
Глава 6. Развертывание API в облаке…………………………………………………… 127
Преимущества и обязательства при развертывании API в облаке……………………………………… 127
Преимущества………………………………………………………………………………………………………………. 127
Обязательства……………………………………………………………………………………………………………….. 128
Выбор облачного хостинга для вашего проекта………………………………………………………………….. 129
Настройка каталога проекта………………………………………………………………………………………………….. 130
Использование GitHub Codespaces в качестве облачного хостинга…………………………………… 130
Развертывание в Render…………………………………………………………………………………………………………… 131
Регистрация на Render…………………………………………………………………………………………………. 132
Создание нового веб-сервиса………………………………………………………………………………………. 132
Автоматическое развертывание изменений в API……………………………………………………… 134
Упаковка приложения в контейнер Docker……………………………………………………………………………. 134
Проверка установки Docker…………………………………………………………………………………………. 135
Создание Dockerfile………………………………………………………………………………………………………. 135
Создание файла .dockerignore……………………………………………………………………………………… 137
Сборка образа контейнера………………………………………………………………………………………….. 137
Локальный запуск образа контейнера……………………………………………………………………….. 138
Развертывание в AWS……………………………………………………………………………………………………………… 139
Создание контейнерного Lightsail-сервиса………………………………………………………………… 139
Установка AWS CLI……………………………………………………………………………………………………… 140
Установка плагина Amazon Lightsail для работы с контейнерными сервисами…….. 140
Настройка параметров входа……………………………………………………………………………………… 140
Отправка нашего образа контейнера в Lightsail………………………………………………………… 141
Создание Lightsail-развертывания………………………………………………………………………………. 142
Обновление API-документации………………………………………………………………………………………………. 144
Дополнительные источники информации……………………………………………………………………………… 145
Резюме………………………………………………………………………………………………………………………………………. 145
Глава 7. Все включено: разработка Python SDK……………………………………. 147
SDK устраняют разрыв……………………………………………………………………………………………………………. 148
Выбор языка программирования для вашего SDK……………………………………………………………….. 151
Начнем с SDK с минимальным функционалом……………………………………………………………………… 152
Совет эксперта: упростите установку SDK……………………………………………………………….. 152
Совет эксперта: придайте SDK последовательность и идиоматичность………………… 153
Создание полнофункционального SDK…………………………………………………………………………………. 156
Совет эксперта: используйте разумные значения по умолчанию…………………………… 156
Совет эксперта: предоставьте полноценную функциональность……………………………. 159
Совет эксперта: ведите журнал событий…………………………………………………………………… 164
Совет эксперта: скрывайте сложности API……………………………………………………………….. 166
Совет эксперта: предоставляйте возможности bulk-загрузок………………………………….. 168
Совет эксперта: документируйте SDK……………………………………………………………………….. 171
Тестирование SDK………………………………………………………………………………………………………… 173
Совет эксперта: поддерживайте все задачи, реализуемые API……………………………….. 177
Завершение первой части нашего портфолио-проекта……………………………………………………….. 178
Дополнительные источники информации……………………………………………………………………………… 180
Резюме………………………………………………………………………………………………………………………………………. 180
Часть II. Использование API в проекте
по анализу данных……………………………………………………………………… 181
Глава 8. Что специалистам по анализу данных нужно знать об API…….. 183
Использование различных стилей API………………………………………………………………………………….. 183
Основы HTTP……………………………………………………………………………………………………………………………. 185
Как использовать API со всей ответственностью…………………………………………………………………. 187
Разделение ответственности: использование SDK или создание собственных клиентов для API 188
Как создаются API…………………………………………………………………………………………………………………… 190
Как тестируются API……………………………………………………………………………………………………………….. 190
Развертывание и контейнеризация API………………………………………………………………………………….. 191
Использование системы контроля версий……………………………………………………………………………… 191
Представление второй части портфолио-проекта……………………………………………………………….. 192
Приступаем к работе с GitHub Codespace…………………………………………………………………………….. 192
Клонирование репозитория части II………………………………………………………………………….. 192
Запуск вашей среды GitHub Codespace……………………………………………………………………… 193
Локальный запуск API SportsWorldCentral (SWC)………………………………………………………………… 194
Дополнительные источники информации……………………………………………………………………………… 196
Резюме………………………………………………………………………………………………………………………………………. 196
Глава 9. Использование API для аналитики данных……………………………. 197
Пользовательские метрики для спортивной аналитики……………………………………………………….. 197
Использование API в качестве источников данных для пользовательских метрик в фэнтези-аналитике 198
Создание пользовательской метрики: оценка Shark League (Лиги акул)…………………………… 199
Программные средства, используемые в данной главе……………………………………………………….. 200
httpx……………………………………………………………………………………………………………………………….. 200
Jupyter Notebooks………………………………………………………………………………………………………….. 201
pandas……………………………………………………………………………………………………………………………. 201
Установка новых библиотек в ваше кодовое пространство………………………………………………… 202
Запуск вашего API в кодовом пространстве…………………………………………………………………………. 202
Создание файла API-клиента…………………………………………………………………………………………………. 202
Создание блокнота Jupyter Notebook…………………………………………………………………………………….. 204
Добавление к блокноту общей конфигурации………………………………………………………………………. 205
Работа с данными вашего API………………………………………………………………………………………………… 207
Вычисление League Balance Score…………………………………………………………………………………………. 209
Вычисление League Juice Score………………………………………………………………………………………………. 211
Создание Shark League Score………………………………………………………………………………………………….. 212
Дополнительные источники информации……………………………………………………………………………… 213
Резюме………………………………………………………………………………………………………………………………………. 213
Глава 10. Использование API в конвейерах данных…………………………….. 215
Типы источников для конвейеров обработки данных………………………………………………………….. 215
Проектирование конвейера данных………………………………………………………………………………………. 216
Оркестрация конвейера данных с помощью Apache Airflow……………………………………………….. 217
Установка Apache Airflow в GitHub Codespaces……………………………………………………………………. 218
Создание локальной аналитической базы данных………………………………………………………………. 222
Запуск API в кодовом пространстве………………………………………………………………………………………. 222
Настройка Airflow-подключений……………………………………………………………………………………………. 222
Создание нашего первого DAG………………………………………………………………………………………………. 223
Создание совместно используемой функции………………………………………………………………………… 226
Запуск DAG………………………………………………………………………………………………………………………………. 228
Резюме………………………………………………………………………………………………………………………………………. 230
Глава 11. Обработка данных в приложениях Streamlit…………………………. 231
Привлечение пользователей с помощью интерактивной визуализации…………………………….. 231
Программные средства, используемые в данной главе……………………………………………………….. 232
nfl_data_py……………………………………………………………………………………………………………………. 232
Streamlit…………………………………………………………………………………………………………………………. 233
Установка Streamlit и nfl_data_py………………………………………………………………………………………….. 233
Запуск вашего API в кодовом пространстве…………………………………………………………………………. 233
Повторное использование файла API-клиента из главы 9…………………………………………………… 234
Создание Streamlit-приложения……………………………………………………………………………………………… 234
Обновление главного файла…………………………………………………………………………………………………… 234
Запуск Streamlit-приложения………………………………………………………………………………………………….. 235
Создание страницы с составами команд………………………………………………………………………………. 236
Создание страницы статистики команды……………………………………………………………………………… 239
Развертывание Streamlit-приложения…………………………………………………………………………………….. 242
Завершение второй части портфолио-проекта…………………………………………………………………….. 243
Дополнительные источники информации……………………………………………………………………………… 244
Резюме………………………………………………………………………………………………………………………………………. 245
Часть III. Использование API
с искусственным интеллектом……………………………………………. 247
Глава 12. Взаимосвязь API и искусственного интеллекта…………………….. 249
Точки пересечения ИИ и API…………………………………………………………………………………………………… 249
Проектирование API-интерфейсов для использования с генеративным ИИ
и большими языковыми моделями………………………………………………………………………………………….. 250
Определение искусственного интеллекта……………………………………………………………………………… 253
Генеративный ИИ и большие языковые модели……………………………………………………………………. 253
Создание агентных ИИ-приложений……………………………………………………………………………………… 254
Представление третьей части портфолио-проекта………………………………………………………………. 255
Запуск вашей среды GitHub Codespace…………………………………………………………………………………. 255
Клонирование репозитория части третьей………………………………………………………………… 255
Запуск вашей среды GitHub Codespace……………………………………………………………………… 256
Дополнительные источники информации……………………………………………………………………………… 257
Резюме………………………………………………………………………………………………………………………………………. 257
Глава 13. Развертывание API машинного обучения…………………………….. 259
Обучение моделей машинного обучения………………………………………………………………………………. 260
Программные средства, используемые в данной главе……………………………………………………….. 261
ONNX Runtime………………………………………………………………………………………………………………. 261
scikit-learn………………………………………………………………………………………………………………………. 262
sklearn-onnx…………………………………………………………………………………………………………………… 262
Установка в кодовое пространство новых библиотек…………………………………………………………. 262
Использование процесса CRISP-DM……………………………………………………………………………………… 263
Осмысление бизнес-задачи…………………………………………………………………………………………………….. 263
Анализ данных…………………………………………………………………………………………………………………………. 264
Подготовка данных…………………………………………………………………………………………………………………. 266
Моделирование……………………………………………………………………………………………………………………….. 266
Оценка………………………………………………………………………………………………………………………………………. 269
Развертывание………………………………………………………………………………………………………………………….. 269
Дополнительные источники информации……………………………………………………………………………… 277
Резюме………………………………………………………………………………………………………………………………………. 278
Глава 14. Использование API с LangChain……………………………………………. 279
Вызов искусственного интеллекта с использованием API (посредством LangChain)……….. 280
Создание LangGraph-агента…………………………………………………………………………………………………… 281
Регистрация в Anthropic……………………………………………………………………………………………….. 282
Запуск вашего кодового пространства GitHub………………………………………………………….. 283
Установка в кодовое пространство новых библиотек…………………………………………………………. 283
Создание блокнота Jupyter Notebook…………………………………………………………………………………….. 284
Общение с LangGraph-агентом……………………………………………………………………………………………….. 287
Локальный запуск API SportsWorldCentral (SWC)………………………………………………………………… 288
Установка Software Development Kit (SDK) swcpy………………………………………………………………… 289
Создание набора инструментов LangChain………………………………………………………………………….. 289
Вызов API-интерфейсов с использованием ИИ (с применением LangGraph)……………………… 293
Общение с агентом (с использованием инструментов)………………………………………………………… 295
Дополнительные источники информации……………………………………………………………………………… 297
Резюме………………………………………………………………………………………………………………………………………. 297
Глава 15. Использование ChatGPT для вызова вашего API………………….. 299
Архитектура вашего приложения………………………………………………………………………………………….. 299
Начало работы с ChatGPT……………………………………………………………………………………………………… 300
Создание специализированной GPT………………………………………………………………………………………. 300
Запуск вашего кодового пространства GitHub…………………………………………………………………….. 303
Запуск SportsWorldCentral (SWC) API в кодовом пространстве GitHub……………………………… 304
Добавление в ваш OAS-файл раздела Servers……………………………………………………………………….. 305
Создание GPT-действия…………………………………………………………………………………………………………… 306
Тестирование API в вашем GPT……………………………………………………………………………………………… 308
Общение с вашим специализированным GPT……………………………………………………………………….. 309
Завершение третьей части вашего портфолио-проекта………………………………………………………. 311
Резюме………………………………………………………………………………………………………………………………………. 313
Предметный указатель…………………………………………………………………………. 315
Об авторе……………………………………………………………………………………………… 317
Об изображении на обложке………………………………………………………………… 319














