заглушки ChatDev: коммуникативные агенты для разработки программного обеспечения - Unite.AI
Свяжитесь с нами:

Artificial Intelligence

ChatDev: коммуникативные агенты для разработки программного обеспечения

mm
обновленный on
ChatDev: Разработка программного обеспечения с использованием искусственного интеллекта

Индустрия разработки программного обеспечения — это сфера, которая часто опирается как на консультации, так и на интуицию и характеризуется сложными стратегиями принятия решений. Более того, разработка, обслуживание и эксплуатация программного обеспечения требуют дисциплинированного и методического подхода. Разработчики программного обеспечения обычно принимают решения на основе интуиции, а не консультаций, в зависимости от сложности проблемы. Стремясь повысить эффективность разработки программного обеспечения, в том числе эффективность программного обеспечения и снизить затраты на разработку, ученые изучают возможность использования структур, основанных на глубоком обучении, для решения различных задач в процессе разработки программного обеспечения. Благодаря последним разработкам и достижениям в секторах глубокого обучения и искусственного интеллекта разработчики ищут способы трансформировать процессы и методы разработки программного обеспечения. Они делают это, используя сложные конструкции, реализуемые на разных этапах процесса разработки программного обеспечения.

Сегодня мы собираемся обсудить ChatDev, инновационный подход, основанный на модели большого языка (LLM), который призван произвести революцию в области разработки программного обеспечения. Эта парадигма направлена ​​на устранение необходимости в специализированных моделях на каждом этапе процесса разработки. Платформа ChatDev использует возможности фреймворков LLM, используя общение на естественном языке для унификации и оптимизации ключевых процессов разработки программного обеспечения.

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

  1. Проектирование. 
  2. Кодирование. 
  3. Тестирование. 
  4. Документация. 

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

ChatDev: Разработка программного обеспечения с использованием искусственного интеллекта

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

ChatDev: Введение в разработку программного обеспечения на основе LLM

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

За последние несколько лет с помощью LLM или модели большого языкаСообщество искусственного интеллекта достигло значительных успехов в области компьютерного зрения и обработки естественного языка, а после обучения парадигмам «предсказания следующего слова» модели большого языка хорошо продемонстрировали свою способность обеспечивать эффективную производительность при решении широкого спектра последующих задач. такие как машинный перевод, ответы на вопросы и генерация кода. 

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

  • Отсутствие спецификации задачи: При создании кода программного обеспечения за один шаг отсутствие определения специфики задачи сбивает с толку LLM, поскольку задачи в процессе разработки программного обеспечения, такие как анализ требований пользователя или выбор предпочтительного языка программирования, часто обеспечивают управляемое мышление, чего не хватает в высоком качестве. Задачи уровня, выполняемые этими LLM. 
  • Отсутствие перекрестного допроса : Значительные риски возникают, когда перекрестный допрос не проводится, особенно в процессе принятия решений. 

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

  1. Проектирование. 
  2. Кодирование. 
  3. Тестирование. 
  4. Документация. 

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

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

ChatDev: Архитектура и работа

Теперь, когда у нас есть краткое введение в ChatDev, давайте посмотрим на архитектуру и работу платформы ChatDev, начиная с цепочки чата. 

Цепочка чатов

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

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

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

Проектирование

На этапе проектирования платформа ChatDev требует исходной идеи от клиента-человека, и на этом этапе существуют три предопределенные роли. 

  1. Генеральный директор или главный исполнительный директор. 
  2. CPO или директор по продукту. 
  3. Технический директор или главный технический директор. 

Затем вступает в действие цепочка чата, разделяющая этап проектирования на последовательные субатомные задачи чата, которые включают язык программирования (технический директор и генеральный директор) и модальность целевого программного обеспечения (CPO и генеральный директор). Фаза проектирования включает в себя три ключевых механизма: назначение ролей или специализация ролей, поток памяти и саморефлексия. 

Назначение ролей

Каждому агенту в платформе Chat Dev назначается роль с помощью специальных сообщений или специальных подсказок в процессе ролевой игры. В отличие от других моделей разговорного языка, платформа ChatDev ограничивается исключительно инициированием сценариев ролевой игры между агентами. Эти подсказки используются для назначения ролей агентам перед диалогами. 

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

Поток памяти

Поток памяти — это механизм, используемый платформой ChatDev, который поддерживает полную запись разговоров предыдущего диалога агента и помогает в последующем процессе принятия решений с учетом высказываний. Платформа ChatDev использует подсказки для установки необходимых протоколов связи. Например, когда участвующие стороны достигают консенсуса, завершающее сообщение, удовлетворяющее определенному требованию форматирования, например ( : Настольное приложение»). Чтобы обеспечить соответствие установленному формату, структура постоянно отслеживает и, наконец, позволяет текущему диалогу прийти к завершению. 

Саморазвитие

Разработчики платформы ChatDev наблюдали ситуации, когда обе участвующие стороны достигали взаимного консенсуса, но предопределенные протоколы связи не запускались. Для решения этих проблем компания Платформа ChatDev представляет механизм саморефлексии это помогает в поиске и извлечении воспоминаний. Чтобы реализовать механизм саморефлексии, платформа ChatDev инициирует новый и свежий чат, привлекая «псевдо-я» в качестве нового спрашивающего. «Псевдо-я» анализирует предыдущие диалоги и исторические записи и информирует текущего помощника, после чего запрашивает сводку убедительной и полезной информации, как показано на рисунке ниже. 

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

Кодирование

На этапе кодирования есть три предопределенные роли, а именно технический директор, программист и арт-дизайнер. Как обычно, механизм цепочки чата делит этап кодирования на отдельные субатомные задачи, такие как генерация кодов (программист и технический директор) или разработка графического пользовательского интерфейса. или графический интерфейс пользователя (программист и дизайнер). Затем технический директор поручает программисту использовать формат уценки для реализации программной системы, после чего арт-дизайнер предлагает удобный и интерактивный графический интерфейс, который использует графические значки для взаимодействия с пользователями, а не полагается на традиционные текстовые команды. 

Управление кодом

Платформа ChatDev использует объектно-ориентированные языки программирования, такие как Python, Java и C++, для работы со сложными программными системами, поскольку модульность этих языков программирования позволяет использовать автономные объекты, которые не только помогают в устранении неполадок, но и в совместной разработке. , а также помогает устранить избыточность за счет повторного использования объектов с помощью концепции наследования. 

Мысленные инструкции

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

Тестирование

Написать безошибочный код с первой попытки сложно не только LLM, но и для программистов-людей, и вместо того, чтобы полностью отбрасывать неправильный код, программисты анализируют свой код, чтобы выявить ошибки и исправить их. Фаза тестирования в платформе ChatDev разделена на три роли: программист, тестировщик и рецензент. Процесс тестирования далее делится на две последовательные субатомные задачи: Рецензирование или статическая отладка (Рецензент и Программист), и Тестирование системы или динамическая отладка (Программист и тестировщик). Статическая отладка или рецензирование анализирует исходный код для выявления ошибок, тогда как динамическая отладка или тестирование системы проверяет выполнение программного обеспечения посредством различных тестов, которые проводятся программистом с использованием интерпретатора. Динамическая отладка фокусируется в первую очередь на тестировании «черного ящика» для оценки приложений. 

Документация

После того, как платформа ChatDev завершила этапы проектирования, кодирования и тестирования, в ней задействованы четыре агента, а именно генеральный директор, технический директор, CPO и программист, для создания документации для программного проекта. Платформа ChatDev использует LLM для использования коротких подсказок с контекстными примерами для создания документов. Технический директор поручает программисту предоставить инструкции по настройке зависимостей среды и создать документ типа «Требования к зависимостям.txt». Одновременно генеральный директор передает требования и проект системы CPO для создания руководства пользователя для продукта. 

Итоги

Статистика программного обеспечения

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

Анализ продолжительности

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

Кейсы

На следующем рисунке показано, как ChatDev разрабатывает игру «Пять в ряд» или игру «Гомоку». 

Крайний левый рисунок демонстрирует базовое программное обеспечение, созданное с помощью платформы, без использования графического интерфейса. Как можно ясно видеть, приложение без графического интерфейса предлагает ограниченную интерактивность, и пользователи могут играть в эту игру только через командный терминал. На следующем рисунке показана более визуально привлекательная игра, созданная с использованием графического пользовательского интерфейса, предлагающая лучший пользовательский опыт и улучшенную интерактивность для создания увлекательной игровой среды, которая может доставить пользователям гораздо больше удовольствия. Затем агент-дизайнер создает дополнительную графику, чтобы еще больше повысить удобство использования и эстетику игрового процесса, не затрагивая при этом какую-либо функциональность. Однако, если пользователи-люди не удовлетворены изображением, созданным дизайнером, они могут заменить изображения после того, как платформа ChatDev завершит работу над программным обеспечением. Гибкость, предлагаемая платформой ChatDev для замены изображений вручную, позволяет пользователям настраивать приложения в соответствии со своими предпочтениями для повышения интерактивности и удобства работы пользователя, никоим образом не влияя на функциональность программного обеспечения. 

Заключение

В этой статье мы говорили о ChatDev, LLM или модель большого языка основанная на инновационной парадигме, цель которой — произвести революцию в области разработки программного обеспечения, устранив необходимость использования специализированных моделей на каждом этапе процесса разработки. Платформа ChatDev направлена ​​на использование возможностей фреймворков LLM за счет использования общения на естественном языке для унификации и оптимизации ключевых процессов разработки программного обеспечения. Платформа ChatDev использует механизм цепочки чата, чтобы разбить процесс разработки программного обеспечения на последовательные субатомные задачи, тем самым обеспечивая детальную фокусировку и продвигая желаемые результаты для каждой субатомной задачи. 

«Инженер по профессии, писатель душой». Кунал — технический писатель с глубокой любовью и пониманием ИИ и машинного обучения, стремящийся упростить сложные концепции в этих областях с помощью своей увлекательной и информативной документации.