Devs try AI
350 subscribers
17 photos
35 links
Комьюнити, где софтверные инженеры пробуют различные AI утилиты в работе и делятся опытом. Чат @devstryai_chat

Для связи @romankaganov
Канал автора: @ctobuddy
Download Telegram
Знакомство ч1. Опыт работы, лет
Anonymous Poll
20%
0-3
22%
3-6
24%
6-10
34%
10+
Гайз, давайте выберем направление на эту неделю, и навалимся на него вместе.
Anonymous Poll
49%
Copilot CLI
26%
Copilot for pull requests
26%
Copilot vs IntelliJ AI
🪨 Pitfalls

Поговорил сейчас с @Oviron по поводу нашего кейса рефакторинга кода. Было решено добавить новую секцию в описание юзкейса - Pitfalls.

Я добавил первый подводный камень.

🤖 Ассистент не думает абстрактно

Через какое то время после рефакторинга выяснилось, что можно еще улучшить код, добавить абстрации. Если бы все классы рефакторил человек, он скорее всего заметил бы повторяющиеся паттерны и сразу бы улучшил эти места. Машина же, хоть и хорошо, но выполняла инструкцию, а для человека задача рефакторинга сложна тем, что следующего шага может быть не видно, пока не сделаешь предыдущий.

Если спрашивать AI Ассистента, как бы он отрефакторил тот или иной код, то скорее всего получишь какие-то низкоуровневые рекомендации на уровне if-else и циклов, а не верхнеуровневые улучшения по архитектуре.

Появилась гипотеза, что можно попробовать составить диаграмму классов в текстовом формате с сигнатурами и описаниями функций и классов, без реализаций, и спросить у Ассистента рекомендации по улучшению.

PS Вообще проблема рефакторинга стоит довольно остро в любом проекте, ты либо копишь тех долг и увеличиваешь стоимость добавления каждой новой строчки кода, либо регулярно рефакторишь. Было бы очень круто максимально удешевить рефакторинг.

@devstryai
👍4
Пришел интересный комментарий

Порекламирую несправедливо неизвестный [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 утилита пока в бете.

У нее две команды:
gh copilot suggest
gh copilot explain


Думаю, можно расширить таску до исследования любых CLI утилит, поэтому накидывайте что у вас есть в этот тред, для этого нужно подписаться на канал 👇

@devstryai
🪨 Pitfall. Refactore code.

Недостаточно контекста для следующей итерации

После первой итерации рефакторинга вырос общий объем кода примерно на 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
👍4
Коллега говорит, что если начать строку с "F", то копайлот в 100% случаев дописывает ее до FUCK.

Осуждаю, я обычно дебажу через console.log("SUKA")

@devstryai
😁10
Я тут выяснил, что даже у нас в команде еще не все знают, что у копайлота есть фича принудительного добавления файлов в контекст, и что вообще можно открыть меню правой кнопкой мыши и там будут другие функции.

полезно? Отправь другу.

👍 - да 👎 - нет

@devstryai
👍18😱1
👍 База знаний теперь публична

Пообщался с одним человеком, мы хорошо побрейнштормили по развитию продукта и комьюнити.

Первое, что хочу сделать - открыть базу знаний для всех.

Возможно она переедет со временем из ноушена в гитхаб или еще куда-то, но начало тут.

https://pine-behavior-eca.notion.site/Devs-try-AI-9b774b6775e6426bb819ebb1bb5d8e59

Буду дальше организовывать работу над ее наполнением. Принимаю ваши идеи, критику, и, конечно же, контрибьюцию.

Пишите в чат или мне в личку @romankaganov
Please open Telegram to view this post
VIEW IN TELEGRAM
👍94🔥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
👍6🤔1
📝 Шаблон описания тулзы

На примере Github Copilot хочу создать шаблон описания AI тулзы, чтоб под него описать все остальные и новые утилиты. Тогда будут понятные критерии сравнения похожих продуктов между собой.

Прошу посмотреть и дать свою обратную связь. Может что-то можно добавить, как в шаблон, так и по самому Copilot. Вы это можете сделать как в чате, так и в режиме комментирования в Notion.

@devstryai
👍2
🥺 Поломанный контекст в VS Code(v1.86.0)

Что то неладное произошло с 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
📝 UPD Контекст в VSCode

Обновил описания работы контекста в VSCode(v1.86.0) c Github Copilot Chat(v0.12.0), в этой версии копайлот работает совершенно по другому по сравнению с предыдущей версией и JetBrains-like IDE.

В 0.12 версии нужно указывать контекст принудительно с помощью команд.

@devstryai
👍3
AI Driven Product Management

Проходил сегодня курс по продуктовому менеджменту с помощью AI от Игоря Акимова.

Я не профессиональный продакт, и для меня это было еще полезнее, ведь мы знаем, что AI помогает в освоении новой области знаний и позволяет джунам быть на уровень выше, чем они есть.

👉 Главный инсайт, который я получил

Есть исследование(Игорь обещал мне скинуть ссылку), где ученые психологи задавали вопросы ИИ и человеку. И их ответы коррелировали на 95%.

Что это значит? Что мы можем нагенерировать столько персон, сколько нам нужно и задавать им сколько угодно вопросов. Прощай эра кастдевов в том виде, как это было раньше. Я не перестану говорить с людьми, но скорее буду это делать вторым шагом.

Что дальше?

На курсе мы создали цепочку вызовов от проработки, юзкейса, создания персоны, анализа CJM, генерации и задавания вопросов, до анализа ответов. Все это сопровождалось постоянным ручным копипейстом контекста в chatGPT. Это дело и будем автоматизировать с помощью Langchain, добавлять в цепочку учителя, подключать внешний интернет и RAG с внутренней документацией.

Обкатывать хочу как на основном проекте, там у нас сложная задача по интеграции с американской банковской системой, так и на проекте @devstryai, где нужно находить product market fit.

Дополнительно для себя еще узнал как круто делать обучение с большим количеством практики и интерактивом. Беру на карандашик, когда нибудь запущу свой курс.

@devstryai
👍4🔥2🤔1
Chat with RTX - настольное приложение от NVIDIA, которое позволяет запустить локальную LLM на видеокартах NVIDIA GeForce RTX 30 серии и выше, которая работает с вашими локальными данными при помощи RAG

Работает на Windows 11. Для работы приложение также требуется видеокарта RTX 3000 или 4000 серии с минимум 8 Гб видеопамяти, а также 16 гигабайт оперативной памяти.

Интересно было бы попробовать в связке с second brain, я давно думал об этом, но не хотелось раскрывать свои личные данные OpenAI и другим публичным LLM.

Скачать можно с официального сайта Nvidia

@devstryai
👍5🤡2
📝Usecase: Writing code annotations

У нас новый юзкейс, спасибо @melko_u за контрибьюцию.

Проблема:
Модель дает слишком абстрактные и водянистые аннотации.

Что сработало:

Во-первых базовые рекомендации типа разбивать задачу на подзадачи и контролировать контекст.

Во-вторых проработка примеров итеративно. Сначала взять рузультат от LLM как есть, подправить его, и приложить его к следующему запросу. LLM выдаст результат лучше, но не идеально, поправить его еще раз и приложить к следующему запросу как второй пример, и с двумя примерами модель начинает работать отлично.

В-третьих итеративно сокращать результат. Очень часто GPT уносит в глубокие рассуждения и он генерирует много воды. Слова "keep short" and "be concise" не всегда работают. Тогда мы применяем суммаризующий промпт итеративно несколько раз до получения нужного результата.

Полное описание можно найти тут

@devstryai
👍2🔥2