LangChain-ის ინტეგრირება გაფართოებული RAG არქიტექტურისთვის Python აპლიკაციებში | B4N1

LangChain-ის ინტეგრირება გაფართოებული RAG არქიტექტურისთვის Python აპლიკაციებში

8 months ago · b4n1 Read time: 3 min

** LangChain-ის ინტეგრირება გაფართოებული RAG არქიტექტურისთვის პითონის აპლიკაციებში**

მიმოხილვა

ბოლო წლებში ბუნებრივი ენის დამუშავების სფერო (NLP) მნიშვნელოვანი წინსვლის მოწმე გახდა, განსაკუთრებით მოძიება-გაძლიერებული თაობის (RAG) სისტემების სფეროში. ამ სისტემებმა მოახდინეს რევოლუცია იმ დავალებებისადმი, როგორიცაა კითხვებზე პასუხის გაცემა, ტექსტის შეჯამება და სასაუბრო AI. LangChain, პითონის უახლესი ბიბლიოთეკა, გაჩნდა, როგორც ძლიერი ინსტრუმენტი RAG არქიტექტურის შესაქმნელად. ამ სტატიაში, ჩვენ ჩავუღრმავდებით LangChain-ის სამყაროს და შევისწავლით მის ინტეგრაციას Python-ზე დაფუძნებულ ვებ ჩარჩოებთან, როგორიცაა FastAPI და Flask, ამასთან, გამოვიყენებთ ორკესტრირების ხელსაწყოებს მონაცემთა გაუმჯობესებული მოძიებისა და დამუშავებისთვის.

რა არის LangChain?

LangChain არის ღია კოდის Python ბიბლიოთეკა, რომელიც შექმნილია RAG სისტემების განვითარების გასამარტივებლად. ის უზრუნველყოფს ინსტრუმენტებისა და API-ების ყოვლისმომცველ კომპლექტს ხელოვნური ინტელექტის მოდელების შესაქმნელად, სწავლებისა და განსათავსებლად, ასევე მათი ინტეგრირებისთვის მონაცემთა სხვადასხვა წყაროებთან და ვებ ჩარჩოებთან. 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 install langchain


### ნაბიჯი 2: შექმენით LangChain აგენტი

შემდეგი, ჩვენ უნდა შევქმნათ LangChain აგენტი, რომელიც იქნება ჩვენი RAG სისტემის ბირთვი. აქ არის მაგალითი იმისა, თუ როგორ უნდა შექმნათ ძირითადი აგენტი:

``პითონი
langchain-ის იმპორტის აგენტისგან


აგენტი = აგენტი(
    სახელი = "ჩემი_აგენტი",
    model_name = "ჩემი_მოდელი",
    model_type="ტრანსფორმატორი",
    max_length=1024,
    მინ_სიგრძე=128,
)

ნაბიჯი 3: ინტეგრირება FastAPI-სთან ან Flask-თან

მას შემდეგ რაც შევქმნით ჩვენს LangChain აგენტს, შეგვიძლია მისი ინტეგრირება FastAPI-სთან ან Flask-თან. აქ არის მაგალითი იმისა, თუ როგორ უნდა მოხდეს მისი ინტეგრირება FastAPI-სთან:

``პითონი fastapi იმპორტიდან FastAPI langchain-ის იმპორტის აგენტისგან

აპლიკაცია = FastAPI()

შექმენით ძირითადი აგენტი

აგენტი = აგენტი( სახელი = "ჩემი_აგენტი", model_name = "ჩემი_მოდელი", model_type="ტრანსფორმატორი", max_length=1024, მინ_სიგრძე=128, )

@app.get ("/გენერაცია") async def generate_text(prompt: str): # გამოიყენეთ აგენტი ტექსტის შესაქმნელად output = agent.generate(prompt) დაბრუნება {"output": output}


ანალოგიურად, ჩვენ შეგვიძლია გავაერთიანოთ LangChain Flask-თან:

``პითონი
კოლბის იმპორტიდან კოლბა, მოთხოვნა
langchain-ის იმპორტის აგენტისგან

აპლიკაცია = კოლბა (__name__)

# შექმენით ძირითადი აგენტი
აგენტი = აგენტი(
    სახელი = "ჩემი_აგენტი",
    model_name = "ჩემი_მოდელი",
    model_type="ტრანსფორმატორი",
    max_length=1024,
    მინ_სიგრძე=128,
)

@app.route ("/generate", მეთოდები = ["GET"])
def generate_text():
    # გამოიყენეთ აგენტი ტექსტის შესაქმნელად
    prompt = request.args.get ("მოთხოვნა")
    output = agent.generate(prompt)
    დაბრუნება {"output": output}

ორკესტრირების ხელსაწყოები LangChain-ში

LangChain გთავაზობთ ორკესტრირების უამრავ ინსტრუმენტს, რომელიც დეველოპერებს საშუალებას აძლევს მართონ და დაამუშავონ მონაცემთა დიდი ნაკრები, ასევე ინტეგრირდნენ მონაცემთა სხვადასხვა წყაროებთან და API-ებთან. LangChain-ში ორკესტრირების ზოგიერთი ძირითადი ინსტრუმენტი მოიცავს:

  1. მონაცემთა წყაროები: LangChain უზრუნველყოფს მონაცემთა უამრავ წყაროს, რომელიც საშუალებას აძლევს დეველოპერებს ინტეგრირდეს სხვადასხვა მონაცემთა წყაროებთან და API-ებთან, როგორიცაა მონაცემთა ბაზები, ფაილური სისტემები და ვებ API-ები.
  2. მონაცემთა პროცესორები: LangChain უზრუნველყოფს მონაცემთა დამუშავების მთელ რიგს, რომლებიც დეველოპერებს საშუალებას აძლევს დაამუშავონ დიდი მონაცემთა ნაკრები, მათ შორის მონაცემთა გაწმენდა, მონაცემთა ტრანსფორმაცია და მონაცემთა აგრეგაცია.
  3. მოდელი ორკესტრატორები: LangChain გთავაზობთ სამოდელო ორკესტრატორების სპექტრს, რომლებიც დეველოპერებს საშუალებას აძლევს მართონ და განათავსონ AI მოდელები, მათ შორის მოდელის ტრენინგი, მოდელის დანერგვა და მოდელის მონიტორინგი.

ვიზუალიზაცია Chart.js-ით

ჩვენი RAG სისტემის მუშაობის ვიზუალიზაციისთვის, შეგვიძლია გამოვიყენოთ Chart.js, პოპულარული JavaScript ბიბლიოთეკა ინტერაქტიული სქემების შესაქმნელად. აქ არის მაგალითი იმისა, თუ როგორ გამოვიყენოთ Chart.js ჩვენი RAG სისტემის მუშაობის ვიზუალიზაციისთვის:

`` Javascript 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)", borderColor: "rgba(255, 99, 132, 1)", საზღვრის სიგანე: 1, }, ], }, პარამეტრები: { სასწორები: { y: { startAtZero: მართალია, }, }, }, });


** ტოპ 5-10 ყველაზე ხშირად გამოყენებული ბრძანება/ნაწყვეტი**


აქ არის ტოპ 5-10 ყველაზე ხშირად გამოყენებული ბრძანება/სნიპეტი LangChain-ში:

1. `langchain import Agent-დან`: Agent კლასის იმპორტი LangChain-დან.
2. `აგენტი = აგენტი(...)`: შექმენით ახალი აგენტის ინსტანცია.
3. `agent.generate(...)`: გამოიყენეთ აგენტი ტექსტის გენერირებისთვის.
4. `agent.query(...)`: გამოიყენეთ აგენტი ცოდნის ბაზის დასადგენად.
5. `agent.train(...)`: მოამზადეთ აგენტი მონაცემთა ბაზაზე.
6. `agent.deploy(...)`: განათავსეთ აგენტი, როგორც ვებ სერვისი.
7. `აგენტი.მონიტორი(...)`: თვალყური ადევნეთ აგენტის მუშაობას.
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