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

Для связи @romankaganov
Канал автора: @ctobuddy
Download Telegram
Гайз, давайте выберем направление на эту неделю, и навалимся на него вместе.
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
📝 UPD: Контрибьюторы, бизнес кейс, продакт менеджмент

На этой неделе начинаю активно общаться и искать контрибьютеров. Уже четыре человека выразили желание помочь с проектом, пообщаюсь сначала с ними.

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

Самое главное - проект будет разрабатываться по принципам Open Startup и с упором на зарабатываение денег.

🫡 Вынес 4 главные ценности:

1. Compensation for Work: We don't work for free and never request others to do so. We aim to make money from day 1.
2. AI-Driven Development: We practice what we preach. Every task begins with the question, "How can we use AI here?"
3. Open Startup: We adhere to principles of transparency, community engagement, and open metrics.
4. Feedback and Continuous Improvement: We actively seek feedback, understanding that negative responses can often be more valuable than positive ones.


💰 По поводу денег - в понедельник презентую коммерческое предложение первому клиенту, до конца месяца планирую найти еще.

Помимо очевидной функции бизнес кейса - радовать глаз любого проджекта, я хочу его использовать активно как контекст для ChatGPT в рамках AI Driven Product Management для всех последующих запросов.

👉 Почитать документ можно тут, как всегда, жду вашей критики и комментариев.

Если вы заинтересованы в участии в проекте, пишите @romankaganov

@devstryai
🔥3
🤖Технологическая сингулярность

Прочитал тут 3 научных публикации в которых ученые озадачивались когнитивными функциями LLM и их способностью думать как человек.

Using Large Language Models to Simulate Multiple Humans
and Replicate Human Subject Studies:


В этом исследовании ученые предложили новый тип теста - Эксперимент Тьюринга, в отличии от Теста Тьюринга он проверяет может ли машина симулировать поведение групп людей, а не индивидумов.

Например, в эксперименте Ultimatum Game, где одному “человеку” предлагалось сделать предложение, а второму либо принять его, либо нет. Машина вела себя как человек, хотя математически верное решение - принимать каждое предложения. Даже больше, в эксперименте машина показывала корреляцию с человеческим поведением и по гендерному признаку, если давать ей мужские или женские имена!

Но есть один тест, который машина завалила - она палится, когда начинаешь спрашивать ее про какое то точное знание. Типа “ты 5 летняя девочка, представь свой полет на Луну. Сколько он займет?” Машина начинает доставать свои энциклопедические знания и щеголять ими.

Large Language Models Show Human Behavior
Это препринт, и в целом он повторяет сказанное выше, но мне понравилось что “процесс кодирования информации в таких моделях на основе AI приводит к ошибкам, которые также распространены среди людей, таким как уязвимость к вводящим в заблуждение вопросам, амнезия источника и чувствительность к небольшим изменениям в формулировке”

Emergent Analogical Reasoning in Large Language Models

В этой статье исследователи доказывают, что GPT-3 имеет способность абстрактно думать и проводить аналогии и справляется с этой задачей “лучше студентов колледжа в большинстве случаев, без какого либо предварительного обучения задаче”. Тут было была надежда, что человечество не в сухую проиграло битву, GPT-3 проиграла человеку в построении сложных аналогий между длинными историями, где нужно было выстраивать взаимосвязи между взаимосвязями и событиями. Но GPT-4 переиграло человека и тут, увы.

Что можно делать со знаниями выше?

Как писал раньше, можно создавать себе сколько угодно сабличностей и целые группы людей и обкатывать на них свои идеи, материалы, предложения. Я так, например, на днях обкатывал коммерческое предложение перед его презентацией клиенту. Очень полезно.

Ну что, напряглись?

Я вот напрягся, недавно пересматривал фильм Терминатор, он начинается с вида разрушенного Лос Анджелеса 2029 года.

А вообще мы входим в такую сингулярность, что не успели мы еще познать все глубины GPT-4, как выходит новая Gemini 1.5 Pro с просто невероятным контекстным окном, и которая работает тем лучше, чем больше контекст ты ей дашь. В чате @devstryai_chat скидывают ссылки на другую модель - Mistral, еще один новый зверь.

Как ни крути, либо вы осваиваете искусство владения AI и будете давать ему команды, либо вы в постепенно станете физическим интерфейсом aka ”агентом” AI. Первое, кстати, не исключает второе.

Если вам интересно внедрение AI в свою работу или бизнес, напишите мне @romankaganov

Иллюстрациии в комментариях 👇

@ctobuddy
👍2