በፓይዘን አፕሊኬሽኖች ውስጥ ላንግቻይንን ለላቀ RAG አርክቴክቸር በማዋሃድ ላይ | B4N1

በፓይዘን አፕሊኬሽኖች ውስጥ ላንግቻይንን ለላቀ RAG አርክቴክቸር በማዋሃድ ላይ

8 months ago · b4n1 Tiempo de lectura: 4 min

** ላንግቻይንን ለላቁ የ RAG አርክቴክቸር በፓይዘን አፕሊኬሽኖች ውስጥ ማዋሃድ**

** አጠቃላይ እይታ ***

ከቅርብ ዓመታት ወዲህ፣ የተፈጥሮ ቋንቋ ማቀነባበሪያ (NLP) መስክ ጉልህ እድገቶችን በተለይም በዳግም ማግኛ-የተጨመረው ትውልድ (RAG) ሥርዓቶች መስክ መስክሯል። እነዚህ ስርዓቶች እንደ ጥያቄ መልስ፣ የፅሁፍ ማጠቃለያ እና የውይይት AI ያሉ ስራዎችን በምንቀርብበት መንገድ ላይ ለውጥ አድርገዋል። LangChain፣ የፒቲን ቤተ መፃህፍት፣ የ RAG ህንፃዎችን ለመገንባት እንደ ኃይለኛ መሳሪያ ሆኖ ብቅ ብሏል። በዚህ ጽሑፍ ውስጥ፣ ወደ ላንግቻይን ዓለም ውስጥ እንገባለን እና እንደ FastAPI እና Flask ካሉ በ Python ላይ ከተመሰረቱ የድር ማዕቀፎች ጋር ያለውን ውህደት እንቃኛለን፣ የኦርኬስትራ መሳሪያዎችን ለተሻሻለ የውሂብ ማግኛ እና ሂደት እንጠቀማለን።

** LangChain ምንድን ነው?**

LangChain የ RAG ስርዓቶችን እድገት ለማቃለል የተነደፈ ክፍት ምንጭ Python ቤተ-መጽሐፍት ነው። የ AI ሞዴሎችን ለመገንባት፣ ለማሰልጠን እና ለማሰማራት እንዲሁም ከተለያዩ የመረጃ ምንጮች እና የድር ማዕቀፎች ጋር በማዋሃድ አጠቃላይ መሳሪያዎችን እና ኤፒአይዎችን ያቀርባል። የLangChain ተቀዳሚ ትኩረት ገንቢዎች ውስብስብ የ NLP ተግባራትን ማስተናገድ የሚችሉ ተለዋዋጭ እና ቀልጣፋ RAG አርክቴክቸር እንዲፈጥሩ ማስቻል ነው።

** የ LangChain ቁልፍ ባህሪዎች ***

  1. ** ሞዱላር አርክቴክቸር ***: የ LangChain ሞዱል ንድፍ ገንቢዎች የተለያዩ AI ሞዴሎችን, የውሂብ ምንጮችን እና የድር ማዕቀፎችን በቀላሉ እንዲያዋህዱ ያስችላቸዋል, ይህም ውስብስብ የ RAG ስርዓቶችን ለመገንባት ተስማሚ ምርጫ ያደርገዋል.
  2. **የኦርኬስትራ መሳሪያዎች ***: LangChain ገንቢዎች ትላልቅ የውሂብ ስብስቦችን እንዲያስተዳድሩ እና እንዲያካሂዱ እንዲሁም ከተለያዩ የመረጃ ምንጮች እና ኤፒአይዎች ጋር እንዲዋሃዱ የሚያስችሉ የተለያዩ የኦርኬስትራ መሳሪያዎችን ያቀርባል።
  3. ** ለብዙ AI ሞዴሎች ድጋፍ ***: LangChain በትራንስፎርመር ላይ የተመሰረቱ ሞዴሎችን ጨምሮ የተለያዩ የ AI ሞዴሎችን ይደግፋል, ይህም ገንቢዎች ለተለየ የአጠቃቀም መያዣው የተሻለውን ሞዴል እንዲመርጡ ያስችላቸዋል.
  4. ** ከድር ማዕቀፎች ጋር ውህደት ***: LangChain እንደ FastAPI እና Flask ካሉ ታዋቂ Python ላይ ከተመሰረቱ የድር ማዕቀፎች ጋር ያለምንም እንከን የለሽ ውህደት ያቀርባል ፣ ይህም የ RAG ስርዓቶችን እንደ የድር መተግበሪያዎች መዘርጋት ቀላል ያደርገዋል።

** LangChainን ከ FastAPI እና Flask ጋር በማዋሃድ ላይ ***

LangChainን ከFastAPI እና Flask ጋር ለማዋሃድ እነዚህን ደረጃዎች መከተል አለብን፡-

ደረጃ 1፡ LangChainን ይጫኑ

በመጀመሪያ ፣ ፒፕን በመጠቀም LangChainን መጫን አለብን-

`` ባሽ pip ጫን langchain


### ደረጃ 2፡ የ LangChain ወኪል ይፍጠሩ

በመቀጠል የ RAG ስርዓታችን ዋና አካል ሆኖ የሚያገለግል የላንግቻይን ወኪል መፍጠር አለብን። መሰረታዊ ወኪል እንዴት መፍጠር እንደሚቻል ምሳሌ ይኸውና፡-

`` ፓይቶን
ከላንግቻይን አስመጪ ወኪል


ወኪል = ወኪል (
    ስም = "የእኔ_ወኪል",
    ሞዴል_ስም = "የእኔ_ሞዴል",
    model_type = "ትራንስፎርመር",
    ከፍተኛ_ርዝመት=1024፣
    ደቂቃ_ርዝመት=128፣
)

ደረጃ 3፡ ከFastAPI ወይም Flask ጋር ያዋህዱ

አንዴ የ LangChain ወኪላችንን ከፈጠርን ከFastAPI ወይም Flask ጋር ልናዋህደው እንችላለን። ከ FastAPI ጋር እንዴት እንደሚዋሃድ ምሳሌ ይኸውና፡

`` ፓይቶን ከ fastapi ማስመጣት FastAPI ከላንግቻይን አስመጪ ወኪል

መተግበሪያ = FastAPI()

መሰረታዊ ወኪል ፍጠር

ወኪል = ወኪል ( ስም = "የእኔ_ወኪል", ሞዴል_ስም = "የእኔ_ሞዴል", model_type = "ትራንስፎርመር", ከፍተኛ_ርዝመት=1024፣ ደቂቃ_ርዝመት=128፣ )

@app.get("/አመነጭ") async def gene_text(ጥያቄ፡ str): # ጽሑፍ ለመፍጠር ወኪሉን ይጠቀሙ ውፅዓት = ወኪል. ማመንጨት (ፈጣን) ተመለስ {"ውጤት"፡ ውፅዓት}


በተመሳሳይ፣ LangChainን ከፍላስክ ጋር ማዋሃድ እንችላለን፡-

`` ፓይቶን
ከፍላስክ ማስመጣት ፍላሽ፣ ጥያቄ
ከላንግቻይን አስመጪ ወኪል

መተግበሪያ = ፍላሽ (__ስም__)

# መሰረታዊ ወኪል ፍጠር
ወኪል = ወኪል (
    ስም = "የእኔ_ወኪል",
    ሞዴል_ስም = "የእኔ_ሞዴል",
    model_type = "ትራንስፎርመር",
    ከፍተኛ_ርዝመት=1024፣
    ደቂቃ_ርዝመት=128፣
)

@app.route("/አመነጭ"፣ስልቶች=["GET")
def gene_text():
    # ጽሑፍ ለመፍጠር ወኪሉን ይጠቀሙ
    ጥያቄ =ጥያቄ.args.get("ፈጣን")
    ውፅዓት = ወኪል. ማመንጨት (ፈጣን)
    ተመለስ {"ውጤት"፡ ውፅዓት}

የኦርኬስትራ መሳሪያዎች በላንግቻይን

LangChain ገንቢዎች ትላልቅ የውሂብ ስብስቦችን እንዲያስተዳድሩ እና እንዲያስኬዱ እንዲሁም ከተለያዩ የውሂብ ምንጮች እና ኤፒአይዎች ጋር እንዲዋሃዱ የሚያስችሉ የተለያዩ የኦርኬስትራ መሳሪያዎችን ያቀርባል። በLangChain ውስጥ ካሉት አንዳንድ ቁልፍ የኦርኬስትራ መሳሪያዎች የሚከተሉትን ያካትታሉ፡-

  1. ** የውሂብ ምንጮች ***: LangChain ገንቢዎች ከተለያዩ የውሂብ ምንጮች እና ኤፒአይዎች ለምሳሌ የውሂብ ጎታዎች፣ የፋይል ስርዓቶች እና የድር ኤፒአይዎች ጋር እንዲዋሃዱ የሚያስችሏቸውን የተለያዩ የመረጃ ምንጮችን ያቀርባል።
  2. ** ዳታ ፕሮሰሰሮች ***: LangChain ገንቢዎች የውሂብ ማጽጃን, የውሂብ ለውጥን እና የውሂብ ማሰባሰብን ጨምሮ ትላልቅ የውሂብ ስብስቦችን እንዲያካሂዱ የሚያስችሉ የተለያዩ የውሂብ ማቀነባበሪያዎችን ያቀርባል.
  3. ** የሞዴል ኦርኬስትራዎች ***: LangChain ገንቢዎች የኤአይኢ ሞዴሎችን እንዲያስተዳድሩ እና እንዲያሰማሩ የሚያስችላቸውን የሞዴል ስልጠና፣ የሞዴል ማሰማራት እና የሞዴል ክትትልን ጨምሮ የተለያዩ ሞዴል ኦርኬስትራዎችን ያቀርባል።

** እይታ በ Chart.js ***

የRAG ስርዓታችንን አፈጻጸም በዓይነ ሕሊናህ ለማየት፣ በይነተገናኝ ገበታዎችን ለመፍጠር ታዋቂ የሆነውን የጃቫስክሪፕት ቤተ-መጽሐፍትን Chart.js ን መጠቀም እንችላለን። የRAG ስርዓታችንን አፈጻጸም በዓይነ ሕሊናህ ለማየት Chart.jsን እንዴት እንደምንጠቀም የሚያሳይ ምሳሌ ይኸውና፡

``ጃቫስክሪፕት const ctx = document.getElementById("myChart").getContext("2d"); const ገበታ = አዲስ ገበታ (ctx፣ { ዓይነት: "መስመር", ውሂብ፡ { መለያዎች፡ ["ጃን"፣ "የካቲት"፣ "ማር"፣ "ኤፕሪል"፣ "ግንቦት"]፣ የውሂብ ስብስቦች: [ { መለያ: "ትክክለኛነት", ውሂብ፡ [0.8፣ 0.9፣ 0.85፣ 0.88፣ 0.92]፣ ዳራ ቀለም፡ "rgba(255, 99, 132, 0.2)", የድንበር ቀለም፡ "rgba(255, 99, 132, 1)", የድንበር ስፋት: 1, } ]፣ } አማራጮች፡ { ሚዛኖች: { y: { startAtዜሮ፡ እውነት፣ } } } });


**ምርጥ 5-10 በብዛት ጥቅም ላይ የዋሉ ትዕዛዞች/ቅንጣዎች**


በLangChain ውስጥ በጣም ጥቅም ላይ የዋሉት 5-10 ከፍተኛ ትዕዛዞች/ቅንጣዎች እነሆ፡-

1. `ከ langchain አስመጪ ወኪል'፡ የወኪሉን ክፍል ከላንግቻይን አስመጣ።
2. `ወኪል = ወኪል(...)`፡ አዲስ ወኪል አብነት ይፍጠሩ።
3. `agent.generate(...)`፡ ጽሑፍ ለመፍጠር ወኪሉን ተጠቀም።
4. 'agent.query(...)'፡ የእውቀት መሰረት ለመጠየቅ ወኪሉን ተጠቀም።
5. 'agent.train(...)'፡ ወኪሉን በውሂብ ስብስብ ላይ አሰልጥኑት።
6. `agent.deploy(...)`፡ ወኪሉን እንደ ድር አገልግሎት ያሰማራው።
7. `agent.monitor(...)`፡ የወኪሉን አፈጻጸም ተቆጣጠር።
8. `agent.update(...)`፡ ወኪሉን በአዲስ መረጃ ያዘምኑ።
9. `ወኪል.ሰርዝ(...)`፡ የወኪሉን ምሳሌ ሰርዝ።
10. `agent.save(...)`፡ የወኪሉን ምሳሌ በፋይል ውስጥ ያስቀምጡ።

** መደምደሚያ**


በዚህ ጽሑፍ ውስጥ የ LangChainን ዓለም እና እንደ FastAPI እና Flask ካሉ Python ላይ ከተመሰረቱ የድር ማዕቀፎች ጋር ያለውን ውህደት መርምረናል። እንዲሁም በ LangChain ውስጥ የኦርኬስትራ መሳሪያዎችን አጠቃቀም ተወያይተናል እና የ RAG ስርዓታችንን አፈጻጸም ለማየት Chart.js እንዴት እንደምንጠቀም ምሳሌዎችን አቅርበናል። በLangChain፣ ገንቢዎች ውስብስብ የ NLP ተግባራትን ማስተናገድ የሚችሉ ሊሰፋ የሚችል እና ቀልጣፋ RAG አርክቴክቸር መገንባት ይችላሉ።

¿Tienes preguntas?

Hablemos

Contáctame en LinkedIn