Содержание курса
1. Старт: окружение и первое приложение
6 уроков
45
32
0м
0
Открытый
1.1
HTTP-клиент к LLM
↗
12
6
0м 26с
0
Открытый
1.2
Spring AI vs LangChain4j vs голый SDK
↗
7
5
-
0
Открытый
1.3
Готовим стенд: Java 21, Spring Boot 3.4+, Docker
↗
7
5
-
0
Открытый
1.4
API-ключи OpenAI и Anthropic
↗
7
6
-
0
Открытый
1.5
Ollama локально
↗
6
5
-
0
Открытый
1.6
Знакомство с финальным проектом курса
↗
6
5
-
0
2. ChatClient: первый разговор с моделью
9 уроков
51
40
0м
0
Открытый
2.1
ChatClient: builder, fluent API
↗
6
5
-
0
Открытый
2.2
ChatRequest, ChatResponse и метаданные
↗
5
4
-
0
Открытый
2.3
Подключаем OpenAI
↗
6
5
-
0
Открытый
2.4
Подключаем Anthropic Claude
↗
6
4
-
0
Открытый
2.5
Локальный режим: ChatClient поверх Ollama
↗
6
4
-
0
Открытый
2.6
Один YAML, три провайдера
↗
6
5
-
0
Открытый
2.7
Streaming через SSE
↗
6
5
-
0
Открытый
2.8
ChatOptions: temperature, top-p, max-tokens
↗
5
4
-
0
Открытый
2.9
Практика: REST API с переключателем моделей
↗
5
4
-
0
3. Промпты и структурированный вывод
9 уроков
36
36
0м
0
Открытый
3.1
PromptTemplate: переменные и ST-синтаксис
↗
4
4
-
0
Открытый
3.2
SystemMessage, UserMessage, AssistantMessage
↗
4
4
-
0
Открытый
3.3
Где хранить промпты
↗
4
4
-
0
Открытый
3.4
Structured Output: BeanOutputConverter
↗
4
4
-
0
Открытый
3.5
entity(): коллекции и вложенные объекты
↗
4
4
-
0
Открытый
3.6
JSON Schema и валидация ответа
↗
4
4
-
0
Открытый
3.7
Multi-modal: картинки и PDF
↗
4
4
-
0
Открытый
3.8
Ошибки промптов и как их чинить
↗
4
4
-
0
Открытый
3.9
Практика: парсер вакансий
↗
4
4
-
0
4. Tool Calling: LLM как часть бизнес-логики
10 уроков
44
41
0м
0
Открытый
4.1
Что такое tool calling
↗
5
4
-
0
Открытый
4.2
@Tool: декларативное описание инструментов
↗
4
4
-
0
Открытый
4.3
Регистрация: @Bean, builder, программно
↗
4
4
-
0
Открытый
4.4
@ToolParam и JSON-схема параметров
↗
4
4
-
0
Открытый
4.5
ToolContext: пробрасываем контекст
↗
5
4
-
0
Открытый
4.6
Цепочки tool-вызовов
↗
4
4
-
0
Открытый
4.7
Безопасность tool calling
↗
4
4
-
0
Открытый
4.8
Ошибки инструментов
↗
4
4
-
0
Открытый
4.9
Параллельный tool calling
↗
4
4
-
0
Открытый
4.10
Практика: AI-помощник e-commerce
↗
6
5
-
0
5. Память диалогов: история, которая не теряется
8 уроков
29
26
0м
0
Открытый
5.1
ChatMemory: интерфейс и реализации
↗
5
4
-
0
Открытый
5.2
InMemoryChatMemory для прототипов
↗
3
3
-
0
Открытый
5.3
JdbcChatMemoryRepository: история в PostgreSQL
↗
3
3
-
0
Открытый
5.4
Альтернативы: Redis и MongoDB
↗
3
3
-
0
Открытый
5.5
Стратегии обрезки истории
↗
3
3
-
0
Открытый
5.6
Multi-tenant память
↗
4
3
-
0
Открытый
5.7
Подсчёт токенов и контроль контекста
↗
3
3
-
0
Открытый
5.8
Практика: Telegram-бот с персональной историей
↗
5
4
-
0
6. RAG: модель отвечает по твоим документам
16 уроков
42
36
0м
0
Открытый
6.1
Зачем RAG: галлюцинации и ограничения LLM
↗
3
3
-
0
Открытый
6.2
EmbeddingModel: эмбеддинги в Spring AI
↗
4
2
-
0
Открытый
6.3
Локальные vs облачные эмбеддинги
↗
3
3
-
0
Открытый
6.4
VectorStore API: единый интерфейс
↗
3
2
-
0
Открытый
6.5
PgVector: установка, индексы, расстояния
↗
3
2
-
0
Открытый
6.6
Qdrant как альтернатива
↗
2
2
-
0
Открытый
6.7
SimpleVectorStore и Chroma для прототипов
↗
2
2
-
0
Открытый
6.8
DocumentReader: PDF, DOCX, Markdown
↗
3
3
-
0
Открытый
6.9
DocumentTransformer: chunking и overlap
↗
4
3
-
0
Открытый
6.10
Метаданные: фильтрация по тегам и датам
↗
3
2
-
0
Открытый
6.11
QuestionAnswerAdvisor: базовый RAG
↗
2
2
-
0
Открытый
6.12
Продвинутый RAG: rewriting, expansion, reranking
↗
2
2
-
0
Открытый
6.13
RetrievalAugmentationAdvisor и кастомные стратегии
↗
2
2
-
0
Открытый
6.14
Гибридный поиск: vector + BM25
↗
2
2
-
0
Открытый
6.15
Оценка качества RAG
↗
2
2
-
0
Открытый
6.16
Практика: AI-ассистент по документации
↗
2
2
-
0
7. MCP: Model Context Protocol на Java
10 уроков
32
22
0м
0
Открытый
7.1
Что такое MCP и зачем он нужен
↗
4
3
-
0
Открытый
7.2
Архитектура MCP: клиент, сервер, транспорты
↗
4
3
-
0
Открытый
7.3
Свой MCP-сервер на Spring Boot
↗
4
2
-
0
Открытый
7.4
@McpTool, @McpResource, @McpPrompt
↗
3
2
-
0
Открытый
7.5
JSON Schema и валидация tool definitions
↗
3
2
-
0
Открытый
7.6
MCP Client: подключаемся к чужим серверам
↗
2
2
-
0
Открытый
7.7
Готовые MCP-серверы: filesystem, Brave, GitHub
↗
2
2
-
0
Открытый
7.8
OAuth2-авторизация для MCP
↗
4
2
-
0
Открытый
7.9
Развёртывание: standalone, Kubernetes, sidecar
↗
3
2
-
0
Открытый
7.10
Практика: MCP-сервер для корпоративной БД
↗
3
2
-
0
8. Production: observability, безопасность, надёжность
11 уроков
32
22
0м
0
Открытый
8.1
Micrometer + Spring AI метрики
↗
5
2
-
0
Открытый
8.2
Distributed tracing: Zipkin, Tempo, Jaeger
↗
4
2
-
0
Открытый
8.3
Логирование промптов: 152-ФЗ и GDPR
↗
5
2
-
0
Открытый
8.4
Подсчёт токенов и стоимости
↗
2
2
-
0
Открытый
8.5
Retry, circuit breaker, fallback
↗
2
2
-
0
Открытый
8.6
Семантический кэш на эмбеддингах
↗
2
2
-
0
Открытый
8.7
Rate limiting: защита бюджета
↗
3
2
-
0
Открытый
8.8
Prompt injection и jailbreaks
↗
2
2
-
0
Открытый
8.9
PII-фильтрация перед отправкой в облако
↗
2
2
-
0
Открытый
8.10
Evals в CI/CD: ловим деградацию
↗
2
2
-
0
Открытый
8.11
Практика: observability и защита для RAG-проекта
↗
3
2
-
0
9. Финальный проект: AI-ассистент поддержки
8 уроков
29
18
0м
0
Открытый
9.1
Постановка задачи
↗
4
3
-
0
Открытый
9.2
Архитектура: Spring AI + RAG + Tools + MCP + Memory
↗
4
2
-
0
Открытый
9.3
Реализация ядра приложения
↗
4
3
-
0
Открытый
9.4
Тестирование: unit, integration, e2e
↗
3
2
-
0
Открытый
9.5
Dockerfile с правильными слоями
↗
3
2
-
0
Открытый
9.6
docker-compose: приложение + PgVector + Ollama
↗
4
2
-
0
Открытый
9.7
Деплой на VPS или в облако
↗
3
2
-
0
Открытый
9.8
Мониторинг в Grafana
↗
4
2
-
0