Kako koristiti ugradnje u LangChain

Kako Koristiti Ugradnje U Langchain



Ugrađivanja su indeks povezanosti tekstualnog niza i izražavaju se vektorom (popisom) cijelih brojeva s pomičnim zarezom. Udaljenost između dva vektora služi kao mjera koliko su blisko povezani; što je udaljenost manja, to je srodnost bliža. Klasa LangChain Embedding namijenjena je da služi kao sučelje za usluge ugrađivanja kao što su OpenAI, HuggingFace i drugi.

Osnovna klasa pruža dvije metode, embed_query() i embed_documents(). Prvi od njih radi na jednom dokumentu, dok drugi može raditi na više dokumenata.

Ovaj članak obuhvaća praktičnu demonstraciju ugrađivanja u LangChain pomoću ugrađivanja teksta OpenAI.







Primjer: Dobivanje jednog unosa teksta korištenjem OpenAI Text Embedding

Za prvu ilustraciju unosimo jedan tekstualni niz i dohvaćamo ugrađeni OpenAI tekst za njega. Program započinje instaliranjem potrebnih biblioteka.



Prva biblioteka koju trebamo instalirati u naš projekt je LangChain. Ne dolazi sa Python standardnom bibliotekom pa ga moramo zasebno instalirati. Budući da je langchain dostupan na PyPi, možemo ga jednostavno instalirati pomoću naredbe pip na terminalu. Stoga pokrećemo sljedeću naredbu za instaliranje biblioteke LangChain:



$ pip instaliraj langchain

Knjižnica se instalira čim se zadovolje zahtjevi.





Također trebamo instalirati OpenAI knjižnicu u naš projekt kako bismo mogli pristupiti OpenAI modelima. Ova se biblioteka može inaugurirati pisanjem naredbe pip:

$ pip instaliraj openai

Sada su obje potrebne biblioteke instalirane u našu projektnu datoteku. Moramo uvesti potrebne module.



iz langchain. ugradnje . openai uvoz OpenAIEembeddings

uvoz vas

vas . približno [ 'OPENAI_API_KEY' ] = 'sk-VAŠ_API_KEY'

Da bismo dobili OpenAI ugradnje, moramo uvesti klasu OpenAIEmbeddings iz paketa 'langchain.embeddings.openai'. Zatim postavljamo API ključ kao varijablu okruženja. Trebamo tajni API ključ za pristup različitim OpenAI modelima. Ovaj se ključ može generirati s platforme OpenAI. Jednostavno se prijavite i nabavite tajni ključ iz odjeljka 'pogledajte tajni ključ' svog profila. Ovaj se ključ može koristiti u različitim projektima za određenog klijenta.

Varijable okruženja koriste se za pohranjivanje API ključeva za određeno okruženje, umjesto da ih se kodira u funkcije. Dakle, da bismo postavili API ključ kao varijablu okruženja, moramo uvesti modul “os”. Metoda os.environ() koristi se za postavljanje API ključa kao varijable okruženja. Sadrži naziv i vrijednost. Naziv koji postavljamo je 'OPENAI_API_KEY', a tajni ključ je postavljen na 'vrijednost'.

model = OpenAIEembeddings ( )

ulazni_tekst = 'Ovo je za demonstraciju.'

ishod = model. ugraditi_upit ( ulazni_tekst )

ispisati ( ishod )

ispisati ( samo ( ishod ) )

Već smo uspostavili sučelje s omotom za ugradnju OpenAI. Nakon toga pozivamo konstruktor klase OpenAIEmbedding. OpenAI nudi razne modele ugradnje, ali morate ih platiti. Ovdje idemo sa zadanim modelom ugradnje OpenAI-ja, tj. text-embedding-ada-002, koji je besplatan. Ako kao parametar ne navedete naziv modela, koristi se zadani model.

Zatim specificiramo tekst za koji moramo dobiti ugradnju. Tekst je naveden kao 'Ovo je za demonstraciju.' i pohranite ga u varijablu input_text. Nakon toga, poziva se metoda embed_query() za ugradnju navedenog teksta s modelom koji se koristi i input_text koji ima tekstualni niz za dohvaćanje ugradnje koji je naveden kao parametar. Dohvaćena ugrađivanja dodjeljuju se objektu ishoda.

Na kraju, da bismo prikazali rezultat, imamo Pythonovu metodu print(). Jednostavno moramo proslijediti objekt koji pohranjuje vrijednost koju želimo prikazati metodi print(). Dakle, ovu funkciju pozivamo dva puta; prvo za prikaz popisa plutajućih brojeva i drugo za ispis duljine ovih vrijednosti pomoću metode len().

Popis plutajućih vrijednosti može se vidjeti na sljedećoj snimci s duljinom ovih vrijednosti:

Primjer: Dobivanje teksta/dokumenta s višestrukim unosom pomoću OpenAI Text Embedding

Osim dobivanja ugradnje za jedan ulazni tekst, možemo ga dohvatiti i za višestruke ulazne nizove. To implementiramo u ovu ilustraciju.

Već smo instalirali biblioteke na prethodnoj ilustraciji. Još jedna biblioteka koju ovdje moramo instalirati je Pythonova biblioteka tiktoken. Napišite naredbu na terminalu da ga instalirate:

$ pip instalirajte tiktoken

Paket tiktoken je tokenizator kodiranja parova bajtova. Koristi se s OpenAI modelima i rastavlja tekst u tokene. Ovo se koristi jer su navedeni nizovi ponekad malo dugi za navedeni OpenAI model. Dakle, dijeli tekst i kodira ga u tokene. Sada, idemo raditi na glavnom projektu.

iz langchain. ugradnje . openai uvoz OpenAIEembeddings

model = OpenAIEembeddings ( openai_api_key = 'sk-VAŠ_API_KEY'

nizovi = ['
Ovaj je za demonstracija. ', ' Ovaj niz je također za demonstracija. ', ' Ovaj je još jedan demo niz . ', ' Ovaj je posljednji niz . ']

rezultat = model.embed_documents(nizovi)

ispis (rezultat)

ispis(len(rezultat))

Klasa OpenAIEmbeddings uvezena je iz paketa “langchain.embeddings.openai”. U prethodnom smo primjeru postavili API ključ kao varijablu okruženja. Ali za ovaj, prosljeđujemo ga izravno konstruktoru. Dakle, ovdje ne moramo uvoziti modul 'os'.

Nakon pozivanja OpenAI modela koji je OpenAIEmbeddings, prosljeđujemo mu tajni API ključ. U sljedećem retku navedeni su tekstualni nizovi. Ovdje pohranjujemo četiri tekstualna niza u nizove objekata. Ti nizovi su 'Ovo je za demonstraciju', 'Ovaj niz je također za demonstraciju', 'Ovo je još jedan demo niz' i 'Ovaj je posljednji niz.'

Možete navesti više nizova jednostavnim odvajanjem svakog zarezom. U prethodnoj instanci pozvana je metoda embed_text(), ali je ne možemo koristiti ovdje jer radi samo za jedan tekstualni niz. Za ugrađivanje više nizova, metoda koju imamo je embed_document(). Dakle, pozivamo ga s navedenim OpenAI modelom i tekstualnim nizovima kao argumentom. Izlaz se čuva u objektu rezultata. Konačno, za prikaz izlaza koristi se Python print() metoda s rezultatom objekta kao parametrom. Također, želimo vidjeti duljinu ovih plutajućih vrijednosti. Dakle, pozivamo metodu len() unutar metode print().

Dohvaćeni rezultat prikazan je na sljedećoj slici:

Zaključak

Ovaj post raspravljao je o konceptu ugradnje u LangChain. Naučili smo što je ugradnja i kako funkcionira. Ovdje je prikazana praktična implementacija ugrađivanja tekstualnih nizova. Napravili smo dvije ilustracije. Prvi primjer je radio na dohvaćanju ugradnje jednog tekstualnog niza, a drugi primjer je razumio kako dobiti ugradnju više ulaznih nizova pomoću modela ugradnje OpenAI.