Ustvarite RAG | B4N1

Ustvarite RAG

3 months ago · b4n1 Read time: 4 min

Uporaba orodij za orkestracijo za arhitekturo programske opreme, ki temelji na AI

Uvod

Naraščajoče povpraševanje po arhitekturi programske opreme, ki temelji na umetni inteligenci, je privedlo do razvoja različnih orodij za orkestracijo, ki omogočajo brezhibno integracijo zmogljivosti umetne inteligence (AI) in strojnega učenja (ML) v programske sisteme. V tem članku bomo raziskali implementacijo programske arhitekture, ki jo poganja AI, z orodji za orkestracijo, kot sta LangChain in DSPy, s poudarkom na integraciji zmogljivosti RAG (Reasoning and Action Graph) in LLM (Large Language Model) za izboljšano razširljivost, zmogljivost in varnost.

Kaj so orodja za orkestracijo?

Orodja za orkestracijo so programska ogrodja, ki omogočajo avtomatizacijo kompleksnih delovnih tokov in procesov z integracijo več storitev, aplikacij in sistemov. Zagotavljajo centralizirano platformo za upravljanje in usklajevanje interakcij med različnimi komponentami, kar zagotavlja učinkovito in razširljivo izvajanje nalog.

LangChain: orodje za orkestracijo, ki temelji na Pythonu

LangChain je odprtokodna knjižnica Python, ki zagotavlja celovit okvir za gradnjo programske arhitekture, ki jo poganja AI. Ponuja vrsto funkcij, vključno z:

  • Integracija RAG (Reasoning and Action Graph): LangChain ponuja vgrajeno implementacijo RAG, ki omogoča ustvarjanje kompleksnih sklepnih in akcijskih grafov, ki jih je mogoče uporabiti za modeliranje in izvajanje delovnih tokov, ki jih poganja AI.
  • Integracija LLM (Large Language Model): LangChain podpira integracijo LLM-jev, kot sta LLaMA in BERT, za naloge obdelave naravnega jezika in generiranja.
  • Razširljivost in zmogljivost: LangChain je zasnovan za obvladovanje obsežnih delovnih obremenitev umetne inteligence, kar zagotavlja učinkovito in razširljivo izvajanje nalog.

Implementacija programske arhitekture, ki jo poganja AI, z LangChain

Za predstavitev implementacije arhitekture programske opreme, ki jo poganja AI z uporabo LangChain, razmislimo o preprostem primeru chatbota, ki uporablja RAG za razmišljanje o uporabniških poizvedbah in ustvarjanje odgovorov.

uvozi langchain
iz langchain.chains import llm


rag = langchain.RAG(
    name="chatbot_rag",
    vozlišča=[
        {"name": "greeting", "text": "Pozdravljeni, kako vam lahko pomagam?"},
        {"name": "nasvidenje", "text": "Nasvidenje, lepo je bilo klepetati s tabo."},
    ],
    robovi=[
        {"from": "greeting", "to": "goodbye", "condition": "user_says_goodbye"},
    ],
)

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

# Ustvarite verigo chatbotov
veriga = langchain.Chain(
    name="chatbot_chain",
    llm=llm,
    krpa=krnja,
)

# Preizkusite chatbota
user_input = "Pozdravljeni, kako ste?"
odziv = veriga.run(uporabniški_vnos)
natisni (odgovor)

DSPy: orodje za orkestracijo na osnovi Rusta

DSPy je orkestralno orodje, ki temelji na Rustu in zagotavlja visoko zmogljivo in razširljivo ogrodje za gradnjo programske arhitekture, ki jo poganja AI. Ponuja vrsto funkcij, vključno z:

  • Integracija RAG (Reasoning and Action Graph): DSPy zagotavlja vgrajeno izvedbo RAG, ki omogoča ustvarjanje kompleksnih sklepnih in akcijskih grafov, ki jih je mogoče uporabiti za modeliranje in izvajanje delovnih tokov, ki jih poganja AI.
  • Integracija LLM (Large Language Model): DSPy podpira integracijo LLM-jev, kot sta LLaMA in BERT, za naloge obdelave naravnega jezika in generiranja.
  • Razširljivost in zmogljivost: DSPy je zasnovan za obvladovanje obsežnih delovnih obremenitev umetne inteligence, kar zagotavlja učinkovito in razširljivo izvajanje nalog.

Implementacija programske arhitekture, ki jo poganja AI, z DSPy

Za predstavitev implementacije programske arhitekture, ki jo poganja umetna inteligenca, z uporabo DSPy, si oglejmo preprost primer chatbota, ki uporablja RAG za razmišljanje o uporabniških poizvedbah in ustvarjanje odgovorov.

uporabite dspy::chain;
uporabite dspy::llm;

// Ustvari RAG
naj rag = veriga::RAG::novo(
    "chatbot_rag",
    vec![
        veriga::Vozlišče::novo("pozdrav", "Pozdravljeni, kako vam lahko pomagam?"),
        chain::Node::new("nasvidenje", "nasvidenje, lepo je bilo klepetati s tabo."),
    ],
    vec![
        veriga::Edge::novo("pozdrav", "nasvidenje", "uporabnik_se_poslovi"),
    ],
);

// Ustvari LLM
naj llm = llm::LLM::novo(
    "chatbot_llm",
    "lama",
    100,
);

// Ustvari verigo chatbota
naj veriga = veriga::Veriga::novo(
    "chatbot_chain",
    llm,
    cunja,
);

// Preizkusite chatbota
let user_input = "Pozdravljeni, kako ste?";
naj odziv = veriga.run(uporabniški_vnos);
println!("{}", odgovor);

5–10 najbolj uporabljenih ukazov/izrezkov

Tukaj je nekaj najpogosteje uporabljenih ukazov in izrezkov za LangChain in DSPy:

  • LangChain:
    • langchain.RAG(): Ustvari nov primerek RAG.
    • langchain.LLM(): Ustvari nov primerek LLM.
    • langchain.Chain(): Ustvari nov primerek verige.
    • rag.run(): Zažene RAG in ustvari odgovor.
    • llm.run(): Zažene LLM in ustvari odgovor.
  • DSPy:
    • dspy::chain::RAG::new(): Ustvari nov primerek RAG.
    • dspy::llm::LLM::new(): Ustvari nov primerek LLM.
    • dspy::chain::Chain::new(): ustvari nov primerek verige.
    • chain.run(): zažene verigo in ustvari odgovor.

Vizualizacija

Tukaj je preprosta vizualizacija zmogljivosti RAG in LLM z uporabo Chart.js:

const ctx = document.getElementById('myChart').getContext('2d');
const chart = nov grafikon(ctx, {
    vrsta: 'bar',
    podatki: {
        oznake: ['RAG', 'LLM'],
        nabori podatkov: [{
            oznaka: 'Zmogljivosti',
            podatki: [10, 20],
            barva ozadja: [
                'rgba(255, 99, 132, 0,2)',
                'rgba(54, 162, 235, 0,2)',
            ],
            borderColor: [
                'rgba(255, 99, 132, 1)',
                'rgba(54, 162, 235, 1)',
            ],
            širina roba: 1
        }]
    },
    možnosti: {
        lestvice: {
            y: {
                beginAtZero: res
            }
        }
    }
});

Sklep

Skratka, LangChain in DSPy sta zmogljivi orodji za orkestracijo, ki omogočata implementacijo programske arhitekture, ki jo poganja AI, z uporabo zmogljivosti RAG in LLM. Z uporabo teh orodij lahko razvijalci ustvarijo razširljive, zmogljive in varne programske sisteme, ki lahko obvladajo zapletene delovne obremenitve AI. LangChain in DSPy sta s svojo enostavno uporabo in prilagodljivostjo idealni izbiri za gradnjo programske arhitekture, ki jo poganja AI.

Priporočila

Na podlagi razprave v tem članku je tukaj nekaj priporočil za razvijalce, ki želijo implementirati arhitekturo programske opreme, ki temelji na umetni inteligenci, z uporabo LangChain in DSPy:

  • Začnite z učenjem osnov LangChain in DSPy, vključno z njunimi zmogljivostmi RAG in LLM.
  • Eksperimentirajte s preprostimi primeri, kot je primer chatbota, da dobite občutek, kako orodja delujejo.
  • Postopoma preidite na bolj zapletene projekte, kot je izgradnja sistema priporočil ali cevovoda za obdelavo naravnega jezika.
  • Uporabite razdelek 5–10 najpogosteje uporabljenih ukazov/izrezkov kot referenčni vodnik za običajne ukaze in izrezke.
  • Vizualizirajte svoje zmogljivosti RAG in LLM z uporabo Chart.js, da pridobite boljše razumevanje odnosov med različnimi komponentami.

Z upoštevanjem teh priporočil lahko razvijalci sprostijo polni potencial LangChain in DSPy ter zgradijo arhitekturo programske opreme, ki jo poganja umetna inteligenca, ki lahko obvlada zapletene delovne obremenitve in zagotavlja izjemno zmogljivost in razširljivost.


Have Questions?

Let's Talk

Contact me on LinkedIn