Интегратсияи LangChain барои меъмории пешрафтаи RAG дар замимаҳои Python | B4N1

Интегратсияи LangChain барои меъмории пешрафтаи RAG дар замимаҳои Python

8 months ago · b4n1 Read time: 4 min

Интегратсияи LangChain барои меъмории пешрафтаи RAG дар замимаҳои Python

** Шарҳ**

Дар солҳои охир, соҳаи коркарди забони табиӣ (NLP) шоҳиди пешрафтҳои назаррас гардид, алахусус дар соҳаи системаҳои Ҷустуҷӯи Насли (RAG). Ин системаҳо тарзи муносибати мо ба вазифаҳо ба монанди ҷавоб додан ба саволҳо, ҷамъбасти матн ва AI гуфтугӯиро тағир доданд. LangChain, китобхонаи муосири Python, ҳамчун як воситаи пурқувват барои сохтани меъмории RAG пайдо шудааст. Дар ин мақола, мо ба ҷаҳони LangChain шинос мешавем ва ҳамгироии онро бо чаҳорчӯбаҳои веб дар асоси Python ба монанди FastAPI ва Flask меомӯзем ва ҳамзамон бо истифода аз абзорҳои оркестрсозӣ барои ҷустуҷӯ ва коркарди маълумот.

** LangChain чист?**

LangChain як китобхонаи кушодаи Python мебошад, ки барои содда кардани рушди системаҳои RAG пешбинӣ шудааст. Он маҷмӯи ҳамаҷонибаи абзорҳо ва API-ҳоро барои сохтан, омӯзиш ва ҷобаҷогузории моделҳои AI, инчунин ҳамгироии онҳо бо сарчашмаҳои гуногуни додаҳо ва чаҳорчӯбаҳои веб таъмин мекунад. Диққати асосии LangChain ба таҳиягарон имкон медиҳад, ки меъмории миқёспазир ва самараноки RAG эҷод кунанд, ки метавонанд вазифаҳои мураккаби NLP-ро иҷро кунанд.

Хусусиятҳои асосии LangChain

  1. Архитектураи модулӣ: Тарҳрезии модулии LangChain ба таҳиягарон имкон медиҳад, ки моделҳои гуногуни AI, манбаъҳои маълумот ва чаҳорчӯбаи вебро ба осонӣ муттаҳид кунанд, ки онро барои сохтани системаҳои мураккаби RAG интихоби беҳтарин месозад.
  2. Асбобҳои оркестрсозӣ: LangChain як қатор асбобҳои оркестрсозиро пешниҳод мекунад, ки ба таҳиягарон имкон медиҳанд, ки маҷмӯи додаҳои калонро идора ва коркард кунанд, инчунин бо манбаъҳои гуногуни додаҳо ва APIҳо ҳамгиро шаванд.
  3. Дастгирии моделҳои сершумори AI: LangChain доираи васеи моделҳои AI, аз ҷумла моделҳои ба трансформатор асосёфтаро дастгирӣ мекунад ва ба таҳиягарон имкон медиҳад, ки модели беҳтаринро барои мавриди истифодаи мушаххаси худ интихоб кунанд.
  4. Интегратсия бо Web Frameworks: LangChain ҳамгироии бефосиларо бо чаҳорчӯбаҳои веби маъмули Python, ба монанди FastAPI ва Flask таъмин мекунад ва ҷойгиркунии системаҳои RAG-ро ҳамчун барномаҳои веб осон мекунад.

Интегратсияи LangChain бо FastAPI ва Flask

Барои ҳамгироии LangChain бо FastAPI ва Flask, мо бояд ин қадамҳоро иҷро кунем:

Қадами 1: LangChain насб кунед

Аввалан, мо бояд LangChain-ро бо истифода аз pip насб кунем:

'''бош pip насб кардани langchain


### Қадами 2: Агенти LangChain эҷод кунед

Минбаъд, мо бояд агенти LangChain эҷод кунем, ки ҳамчун асосии системаи RAG мо хидмат кунад. Ин аст мисоли чӣ гуна сохтани агенти асосӣ:

`` питон
аз агенти воридоти langchain


агент = Агент (
    ном = "агенти ман",
    модели_ном = "модели_ман",
    модели_намуд = "трансформатор",
    дарозии максимум = 1024,
    дақ_дароз=128,
)

Қадами 3: Интегратсия бо FastAPI ё Flask

Пас аз он ки мо агенти LangChain-и худро эҷод кардем, мо метавонем онро бо FastAPI ё Flask муттаҳид кунем. Ин аст як мисоли чӣ гуна ҳамгиро кардани он бо FastAPI:

`` питон аз fastapi воридоти FastAPI аз агенти воридоти langchain

барнома = FastAPI ()

Агенти асосӣ эҷод кунед

агент = Агент ( ном = "агенти ман", модели_ном = "модели_ман", модели_намуд = "трансформатор", дарозии максимум = 1024, дақ_дароз=128, )

@app.get("/generate") async def generate_text (фаъол: str): # Барои тавлиди матн агентро истифода баред баромад = agent.generate (фаъол) бозгашт {"баромад": баромад}


Ба ҳамин монанд, мо метавонем LangChain-ро бо Flask ҳамҷоя кунем:

`` питон
аз колба воридот Колба, дархост
аз Агенти воридоти langchain

барнома = Колба (__ном__)

# Эҷоди агенти асосӣ
агент = Агент (
    ном = "агенти ман",
    модели_ном = "модели_ман",
    модели_намуд = "трансформатор",
    дарозии максимум = 1024,
    дақ_дароз=128,
)

@app.route("/generate", методҳо = ["GET"])
def generate_text():
    # Барои тавлиди матн агентро истифода баред
    фавр = request.args.get("prompt")
    баромад = agent.generate (фаъол)
    бозгашт {"баромад": баромад}

Асбобҳои оркестрсозӣ дар LangChain

LangChain як қатор асбобҳои оркестриро пешниҳод мекунад, ки ба таҳиягарон имкон медиҳанд, ки маҷмӯи додаҳои калонро идора ва коркард кунанд, инчунин бо манбаъҳои гуногуни маълумот ва API ҳамгиро шаванд. Баъзе аз асбобҳои асосии оркестрсозӣ дар LangChain инҳоянд:

  1. Манбаъҳои маълумот: LangChain як қатор манбаъҳои маълумотро пешкаш мекунад, ки ба таҳиягарон имкон медиҳанд, ки бо манбаъҳои гуногуни додаҳо ва API-ҳо, аз қабили пойгоҳи додаҳо, системаҳои файлӣ ва API-ҳои веб ҳамгиро шаванд.
  2. Процессорҳои додаҳо: LangChain як қатор протсессори маълумотро пешниҳод мекунад, ки ба таҳиягарон имкон медиҳанд, ки маҷмӯи додаҳои калонро коркард кунанд, аз ҷумла тозакунии додаҳо, табдили додаҳо ва ҷамъкунии маълумот.
  3. Оркестрҳои намунавӣ: LangChain як қатор оркестрҳои моделиро пешкаш мекунад, ки ба таҳиягарон имкон медиҳанд, ки моделҳои AI-ро идора ва ҷобаҷо кунанд, аз ҷумла омӯзиши модел, ҷобаҷогузории модел ва мониторинги модел.

** Визуализатсия бо Chart.js**

Барои тасаввур кардани кори системаи RAG мо, мо метавонем Chart.js, китобхонаи маъмули JavaScript барои сохтани диаграммаҳои интерактивиро истифода барем. Ин аст мисоли чӣ гуна истифода бурдани Chart.js барои визуализатсияи кори системаи RAG мо:

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,
      },
    ],
  },
  имконоти: {
    тарозу: {
      y: {
        startAtZero: дуруст,
      },
    },
  },
});

Беҳтарин 5-10 фармонҳо/порчаҳои бештар истифодашаванда

Инҳоянд 5-10 фармонҳои/порчаҳои бештар истифодашаванда дар LangChain:

  1. аз langchain import Agent: Синфи Агентро аз LangChain ворид кунед.
  2. agent = Agent(...): Эҷоди намунаи нави Агент.
  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 ва ҳамгироии онро бо чаҳорчӯбаҳои веб дар асоси Python ба монанди FastAPI ва Flask омӯхтаем. Мо инчунин дар бораи истифодаи абзорҳои оркестрсозӣ дар LangChain муҳокима кардем ва мисолҳоеро пешниҳод кардем, ки чӣ тавр истифода бурдани Chart.js барои визуалии кори системаи RAG-и мо истифода мешавад. Бо LangChain, таҳиягарон метавонанд меъмории миқёспазир ва самараноки RAG созанд, ки метавонанд вазифаҳои мураккаби NLP-ро иҷро кунанд.


Have Questions?

Let's Talk

Contact me on LinkedIn