Заманбап веб алкактары менен RAGды интеграциялоо: Практикалык колдонмо | B4N1

Заманбап веб алкактары менен RAGды интеграциялоо: Практикалык колдонмо

9 months ago · b4n1 Read time: 4 min

** RAG (Retrieval-Augmented Generation) заманбап веб алкактары менен интеграциялоо: Практикалык колдонмо**

Танышуу

Акыркы жылдары табигый тилди иштетүү (NLP) чөйрөсүндө чоң тил моделдерин (LLMs) жана алардын ар кандай чөйрөлөрдө колдонуусун өнүктүрүүдө олуттуу өсүш байкалды. Бирок, LLMдердин негизги чектөөлөрүнүн бири бул алардын жоопторуна тышкы билимдерди алуу жана киргизүүгө жөндөмсүздүгү. Бул жерде Retrieval-Augmented Generation (RAG) ыкмалары ишке кирет. Бул макалада биз веб-тиркемелерде LLM мүмкүнчүлүктөрүн жогорулатуу үчүн FastAPI жана Django аркылуу RAG ыкмаларын ишке ашырууну, анын ичинде маалыматтарды үзгүлтүксүз издөө жана иштетүү үчүн LangChain менен уюштурууну изилдейбиз.

RAG деген эмне?

RAG так жана маалыматтык жоопторду чыгаруу үчүн Retrieval жана Generation моделдеринин күчтүү жактарын бириктирген ыкма. RAGнын негизги идеясы - адегенде билим базасынан же маалымат базасынан тиешелүү маалыматты алуу, андан кийин жоопту түзүү үчүн бул маалыматты колдонуу. Бул ыкма LLMлерге тышкы билимдерди колдонууга жана так жана маалыматтык жоопторду берүүгө мүмкүндүк берет.

Эмне үчүн FastAPI жана Django менен RAG колдонуш керек?

FastAPI жана Django веб тиркемелерди куруу үчүн колдонулган эң популярдуу веб алкактардын экөөсү. Алар веб-тиркемелерди түзүү үчүн бекем жана масштабдуу инфраструктураны камсыз кылат жана LLM мүмкүнчүлүктөрүн жогорулатуу үчүн RAG ыкмалары менен оңой интеграцияланышы мүмкүн. FastAPI - бул веб-тиркемелерди куруунун тез жана натыйжалуу жолун камсыз кылган заманбап веб алкак, ал эми Django - күчтүү веб тиркемелерди куруу үчүн архитектураны, шаблондорду жана API'лерди камсыз кылган жогорку деңгээлдеги веб алкак.

** FastAPI менен RAG ишке ашыруу**

FastAPI RAG ыкмаларын ишке ашыруу үчүн жөнөкөй жана натыйжалуу жол менен камсыз кылат. Бул жерде RAGди ишке ашыруу үчүн FastAPIди кантип колдонууну көрсөткөн мисал код блогу:

fastapiден FastAPI импорттоо
langchain импортунан LMChain
langchain.chains.openai импорттоо OpenAIApi тартып

колдонмо = FastAPI()

@app.get("/rag")
async def rag(суроо: str):
    
    llm_chain = LMCchain(
        llm=OpenAIApi(),
        retrieval=LangChainRetrieval(
            индекс=LangChainIndex(
                аты = "менин_индекс",
                документтер =["doc1", "doc2", "doc3"]
            )
        )
    )

    # LLM чынжырын колдонуп жоопту жаратыңыз
    жооп = llm_chain.run(суроо)

    кайтаруу {"жооп": жооп}

Бул мисалда биз LLM чынжырын LangChainдин LLMCain классын колдонуп аныктайбыз. Андан кийин биз LangChainRetrieval классын колдонуп издөө компонентин аныктайбыз, ал билим базасынан же маалымат базасынан тиешелүү маалыматты алуу үчүн колдонулат. Акырында, LLM чынжырын колдонуу менен жоопту түзүү үчүн “чуркоо” ыкмасын колдонобуз.

** Django менен RAG ишке ашыруу**

Django RAG ыкмалары менен оңой интеграциялануучу жогорку деңгээлдеги веб алкак менен камсыз кылат. Бул жерде RAGди ишке ашыруу үчүн Django кантип колдонуу керектигин көрсөткөн мисал код блогу:

django.http'ден JsonResponse импорттоо
langchain импортунан LMChain
langchain.chains.openai импорттоо OpenAIApi тартып

def rag (суроо):
    # LLM чынжырын аныктоо
    llm_chain = LMCchain(
        llm=OpenAIApi(),
        retrieval=LangChainRetrieval(
            индекс=LangChainIndex(
                аты = "менин_индекс",
                документтер =["doc1", "doc2", "doc3"]
            )
        )
    )

    # LLM чынжырын колдонуп жоопту жаратыңыз
    жооп = llm_chain.run(request.GET.get("суроо"))

    return JsonResponse({"response": answer})

Бул мисалда биз суроону киргизүү катары кабыл алып, LLM чынжырын колдонуу менен жоопту жаратуучу rag көрүү функциясын аныктайбыз.

RAGды LangChain менен уюштуруу

LangChain RAG ыкмаларын башкаруунун жөнөкөй жана натыйжалуу жолун камсыз кылат. Бул жерде RAGды уюштуруу үчүн LangChainди кантип колдонууну көрсөткөн мисал код блогу:

langchain импортунан LMChain
langchain.chains.openai импорттоо OpenAIApi тартып

# LLM чынжырын аныктоо
llm_chain = LMCchain(
    llm=OpenAIApi(),
    retrieval=LangChainRetrieval(
        индекс=LangChainIndex(
            аты = "менин_индекс",
            документтер =["doc1", "doc2", "doc3"]
        )
    )
)

# LLM чынжырын колдонуп жоопту жаратыңыз
жооп = llm_chain.run("RAG деген эмне?")

басып чыгаруу (жооп)

Бул мисалда биз LLM чынжырын LangChainдин LLMCain классын колдонуп аныктайбыз. Андан кийин LLM чынжырын колдонуу менен жоопту түзүү үчүн run ыкмасын колдонобуз.

Эң көп колдонулган 5-10 буйруктар/үзүндүлөр

Бул жерде FastAPI жана Django менен RAGды ишке ашыруу үчүн эң көп колдонулган 5-10 командалар/үзүндүлөр:

  1. langchain импорттоодон LLMChain: LangChainден LLMCain классын импорттоо.
  2. llm_chain = LLMChain(llm=OpenAIApi(), retrieval=LangChainRetrieval(index=LangChainIndex(name="my_index", документтер=["doc1", "doc2", "doc3"]))): LLMCha классын колдонуп LLM чынжырын аныктаңыз.
  3. response = llm_chain.run(query): LLM чынжырын колдонуп жоопту жаратыңыз.
  4. from fastapi import FastAPI: FastAPIден FastAPI классын импорттоо.
  5. app = FastAPI(): FastAPI тиркемесин аныктаңыз.
  6. @app.get("/rag"): RAG акыркы чекити үчүн маршрутту аныктаңыз.
  7. llm_chain = LLMChain(llm=OpenAIApi(), retrieval=LangChainRetrieval(index=LangChainIndex(name="my_index", документтер=["doc1", "doc2", "doc3"]))): LLMCha классын колдонуп LLM чынжырын аныктаңыз.
  8. response = llm_chain.run(query): LLM чынжырын колдонуп жоопту жаратыңыз.
  9. from django.http import JsonResponse: Джангодон JsonResponse классын импорттоо.
  10. return JsonResponse({"response": response}): Түзүлгөн жооп менен JSON жообун кайтарыңыз.

Визуализация

Бул жерде Chart.js аркылуу RAG куурунун визуализациясы:

{
  "type": "horizontalBar",
  "маалымат": {
    "labels": ["Изилдөө", "Муун", "Пост иштетүү"],
    "маалымат топтомдору": [
      {
        "label": "RAG Pipeline",
        "data": [10, 20, 30],
        "backgroundColor": [
          "rgba(255, 99, 132, 0.2)",
          "rgba(54, 162, 235, 0.2)",
          "rgba(255, 206, 86, 0,2)"
        ],
        "borderColor": [
          "rgba(255, 99, 132, 1)",
          "rgba(54, 162, 235, 1)",
          "rgba(255, 206, 86, 1)"
        ],
        "borderWidth": 1
      }
    ]
  },
  "опциялар": {
    "аталышы": {
      "дисплей": чын,
      "text": "RAG Pipeline"
    },
    "тараза": {
      "yAxes": [
        {
          "кенелер": {
            "beginAtZero": чын
          }
        }
      ]
    }
  }
}

Бул визуализация RAG түтүгүн үч этап менен көрсөтөт: издөө, генерациялоо жана кайра иштетүү.

Корутунду

Бул макалада биз веб-тиркемелерде LLM мүмкүнчүлүктөрүн жогорулатуу үчүн FastAPI жана Django аркылуу RAG ыкмаларын ишке ашырууну изилдедик, анын ичинде маалыматтарды үзгүлтүксүз алуу жана иштетүү үчүн LangChain менен оркестрлештирүү. Биз ошондой эле RAGды FastAPI жана Django менен ишке ашыруу боюнча практикалык колдонмону бердик, анын ичинде код мисалдары жана RAG куурунун визуализациясы. Бул макала RAG ыкмаларын веб-тиркемелеринде ишке ашырууну каалаган иштеп чыгуучулар үчүн пайдалуу булак болду деп үмүттөнөбүз.


Have Questions?

Let's Talk

Contact me on LinkedIn