Kuunganisha LangChain kwa Usanifu wa Juu wa RAG katika Maombi ya Python | B4N1

Kuunganisha LangChain kwa Usanifu wa Juu wa RAG katika Maombi ya Python

8 months ago · b4n1 Read time: 4 min

Kuunganisha LangChain kwa Usanifu wa Juu wa RAG katika Maombi ya Python

Muhtasari

Katika miaka ya hivi majuzi, uga wa Usindikaji wa Lugha Asilia (NLP) umeshuhudia maendeleo makubwa, hasa katika nyanja ya Mifumo ya Urejeshaji-Uboreshaji wa Kizazi (RAG). Mifumo hii imebadilisha jinsi tunavyoshughulikia kazi kama vile kujibu maswali, muhtasari wa maandishi na AI ya mazungumzo. LangChain, maktaba ya kisasa ya Python, imeibuka kama zana yenye nguvu ya kujenga usanifu wa RAG. Katika makala haya, tutachunguza ulimwengu wa LangChain na kuchunguza ushirikiano wake na mifumo ya wavuti inayotegemea Python kama FastAPI na Flask, huku tukitumia zana za ochestration kwa urejeshaji na usindikaji wa data ulioimarishwa.

LangChain ni nini?

LangChain ni maktaba ya Python ya chanzo huria iliyoundwa ili kurahisisha maendeleo ya mifumo ya RAG. Inatoa seti ya kina ya zana na API za kujenga, mafunzo, na kupeleka miundo ya AI, pamoja na kuziunganisha na vyanzo mbalimbali vya data na mifumo ya wavuti. Lengo kuu la LangChain ni kuwezesha wasanidi programu kuunda usanifu wa RAG unaoweza kubadilika na unaofaa ambao unaweza kushughulikia majukumu changamano ya NLP.

Sifa Muhimu za LangChain

  1. ** Usanifu wa Kawaida**: Muundo wa kawaida wa LangChain huruhusu wasanidi programu kuunganisha kwa urahisi miundo tofauti ya AI, vyanzo vya data, na mifumo ya wavuti, na kuifanya kuwa chaguo bora kwa ajili ya kujenga mifumo changamano ya RAG.
  2. Zana za Ochestration: LangChain hutoa anuwai ya zana za ochestration zinazowawezesha wasanidi programu kudhibiti na kuchakata seti kubwa za data, na pia kuunganishwa na vyanzo mbalimbali vya data na API.
  3. Usaidizi kwa Miundo Nyingi ya AI: LangChain inaauni aina mbalimbali za miundo ya AI, ikiwa ni pamoja na miundo inayotegemea transfoma, kuruhusu wasanidi programu kuchagua muundo bora zaidi wa kesi yao mahususi ya utumiaji.
  4. Muunganisho na Mifumo ya Wavuti: LangChain hutoa muunganisho usio na mshono na mifumo maarufu ya wavuti inayotegemea Python kama vile FastAPI na Flask, na kuifanya iwe rahisi kusambaza mifumo ya RAG kama programu za wavuti.

Kuunganisha LangChain na FastAPI na Flask

Ili kuunganisha LangChain na FastAPI na Flask, tunahitaji kufuata hatua hizi:

Hatua ya 1: Sakinisha LangChain

Kwanza, tunahitaji kusanikisha LangChain kwa kutumia bomba:

bomba kufunga langchain

Hatua ya 2: Unda Wakala wa LangChain

Kisha, tunahitaji kuunda wakala wa LangChain ambaye atatumika kama msingi wa mfumo wetu wa RAG. Hapa kuna mfano wa jinsi ya kuunda wakala wa kimsingi:

kutoka kwa Wakala wa uingizaji wa langchain


wakala = wakala(
    jina = "wakala_wangu",
    model_name="my_model",
    model_type="transformer",
    max_length=1024,
    min_length=128,
)

Hatua ya 3: Unganisha na FastAPI au Flask

Mara tu tumeunda wakala wetu wa LangChain, tunaweza kuiunganisha na FastAPI au Flask. Hapa kuna mfano wa jinsi ya kuiunganisha na FastAPI:

kutoka kwa fastapi ingiza FastAPI
kutoka kwa Wakala wa uingizaji wa langchain

app = FastAPI()

# Unda wakala wa msingi
wakala = wakala(
    jina = "wakala_wangu",
    model_name="my_model",
    model_type="transformer",
    max_length=1024,
    min_length=128,
)

@app.get("/tengeneza")
async def generate_text(haraka: str):
    # Tumia wakala kutengeneza maandishi
    pato = agent.generate(prompt)
    rudisha {"output": output}

Vile vile, tunaweza kuunganisha LangChain na Flask:

kutoka kwa chupa ya kuingiza chupa, ombi
kutoka kwa Wakala wa uingizaji wa langchain

programu = Chupa(__jina__)

# Unda wakala wa kimsingi
wakala = wakala(
    jina = "wakala_wangu",
    model_name="my_model",
    model_type="transformer",
    max_length=1024,
    min_length=128,
)

@app.route("/tengeneza", mbinu=["GET"])
def generate_text():
    # Tumia wakala kutengeneza maandishi
    haraka = request.args.get("prompt")
    pato = agent.generate(prompt)
    rudisha {"output": output}

Zana za Ochestration katika LangChain

LangChain hutoa zana mbalimbali za upangaji zinazowezesha wasanidi programu kudhibiti na kuchakata hifadhidata kubwa, na pia kuunganishwa na vyanzo mbalimbali vya data na API. Baadhi ya zana kuu za ochestration katika LangChain ni pamoja na:

  1. Vyanzo vya Data: LangChain hutoa vyanzo mbalimbali vya data vinavyowezesha wasanidi programu kuunganishwa na vyanzo mbalimbali vya data na API, kama vile hifadhidata, mifumo ya faili na API za wavuti.
  2. Vichakataji Data: LangChain hutoa anuwai ya vichakataji data vinavyowawezesha wasanidi programu kuchakata seti kubwa za data, ikijumuisha kusafisha data, kubadilisha data na kujumlisha data.
  3. Muundo wa Orchestrators: LangChain hutoa aina mbalimbali za waimbaji wa vielelezo vinavyowawezesha wasanidi programu kudhibiti na kutumia miundo ya AI, ikijumuisha mafunzo ya kielelezo, uwekaji wa miundo na ufuatiliaji wa kielelezo.

Taswira na Chart.js

Ili kuibua utendaji wa mfumo wetu wa RAG, tunaweza kutumia Chart.js, maktaba maarufu ya JavaScript kuunda chati ingiliani. Huu hapa ni mfano wa jinsi ya kutumia Chart.js kuibua utendaji wa mfumo wetu wa RAG:

const ctx = document.getElementById("myChart").getContext("2d");
const chart = Chati mpya (ctx, {
  aina: "mstari",
  data: {
    lebo: ["Jan", "Feb", "Mar", "Apr", "May"],
    seti za data: [
      {
        lebo: "Usahihi",
        data: [0.8, 0.9, 0.85, 0.88, 0.92],
        Rangi ya asili: "rgba(255, 99, 132, 0.2)",
        mpakaRangi: "rgba(255, 99, 132, 1)",
        Upana wa mpaka: 1,
      },
    ],
  },
  chaguzi: {
    mizani: {
      y: {
        startAtZero: kweli,
      },
    },
  },
});

Amri/Vijisehemu 5-10 Bora Zaidi

Hapa kuna amri/vijisehemu 5-10 vya juu vinavyotumika zaidi katika LangChain:

  1. kutoka kwa Wakala wa uingizaji wa langchain: Leta darasa la Wakala kutoka LangChain.
  2. wakala = Wakala(...): Unda mfano mpya wa Wakala.
  3. agent.generate(...): Tumia Wakala kutengeneza maandishi.
  4. agent.query(...): Tumia Wakala kuuliza msingi wa maarifa.
  5. agent.train(...): Fundisha Wakala kwenye mkusanyiko wa data.
  6. agent.deploy(...): Tumia Ajenti kama huduma ya wavuti.
  7. wakala.monitor(...): Fuatilia utendakazi wa Wakala.
  8. wakala.sasisha(...): Sasisha Wakala kwa data mpya.
  9. wakala.futa(...): Futa mfano wa Wakala.
  10. agent.save(...): Hifadhi mfano wa Wakala kwenye faili.

Hitimisho

Katika nakala hii, tumechunguza ulimwengu wa LangChain na ujumuishaji wake na mifumo ya wavuti inayotegemea Python kama FastAPI na Flask. Tumejadili pia matumizi ya zana za ochestration katika LangChain na kutoa mifano ya jinsi ya kutumia Chart.js kuibua utendaji wa mfumo wetu wa RAG. Kwa LangChain, watengenezaji wanaweza kujenga usanifu wa RAG unaoweza kupanuka na unaofaa ambao unaweza kushughulikia kazi ngumu za NLP.


Have Questions?

Let's Talk

Contact me on LinkedIn