stub ChatDev: tarkvaraarenduse kommunikatsiooniagendid – Unite.AI
Ühenda meile

Tehisintellekt

ChatDev: tarkvaraarenduse kommunikatsiooniagendid

mm
Ajakohastatud on
ChatDev: AI-abiga tarkvaraarendus

Tarkvaraarenduse tööstus on valdkond, mis tugineb sageli nii konsultatsioonile kui ka intuitsioonile, mida iseloomustavad keerukad otsustusstrateegiad. Lisaks nõuab tarkvara arendamine, hooldamine ja käitamine distsiplineeritud ja metoodilist lähenemist. On tavaline, et tarkvaraarendajad lähtuvad oma otsuste tegemisel pigem intuitsioonist kui konsultatsioonist, olenevalt probleemi keerukusest. Püüdes parandada tarkvaratehnika tõhusust, sealhulgas tarkvara tõhusust ja vähendatud arenduskulusid, uurivad teadlased süvaõppepõhiste raamistike kasutamist tarkvara arendusprotsessi erinevate ülesannete lahendamiseks. Hiljutiste arengute ja edusammudega süvaõppe ja tehisintellekti sektorites otsivad arendajad viise tarkvaraarenduse protsesside ja tavade muutmiseks. Nad teevad seda tarkvara arendusprotsessi erinevatel etappidel rakendatud keerukate disainilahenduste abil.

Täna arutame ChatDevit, suurel keelemudelil (LLM) põhinevat uuenduslikku lähenemisviisi, mille eesmärk on muuta tarkvaraarenduse valdkond revolutsiooniliseks. Selle paradigma eesmärk on kõrvaldada vajadus spetsiaalsete mudelite järele arendusprotsessi igas etapis. ChatDevi raamistik kasutab ära LLM-i raamistike võimalusi, kasutades loomulikku keelt, et ühtlustada ja ühtlustada peamisi tarkvaraarendusprotsesse.

Selles artiklis uurime ChatDevi, virtuaalse toega ettevõtet, mis on spetsialiseerunud tarkvaraarendusele. ChatDev võtab kasutusele kose mudeli ja jagab tarkvara arendusprotsessi hoolikalt neljaks peamiseks etapiks.

  1. Projekteerimine. 
  2. Kodeerimine. 
  3. Testimine. 
  4. Dokumentatsioon. 

Kõik need etapid juurutavad virtuaalsete agentide meeskonna, nagu koodi programmeerijad või testijad, kes teevad omavahel koostööd dialoogide abil, mille tulemuseks on sujuv töövoog. Vestlusahel toimib abistajana ja jagab arendusprotsessi iga etapi tuumaks alamülesanneteks, võimaldades seega kaherolli, võimaldades ettepanekuid ja lahenduste valideerimist kontekstiteadliku suhtluse abil, mis võimaldab arendajatel määratletud alamülesandeid tõhusalt lahendada. 

ChatDev: AI-abiga tarkvaraarendus

ChatDevi instrumentaalne analüüs näitab, et ChatDevi raamistik ei ole mitte ainult väga tõhus tarkvaraarendusprotsessi lõpuleviimisel, vaid see on äärmiselt kuluefektiivne ning viib kogu tarkvaraarendusprotsessi lõpule veidi alla dollariga. Lisaks sellele raamistik mitte ainult ei tuvasta, vaid ka leevendab võimalikke haavatavusi, kõrvaldab võimalikud hallutsinatsioonid, säilitades samal ajal kõrge efektiivsuse ja kulutasuvuse. 

ChatDev: sissejuhatus LLM-põhisesse tarkvaraarendusse

Traditsiooniliselt on tarkvara arendustööstus selline, mis on üles ehitatud distsiplineeritud ja metoodilise lähenemise alustele mitte ainult rakenduste arendamiseks, vaid ka nende hooldamiseks ja käitamiseks. Traditsiooniliselt öeldes on tüüpiline tarkvaraarenduse protsess väga keeruline, keeruline ja aeganõudev hoolikas protsess pikkade arendustsüklitega, kuna arendusprotsessis on mitu rolli, sealhulgas organisatsiooni sees koordineerimine, ülesannete jaotamine, koodi kirjutamine, testimine ja lõpuks dokumentatsioon. 

Viimastel aastatel abiga LLM ehk suurte keelte mudelid, on tehisintellekti kogukond saavutanud olulisi verstaposte arvutinägemise ja loomuliku keele töötlemise valdkonnas ning pärast järgmise sõna ennustamise paradigmade koolitust on suured keelemudelid hästi näidanud oma võimet tagastada tõhusat jõudlust paljude järgnevate ülesannete puhul. nagu masintõlge, küsimustele vastamine ja koodi genereerimine. 

Kuigi suured keelemudelid suudavad kirjutada koodi kogu tarkvara jaoks, on neil suur puudus: koodhallutsinatsioonid, mis on üsna sarnane hallutsinatsioonidega, millega silmitsi seisavad loomuliku keele töötlemise raamistikud. Koodihallutsinatsioonid võivad hõlmata selliseid probleeme nagu avastamata vead, puuduvad sõltuvused ja mittetäielikud funktsioonide juurutused. Koodihallutsinatsioonidel on kaks peamist põhjust. 

  • Ülesande spetsifikatsiooni puudumine: Tarkvarakoodi ühe sammuga genereerimisel ajab ülesande spetsiifika määratlemata jätmine LLM-id segadusse, kuna tarkvara arendusprotsessi ülesanded, nagu kasutajate nõudmiste analüüs või eelistatud programmeerimiskeele valimine, pakuvad sageli juhitud mõtlemist, mis on kõrgest puudu. -taseme ülesanded, millega need LLM-id tegelevad. 
  • Risteksami puudumine : Olulised riskid tekivad siis, kui ristuuringut ei tehta, eriti otsustusprotsesside ajal. 

ChatDevi eesmärk on lahendada need probleemid ja hõlbustada LLM-e, kes on võimelised looma tipptasemel ja tõhusaid tarkvararakendusi, luues tarkvaraarenduseks virtuaalse ettevõtte, mis loob juga mudeli ja jagab tarkvaraarendusprotsessi hoolikalt neljaks peamiseks osaks. etapid,

  1. Projekteerimine. 
  2. Kodeerimine. 
  3. Testimine. 
  4. Dokumentatsioon. 

Kõik need etapid juurutavad virtuaalsete agentide meeskonna, nagu koodi programmeerijad või testijad, kes teevad omavahel koostööd dialoogide abil, mille tulemuseks on sujuv töövoog. Lisaks kasutab ChatDev vestlusahelat, mis toimib abistajana ja jagab arendusprotsessi iga etapi atomaarseteks alamülesanneteks, võimaldades seega kahte rolli, võimaldades ettepanekuid ja lahenduste valideerimist kontekstiteadliku suhtluse abil, mis võimaldab arendajatel tõhusalt lahendada määratud alamülesanded. Vestlusahel koosneb mitmest sõlmest, kus iga üksik sõlm esindab konkreetset alamülesannet ja need kaks rolli osalevad mitmekordses kontekstiteadlikus arutelus, et lahendusi mitte ainult välja pakkuda, vaid ka kinnitada. 

Selle lähenemisviisi puhul analüüsib ChatDevi raamistik esmalt kliendi nõudeid, genereerib loomingulisi ideid, kavandab ja rakendab prototüüpsüsteeme, tuvastab ja lahendab võimalikud probleemid, loob ahvatlevat graafikat, selgitab silumisinfot ja genereerib kasutusjuhendid. Lõpuks pakub ChatDevi raamistik kasutajale tarkvara koos lähtekoodi, kasutusjuhendite ja sõltuvuskeskkonna spetsifikatsioonidega. 

ChatDev: arhitektuur ja töö

Nüüd, kui meil on ChatDevi lühitutvustus, vaatame ChatDevi raamistiku arhitektuuri ja toimimist, alustades vestlusahelast. 

Vestluskett

Nagu eelmises jaotises mainisime, kasutab ChatDevi raamistik tarkvaraarenduseks kosemeetodit, mis jagab tarkvara arendusprotsessi neljaks etapiks, sealhulgas projekteerimine, kodeerimine, testimine ja dokumenteerimine. Igal neist faasidest on arendusprotsessis ainulaadne roll ja nende vahel on vaja tõhusat suhtlust ning inimeste tuvastamisel ja interaktsioonide järjestuse määramisel tuleb silmitsi seista potentsiaalsete väljakutsetega. 

Selle probleemi lahendamiseks kasutab ChatDevi raamistik Chat Chain, üldist arhitektuuri, mis jagab iga faasi subatomaarseks vestluseks, kusjuures kõik need faasid keskenduvad ülesandele orienteeritud rollimängule, mis hõlmab kahte rolli. Vestluse soovitud väljund moodustab sihttarkvara jaoks olulise komponendi ning see saavutatakse arendusprotsessis osalevate agentide koostöö ja juhiste vahetamise tulemusena. Vestlusahela paradigma vaheülesannete lahendamiseks on illustreeritud alloleval pildil. 

Iga individuaalse vestluse puhul algatab juhendaja esmalt juhised ja seejärel suunab dialoogi ülesande täitmisele, vahepeal aga järgivad assistendid juhendaja antud juhiseid, pakuvad ideaalseid lahendusi ja arutlevad teostatavuse üle. lahendusest. Seejärel peavad juhendaja ja agent mitmekordseid dialooge, kuni jõuavad üksmeelele ja leiavad, et ülesanne on edukalt täidetud. Ahelahel annab kasutajatele läbipaistva ülevaate arendusprotsessist, heidab valgust otsuste tegemise teele ja pakub võimalusi vigade silumiseks nende ilmnemisel, mis võimaldab lõppkasutajatel vigu analüüsida ja diagnoosida, kontrollida vaheväljundeid, ja sekkuda protsessi, kui seda vajalikuks peetakse. Vestlusahela kaasamisega suudab ChatDevi raamistik keskenduda igale konkreetsele alamülesandele üksikasjalikult, mis mitte ainult ei hõlbusta agentide vahelist tõhusat koostööd, vaid tagab ka vajalike väljundite kiire saavutamise. 

Projekteerimine

Disainifaasis nõuab ChatDevi raamistik inimkliendi sisendiks esialgset ideed ja selles etapis on kolm etteantud rolli. 

  1. tegevjuht või tegevjuht. 
  2. CPO või tootejuht. 
  3. Tehniline juht või tehniline juht. 

Seejärel tuleb mängu vestlusahel, mis jagab kavandamise etapi järjestikusteks subatomaarseteks vestlusülesanneteks, mis hõlmavad programmeerimiskeelt (CTO ja tegevjuht) ja sihttarkvara modaalsust (CPO ja CEO). Projekteerimisetapp hõlmab kolme peamist mehhanismi: rolli määramine või spetsialiseerumine, mäluvoog ja enesereflektsioon. 

Rolli määramine

Igale Chat Devi raamistikus olevale agendile määratakse roll, kasutades rollimängu ajal spetsiaalseid sõnumeid või spetsiaalseid viipasid. Erinevalt teistest vestluskeele mudelitest piirdub ChatDevi raamistik ainult agentidevahelise rollimängu stsenaariumide algatamisega. Neid viipasid kasutatakse agentidele rollide määramiseks enne dialoogide algust. 

Esialgu võtab juhendaja endale tegevjuhi kohustused ja tegeleb interaktiivse planeerimisega, samas kui CPO kohustustega tegeleb agent, kes täidab ülesandeid ja annab nõutavad vastused. Raamistik kasutab "alguse õhutus” rollide spetsialiseerumiseks, mis võimaldab agentidel oma rolle tõhusalt täita. Assistendi ja juhendaja viibad koosnevad olulistest üksikasjadest määratud rollide ja ülesannete, lõpetamiskriteeriumide, sideprotokollide ja mitmete piirangute kohta, mille eesmärk on vältida soovimatut käitumist, nagu lõpmatud tsüklid, ebainformatiivsed vastused ja juhiste liiasus. 

Mälu voog

Mäluvoog on ChatDevi raamistikus kasutatav mehhanism, mis säilitab agendi eelnevate dialoogide põhjaliku vestlussalvestise ja abistab järgnevat otsustusprotsessi lausungiteadlikul viisil. ChatDevi raamistik kasutab nõutavate sideprotokollide loomiseks viipasid. Näiteks kui osapooled jõuavad üksmeelele, kuvatakse lõpusõnum, mis vastab konkreetsele vormingunõudele, nagu ( : töölauarakendus”). Kindlaksmääratud vormingu järgimise tagamiseks jälgib raamistik pidevalt ja võimaldab lõpuks praegusel dialoogil jõuda järeldusele. 

Enesepeegeldus

ChatDevi raamistiku arendajad on täheldanud olukordi, kus mõlemad osapooled olid saavutanud vastastikuse konsensuse, kuid etteantud suhtlusprotokolle ei käivitunud. Nende probleemide lahendamiseks on ChatDevi raamistik tutvustab enesepeegeldusmehhanismi mis aitab mälestusi otsida ja välja tõmmata. Enesepeegelduse mehhanismi rakendamiseks algatab ChatDevi raamistik uue ja värske vestluse, kaasates uueks küsijaks "pseudo-mina". "Pseudo-mina" analüüsib eelnevaid dialooge ja ajaloolisi kirjeid ning teavitab praegust assistenti, mille järel küsib ta kokkuvõtet lõplikust ja tegevust väärt teabest, nagu on näidatud alloleval joonisel. 

Eneseabimehhanismi abil julgustatakse ChatDevi assistenti tema pakutud otsuseid kajastama ja analüüsima. 

Kodeerimine

Kodeerimisfaasis on kolm eelmääratletud rolli, nimelt CTO, programmeerija ja kunstikujundaja. Nagu tavaliselt, jagab vestlusahela mehhanism kodeerimisfaasi üksikuteks subatomaarseteks ülesanneteks, nagu koodide genereerimine (programmeerija ja CTO) või GUI väljatöötamine. või graafiline kasutajaliides (programmeerija ja kujundaja). Seejärel juhendab CTO programmeerijat kasutama tarkvarasüsteemi juurutamiseks allahindlusvormingut, mille järel disainer pakub välja kasutajasõbraliku ja interaktiivse GUI, mis kasutab kasutajatega suhtlemiseks graafilisi ikoone, mitte ei tugine traditsioonilistele tekstipõhistele käskudele. 

Koodihaldus

ChatDevi raamistik kasutab keeruliste tarkvarasüsteemide haldamiseks objektorienteeritud programmeerimiskeeli, nagu Python, Java ja C++, kuna nende programmeerimiskeelte modulaarsus võimaldab kasutada iseseisvaid objekte, mis mitte ainult ei aita tõrkeotsingul, vaid ka koostöös arendamisel. , ja aitab ka eemaldada koondamisi, kasutades objekte pärimise kontseptsiooni kaudu. 

Mõttejuhised

Traditsioonilised küsimustele vastamise meetodid põhjustavad sageli ebaolulist teavet või ebatäpsusi, eriti koodi genereerimisel, kuna naiivsete juhiste andmine võib põhjustada LLM-i hallutsinatsioone ja see võib muutuda keeruliseks probleemiks. Selle probleemi lahendamiseks tutvustab ChatDevi raamistik "mõttejuhiste" mehhanismi, mis ammutab inspiratsiooni mõtteahela juhistest. "Mõttejuhiste" mehhanism käsitleb selgesõnaliselt juhistes sisalduvaid individuaalseid probleemide lahendamise mõtteid, sarnaselt ülesannete lahendamisele järjestikusel ja organiseeritud viisil. 

Testimine

Vigadeta koodi kirjutamine esimesel katsel on väljakutseks mitte ainult LLM-id, aga ka programmeerijate jaoks ning selle asemel, et valest koodist täielikult loobuda, analüüsivad programmeerijad oma koodi vigade tuvastamiseks ja nende parandamiseks. ChatDevi raamistiku testimise etapp on jagatud kolmeks rolliks: programmeerija, testija ja ülevaataja. Testimisprotsess jaguneb veel kaheks järjestikuseks subatomaarseks ülesandeks: Peer Review või staatiline silumine (arvustaja ja programmeerija) ja Süsteemi testimine või dünaamiline silumine (Programmeerija ja testija). Staatiline silumine või eksperdihinnang analüüsib lähtekoodi, et tuvastada vigu, samas kui dünaamiline silumine või süsteemi testimine kontrollib tarkvara käitamist erinevate testide abil, mida programmeerija tõlgi abil viib läbi. Dünaamiline silumine keskendub rakenduste hindamiseks peamiselt musta kasti testimisele. 

dokumentatsioon

Pärast seda, kui ChatDevi raamistik on projekteerimise, kodeerimise ja testimisetappidega lõpetatud, kasutab see tarkvaraprojekti dokumentatsiooni loomiseks nelja agenti, nimelt tegevjuhti, CTO-d, CPO-d ja programmeerijat. ChatDevi raamistik kasutab LLM-e, et kasutada dokumentide loomiseks kontekstisiseste näidetega viipasid. CTO annab programmeerijale ülesandeks anda juhised keskkonnasõltuvuste konfigureerimiseks ja luua dokument nagu "sõltuvusnõuded.txt". Samal ajal teatab tegevjuht nõuded ja süsteemi kujundus CPO-le, et luua toote kasutusjuhend. 

Tulemused

Tarkvarastatistika

ChatDevi raamistiku toimivuse analüüsimiseks arendajate meeskond viis läbi raamistiku loodud tarkvararakenduste statistilise analüüsi mõne põhimõõdiku põhjal, sealhulgas tarbitud märgid, dialoogi pöörded kokku, pildivarad, tarkvarafailid, versiooniuuendused ja veel mõned. Tulemused on järgmised. näidatud allolevas tabelis. 

Kestuse analüüs

Et uurida ChatDevi tarkvara tootmisaega erinevate päringuviipade jaoks, viisid arendajad läbi ka kestuse analüüsi ning erinevate viipade arendusaja erinevus peegeldab määratud ülesannete erinevat selgust ja keerukust ning tulemusi on näidatud alloleval joonisel. . 

Juhtumiuuring

Järgmine joonis näitab, et ChatDev arendab mängu Five in a Row või Gomoku. 

Vasakpoolseim joonis näitab raamistiku loodud põhitarkvara ilma GUI-d kasutamata. Nagu selgelt näha, pakub ilma GUI-ta rakendus piiratud interaktiivsust ja kasutajad saavad seda mängu mängida ainult käsuterminali kaudu. Järgmine joonis näitab visuaalselt atraktiivsemat mängu, mis on loodud GUI abil, pakub paremat kasutuskogemust ja täiustatud interaktiivsust kaasahaarava mängukeskkonna jaoks, mida kasutajad saavad palju rohkem nautida. Seejärel loob disaineragent täiendava graafika, et veelgi parandada mängu kasutatavust ja esteetikat, ilma et see mõjutaks funktsioone. Kui aga kasutajad ei ole disaineri loodud kujutisega rahul, saavad nad pildid välja vahetada pärast seda, kui ChatDevi raamistik on tarkvara lõpetanud. ChatDevi raamistiku pakutav paindlikkus piltide käsitsi asendamiseks võimaldab kasutajatel kohandada rakendusi vastavalt oma eelistustele täiustatud interaktiivsuse ja kasutajakogemuse saavutamiseks, ilma et see mõjutaks mingil viisil tarkvara funktsionaalsust. 

Final Thoughts

Selles artiklis oleme rääkinud ChatDevist, an LLM ehk Large Language Model põhineb uuenduslikul paradigmal, mille eesmärk on muuta tarkvaraarenduse valdkond revolutsiooniliseks, kaotades arendusprotsessi igas etapis nõude spetsiaalsete mudelite järele. ChatDevi raamistiku eesmärk on kasutada ära LLM-i raamistike võimeid, kasutades loomulikku keelt, et ühtlustada ja tõhustada peamisi tarkvaraarendusprotsesse. ChatDevi raamistik kasutab vestlusahela mehhanismi, et jagada tarkvara arendusprotsess järjestikusteks subatomaarseteks ülesanneteks, võimaldades seega üksikasjalikku keskendumist ja edendada iga subatomaarse ülesande jaoks soovitud väljundeid. 

"Elukutselt insener, hingelt kirjanik". Kunal on tehniline kirjanik, kes armastab ja mõistab sügavalt AI-d ja ML-i ning on pühendunud nende valdkondade keerukate kontseptsioonide lihtsustamisele oma kaasahaarava ja informatiivse dokumentatsiooni kaudu.