Python програмууд дахь RAG архитектурын дэвшилтэт LangChain-ийг нэгтгэх | B4N1

Python програмууд дахь RAG архитектурын дэвшилтэт LangChain-ийг нэгтгэх

8 months ago · b4n1 Read time: 4 min

Python программ дахь дэвшилтэт RAG архитектурт зориулсан LangChain-ийг нэгтгэх

Тойм

Сүүлийн жилүүдэд Байгалийн хэл боловсруулах (NLP) салбарт, ялангуяа Retrieval-Augmented Generation (RAG) системийн салбарт мэдэгдэхүйц ахиц дэвшил гарч байна. Эдгээр системүүд нь асуултанд хариулах, текстийг нэгтгэн дүгнэх, харилцан ярианы хиймэл оюун ухаан гэх мэт ажлуудад хандах арга барилд хувьсгал хийсэн. LangChain, Python-ийн хамгийн сүүлийн үеийн номын сан нь RAG архитектурыг бүтээх хүчирхэг хэрэгсэл болж гарч ирсэн. Энэ нийтлэлд бид LangChain-ийн ертөнцийг судалж, түүнийг FastAPI, Flask зэрэг Python-д суурилсан вэб фреймворкуудтай нэгтгэхийн зэрэгцээ өгөгдөл хайлт, боловсруулалтыг сайжруулахын тулд зохион байгуулалтын хэрэгслүүдийг ашиглах болно.

LangChain гэж юу вэ?

LangChain бол RAG системийн хөгжлийг хялбарчлахад зориулагдсан нээлттэй эхийн Python номын сан юм. Энэ нь хиймэл оюун ухааны загваруудыг бий болгох, сургах, ашиглах, мөн тэдгээрийг янз бүрийн мэдээллийн эх сурвалж, вэб фреймворктой нэгтгэх цогц хэрэгсэл, API-г өгдөг. LangChain-ийн гол зорилго нь хөгжүүлэгчдэд нарийн төвөгтэй NLP даалгавруудыг даван туулах чадвартай, өргөтгөх боломжтой, үр ашигтай RAG архитектурыг бий болгох боломжийг олгох явдал юм.

LangChain-ийн гол онцлогууд

  1. Модульчлагдсан архитектур: LangChain-ийн модульчлагдсан загвар нь хөгжүүлэгчдэд янз бүрийн AI загвар, өгөгдлийн эх сурвалж, вэб хүрээг хялбархан нэгтгэх боломжийг олгодог бөгөөд энэ нь нарийн төвөгтэй RAG системийг бий болгоход тохиромжтой сонголт болгодог.
  2. ** Зохион байгуулах хэрэгслүүд**: LangChain нь хөгжүүлэгчдэд том өгөгдлийн багцыг удирдах, боловсруулах, мөн төрөл бүрийн мэдээллийн эх сурвалж, API-уудтай нэгтгэх боломжийг олгодог олон төрлийн зохион байгуулалтын хэрэгслээр хангадаг.
  3. Олон хиймэл оюун ухааны загваруудыг дэмжих: LangChain нь трансформаторт суурилсан загваруудыг багтаасан өргөн хүрээний хиймэл оюун ухааны загваруудыг дэмждэг бөгөөд хөгжүүлэгчид өөрсдийн хэрэглээний онцлогт тохирсон хамгийн сайн загварыг сонгох боломжийг олгодог.
  4. Вэб фреймворкуудтай нэгтгэх: LangChain нь FastAPI, Flask зэрэг алдартай Python-д суурилсан вэб фреймворкуудтай нэгдмэл байдлыг хангаснаар RAG системийг вэб програм болгон ашиглахад хялбар болгодог.

LangChain-ийг FastAPI болон Flask-тай нэгтгэх

LangChain-ийг FastAPI болон Flask-тай нэгтгэхийн тулд бид дараах алхмуудыг хийх хэрэгтэй.

Алхам 1: LangChain суулгана уу

Эхлээд бид Pip ашиглан LangChain-г суулгах хэрэгтэй:

pip install langchain

Алхам 2: LangChain агент үүсгэ

Дараа нь бид RAG системийн гол цөм болох LangChain агентийг бий болгох хэрэгтэй. Үндсэн агентийг хэрхэн бий болгох жишээ энд байна:

langchain импортын агентаас


төлөөлөгч = Агент(
    нэр = "миний_агент",
    загвар_нэр = "миний_загвар",
    загвар_төрөл = "трансформатор",
    хамгийн_урт=1024,
    мин_урт=128,
)

Алхам 3: FastAPI эсвэл Flask-тай нэгтгэх

Бид LangChain агентаа үүсгэсний дараа үүнийг FastAPI эсвэл Flask-тай нэгтгэх боломжтой. Үүнийг FastAPI-тэй хэрхэн нэгтгэх жишээ энд байна:

fastapi-аас импортлох FastAPI
langchain импортын агентаас

програм = FastAPI()

# Үндсэн агент үүсгэ
төлөөлөгч = Агент(
    нэр = "миний_агент",
    загвар_нэр = "миний_загвар",
    загвар_төрөл = "трансформатор",
    хамгийн_урт=1024,
    мин_урт=128,
)

@app.get("/үүсгэх")
async def create_text(prompt: str):
    # Текст үүсгэхийн тулд агентийг ашиглана уу
    гаралт = agent.generate(prompt)
    буцах {"гаралт": гаралт}

Үүний нэгэн адил бид LangChain-ийг Flask-тай нэгтгэж болно:

колбоноос импорт хийх Колбо, хүсэлт
langchain импортын агентаас

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

# Үндсэн агент үүсгэ
төлөөлөгч = Агент(
    нэр = "миний_агент",
    загвар_нэр = "миний_загвар",
    загвар_төрөл = "трансформатор",
    хамгийн_урт=1024,
    мин_урт=128,
)

@app.route("/үүсгэх", аргууд=["GET"])
defgener_text():
    # Текст үүсгэхийн тулд агентийг ашиглана уу
    prompt = request.args.get("prompt")
    гаралт = agent.generate(prompt)
    буцах {"гаралт": гаралт}

LangChain дахь зохион байгуулалтын хэрэгслүүд

LangChain нь хөгжүүлэгчдэд том өгөгдлийн багцыг удирдах, боловсруулах, мөн янз бүрийн мэдээллийн эх сурвалж, API-уудтай нэгтгэх боломжийг олгодог олон төрлийн зохион байгуулалтын хэрэгслээр хангадаг. LangChain дахь зохион байгуулалтын гол хэрэгслүүдийн зарим нь:

  1. Өгөгдлийн эх сурвалж: LangChain нь өгөгдлийн сан, файлын систем, вэб API зэрэг төрөл бүрийн өгөгдлийн эх сурвалж, API-тай нэгтгэх боломжийг хөгжүүлэгчдэд олгодог олон төрлийн мэдээллийн эх үүсвэрээр хангадаг.
  2. Өгөгдөл боловсруулагчид: LangChain нь хөгжүүлэгчдэд өгөгдөл цэвэрлэх, өгөгдөл хувиргах, өгөгдөл нэгтгэх зэрэг том өгөгдлийн багцыг боловсруулах боломжийг олгодог олон төрлийн өгөгдөл боловсруулагчаар хангадаг.
  3. Загвар найрал хөгжимчид: LangChain нь загвар зохион бүтээгчдийг загварчлах, загвар байршуулах, загвар хянах зэрэг хиймэл оюун ухааны загваруудыг удирдах, ашиглах боломжийг олгодог олон төрлийн загвар зохион бүтээгчээр хангадаг.

Chart.js ашиглан дүрслэх

Манай RAG системийн гүйцэтгэлийг дүрслэн харуулахын тулд бид интерактив диаграм үүсгэх түгээмэл JavaScript номын сан болох Chart.js-г ашиглаж болно. Манай RAG системийн гүйцэтгэлийг дүрслэн харуулахын тулд Chart.js-г хэрхэн ашиглах жишээ энд байна:

const ctx = document.getElementById("myChart").getContext("2d");
const диаграм = шинэ график(ctx, {
  төрөл: "шугам",
  өгөгдөл: {
    шошго: ["1-р сар", "2-р сар", "3-р сар", "4-р сар", "5-р сар"],
    өгөгдлийн багц: [
      {
        шошго: "Нягт байдал",
        өгөгдөл: [0.8, 0.9, 0.85, 0.88, 0.92],
        backgroundColor: "rgba(255, 99, 132, 0.2)",
        хилийн өнгө: "rgba(255, 99, 132, 1)",
        хилийн өргөн: 1,
      },
    ],
  },
  сонголтууд: {
    жин: {
      y: {
        startAtZero: үнэн,
      },
    },
  },
});

Хамгийн их ашиглагддаг 5-10 тушаал/хэсэг

LangChain-д хамгийн их ашиглагддаг 5-10 тушаал/хэсэг энд байна:

  1. from langchain import Agent: Agent классыг 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