Izveidojiet RAG | B4N1

Izveidojiet RAG

3 months ago · b4n1 Tiempo de lectura: 4 min

Orkestrācijas rīku izmantošana ar AI darbināmai programmatūras arhitektūrai

Ievads

Pieaugošais pieprasījums pēc AI darbināmas programmatūras arhitektūras ir novedis pie dažādu orķestrēšanas rīku izstrādes, kas ļauj nemanāmi integrēt mākslīgā intelekta (AI) un mašīnmācīšanās (ML) iespējas programmatūras sistēmās. Šajā rakstā mēs izpētīsim AI vadītas programmatūras arhitektūras ieviešanu, izmantojot tādus orķestrēšanas rīkus kā LangChain un DSPy, koncentrējoties uz RAG (Reasoning and Action Graph) un LLM (Lielās valodas modelis) iespēju integrāciju, lai uzlabotu mērogojamību, veiktspēju un drošību.

Kas ir orķestrēšanas rīki?

Orķestrācijas rīki ir programmatūras ietvari, kas ļauj automatizēt sarežģītas darbplūsmas un procesus, integrējot vairākus pakalpojumus, lietojumprogrammas un sistēmas. Tie nodrošina centralizētu platformu dažādu komponentu mijiedarbības pārvaldībai un koordinēšanai, nodrošinot efektīvu un mērogojamu uzdevumu izpildi.

LangChain: uz Python balstīts orķestrēšanas rīks

LangChain ir atvērtā pirmkoda Python bibliotēka, kas nodrošina visaptverošu ietvaru ar AI darbināmas programmatūras arhitektūras izveidei. Tas piedāvā virkni funkciju, tostarp:

  • RAG (Reasoning and Action Graph) integrācija: LangChain nodrošina iebūvētu RAG ieviešanu, ļaujot izveidot sarežģītas argumentācijas un darbību diagrammas, ko var izmantot, lai modelētu un izpildītu AI vadītas darbplūsmas.
  • LLM (Lielās valodas modeļa) integrācija: LangChain atbalsta LLM, piemēram, LLaMA un BERT, integrāciju dabiskās valodas apstrādes un ģenerēšanas uzdevumiem.
  • Mērogojamība un veiktspēja: LangChain ir izstrādāts, lai apstrādātu liela mēroga AI darba slodzi, nodrošinot efektīvu un mērogojamu uzdevumu izpildi.

Ar AI virzītas programmatūras arhitektūras ieviešana ar LangChain

Lai demonstrētu mākslīgā intelekta vadītas programmatūras arhitektūras ieviešanu, izmantojot LangChain, aplūkosim vienkāršu tērzēšanas robota piemēru, kas izmanto RAG, lai pamatotu lietotāju vaicājumus un ģenerētu atbildes.

importēt langchain
no langchain.chains importa llm


rag = langchain.RAG(
    name = "chatbot_rag",
    mezgli=[
        {"name": "sveiciens", "text": "Labdien, kā es varu jums palīdzēt?"},
        {"name": "uz redzēšanos", "text": "Ardievu, bija jauki ar jums tērzēt."},
    ],
    malas=[
        {"from": "sveiciens", "kam": "uz redzēšanos", "condition": "user_says_goodbye"},
    ],
)

# Izveidojiet LLM
llm = llm.LLM(
    name = "chatbot_llm",
    model = "lama",
    max_tokens=100,
)

# Izveidojiet tērzēšanas robotu ķēdi
ķēde = langchain.Chain(
    name = "chatbot_chain",
    llm=llm,
    lupata = lupata,
)

# Pārbaudiet tērzēšanas robotu
user_input = "Sveiki, kā klājas?"
atbilde = chain.run(lietotāja_ievade)
izdrukāt (atbilde)

DSPy: uz rūsu balstīts orķestrēšanas rīks

DSPy ir uz Rust balstīts orķestrēšanas rīks, kas nodrošina augstas veiktspējas un mērogojamu ietvaru ar AI darbināmas programmatūras arhitektūras izveidei. Tas piedāvā virkni funkciju, tostarp:

  • RAG (Reasoning and Action Graph) integrācija: DSPy nodrošina iebūvētu RAG ieviešanu, ļaujot izveidot sarežģītas argumentācijas un darbību diagrammas, kuras var izmantot, lai modelētu un izpildītu AI vadītas darbplūsmas.
  • LLM (Lielās valodas modeļa) integrācija: DSPy atbalsta LLM, piemēram, LLaMA un BERT, integrāciju dabiskās valodas apstrādes un ģenerēšanas uzdevumiem.
  • Mērogojamība un veiktspēja: DSPy ir izstrādāts, lai apstrādātu liela mēroga AI darba slodzi, nodrošinot efektīvu un mērogojamu uzdevumu izpildi.

Ar AI vadītas programmatūras arhitektūras ieviešana ar DSPy

Lai demonstrētu mākslīgā intelekta vadītas programmatūras arhitektūras ieviešanu, izmantojot DSPy, aplūkosim vienkāršu tērzēšanas robota piemēru, kas izmanto RAG, lai pamatotu lietotāju vaicājumus un ģenerētu atbildes.

izmantot dspy::chain;
izmantot dspy::llm;

// Izveidojiet RAG
let lupata = ķēde::LUPA::new(
    "chatbot_rag",
    vec![
        ķēde::Node::new("sveiciens", "Sveiki, kā es varu jums palīdzēt?"),
        ķēde::Node::new("uz redzēšanos", "Uz redzēšanos, bija jauki tērzēt ar tevi."),
    ],
    vec![
        ķēde::Edge::new("sveiciens", "uz redzēšanos", "user_says_goodbye"),
    ],
);

// Izveidojiet LLM
let llm = llm::LLM::new(
    "chatbot_llm",
    "lama",
    100,
);

// Izveidojiet tērzēšanas robotu ķēdi
let ķēde = ķēde::Ķēde::jauna(
    "chatbot_chain",
    llm,
    lupata,
);

// Pārbaudi tērzēšanas robotu
let user_input = "Sveiks, kā klājas?";
let response = chain.run(lietotāja_ievade);
println!("{}", atbilde);

5–10 populārākās komandas/fragmenti

Šeit ir dažas no LangChain un DSPy visbiežāk izmantotajām komandām un fragmentiem:

  • LangChain:
    • langchain.RAG(): izveido jaunu RAG gadījumu.
    • langchain.LLM(): izveido jaunu LLM gadījumu.
    • langchain.Chain(): izveido jaunu ķēdes gadījumu.
    • rag.run(): palaiž RAG un ģenerē atbildi.
    • llm.run(): palaiž LLM un ģenerē atbildi.
  • DSPy:
    • dspy::chain::RAG::new(): izveido jaunu RAG gadījumu.
    • dspy::llm::LLM::new(): izveido jaunu LLM gadījumu.
    • dspy::chain::Chain::new(): izveido jaunu ķēdes gadījumu.
    • chain.run(): palaiž ķēdi un ģenerē atbildi.

Vizualizācija

Šeit ir vienkārša RAG un LLM iespēju vizualizācija, izmantojot Chart.js:

const ctx = document.getElementById('mana diagramma').getContext('2d');
const diagramma = new Chart(ctx, {
    tips: "bārs",
    dati: {
        etiķetes: ['RAG', 'LLM'],
        datu kopas: [{
            etiķete: "Iespējas",
            dati: [10, 20],
            fona krāsa: [
                "rgba(255, 99, 132, 0,2)",
                "rgba(54, 162, 235, 0,2)",
            ],
            borderColor: [
                "rgba(255, 99, 132, 1)",
                "rgba(54, 162, 235, 1)",
            ],
            apmales platums: 1
        }]
    },
    opcijas: {
        svari: {
            y: {
                beginAtZero: taisnība
            }
        }
    }
});

Secinājums

Noslēgumā jāsaka, ka LangChain un DSPy ir spēcīgi orķestrēšanas rīki, kas ļauj ieviest AI vadītu programmatūras arhitektūru, izmantojot RAG un LLM iespējas. Izmantojot šos rīkus, izstrādātāji var izveidot mērogojamas, efektīvas un drošas programmatūras sistēmas, kas spēj apstrādāt sarežģītas AI darba slodzes. Pateicoties to lietošanas vienkāršībai un elastībai, LangChain un DSPy ir ideāla izvēle, lai izveidotu ar AI darbināmu programmatūras arhitektūru.

Ieteikumi

Pamatojoties uz diskusiju šajā rakstā, šeit ir daži ieteikumi izstrādātājiem, kuri vēlas ieviest AI vadītu programmatūras arhitektūru, izmantojot LangChain un DSPy:

  • Sāciet, apgūstot LangChain un DSPy pamatus, tostarp to RAG un LLM iespējas.
  • Eksperimentējiet ar vienkāršiem piemēriem, piemēram, tērzēšanas robota piemēru, lai uzzinātu, kā rīki darbojas.
  • Pakāpeniski pārejiet uz sarežģītākiem projektiem, piemēram, ieteikumu sistēmas vai dabiskās valodas apstrādes cauruļvada izveidi.
  • Izmantojiet sadaļu 5–10 visbiežāk izmantotās komandas/fragmenti kā atsauces ceļvedi izplatītām komandām un fragmentiem.
  • Vizualizējiet savas RAG un LLM iespējas, izmantojot Chart.js, lai labāk izprastu attiecības starp dažādiem komponentiem.

Ievērojot šos ieteikumus, izstrādātāji var pilnībā izmantot LangChain un DSPy potenciālu un izveidot ar AI darbinātu programmatūras arhitektūru, kas spēj apstrādāt sarežģītas darba slodzes un nodrošināt izcilu veiktspēju un mērogojamību.


¿Tienes preguntas?

Hablemos

Contáctame en LinkedIn