Перейти к содержимому
ПереводыOpenAI и DeepLearning.AI

OpenAI Cookbook: путеводитель по рецептам

Что внутри кукбука OpenAI (322 рецепта на октябрь 2026 года): карта по темам с русскими пояснениями, какие рецепты к какому уроку курса, как запускать их на локальной модели и какие три рецепта мы перевели целиком.

OpenAI Cookbook — открытый сборник примеров кода для API OpenAI: ноутбуки Jupyter и статьи, каждая решает одну задачу («как посчитать токены», «как сделать поиск по эмбеддингам», «как оценить агента»). Репозиторий openai/openai-cookbook распространяется по лицензии MIT, тот же контент показывает сайт cookbook.openai.com. Список опубликованных рецептов хранится в файле registry.yaml: на 4 октября 2026 года в нём 322 записи, самые старые — 2022 года, самые свежие — сентября 2026-го.

Это не учебник. Рецепты пишут разные люди в разные годы, часть использует модели и API, которых уже нет. Зато это лучший способ увидеть, как идея из урока выглядит в настоящем коде у создателей API. Для ученика нашего курса кукбук полезен на ступенях 7 и 8, после уроков об API, RAG и агентах.

Почти все рецепты вызывают API OpenAI, а он платный. Многие из них можно запустить на локальной модели, потому что Ollama, llama.cpp, vLLM и SGLang отдают OpenAI-совместимый API (урок 8.1.1, установка — урок 7.2.2).

  1. Установите Ollama и скачайте модели: чат-модель (ollama pull qwen3:8b) и, если рецепт про эмбеддинги, эмбеддинг-модель (ollama pull bge-m3).

  2. В ячейке, где создаётся клиент, замените client = OpenAI() на client = OpenAI(base_url="http://localhost:11434/v1", api_key="ollama").

  3. Замените имена моделей: gpt-4o, gpt-5 и т. п. → qwen3:8b; text-embedding-3-small → bge-m3. Эмбеддинги другой модели несовместимы с готовыми файлами из рецепта (например, с заранее посчитанным CSV) — их придётся пересчитать.

  4. Запускайте по ячейкам и сравнивайте с выводом в оригинале. Ответы маленькой локальной модели будут хуже и иначе сформулированы — это нормально и само по себе поучительно.

Ниже — рецепты, полезные ученику, сгруппированные по темам. Названия — как в оригинале (по ним рецепт ищется на сайте), ссылки ведут на файл в репозитории. Важность: ★★★ — прочитать обязательно, ★★ — полезно, ★ — по интересу.

РецептО чёмУрок курсаВажность
How to format inputs to ChatGPT modelsФормат сообщений чата: роли system, user, assistant, параметры запроса, разбор ответа8.1.1★★★
How to count tokens with TiktokenПодсчёт токенов библиотекой tiktoken: кодировки разных моделей, сколько токенов занимает сообщение чата4.2.3, 8.1.1★★★
How to stream completionsСтриминг: ответ кусочками по мере генерации8.1.1★★
How to handle rate limitsОшибки 429 и повторы с экспоненциальной задержкой8.1.1, 8.4.3★★
Using logprobsЛог-вероятности токенов: уверенность классификатора, оценка ответа, перплексия4.1.3★★
How to make your completions outputs consistent with the new seed parameterПараметр seed и почему воспроизводимость всё равно не гарантирована8.1.1★
Prompt Caching 101, 201Кэширование префикса промпта: как ускорить ответ и снизить цену, как поднять долю попаданий в кэш7.1.2, 8.1.1★★
Batch processing with the Batch APIПакетная обработка тысяч запросов дешевле и не в реальном времени8.4.3★
РецептО чёмУрок курсаВажность
Techniques to improve reliabilityКлассическая статья 2022 года: разбить задачу на шаги, попросить рассуждение, проверить себя; обзор статей о chain-of-thought8.1.2★★
GPT-4.1 Prompting Guide, GPT-5 prompting guide, GPT-5.2 Prompting GuideОфициальные советы для конкретных поколений моделей: агентные промпты, следование инструкциям, длинный контекст8.1.2, 8.4.1★★
Prompt Migration GuideКак переносить промпт на новую модель и проверять, что ничего не сломалось8.4.1★★
Enhance your prompts with meta prompting, Optimize PromptsМета-промптинг: модель улучшает промпт по результатам оценки8.4.1★
Introduction to Structured OutputsОтвет строго по JSON-схеме: зачем, как задать схему, чем отличается от режима JSON8.1.2★★★
Structured Outputs for Multi-Agent SystemsСтруктурированный вывод как «контракт» между агентами8.3.3★
РецептО чёмУрок курсаВажность
Using embeddings, Get embeddings from datasetКак получить эмбеддинг текста и посчитать эмбеддинги для целого датасета4.3.1, 8.2.1★★
Semantic text search using embeddingsПоиск по смыслу через косинусную близостькосинусное сходствоEN cosine similarityКосинус угла между векторами — скалярное произведение, делённое на произведение длин. Для нормированных векторов равно скалярному произведению.8.2.1★★
Classification using embeddings, Zero-shot classification with embeddingsЭмбеддинги как признаки для классического классификатора; классификация без обучающих примеров8.2.1, ступень 2★
Clustering, Visualizing the embeddings in 2DКластеризация K-means и проекция в 2D с t-SNEступень 2 (обучение без учителя)★
Embedding texts that are longer than the model’s maximum context lengthЧто делать с длинным текстом: обрезать или делить на куски и усреднять8.2.2★★
Customizing embeddingsДообучение матрицы поверх эмбеддингов под свою задачу8.2.2★
РецептО чёмУрок курсаВажность
Question answering using embeddings-based searchСхема «поиск → вопрос»: найти куски Википедии и вставить в промпт. Переведён целиком8.2.1★★★
Embedding Wikipedia articles for searchКак готовились данные для предыдущего рецепта: сбор статей, нарезка на куски, эмбеддинги8.2.1, 8.2.2★★
How to parse PDF docs for RAGИзвлечение текста и картинок из PDF для RAG8.2.2★★
Search reranking with cross-encodersВторой этап поиска: реранкерреранкерEN rerankerВторая ступень поиска — точная, но медленная модель (обычно кросс-энкодер) пересортировывает десятки кандидатов от быстрого ретривера. пересортировывает кандидатов8.2.2★★
Question answering using a search API and re-rankingRAG поверх обычного поискового API с переранжированием8.2.2★
Robust question answering with Chroma and OpenAIВекторная база Chroma и приём HyDE: искать по «гипотетическому ответу»8.2.2★
RAG with a Graph databaseRAG поверх графовой базы8.2.2 (GraphRAG)★
Vector databases и папка examples/vector_databases/Около 70 рецептов «как подключить векторную БД X»: Qdrant, Milvus, Weaviate, Redis, Elasticsearch, pgvector и другие8.2.2★ (по нужной БД)
Evaluate RAG with LlamaIndexОценка поиска и ответа в RAG8.2.2★★
РецептО чёмУрок курсаВажность
How to call functions with chat modelsПараметр tools, tool_choice, параллельные вызовы, цикл с выполнением SQL. Переведён целиком8.3.1, 8.3.2★★★
How to use functions with a knowledge baseАгент, который сам решает, когда искать статьи arXiv и когда отвечать8.3.1★★
Function calling with an OpenAPI specificationОписание инструментов генерируется из спецификации OpenAPI существующего сервиса8.3.2★
Using tool required for customer serviceРежим «модель обязана вызвать инструмент» в сценарии поддержки клиентов8.3.2★
Handling Function Calls with Reasoning ModelsВызовы инструментов у рассуждающих моделей: что делать с рассуждением между вызовами8.3.1, 6.4.4★★
Guide to Using the Responses API’s MCP ToolПодключение удалённого MCP-сервера как инструмента; вопросы безопасности8.3.2★★
РецептО чёмУрок курсаВажность
Orchestrating Agents: Routines and HandoffsАгент с нуля на чистом Chat Completions: «рутина» (инструкции + инструменты) и передача управления другому агенту. Отсюда выросли Swarm и Agents SDK8.3.1, 8.3.3★★★
Parallel Agents with the OpenAI Agents SDKНесколько агентов работают одновременно, результаты собираются вместе8.3.3★
Context Engineering - Short-Term Memory Management with Sessions, … Long-Term Memory NotesКраткосрочная память (обрезка и сжатие истории) и долгосрочная память агента8.3.3, 8.1.2 (context engineering)★★
Building Reliable Agents with Memory and CompactionСжатие (compaction) контекста в долгих задачах агента8.3.3★
Build Your Own Code InterpreterИнструмент «выполнить код» в изолированном контейнере8.3.2, 8.3.4★
Build a coding agent with GPT 5.1Агент для программирования на Agents SDK8.3.1★
Using PLANS.md for multi-hour problem solvingФайл-план, который агент ведёт сам в многочасовой задаче8.3.3★
РецептО чёмУрок курсаВажность
Building resilient prompts using an evaluation flywheelЦикл «анализ → измерение → улучшение», открытое и осевое кодирование ошибок, выравнивание LLM-судьи. Переведён целиком8.4.2, 8.4.1★★★
How to evaluate a summarization taskМетрики с эталоном (ROUGE, BERTScore) против оценки моделью-судьёй7.3.2★★
Custom LLM as a Judge to Detect Hallucinations with BraintrustСвой LLM-судьяLLM-судья (LLM-as-a-judge)EN LLM-as-a-judgeСильная модель оценивает ответы другой модели по рубрике или сравнивает пару ответов. Дёшево и быстро, но со смещениями. для поиска галлюцинаций и проверка его качества7.3.2★★
How to evaluate LLMs for SQL generationПроверка генерации SQL: синтаксис, выполнимость, соответствие вопросу7.3.2★
Evals API Use-case - Detecting prompt regressions и соседние в examples/evaluation/use-cases/Регрессионные прогоны при изменении промпта, оценка инструментов, веб-поиска, структурированного вывода8.4.2★
Eval Driven System Design - From Prototype to ProductionСквозной пример: система разбора чеков строится от эвалов8.4.2★★
Moving from OpenAI Evals to PromptfooТе же оценки в открытом инструменте Promptfoo8.4.2★
РецептО чёмУрок курсаВажность
How to implement LLM guardrailsGuardrailsограждения (guardrails)EN guardrailsПроверки на входе и выходе LLM-сервиса — размер, темы, персональные данные, инъекции, формат, утечка системного промпта. Слой защиты, а не гарантия. на входе и выходе, параллельный запуск с основным запросом, компромисс точности и задержки8.4.3, 8.3.4★★
Developing Hallucination GuardrailsGuardrail против галлюцинаций для агента поддержки, проверенный эвалами8.4.3★
How to use the moderation APIМодерация входа и выхода8.4.3★
User guide for gpt-oss-safeguardОткрытая модель-классификатор безопасности, которая следует вашей политике8.4.3, 9.3.4★
РецептО чёмУрок курсаВажность
Data preparation and analysis for chat model fine-tuningПроверка датасета для SFT: формат, длины в токенах, оценка стоимости6.1.2★★
How to fine-tune chat modelsДообучение чат-модели через API от данных до запуска6.1.2★
Fine-Tuning Techniques - Choosing Between SFT, DPO, and RFTКогда SFT, когда DPO, когда RL-дообучение; практика DPO6.1.2, 6.3.3★★
Exploring Model Graders for Reinforcement Fine-TuningRL-дообучение с моделью-грейдером в роли награды6.4.1★
Leveraging model distillation to fine-tune a modelДистилляция: ответы большой модели как данные для маленькой6.4.4★
Synthetic data generation (Part 1)Генерация синтетических данных моделью5.1.2, 6.1.2★
РецептО чёмУрок курсаВажность
How to run gpt-oss locally with OllamaЗапуск открытой модели OpenAI на своём компьютере7.2.2★★
How to run gpt-oss with vLLM, … with TransformersСервер vLLM и запуск через Hugging Face Transformers7.1.2★★
OpenAI Harmony Response FormatЧат-шаблон gpt-oss: роли, каналы для рассуждения и ответа, вызовы инструментов в тексте6.1.2 (chat-шаблоны), 8.3.1★★
How to handle the raw chain of thought in gpt-ossЧто делать с сырым рассуждением модели и почему его не показывают пользователю6.4.4★
Fine-tuning with gpt-oss and Hugging Face TransformersLoRA-дообучение gpt-oss-20b6.2.2★
  • ChatGPT и GPT Actions (около 40 рецептов в examples/chatgpt/): настройка корпоративного ChatGPT и интеграций с Jira, Salesforce, SharePoint. К устройству моделей отношения не имеют.
  • Codex, Agents API, партнёрские интеграции (examples/codex/, examples/agents_api/, examples/partners/) — для тех, кто строит продукты на платформе OpenAI; идеи иногда полезны, повторять не нужно.
  • Старые рецепты на Completions API (2022–2023): у многих есть более новые версии; если рецепт использует openai.Completion.create или text-davinci-003, ищите замену в той же теме.
  • Звук, изображения, видео (Whisper_*, Realtime_*, voice_solutions/, multimodal/) — по интересу, к модулю 9.1.
  1. Сначала прочитайте первые ячейки: в них сформулирована задача и схема решения. Часто этого достаточно, чтобы понять идею.
  2. Найдите в коде место, которое соответствует уроку курса (запрос с tools, функция поиска, функция-грейдер).
  3. Перепишите рецепт под локальную модель и свои данные: русские тексты, свой набор вопросов. Повторённый на своих данных рецепт запоминается в разы лучше прочитанного.
  4. Запишите в тетрадь ошибок, где ваш результат разошёлся с оригиналом, и почему.