Sissejuhatus
Tehisintellekti (AI) ja masinõppe (ML) kiire areng on viinud agentse AI väljatöötamiseni – AI tüüpi, mis suudab ise tegutseda ja otsuseid teha. Sellel tehnoloogial on potentsiaal muuta meie lähenemist tarkvaraarhitektuurile ja DevOpsi automatiseerimisele. Selles artiklis uurime tarkvaraarhitektuuri, infrastruktuuri ja DevOpsi protsesside automatiseerimiseks agent-AI, suurte keelemudelite (LLM) ja orkestreerimistööriistade (nt LangChain ja DSPy) integreerimist.
Mis on Agent AI?
Agent AI viitab AI tüübile, mis suudab ise toiminguid teha ja otsuseid teha. See on vastupidine traditsioonilistele AI-süsteemidele, mis on tavaliselt loodud konkreetsete ülesannete täitmiseks ja järgima eelnevalt määratletud reegleid. Agentilised AI-süsteemid seevastu on loodud olema autonoomsemad ja kohanemisvõimelisemad, võimaldades neil õppida oma keskkonnast ning teha otsuseid, mis põhinevad oma eesmärkidel ja eesmärkidel.
LLM-ide roll agentilises AI-s
Suured keelemudelid (LLM-id) on AI tüüp, mis on treenitud suurel hulgal tekstiandmetel ja on võimeline genereerima inimlikku keelt. LLM-id on agentsete AI-süsteemide põhikomponent, kuna need võimaldavad mõista ja luua inimkeelt. See võimaldab agent-AI-süsteemidel suhelda inimeste ja teiste süsteemidega loomulikumal ja intuitiivsemal viisil.
Orkestreerimistööriistad: LangChain ja DSPy
Orkestreerimistööriistad, nagu LangChain ja DSPy, on loodud erinevate süsteemide ja komponentide interaktsioonide haldamiseks ja koordineerimiseks. Need tööriistad võimaldavad määratleda ja teostada töövooge, mis võivad hõlmata selliseid ülesandeid nagu andmetöötlus, mudelikoolitus ja juurutamine.
LangChain
LangChain on avatud lähtekoodiga orkestreerimistööriist, mis pakub paindlikku ja laiendatavat raamistikku töövoogude loomiseks ja haldamiseks. LangChain on loodud töötama paljude süsteemide ja komponentidega, sealhulgas LLM-ide, andmebaaside ja API-dega.
DSPy
DSPy on Pythonil põhinev orkestreerimistööriist, mis pakub lihtsat ja intuitiivset viisi töövoogude määratlemiseks ja teostamiseks. DSPy on loodud töötama paljude süsteemide ja komponentidega, sealhulgas LLM-ide, andmebaaside ja API-dega.
Tarkvaraarhitektuuri ja DevOpsi protsesside automatiseerimine
Agentset AI-d, LLM-e ja orkestreerimistööriistu, nagu LangChain ja DSPy, saab kasutada paljude tarkvaraarhitektuuri ja DevOpsi protsesside automatiseerimiseks. Mõned näited hõlmavad järgmist:
- Automatiseeritud koodiülevaatus: Agentseid AI-süsteeme saab kasutada koodi ülevaatamiseks ja võimalike probleemide (nt vead ja turvaaukud) tuvastamiseks.
- Automatiseeritud testimine: Agentseid AI-süsteeme saab kasutada testimise automatiseerimiseks, sealhulgas üksuse testimiseks, integratsiooni testimiseks ja täielikuks testimiseks.
- Automaatne juurutamine: Agentseid AI-süsteeme saab kasutada juurutamise automatiseerimiseks, sealhulgas koodi, konfiguratsiooni ja muude ressursside juurutamiseks.
- Automaatne jälgimine: Agentseid AI-süsteeme saab kasutada jälgimise automatiseerimiseks, sealhulgas süsteemi jõudluse, turvalisuse ja muude mõõdikute jälgimiseks.
Praktiline rakendamine
Selles jaotises anname lihtsa näite, kuidas kasutada LangChaini ja DSPy tarkvaraarhitektuuri ja DevOpsi protsessi automatiseerimiseks.
Näide: koodide ülevaatuse automatiseerimine
Selles näites kasutame koodi ülevaatuse automatiseerimiseks LangChaini ja DSPy-d. Määratleme töövoo, mis sisaldab järgmisi samme:
- Koodianalüüs: töövoog kasutab koodi analüüsimiseks ja võimalike probleemide tuvastamiseks LLM-i.
- Koodi ülevaatus: töövoog kasutab koodi ülevaatamiseks ja võimalike probleemide tuvastamiseks AI-süsteemi.
- Koodi juurutamine: töövoog kasutab koodi tootmiskeskkonda juurutamiseks juurutustööriista.
Siin on näide selle töövoo rakendamisest LangChaini ja DSPy abil:
importida langchain
langchain import LLM-ist
# Määratlege LLM
llm = LLM("text-davinci-003")
# Määratlege agent-AI süsteem
ai_system = langchain.AgenticAI()
# Määratlege töövoog
töövoog = langchain.Workflow(
sammud=[
langchain.Step(
name="Koodianalüüs",
func=llm.analyze_code,
inputs={"code": "def hello_world(): print('Tere maailm')"},
),
langchain.Step(
name="Koodi ülevaade",
func=ai_system.review_code,
inputs={"code": "def hello_world(): print('Tere maailm')"},
),
langchain.Step(
name="Koodi juurutamine",
func=langchain.deploy_code,
inputs={"code": "def hello_world(): print('Tere maailm')"},
),
]
)
# Käivitage töövoog
workflow.execute()
See kood määratleb töövoo, mis sisaldab kolme sammu: koodi analüüs, koodi ülevaatus ja koodi juurutamine. Töövoog kasutab koodi analüüsimiseks LLM-i, koodi ülevaatamiseks agent-AI-süsteemi ja koodi tootmiskeskkonda juurutamiseks juurutustööriista.
5–10 enimkasutatavat käsku/lõigu
Siin on 5–10 enimkasutatavat käsku/juppi LangChaini ja DSPy jaoks:
langchain.Workflow(steps=[...]): määrake mitmest etapist koosnev töövoog.langchain.Step(name="...", func=..., inputs={...}): määrake töövoo üks samm.llm.analyze_code(inputs={"kood": ...}): kasutage koodi analüüsimiseks LLM-i.ai_system.review_code(inputs={"kood": ...}): kasutage koodi ülevaatamiseks agent-AI-süsteemi.langchain.deploy_code(inputs={"kood": ...}): juurutage kood tootmiskeskkonda.- "langchain.AgenticAI()": looge agent-AI-süsteemi eksemplar.
- "langchain.LLM()": looge LLM-i eksemplar.
- "langchain.deploy_code()": juurutage kood tootmiskeskkonda.
langchain.execute_workflow(): käivitab töövoo.langchain.get_workflow_status(): hankige töövoo olek.
Visualiseerimine
Siin on näide töövoo visualiseerimisest Chart.js-i abil.
{
"type": "bar",
"andmed": {
"labels": ["Koodianalüüs", "Koodi ülevaade", "Koodi juurutamine"],
"andmestikud": [
{
"label": "Töövoo etapid",
"andmed": [10, 20, 30],
"taustavärv": [
"rgba(255; 99; 132; 0,2)",
"rgba(54; 162; 235; 0,2)",
"rgba(255; 206; 86; 0,2)"
],
"borderColor": [
"rgba(255, 99, 132, 1)",
"rgba(54, 162, 235, 1)",
"rgba(255; 206; 86; 1)"
],
"borderWidth": 1
}
]
},
"valikud": {}
}
See kood määratleb tulpdiagrammi kolme sildiga: koodianalüüs, koodi ülevaatus ja koodi juurutamine. Diagramm näitab sammude arvu töövoo igas etapis.
Järeldus
Agentic AI, LLM-id ja orkestreerimistööriistad, nagu LangChain ja DSPy, võivad muuta meie lähenemisviisi tarkvaraarhitektuurile ja DevOpsi automatiseerimisele. Automatiseerides selliseid ülesandeid nagu koodi ülevaatus, testimine ja juurutamine, saame parandada oma arendusprotsesside tõhusust ja tulemuslikkust. Selles artiklis oleme uurinud nende tehnoloogiate integreerimist ja andnud lihtsa näite selle kohta, kuidas neid tarkvaraarhitektuuri ja DevOpsi protsessi automatiseerimiseks kasutada.