Python қолданбаларында кеңейтілген RAG архитектуралары үшін LangChain интеграциясы | B4N1

Python қолданбаларында кеңейтілген RAG архитектуралары үшін LangChain интеграциясы

8 months ago · b4n1 Read time: 3 min

Python қолданбаларында кеңейтілген RAG архитектуралары үшін LangChain интеграциясы

Шолу

Соңғы жылдары табиғи тілді өңдеу (NLP) саласы айтарлықтай жетістіктерге куә болды, әсіресе Retrieval-Augmented Generation (RAG) жүйелерінде. Бұл жүйелер сұрақтарға жауап беру, мәтінді қорытындылау және сөйлесу AI сияқты тапсырмаларды орындау тәсілін өзгертті. LangChain, ең озық Python кітапханасы RAG архитектурасын құрудың қуатты құралы ретінде пайда болды. Бұл мақалада біз LangChain әлеміне үңіліп, оның FastAPI және Flask сияқты Python негізіндегі веб-фремворктермен интеграциясын зерттейміз, сонымен бірге кеңейтілген деректерді іздеу және өңдеу үшін оркестрлік құралдарды пайдаланамыз.

LangChain дегеніміз не?

LangChain - бұл RAG жүйелерінің дамуын жеңілдетуге арналған ашық бастапқы Python кітапханасы. Ол AI үлгілерін құруға, оқытуға және қолдануға, сондай-ақ оларды әртүрлі деректер көздерімен және веб-фремворктармен біріктіруге арналған құралдар мен API интерфейстерінің толық жиынтығын ұсынады. LangChain-тың негізгі бағыты әзірлеушілерге күрделі NLP тапсырмаларын орындай алатын масштабталатын және тиімді RAG архитектураларын жасауға мүмкіндік беру болып табылады.

LangChain негізгі мүмкіндіктері

  1. Модульдік архитектура: LangChain модульдік дизайны әзірлеушілерге әртүрлі AI үлгілерін, деректер көздерін және веб-жүйелерді оңай біріктіруге мүмкіндік береді, бұл оны күрделі RAG жүйелерін құру үшін тамаша таңдау етеді.
  2. Оркестрлеу құралдары: LangChain әзірлеушілерге үлкен деректер жиынын басқаруға және өңдеуге, сондай-ақ әртүрлі деректер көздерімен және API интерфейстерімен біріктіруге мүмкіндік беретін оркестрлеу құралдарының ауқымын ұсынады.
  3. Бірнеше AI үлгілеріне қолдау көрсету: LangChain AI үлгілерінің кең ауқымын қолдайды, соның ішінде трансформаторға негізделген үлгілер, әзірлеушілерге нақты пайдалану жағдайлары үшін ең жақсы үлгіні таңдауға мүмкіндік береді.
  4. Веб-жақтамалармен интеграция: LangChain FastAPI және Flask сияқты танымал Python негізіндегі веб-жүйелермен үздіксіз интеграцияны қамтамасыз етеді, бұл RAG жүйелерін веб-қосымшалар ретінде орналастыруды жеңілдетеді.

LangChain-ті FastAPI және Flask-пен біріктіру

LangChain-ті FastAPI және Flask-пен біріктіру үшін бізге мына қадамдарды орындау қажет:

1-қадам: LangChain орнатыңыз

Біріншіден, Pip көмегімен LangChain орнату керек:

pip орнату langchain

2-қадам: LangChain агентін жасаңыз

Әрі қарай, біз RAG жүйеміздің өзегі болатын LangChain агентін жасауымыз керек. Мұнда негізгі агентті жасаудың мысалы берілген:

langchain импорт агентінен


агент = Агент(
    аты = "менің_агентім",
    үлгі_атауы="менің_үлгім",
    үлгі_түрі = "трансформатор",
    максимум_ұзындығы=1024,
    мин_ұзындығы=128,
)

3-қадам: FastAPI немесе Flask көмегімен біріктіру

Біз LangChain агентін жасағаннан кейін оны FastAPI немесе Flask арқылы біріктіре аламыз. Мұнда оны FastAPI-мен біріктірудің мысалы берілген:

fastapi импортынан FastAPI
langchain импорт агентінен

қолданба = FastAPI()

# Негізгі агентті жасаңыз
агент = Агент(
    аты = "менің_агентім",
    үлгі_атауы="менің_үлгім",
    үлгі_түрі = "трансформатор",
    максимум_ұзындығы=1024,
    мин_ұзындығы=128,
)

@app.get("/generate")
асинхронды деf generat_text( шақыру: str):
    # Мәтінді жасау үшін агентті пайдаланыңыз
    шығыс = agent.generate(шақыру)
    қайтару {"шығару": шығыс}

Сол сияқты, біз LangChain-ті Flask-пен біріктіре аламыз:

колбадан импорт Колба, сұраныс
langchain импорт агентінен

қолданба = Колба(__аты__)

# Негізгі агентті жасаңыз
агент = Агент(
    аты = "менің_агентім",
    үлгі_атауы="менің_үлгім",
    үлгі_түрі = "трансформатор",
    максимум_ұзындығы=1024,
    мин_ұзындығы=128,
)

@app.route("/generate", әдістер=["GET"])
def generate_text():
    # Мәтінді жасау үшін агентті пайдаланыңыз
    шақыру = request.args.get («шақыру»)
    шығыс = agent.generate(шақыру)
    қайтару {"шығару": шығыс}

LangChain ішіндегі оркестрлік құралдар

LangChain әзірлеушілерге үлкен деректер жиынын басқаруға және өңдеуге, сондай-ақ әртүрлі деректер көздерімен және API интерфейстерімен біріктіруге мүмкіндік беретін бірқатар оркестрлік құралдарды ұсынады. LangChain ішіндегі негізгі оркестрлік құралдардың кейбірі мыналарды қамтиды:

  1. Дерек көздері: LangChain әзірлеушілерге дерекқорлар, файлдық жүйелер және веб API интерфейстері сияқты әртүрлі деректер көздерімен және API интерфейстерімен біріктіруге мүмкіндік беретін деректер көздерінің ауқымын қамтамасыз етеді.
  2. Деректерді өңдеушілер: LangChain әзірлеушілерге деректерді тазалауды, деректерді түрлендіруді және деректерді біріктіруді қоса алғанда, үлкен деректер жиынын өңдеуге мүмкіндік беретін деректер процессорларының ауқымын ұсынады.
  3. Модельдік оркестрлер: LangChain әзірлеушілерге AI үлгілерін басқаруға және орналастыруға мүмкіндік беретін модельдік оркестрлердің ауқымын қамтамасыз етеді, соның ішінде үлгіні оқыту, үлгіні орналастыру және үлгі мониторингі.

Chart.js көмегімен визуализация

RAG жүйеміздің өнімділігін визуализациялау үшін интерактивті диаграммаларды құруға арналған танымал JavaScript кітапханасы Chart.js пайдалана аламыз. Міне, RAG жүйеміздің өнімділігін визуализациялау үшін Chart.js пайдаланудың мысалы:

const ctx = document.getElementById("myChart").getContext("2d");
const диаграмма = жаңа диаграмма(ctx, {
  түрі: «сызық»,
  деректер: {
    белгілер: [«қаң», «ақпан», «наур», «сәуір», «мамыр»],
    деректер жиыны: [
      {
        белгі: «дәлдік»,
        деректер: [0,8, 0,9, 0,85, 0,88, 0,92],
        backgroundColor: "rgba(255, 99, 132, 0.2)",
        borderColor: "rgba(255, 99, 132, 1)",
        шекара ені: 1,
      },
    ],
  },
  опциялар: {
    таразы: {
      ж: {
        beginAtZero: шын,
      },
    },
  },
});

Ең көп қолданылатын 5-10 пәрмендер/үзінділер

Міне, LangChain жүйесінде ең көп қолданылатын 5-10 командалар/үзінділер:

  1. langchain импорт агентінен: LangChain ішінен агент сыныбын импорттаңыз.
  2. агент = Агент(...): жаңа Агент данасын жасаңыз.
  3. agent.generate(...): Мәтінді жасау үшін Агентті пайдаланыңыз.
  4. agent.query(...): Агентті білім базасын сұрау үшін пайдаланыңыз.
  5. agent.train(...): Агентті деректер жиынында жаттықтырыңыз.
  6. agent.deploy(...): Агентті веб-қызмет ретінде орналастыру.
  7. agent.monitor(...): Агенттің жұмысын бақылаңыз.
  8. agent.update(...): Агентті жаңа деректермен жаңартыңыз.
  9. agent.delete(...): Агент данасын жою.
  10. agent.save(...): Агент данасын файлға сақтаңыз.

Қорытынды

Бұл мақалада біз LangChain әлемін және оның FastAPI және Flask сияқты Python негізіндегі веб фреймворктермен интеграциясын зерттедік. Біз сондай-ақ LangChain жүйесінде оркестрлік құралдарды пайдалануды талқыладық және RAG жүйеміздің өнімділігін визуализациялау үшін Chart.js пайдаланудың мысалдарын келтірдік. LangChain көмегімен әзірлеушілер күрделі NLP тапсырмаларын орындай алатын масштабталатын және тиімді RAG архитектурасын құра алады.


Have Questions?

Let's Talk

Contact me on LinkedIn