Пишу, помогаю, обучаю, внедряю, консультирую по AI Coding
О канале https://t.me/the_ai_architect/2
Связь: @yatimur | Визитка: timurkhakhalev.t.me
О канале https://t.me/the_ai_architect/2
Связь: @yatimur | Визитка: timurkhakhalev.t.me
В комментах в Вастрик.Клубе резонно указали, что не хватает примеров. Хорошее замечание, поэтому добавим больше примеров.
Давайте разберём описанные подходы на кейсе – ai fitness app.
Идея приложения – AI может анализировать видео записи тренировок пользователя, давать советы по технике. Может составить план тренировок, план питания, вести пользователя по этим планам.
Начнём по порядку:
1. Цепочка промптов
Тут всё просто – например, для после регистрации пользователя в системе, просим его рассказать о себе и о своих целях. Далее, мы можем: проанализировать инпут пользователя и понять, достаточно ли нам информации для того чтобы составлять курс тренировки или нужно запросить у пользователя еще информацию.
Если информации достаточно, то передаём её в воркфлоу, который составляет программу тренировок. Можем передать эту информацию в воркфлоу, который составляет программу питания. А можем сделать необольшой ричёрч и посмотреть, например, рекомендации ВОЗ по физической нагрузке для конкретного нашего пользователя.
2. Воркфлоу: Роутинг
Здесь можно привести такой пример – пользователь голосом отправляет сообщение, например, о том, что у него есть вопрос по питанию. Под капотом, после того как мы дешифруем голос в текст, мы отправляем этот текст в "роутер", которому в системный промпт добавляем все возможные действия нашего приложения (например, ответить на вопросы по питанию, тренировкам; составить программу тренировок; заменить упражнение и т. д.). Ну и роутер уже может выбрать действие соответствующее запросу юзера и передать флоу далее по пайплайну.
3. Воркфлоу: Параллелизация
Декомпозиция: разделяем запросы на генерацию силовых упражнений, кардио упражнений, а полученный результат анализируем и готовим отчёт по всем упражнениям.
Консенсус: просим LLM в несколько запросов оценить технику выполнения, анализируем полученные результаты, находим общие паттерны и используем их в качестве совета.
4. Воркфлоу: Оркестратор
Насколько я понимаю, такой подход применяется в Pro версии Perplexity – когда система сама сначала разбивает задачу на сабтаски, потом генерит промпт для поиска информации в интернете и оценивает результат.
Я пока что не видел хороших примеров использования такого подхода (если вы знаете такие примеры, пишите в комментах), кроме как в системах подобных Perplexity, так как никогда не хочется давать электронному дурачку большой выбор – я считаю, что его стоит держать в узде и ограничивать набор разрешённых действий.
4. Воркфлоу: Оценщик
Одним запросом LLM выполняет задачу, например, по составлению плана тренировки.
Другим запросом LLM смотрит на этот план тренировки и валидирует его по указанным правилам, и отправляет первую LLM'ку переделывать свою работу
5. Агент
В моём понимании, агент – это более комплекс различных воркфлоу, интеграций со сторонними сервисами и в целом автономная система, которая в состоянии обработать (не обязательно решить) любой запрос пользователя и дать ответ.
Давайте разберём описанные подходы на кейсе – ai fitness app.
Идея приложения – AI может анализировать видео записи тренировок пользователя, давать советы по технике. Может составить план тренировок, план питания, вести пользователя по этим планам.
Начнём по порядку:
1. Цепочка промптов
Тут всё просто – например, для после регистрации пользователя в системе, просим его рассказать о себе и о своих целях. Далее, мы можем: проанализировать инпут пользователя и понять, достаточно ли нам информации для того чтобы составлять курс тренировки или нужно запросить у пользователя еще информацию.
Если информации достаточно, то передаём её в воркфлоу, который составляет программу тренировок. Можем передать эту информацию в воркфлоу, который составляет программу питания. А можем сделать необольшой ричёрч и посмотреть, например, рекомендации ВОЗ по физической нагрузке для конкретного нашего пользователя.
2. Воркфлоу: Роутинг
Здесь можно привести такой пример – пользователь голосом отправляет сообщение, например, о том, что у него есть вопрос по питанию. Под капотом, после того как мы дешифруем голос в текст, мы отправляем этот текст в "роутер", которому в системный промпт добавляем все возможные действия нашего приложения (например, ответить на вопросы по питанию, тренировкам; составить программу тренировок; заменить упражнение и т. д.). Ну и роутер уже может выбрать действие соответствующее запросу юзера и передать флоу далее по пайплайну.
3. Воркфлоу: Параллелизация
Декомпозиция: разделяем запросы на генерацию силовых упражнений, кардио упражнений, а полученный результат анализируем и готовим отчёт по всем упражнениям.
Консенсус: просим LLM в несколько запросов оценить технику выполнения, анализируем полученные результаты, находим общие паттерны и используем их в качестве совета.
4. Воркфлоу: Оркестратор
Насколько я понимаю, такой подход применяется в Pro версии Perplexity – когда система сама сначала разбивает задачу на сабтаски, потом генерит промпт для поиска информации в интернете и оценивает результат.
Я пока что не видел хороших примеров использования такого подхода (если вы знаете такие примеры, пишите в комментах), кроме как в системах подобных Perplexity, так как никогда не хочется давать электронному дурачку большой выбор – я считаю, что его стоит держать в узде и ограничивать набор разрешённых действий.
4. Воркфлоу: Оценщик
Одним запросом LLM выполняет задачу, например, по составлению плана тренировки.
Другим запросом LLM смотрит на этот план тренировки и валидирует его по указанным правилам, и отправляет первую LLM'ку переделывать свою работу
5. Агент
В моём понимании, агент – это более комплекс различных воркфлоу, интеграций со сторонними сервисами и в целом автономная система, которая в состоянии обработать (не обязательно решить) любой запрос пользователя и дать ответ.
Сделал перевод замечательного (очередного) поста от Anthropic об агентах.
https://vas3k.club/post/26791/
Во вчерашнем посту я упомянул, что у openai есть ограничения на длину ответа при использовании structured output. В комментах меня поправили, что речь скорее о размере всей схемы structured output при её определении, хоть и в документации это плохо объясняется.
Я кратко расскажу, почему я пришёл к такому выводу.
В моём кейсе, промпт подразумевает, что LLM сделает анализ входного текста и выдаст мне результат анализа + сразу же вытащит некоторые параметры этого репорта в виде JSON, чтобы я мог из этих параметров сгенерить красивые диаграммки (для кейса это нужно). При анализе данных я ставлю температуру повыше, 0.8-1, т.к мы помним, что низкая температура может отуплять модель.
Сегодня я обнаружил закономерность - при использовании structured output, если вы ожидаете довольно длинный текст в одном из полей, необходимо как можно больше снижать температуру🙂
Я провел краткий эксперимент. С одним и тем же промптом + инпутом я менял температуру и вот что получилось:
temp 1.0 - 175 tokens
temp 0.5 - 257 tokens
temp 0.2 - 588 tokens
Это количество токенов в одном поле, в котором я ожидаю полный анализ. Если что, я использую модель gpt-4o-2024-11-20.
В самом тексте модель либо просто никак не продолжает текст, либо пишет что-то вроде "ну дальше там тоже самое разберись сам"
Делаю вывод, что при повышении температуры, модель кумарит и ей становится лень работать🙂 🙂 🙂
Я кратко расскажу, почему я пришёл к такому выводу.
В моём кейсе, промпт подразумевает, что LLM сделает анализ входного текста и выдаст мне результат анализа + сразу же вытащит некоторые параметры этого репорта в виде JSON, чтобы я мог из этих параметров сгенерить красивые диаграммки (для кейса это нужно). При анализе данных я ставлю температуру повыше, 0.8-1, т.к мы помним, что низкая температура может отуплять модель.
Сегодня я обнаружил закономерность - при использовании structured output, если вы ожидаете довольно длинный текст в одном из полей, необходимо как можно больше снижать температуру
Я провел краткий эксперимент. С одним и тем же промптом + инпутом я менял температуру и вот что получилось:
temp 1.0 - 175 tokens
temp 0.5 - 257 tokens
temp 0.2 - 588 tokens
Это количество токенов в одном поле, в котором я ожидаю полный анализ. Если что, я использую модель gpt-4o-2024-11-20.
В самом тексте модель либо просто никак не продолжает текст, либо пишет что-то вроде "ну дальше там тоже самое разберись сам"
Делаю вывод, что при повышении температуры, модель кумарит и ей становится лень работать
Только что до меня дошло, что у меня не было комментов на канале
Включил вроде🐱
Включил вроде
Технические заметки по одному текущему проекту
В последнее время много работаю с различными LLM и хочу поделиться некоторыми инсайтами.
Основную работу делаем через openai gpt-4o. Модель отлично справляется с извлечением JSON из текста, анализом информации, переводами и генерацией markdown таблиц. Кстати, забавный момент – пытались использовать gpt 4o-mini для оптимизации расходов, но столкнулись с тем, что она иногда игнорирует часть инструкций в промпте, особенно когда нужно и перевести текст с английского на русский, и сконвертировать его в markdown.
◾️ Structured output – база. Очень удобно вытаскивать нужную информацию из респонсов в виде JSON, а потом использовать в приложении.
◾️ Интеграция с zod (я пишу на node js) позволяет использовать схему для ответа модели еще и для типов в typescript.
◾️ Узнал, что у openai есть ограничения на длину ответа при использовании structured output - 15k символов (не токенов)
◾️ Кэширование на redis – мастхэв при разработке. В качестве ключей использую хэш system message + хэш user message, очень здорово экономятся токены.
Самый интересный технический челлендж возник при интеграции с Perplexity для получения актуальных данных. Оказалось, что их модели не очень дружит с русским языком – в ответах появляются китайские иероглифы🤯 Потом обнаружил, что их модели основаны на llama 3.1, а эта модель не поддерживает русский язык. Пришлось выкручиваться: теперь формируем запросы на английском, а потом переводим через gpt-4o. Хотя качество перевода пока не идеальное, подумываем о подключении специализированного сервиса переводов.
Забавно, но даже если в англоязычном промпте для Perplexity попросить ответить на русском – модель упорно игнорирует эту часть запроса😐
В последнее время много работаю с различными LLM и хочу поделиться некоторыми инсайтами.
Основную работу делаем через openai gpt-4o. Модель отлично справляется с извлечением JSON из текста, анализом информации, переводами и генерацией markdown таблиц. Кстати, забавный момент – пытались использовать gpt 4o-mini для оптимизации расходов, но столкнулись с тем, что она иногда игнорирует часть инструкций в промпте, особенно когда нужно и перевести текст с английского на русский, и сконвертировать его в markdown.
◾️ Structured output – база. Очень удобно вытаскивать нужную информацию из респонсов в виде JSON, а потом использовать в приложении.
◾️ Интеграция с zod (я пишу на node js) позволяет использовать схему для ответа модели еще и для типов в typescript.
◾️ Узнал, что у openai есть ограничения на длину ответа при использовании structured output - 15k символов (не токенов)
◾️ Кэширование на redis – мастхэв при разработке. В качестве ключей использую хэш system message + хэш user message, очень здорово экономятся токены.
Самый интересный технический челлендж возник при интеграции с Perplexity для получения актуальных данных. Оказалось, что их модели не очень дружит с русским языком – в ответах появляются китайские иероглифы
Забавно, но даже если в англоязычном промпте для Perplexity попросить ответить на русском – модель упорно игнорирует эту часть запроса
У кого-то из чата уже заработали аудио-ввод и вывод (генерация речи), у меня пока нет(
https://blog.google/technology/google-deepmind/google-gemini-ai-update-december-2024/
Ссылка попробовать в AI Studio БЕСПЛАТНО: тык
Reddit, крупнейшая площадка с пользовательским контентом, откуда Perplexity и другие AI берут самые полезные ответы, добавила поиск с ИИ - Reddit Answers.
По сути это диалоговый интерфейс поверх существующих обсуждений. Задаешь вопрос и получаешь релевантные куски с разных тредов, с прямыми ссылками на источники. Результаты можно читать прямо в поиске или переходить в оригинальные дискуссии.
Пока запустили только в США на английском. Обещают добавить другие страны и языки позже, можно подписаться на уведомления о запуске в своем регионе.
В отличие от генеративных чатботов, система не придумывает ответы, а собирает их из реальных обсуждений. Это логичный апгрейд поиска по Reddit - платформа давно пыталась сделать свой контент более доступным для поиска.
По сути это диалоговый интерфейс поверх существующих обсуждений. Задаешь вопрос и получаешь релевантные куски с разных тредов, с прямыми ссылками на источники. Результаты можно читать прямо в поиске или переходить в оригинальные дискуссии.
Пока запустили только в США на английском. Обещают добавить другие страны и языки позже, можно подписаться на уведомления о запуске в своем регионе.
В отличие от генеративных чатботов, система не придумывает ответы, а собирает их из реальных обсуждений. Это логичный апгрейд поиска по Reddit - платформа давно пыталась сделать свой контент более доступным для поиска.
Доброе утро!
Написал статью про промптинг, собрал все актуальные техники на конец 2024 года. Приятного чтения🌹 , обсуждение приветствуется 😍
https://teletype.in/@timur_khakhalev/prompts-guide-2024-2025
Написал статью про промптинг, собрал все актуальные техники на конец 2024 года. Приятного чтения
https://teletype.in/@timur_khakhalev/prompts-guide-2024-2025
В целом прикольно, хоть и сыровато пока что. На маке пока что не поддерживается работа с nvm (пакетный менеджер), необходимо вручную указывать путь до нужной версии ноды
Anthropic представили Model Context Protocol
Протокол MCP предназначен для того чтобы дать возможность LLM использовать 3rd-party приложения.
На сегодняшний день MCP поддерживают: Claude Desktop, Zed (IDE для маков), Cody (автокомплит для IDE).
Протокол open-source, так что любой разработчик может интегрировать его в свои приложения.
Здесь описан весь стандарт.
Протокол представляет собой типичную client-server архитектуру, где, на данный момент, clients – Claude Desktop, Zed, etc, server – 3rd-party apps. Участники протокола могут общаться между собой с помощью различных протоколов, можно даже создать свой, здесь подробнее.
На данный момент клиенты могут подключаться только к локальным серверам, позже обещают дать доступ для удалённых серверов.
В прикреплённом видео показывается пример того как пользователь просит Claude создать простую html страничку, опубликовать её в Github (с помощью созданного MCP сервера), создать Issue.
Таким образом, пользователь может в своём любимом UI (Claude, IDE, etc) просить LLM выполнить некоторые действия со сторонним приложением. Получился такой function calling на стероидах.
Ещё один шаг к распространению тренда на AI agents, пик которого ожидается на 2025 год.
Протокол MCP предназначен для того чтобы дать возможность LLM использовать 3rd-party приложения.
На сегодняшний день MCP поддерживают: Claude Desktop, Zed (IDE для маков), Cody (автокомплит для IDE).
Протокол open-source, так что любой разработчик может интегрировать его в свои приложения.
Здесь описан весь стандарт.
Протокол представляет собой типичную client-server архитектуру, где, на данный момент, clients – Claude Desktop, Zed, etc, server – 3rd-party apps. Участники протокола могут общаться между собой с помощью различных протоколов, можно даже создать свой, здесь подробнее.
На данный момент клиенты могут подключаться только к локальным серверам, позже обещают дать доступ для удалённых серверов.
В прикреплённом видео показывается пример того как пользователь просит Claude создать простую html страничку, опубликовать её в Github (с помощью созданного MCP сервера), создать Issue.
Таким образом, пользователь может в своём любимом UI (Claude, IDE, etc) просить LLM выполнить некоторые действия со сторонним приложением. Получился такой function calling на стероидах.
Ещё один шаг к распространению тренда на AI agents, пик которого ожидается на 2025 год.
Обнаружил у себя первых подпищеков, всем спасибо за подписку 💜
Пока думаю над следующим постом, ищу интересных авторов на сабстаке и в твитторе, наткнулся на сабстак Jeremy Caplan, который обозревает новые AI тулы разного вида. Вот, например
https://wondertools.substack.com/p/aidata?utm_source=profile&utm_medium=reader2
https://wondertools.substack.com/p/heres-my-ai-toolkit?utm_source=profile&utm_medium=reader2
Я для себя ничего полезного не нашёл, но может кому-то будет полезно
Пока думаю над следующим постом, ищу интересных авторов на сабстаке и в твитторе, наткнулся на сабстак Jeremy Caplan, который обозревает новые AI тулы разного вида. Вот, например
https://wondertools.substack.com/p/aidata?utm_source=profile&utm_medium=reader2
https://wondertools.substack.com/p/heres-my-ai-toolkit?utm_source=profile&utm_medium=reader2
Я для себя ничего полезного не нашёл, но может кому-то будет полезно
Опубликовал свою первую статью с обзором Retrieval Augmented Generation (RAG) vs Fine-tuning 😎
В ней я обозреваю оба подхода и даю совет, как выбрать каждый из подходов🌟
В ней я обозреваю оба подхода и даю совет, как выбрать каждый из подходов
Зарезервированное сообщение 5
Зарезервированное сообщение 4
Зарезервированное сообщение 3
Зарезервированное сообщение 2
Меня зовут Тимур Хахалев, я AI Solutions Architect, и этот канал посвящен AI Coding.
Здесь я делюсь своим опытом, полезными инструментами, лайфхаками и мыслями.
👉 Мои лекции
Claude Code Deep Dive – Архитектура и Топовый Workflow. Как устроен Claude Code под капотом: агенты, контекст, оркестрация и планирование
Plan & Act – Разбор Работающего AI Coding Workflow. Как я автоматизирую разработку с помощью AI-агентов: планирование, оркестрация и исполнение
Мой актуальный воркфлоу: Как я пишу код с AI: пост
Мои прошлые воркфлоу: Как я пишу код с AI
Часть 1 , часть 2, часть 3
Context Engineering: Главный навык в AI кодинге
Почему "Garbage In, Garbage Out" — это главный принцип работы с LLM.
Тёмная сторона вайб-кодинга: реальный кейс
Как изучать новые технологии с помощью ИИ
Как сэкономить деньги на AI Coding Agents
Про безопасность AI Coding, пост 1, пост 2
Выключайте MCP-сервера
AI Coding Tools Landscape: от простого автокомплита до автономных агентов
Теги на канале:
- #ai_coding@the_ai_architect – все посты про AI Coding
- #performance@the_ai_architect – все посты про мои публичные выступления
👨💼 Бизнес и консультации
Я провожу платные консультации по AI Coding. Если вы хотите начать использовать AI Coding в своей работе, но не знаете как – обратитесь ко мне.
Если вы уже используете AI Coding, но сталкиваетесь с проблемами – обратитесь ко мне.
Заполнить бриф перед консультацией можно здесь: ai.khakhalev.com
Связь со мной: @yatimur
Моя визитка: timurkhakhalev.t.me