** Dirbtinio intelekto valdomos programinės įrangos kūrimo su „LangChain“ ir „DSPy“ organizavimas**
Įvadas
Programinės įrangos kūrimo aplinka sparčiai vystosi, o dirbtinio intelekto įrankiams ir technologijoms tenka vis svarbesnis vaidmuo DevOps automatizavimo ir programinės įrangos architektūroje. Du žymūs žaidėjai šioje erdvėje yra „LangChain“ ir „DSPy“, kurie siūlo galingas orkestravimo galimybes kuriant AI valdomus programinės įrangos kūrimo vamzdynus. Šiame straipsnyje mes gilinsimės į „LangChain“ ir „DSPy“ pasaulį, išnagrinėsime jų galimybes, naudą ir praktinius pritaikymus kuriant AI pagrįstą programinę įrangą.
Kas yra „LangChain“?
„LangChain“ yra atvirojo kodo „Python“ pagrindu sukurta sistema, skirta kurti pokalbio AI programas. Jame pateikiamas patikimas natūralios kalbos apdorojimo (NLP), mašininio mokymosi (ML) ir programinės įrangos kūrimo įrankių rinkinys, todėl tai yra idealus pasirinkimas dirbtiniu intelektu varomiems programinės įrangos kūrimo vamzdynams. Pagrindinės „LangChain“ funkcijos:
- Pokalbio AI: „LangChain“ leidžia kūrėjams kurti pokalbių sąsajas, pvz., pokalbių robotus ir balso padėjėjus, naudojant NLP ir ML metodus.
- Programinės įrangos kūrimas: „LangChain“ teikia daugybę programinės įrangos kūrimo įrankių, įskaitant kodo generavimą, derinimą ir testavimą.
- Orkestravimas: „LangChain“ orkestravimo galimybės leidžia kūrėjams automatizuoti sudėtingas darbo eigas ir vamzdynus, todėl lengviau valdyti didelio masto programinės įrangos kūrimo projektus.
Kas yra DSPy?
DSPy yra Python pagrindu sukurta sistema, skirta duomenų mokslo ir mašininio mokymosi vamzdynams kurti. Jame yra įvairių įrankių, skirtų išankstiniam duomenų apdorojimui, funkcijų inžinerijai, modelių mokymui ir diegimui. Pagrindinės DSPy funkcijos apima:
- Data Science: DSPy leidžia kūrėjams kurti duomenų mokslo vamzdynus, įskaitant duomenų gavimą, apdorojimą ir analizę.
- Mašininis mokymasis: DSPy teikia daugybę mašininio mokymosi įrankių, įskaitant modelių mokymą, derinimą ir diegimą.
- Orkestravimas: DSPy orkestravimo galimybės leidžia kūrėjams automatizuoti sudėtingas darbo eigas ir vamzdynus, todėl lengviau valdyti didelio masto duomenų mokslo ir mašininio mokymosi projektus.
** Dirbtinio intelekto valdomos programinės įrangos kūrimo su „LangChain“ ir „DSPy“ organizavimas**
Norėdami iliustruoti „LangChain“ ir „DSPy“ galią kuriant AI valdomą programinę įrangą, panagrinėkime paprastą pavyzdį. Tarkime, kad norime sukurti kalbinį AI varomą programinės įrangos kūrimo dujotiekį, kuris automatizuoja šias užduotis:
- Kodo generavimas: sugeneruokite pagrindinį Python scenarijų žiniatinklio programai naudodami šabloną.
- Kodo peržiūra: peržiūrėkite, ar sugeneruotame kode nėra klaidų, ir pasiūlykite patobulinimų.
- Testavimas: atlikite automatinius sugeneruoto kodo testus, kad įsitikintumėte, jog jis atitinka reikiamus standartus.
- Įdiegimas: įdiekite sugeneruotą kodą debesies pagrindu veikiančioje platformoje.
Štai paprastas kodo blokas, parodantis, kaip naudoti „LangChain“ ir DSPy automatizuoti šį dujotiekį:
importuoti langchain
iš langchain.chains importuoti ConversationalAI
iš langchain.llms importuoti LLM
vamzdynas = ConversationalAI(
llm=LLM("text-davinci-003"),
grandinė = [
langchain.PipelineStep(
name="kodo generavimas",
func=lambda x: f"importo kolba\napp = kolba.Flask(__name__)\n@app.route('/')\ndef index():\n return "Hello World!"",
),
langchain.PipelineStep(
name="Kodo peržiūra",
func=lambda x: "Sukurtas kodas atrodo gerai, bet apsvarstykite galimybę pridėti klaidų tvarkymą."
),
langchain.PipelineStep(
name="Testing",
func=lambda x: "Vykdomi testai...\nPASS: index()",
),
langchain.PipelineStep(
pavadinimas = "Įdiegimas",
func=lambda x: "Diegimas debesies platformoje...\nSėkmės!",
),
],
)
# Paleiskite dujotiekį
rezultatas = pipeline.run(input="Sukurti pagrindinį Python scenarijų žiniatinklio programai.")
spausdinti (rezultatas)
Šis kodo blokas parodo, kaip naudoti „LangChain“ ir „DSPy“, kad būtų galima automatizuoti pokalbio AI varomą programinės įrangos kūrimo dujotiekį. Dujotiekį sudaro keturi etapai: kodo generavimas, kodo peržiūra, testavimas ir diegimas. Kiekvienas žingsnis įgyvendinamas naudojant LangChain konvejerio žingsnį, kuris apibrėžia konkrečią atliktiną užduotį.
LangChain ir DSPy pranašumai
„LangChain“ ir „DSPy“ naudojimas kuriant AI valdomą programinę įrangą yra daug privalumų:
- Automatizavimas: „LangChain“ ir „DSPy“ leidžia kūrėjams automatizuoti sudėtingas darbo eigas ir vamzdynus, todėl lengviau valdyti didelio masto programinės įrangos kūrimo projektus.
- Efektyvumas: automatizuodami pasikartojančias užduotis, kūrėjai gali sutelkti dėmesį į aukštesnio lygio užduotis, kurioms reikia kūrybiškumo ir problemų sprendimo įgūdžių.
- Nuoseklumas: LangChain ir DSPy užtikrina programinės įrangos kūrimo procesų nuoseklumą, sumažina klaidų riziką ir pagerina bendrą kokybę.
- Mastelio keitimas: „LangChain“ ir „DSPy“ leidžia kūrėjams išplėsti programinės įrangos kūrimo vamzdynus, kad atitiktų didelio masto projektų poreikius.
5–10 dažniausiai naudojamų komandų / fragmentų
Čia yra 5–10 dažniausiai naudojamų „LangChain“ ir „DSPy“ komandų / fragmentų:
langchain.PipelineStep: apibrėžia konkrečią užduotį, kuri turi būti atlikta konvejeryje.
pipeline_step = langchain.PipelineStep(
name="kodo generavimas",
func=lambda x: f"importo kolba\napp = kolba.Flask(__name__)\n@app.route('/')\ndef index():\n return "Hello World!"",
)
langchain.ConversationalAI: apibrėžia pokalbio AI konvejerį.
vamzdynas = langchain.ConversationalAI(
llm=LLM("text-davinci-003"),
grandinė = [vamzdyno_žingsnis],
)
DSPy.DataPipeline: apibrėžia duomenų mokslo dujotiekį.
vamzdynas = DSPy.DataPipeline(
data_source="https://example.com/data.csv",
data_transformer=lambda x: x["stulpelis1"] + x["stulpelis2"],
)
DSPy.ModelPipeline: apibrėžia mašininio mokymosi dujotiekį.
vamzdynas = DSPy.ModelPipeline(
modelis="tiesinė_regresija",
data_source="https://example.com/data.csv",
data_transformer=lambda x: x["stulpelis1"] + x["stulpelis2"],
)
langchain.LLM: apibrėžia kalbos modelį.
llm = langchain.LLM("text-davinci-003")
DSPy.DataTransformer: apibrėžia duomenų transformatorių.
transformatorius = DSPy.DataTransformer(lambda x: x["stulpelis1"] + x["stulpelis2"])
DSPy.ModelTrainer: apibrėžia treniruoklio modelį.
treneris = DSPy.ModelTrainer(modelis="tiesinė_regresija")
langchain.Pipeline: apibrėžia dujotiekį.
vamzdynas = langchain.Pipeline(
grandinė = [vamzdyno_žingsnis],
)
DSPy.DataLoader: apibrėžia duomenų įkėlimo programą.
loader = DSPy.DataLoader(data_source="https://example.com/data.csv")
DSPy.ModelDeployer: apibrėžia modelio diegimo priemonę.
deployer = DSPy.ModelDeployer(modelis="tiesinė_regresija")
Vizualizacija
Štai LangChain ir DSPy dujotiekio vizualizacija naudojant Chart.js:
{
"tipas": "juosta",
"duomenys": {
"etiketės": ["Kodo generavimas", "Kodo peržiūra", "Testavimas", "Įdiegimas"],
"duomenų rinkiniai": [
{
"label": "LangChain",
"duomenys": [10, 8, 12, 15],
"backgroundColor": "rgba(255, 99, 132, 0.2)",
"borderColor": "rgba(255, 99, 132, 1)",
"borderWidth": 1
},
{
"label": "DSPy",
"duomenys": [8, 10, 12, 15],
"backgroundColor": "rgba(54, 162, 235, 0.2)",
"borderColor": "rgba(54, 162, 235, 1)",
"borderWidth": 1
}
]
},
"parinktys": {
"pavadinimas": {
"display": tiesa,
"text": "LangChain and DSPy Pipeline"
},
"svarstyklės": {
„yAxes“: [
{
"erkės": {
"beginAtZero": tiesa
}
}
]
}
}
}
Ši vizualizacija rodo užduočių, kurias atlieka „LangChain“ ir DSPy, skaičių. X ašis žymi užduotis, o y ašis – atliktų užduočių skaičių.
Išvada
„LangChain“ ir „DSPy“ siūlo galingas orkestravimo galimybes kuriant AI valdomus programinės įrangos kūrimo vamzdynus. Automatizuodami sudėtingas darbo eigas ir vamzdynus, kūrėjai gali sutelkti dėmesį į aukštesnio lygio užduotis, kurioms reikia kūrybiškumo ir problemų sprendimo įgūdžių. LangChain ir DSPy naudojimo pranašumai apima automatizavimą, efektyvumą, nuoseklumą ir mastelį. Naudodami „LangChain“ ir „DSPy“, kūrėjai gali sukurti pokalbio AI valdomą programinės įrangos kūrimo vamzdynus, atitinkančius didelio masto projektų poreikius.