RAG (Retrieval-Augmented буын) белән заманча веб челтәрләр белән интеграцияләү: практик кулланма | B4N1

RAG (Retrieval-Augmented буын) белән заманча веб челтәрләр белән интеграцияләү: практик кулланма

9 months ago · b4n1 Tiempo de lectura: 4 min

Заманча веб-рамкалар белән RAG (Эзләү-киңәйтелгән буын) интеграцияләү: практик кулланма

Кереш

Соңгы елларда Табигать телен эшкәртү өлкәсендә (NLP) Зур Тел Модельләре (LLM) үсешендә һәм аларның төрле доменнарда кулланылышында зур үсеш күзәтелә. Ләкин, LLMларның төп чикләүләренең берсе - аларның җавапларына тышкы белемнәрне ала алмау. Монда алу-киңәйтелгән буын (RAG) техникасы уйный. Бу мәкаләдә без веб-кушымталарда LLM мөмкинлекләрен арттыру өчен, FastAPI һәм Django ярдәмендә RAG техникасын куллануны тикшерәчәкбез, шул исәптән мәгълүматны эзләү һәм эшкәртү өчен LangChain белән оркестр.

RAG нәрсә ул?

RAG - төгәлрәк һәм эчтәлекле җаваплар чыгару өчен, алу һәм буын модельләренең көчле якларын берләштергән техника. RAG артындагы төп идея - башта белем базасыннан яки мәгълүмат базасыннан тиешле мәгълүматны алу, аннары җавап булдыру өчен бу мәгълүматны куллану. Бу алым LLMларга тышкы белемнәрне арттырырга һәм төгәл һәм эчтәлекле җавап бирергә мөмкинлек бирә.

Ни өчен RAGны FastAPI һәм Django белән кулланырга?

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

RAGны FastAPI белән тормышка ашыру

FastAPI RAG техникасын кертү өчен гади һәм эффектив ысул тәкъдим итә. Менә RAGны тормышка ашыру өчен FastAPI куллануны күрсәтүче код блокы:

"питон FastAPI импортыннан LLMChain импортыннан langchain.chains.openai -тан OpenAIApi импортлау

кушымта = FastAPI ()

@ app.get ("/ rag") async def rag (сорау: стр.):

llm_chain = LLMChain (
    llm = OpenAIApi (),
    алу = LangChainRetrieval (
        индекс = LangChainIndex (
            исем = "my_index",
            документлар = ["doc1", "doc2", "doc3"]
        )
    )
)

# LLM чылбыры ярдәмендә җавап булдыру
җавап = llm_chain.run (сорау)

кайту {"җавап": җавап}

"

Бу мисалда без LangChain'тан "LLMChain" классын кулланып LLM чылбырын билгелибез. Аннары без "LangChainRetrieval" классын кулланып эзләү компонентын билгелибез, бу белем базасыннан яки мәгълүмат базасыннан тиешле мәгълүмат алу өчен кулланыла. Ниһаять, без LLM чылбыры ярдәмендә җавап тудыру өчен "run" ысулын кулланабыз.

Django белән RAG кертү

Django RAG техникасы белән җиңел интеграцияләнә ала торган югары дәрәҗәдәге веб-база тәкъдим итә. Менә RAGны тормышка ашыру өчен Django'ны ничек кулланырга икәнен күрсәтүче код блокы:

"питон django.http импорт JsonResponse LLMChain импортыннан langchain.chains.openai -тан OpenAIApi импортлау

def rag (сорау): # LLM чылбырын билгеләгез llm_chain = LLMChain ( llm = OpenAIApi (), алу = LangChainRetrieval ( индекс = LangChainIndex ( исем = "my_index", документлар = ["doc1", "doc2", "doc3"] ) ) )

# LLM чылбыры ярдәмендә җавап булдыру
җавап = llm_chain.run (сорау.GET.get ("сорау"))

JsonResponse кайтару ({"җавап": җавап})

"

Бу мисалда без "rag" күренеш функциясен билгелибез, ул сорау кертү һәм LLM чылбыры ярдәмендә җавап бирә.

LangChain белән RAG оркестры

LangChain RAG техникасын оркестрлау өчен гади һәм эффектив ысул тәкъдим итә. Менә RAG оркестры өчен LangChain-ны ничек кулланырга икәнен күрсәтүче мисал коды блокы:

"питон LLMChain импортыннан langchain.chains.openai -тан OpenAIApi импортлау

LLM чылбырын билгеләгез

llm_chain = LLMChain ( llm = OpenAIApi (), алу = LangChainRetrieval ( индекс = LangChainIndex ( исем = "my_index", документлар = ["doc1", "doc2", "doc3"] ) ) )

LLM чылбыры ярдәмендә җавап булдыру

җавап = llm_chain.run ("RAG нәрсә ул?")

бастыру (җавап) "

Бу мисалда без LangChain'тан "LLMChain" классын кулланып LLM чылбырын билгелибез. Аннары LLM чылбыры ярдәмендә җавап тудыру өчен "run" ысулын кулланабыз.

Иң күп кулланылган командалар / фрагментлар

Менә FastAPI һәм Django белән RAGны тормышка ашыру өчен иң күп кулланылган 5-10 командалар / фрагментлар:

  1. "Langchain импортыннан LLMChain": LangChain'тан "LLMChain" классын импортлагыз.
  2. "Llm_chain = LLMChain (llm = OpenAIApi (), алу = LangChainRetrieval (индекс = LangChainIndex (исем =" my_index ", документлар = [" doc1 "," doc2 "," doc3 "]))): LLMChain классын кулланып LLM чылбырын билгеләгез.
  3. "Response = llm_chain.run (сорау)": LLM чылбыры ярдәмендә җавап булдыру.
  4. "Фастапи импортыннан FastAPI": FastAPI'тан "FastAPI" классын импортлагыз.
  5. "Кушымта = FastAPI ()": FastAPI кушымтасын билгеләгез.
  6. "@ App.get (" / rag ")`: RAG ахыры өчен маршрутны билгеләгез.
  7. "Llm_chain = LLMChain (llm = OpenAIApi (), алу = LangChainRetrieval (индекс = LangChainIndex (исем =" my_index ", документлар =
  8. "Response = llm_chain.run (сорау)": LLM чылбыры ярдәмендә җавап булдыру.
  9. "Django.http импортыннан JsonResponse": Django'тан "JsonResponse" классын импортлагыз.
  10. "JsonResponse кайтару ({" җавап ": җавап})": JSON җавапны барлыкка килгән җавап белән кайтару.

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

Менә Chart.js ярдәмендә RAG торбасын визуализацияләү:

"json { "тип": "горизонтальБар", "мәгълүмат": { "этикеткалар": ["Эзләү", "Буын", "Эшкәртүдән соң"], "мәгълүматлар базасы": [ { "ярлык": "RAG торба", "мәгълүмат": [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)" ], "чик киңлеге": 1 } ] }, "вариантлар": { "титул": { "күрсәтү": дөрес, "текст": "RAG торба" }, "тараза": { "yAxes": [ { "таллар": { "startAtZero": дөрес } } ] } } } "

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

Йомгаклау

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


¿Tienes preguntas?

Hablemos

Contáctame en LinkedIn