Это канал комьюнити, где софтверные инженеры пробуют различные AI утилиты в работе и делятся опытом.
Для интеграции AI в свою компанию, оставьте заявку на нашем сайте.
Статья с которой все началось, обязательно к прочтению, содержит базовые рекомендации, с которых можно начать свой путь.
В канале публикуется важная информация, обновления, опросы, интересные посты участников.
Общение происходит в чате.
У нас есть база знаний, которую мы коллективно наполняем
Я работаю над гайдом для конрибьюции, но уже сейчас можете присылать свои мысли и юзкейсы @romankaganov
Вы можете помочь проекту любым другим способом, если вы умеете в ноушен, дизайн, ведение соцсетей, написание текстов, маркетинг - you are always welcome, труд всегда будет вознагражден.
Я хочу развивать проект по принципу Open Startup, он будет максимально публичным и прозрачным, с поддержкой комьюнити.
Пожалуйста, пройдите небольшой опрос знакомство.
Об авторе можно почитать тут @ctobuddy
Please open Telegram to view this post
VIEW IN TELEGRAM
Devs try AI pinned «🤵 Info Это канал комьюнити, где софтверные инженеры пробуют различные AI утилиты в работе и делятся опытом. Для интеграции AI в свою компанию, оставьте заявку на нашем сайте. Статья с которой все началось, обязательно к прочтению, содержит базовые рекомендации…»
Знакомство ч2. Роль
Anonymous Poll
70%
Пишу код, девопшу, тестирую, etc
9%
Техлижу
14%
Управляю продуктом
7%
Владею бизнесом
Знакомство ч3. От комьюнити я хочу
Anonymous Poll
83%
Наблюдать
7%
Законтрибьютить
7%
Активно участвовать
3%
В команду
Гайз, давайте выберем направление на эту неделю, и навалимся на него вместе.
Anonymous Poll
49%
Copilot CLI
26%
Copilot for pull requests
26%
Copilot vs IntelliJ AI
🪨 Pitfalls
Поговорил сейчас с @Oviron по поводу нашего кейса рефакторинга кода. Было решено добавить новую секцию в описание юзкейса - Pitfalls.
Я добавил первый подводный камень.
🤖 Ассистент не думает абстрактно
Через какое то время после рефакторинга выяснилось, что можно еще улучшить код, добавить абстрации. Если бы все классы рефакторил человек, он скорее всего заметил бы повторяющиеся паттерны и сразу бы улучшил эти места. Машина же, хоть и хорошо, но выполняла инструкцию, а для человека задача рефакторинга сложна тем, что следующего шага может быть не видно, пока не сделаешь предыдущий.
Если спрашивать AI Ассистента, как бы он отрефакторил тот или иной код, то скорее всего получишь какие-то низкоуровневые рекомендации на уровне if-else и циклов, а не верхнеуровневые улучшения по архитектуре.
Появилась гипотеза, что можно попробовать составить диаграмму классов в текстовом формате с сигнатурами и описаниями функций и классов, без реализаций, и спросить у Ассистента рекомендации по улучшению.
PS Вообще проблема рефакторинга стоит довольно остро в любом проекте, ты либо копишь тех долг и увеличиваешь стоимость добавления каждой новой строчки кода, либо регулярно рефакторишь. Было бы очень круто максимально удешевить рефакторинг.
@devstryai
Поговорил сейчас с @Oviron по поводу нашего кейса рефакторинга кода. Было решено добавить новую секцию в описание юзкейса - Pitfalls.
Я добавил первый подводный камень.
🤖 Ассистент не думает абстрактно
Через какое то время после рефакторинга выяснилось, что можно еще улучшить код, добавить абстрации. Если бы все классы рефакторил человек, он скорее всего заметил бы повторяющиеся паттерны и сразу бы улучшил эти места. Машина же, хоть и хорошо, но выполняла инструкцию, а для человека задача рефакторинга сложна тем, что следующего шага может быть не видно, пока не сделаешь предыдущий.
Если спрашивать AI Ассистента, как бы он отрефакторил тот или иной код, то скорее всего получишь какие-то низкоуровневые рекомендации на уровне if-else и циклов, а не верхнеуровневые улучшения по архитектуре.
Появилась гипотеза, что можно попробовать составить диаграмму классов в текстовом формате с сигнатурами и описаниями функций и классов, без реализаций, и спросить у Ассистента рекомендации по улучшению.
PS Вообще проблема рефакторинга стоит довольно остро в любом проекте, ты либо копишь тех долг и увеличиваешь стоимость добавления каждой новой строчки кода, либо регулярно рефакторишь. Было бы очень круто максимально удешевить рефакторинг.
@devstryai
👍4
Пришел интересный комментарий
❓У меня два вопроса
- Кто-то использует Phind?
- В чем прикол Bard, Perplexity? как вы используете их по делу?
Порекламирую несправедливо неизвестный [Phind.com](https://www.phind.com). Услышал о нём, как о годной LLM для кодинга на канале [«Запуск Завтра»](https://t.iss.one/ctodaily/1707).
Отвечает на голову лучше Bard, Perplexity, субъективно, даже лучше OpenAI ChatGPT (в бесплатной версии по крайней мере). Главные фичи:
- умный! Пока не замечен в том, чтобы писать откровенную фигню
- редко галлюцинирует, предпочитая горькую правду сладкой лжи
- даёт ссылки на источники
- работает в РФ без VPN (по словам канала «Запуск Завтра»)
❓У меня два вопроса
- Кто-то использует Phind?
- В чем прикол Bard, Perplexity? как вы используете их по делу?
🤔1
Общим голосованием было реешено на этой неделе поизучать Copilot CLI, но на самом деле я посмотрел официальную доку. Она довольно короткая и говорит, что CLI утилита пока в бете.
У нее две команды:
Думаю, можно расширить таску до исследования любых CLI утилит, поэтому накидывайте что у вас есть в этот тред, для этого нужно подписаться на канал 👇
@devstryai
У нее две команды:
gh copilot suggest
gh copilot explain
Думаю, можно расширить таску до исследования любых CLI утилит, поэтому накидывайте что у вас есть в этот тред, для этого нужно подписаться на канал 👇
@devstryai
🪨 Pitfall. Refactore code.
Недостаточно контекста для следующей итерации
После первой итерации рефакторинга вырос общий объем кода примерно на 15% и количество файлов увеличилось с 1 до 4х, во вторую итерацию количество файлов должно было вырасти с 4х до 8ми.
Последующие попытки отрефакторить дальше методом, описанным выше, не увенчались успехом. Ассистенту явно не хватало контекста, принудительное подключение файлов к контексту не принесло никаких результатов. Ассистент предлагал создавать файлы, которые уже существуют и скатывался в низкоуровневые рекомендации.
Пока сложно судить о том, что повлияло на результат - увеличение объема кода, или количества файлов.
Обновил юзкейс
@devstryai
Недостаточно контекста для следующей итерации
После первой итерации рефакторинга вырос общий объем кода примерно на 15% и количество файлов увеличилось с 1 до 4х, во вторую итерацию количество файлов должно было вырасти с 4х до 8ми.
Последующие попытки отрефакторить дальше методом, описанным выше, не увенчались успехом. Ассистенту явно не хватало контекста, принудительное подключение файлов к контексту не принесло никаких результатов. Ассистент предлагал создавать файлы, которые уже существуют и скатывался в низкоуровневые рекомендации.
Пока сложно судить о том, что повлияло на результат - увеличение объема кода, или количества файлов.
Обновил юзкейс
@devstryai
👌1
📝 Описание
В рамках попытки преодолеть порог понимания контекста во время рефакторинга, описанного в Refactor code - Pitfalls, мы попытались создать диаграмму классов для части кода, который хотели отрефакторить, загрузить ее в текстовом виде в ChatGPT и задать вопросы по улучшению архитектуры.
🤔Гипотеза
Если предоставить ChatGPT адекватный промт и информацию об архитектуре модуля в понятном формальном виде, то можно попробовать заставить её давать рекомендацию по высокоуровневому рефакторингу - на уровне абстракций и связей между различными компонентами.
👎 Experiment 1
В качестве формального представления архитектуры модуля был выбран PlantUML Text Encoding. Диаграмма классов была сгенерирована встроенными средствами Intellij IDEA и экспортирована в сервис PlantUML
Текстовое представление было загружено в ChatGPT и ей была поставлена задача проанализировать, оценить и дать конкретные и прямые способы улучшения архитектуры.
Не смотря на то, что ChatGPT верно проанализировала текстовое UML представление структуры модуля и смогла достаточно точно описать его суть, каких то впечатляющих результатов по предложенным улучшениям получено не было. Модель предлагала хоть и толковые, но достаточно абстрактные вещи наподобие “Улучшите производительность” или “Внедрите DI” и ничего полезного.
Возможно, в этот раз контекста было слишком мало и стоит попробовать добавить больше информации
@devstryai
В рамках попытки преодолеть порог понимания контекста во время рефакторинга, описанного в Refactor code - Pitfalls, мы попытались создать диаграмму классов для части кода, который хотели отрефакторить, загрузить ее в текстовом виде в ChatGPT и задать вопросы по улучшению архитектуры.
🤔Гипотеза
Если предоставить ChatGPT адекватный промт и информацию об архитектуре модуля в понятном формальном виде, то можно попробовать заставить её давать рекомендацию по высокоуровневому рефакторингу - на уровне абстракций и связей между различными компонентами.
👎 Experiment 1
В качестве формального представления архитектуры модуля был выбран PlantUML Text Encoding. Диаграмма классов была сгенерирована встроенными средствами Intellij IDEA и экспортирована в сервис PlantUML
Текстовое представление было загружено в ChatGPT и ей была поставлена задача проанализировать, оценить и дать конкретные и прямые способы улучшения архитектуры.
Не смотря на то, что ChatGPT верно проанализировала текстовое UML представление структуры модуля и смогла достаточно точно описать его суть, каких то впечатляющих результатов по предложенным улучшениям получено не было. Модель предлагала хоть и толковые, но достаточно абстрактные вещи наподобие “Улучшите производительность” или “Внедрите DI” и ничего полезного.
Возможно, в этот раз контекста было слишком мало и стоит попробовать добавить больше информации
@devstryai
👍4
Коллега говорит, что если начать строку с "F", то копайлот в 100% случаев дописывает ее до FUCK.
Осуждаю, я обычно дебажу через console.log("SUKA")
@devstryai
Осуждаю, я обычно дебажу через console.log("SUKA")
@devstryai
😁10
Я тут выяснил, что даже у нас в команде еще не все знают, что у копайлота есть фича принудительного добавления файлов в контекст, и что вообще можно открыть меню правой кнопкой мыши и там будут другие функции.
полезно? Отправь другу.
👍 - да 👎 - нет
@devstryai
полезно? Отправь другу.
👍 - да 👎 - нет
@devstryai
👍18😱1
Пообщался с одним человеком, мы хорошо побрейнштормили по развитию продукта и комьюнити.
Первое, что хочу сделать - открыть базу знаний для всех.
Возможно она переедет со временем из ноушена в гитхаб или еще куда-то, но начало тут.
https://pine-behavior-eca.notion.site/Devs-try-AI-9b774b6775e6426bb819ebb1bb5d8e59
Буду дальше организовывать работу над ее наполнением. Принимаю ваши идеи, критику, и, конечно же, контрибьюцию.
Пишите в чат или мне в личку @romankaganov
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤4🔥3
Участник канала прислал интересный материал.
Ребята из Codium провели исследование и создали довольно длинную цепочку из моделек для написания кода, во время которой система понимает задачу, дописывает под нее тесты, генерирует решения, выбирает лучшее, а потом подгоняет его под тесты(человеческие+ машинные)
Мы использовали Codium для написания юнит тестов, он справляется гораздо лучше Copilot, как раз за счет разбития задачи на шаги - сначала генирируются тесткейсы, а потом каждый тест генерируется отдельным запросом.
Пока что это только эксперимент на простых задачах из датасета, но уже можно делать определенные выводы и брать себе на заметку подход. Мы как раз хотели протестировать создание тесткейсов из документов, записей разговоров и тд, а по тесткейсам генерировать сами тесты и дальше код.
Что еще интересного можно взять:
- Semantic reasoning via bullet points analysis: Bullet points analysis encourages an in-depth understanding of the problem, and forces the model to divide the output into logical semantic sections, leading to improved results
- LLMs do better when generating a modular code: when asking the model to: "divide the generated code into small sub-functions, with meaningful names and functionality", we observe a better-produced code, with fewer bugs, and higher success rates for the iterative fixing stages.
@devstryai
Ребята из Codium провели исследование и создали довольно длинную цепочку из моделек для написания кода, во время которой система понимает задачу, дописывает под нее тесты, генерирует решения, выбирает лучшее, а потом подгоняет его под тесты(человеческие+ машинные)
Мы использовали Codium для написания юнит тестов, он справляется гораздо лучше Copilot, как раз за счет разбития задачи на шаги - сначала генирируются тесткейсы, а потом каждый тест генерируется отдельным запросом.
Пока что это только эксперимент на простых задачах из датасета, но уже можно делать определенные выводы и брать себе на заметку подход. Мы как раз хотели протестировать создание тесткейсов из документов, записей разговоров и тд, а по тесткейсам генерировать сами тесты и дальше код.
Что еще интересного можно взять:
- Semantic reasoning via bullet points analysis: Bullet points analysis encourages an in-depth understanding of the problem, and forces the model to divide the output into logical semantic sections, leading to improved results
- LLMs do better when generating a modular code: when asking the model to: "divide the generated code into small sub-functions, with meaningful names and functionality", we observe a better-produced code, with fewer bugs, and higher success rates for the iterative fixing stages.
@devstryai
👍6🤔1
📝 Шаблон описания тулзы
На примере Github Copilot хочу создать шаблон описания AI тулзы, чтоб под него описать все остальные и новые утилиты. Тогда будут понятные критерии сравнения похожих продуктов между собой.
Прошу посмотреть и дать свою обратную связь. Может что-то можно добавить, как в шаблон, так и по самому Copilot. Вы это можете сделать как в чате, так и в режиме комментирования в Notion.
@devstryai
На примере Github Copilot хочу создать шаблон описания AI тулзы, чтоб под него описать все остальные и новые утилиты. Тогда будут понятные критерии сравнения похожих продуктов между собой.
Прошу посмотреть и дать свою обратную связь. Может что-то можно добавить, как в шаблон, так и по самому Copilot. Вы это можете сделать как в чате, так и в режиме комментирования в Notion.
@devstryai
👍2
Что то неладное произошло с Copilot Chat в VS Code(v1.86.0). Он не определяет автоматически контекст, даже для открытого файла с которым ты непосредственно работаешь.
Проверяется это простым вопросом в новый чат - “What does this code do?”. Copilot Chat должен подцепить как минимум открытый файл в контекст.
Такой проблемы нет в Cursor IDE v0.22.1 основанной на VSCode: 1.85.1, там Copilot Chat по дефолту подцепляет в контекст открытый файл, но всегда только один файл! Если задать вопрос, который требует контекста из других файлов, то чат не пойдет в них. Функции явной привязки файлов к контексту в VSCode тоже пока нет.
Единственный способ как можно заставить Copilot Chat смотреть в другие файлы - через ключевое слово @workspace, но в этом случае он может добавить много ненужного, а нужное не добавить.
Это идет вразрез с описанной работой описанной в How GitHub Copilot is getting better at understanding your code и скорее похоже на баг, который должны поправить. Во всяком случае в InteliJ работает так, как описано в статье.
После использования InteliJ, Copilot Chat в VSCode выглядит бесполезным, но Copilot Chat в InteliJ находится в Beta и доступен только после ожидания в wait list. Поэтому мы начали тестировать чат в Cursor, по функционалу управления контекстом он выглядит даже круче InteliJ.
Все это было обнаружено мной во время пейринг сессии с программистом. Без моей помощи, программист, наверное, попробовал бы пару раз задать вопросы, получил бы нерелевантные ответы и пошел бы писать на форумах какое Copilot говно. Местами оно действительно так, но напомню, что у Copilot Chat версия v0.12.0.
Поэтому записывайтесь ко мне на пейринг сессии, на которых я научу пользоваться тулзами и расскажу вот о таких подводных камнях, а также вы сделаете вклад в общее знание.
Писать @romankaganov
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👍1
