Kako uporabljati vdelave v LangChain

Kako Uporabljati Vdelave V Langchain



Vdelave so indeks sorodnosti besedilnih nizov in so izražene z vektorjem (seznamom) celih števil s plavajočo vejico. Razdalja med dvema vektorjema služi kot merilo, kako tesno sta povezana; manjša kot je razdalja, tesnejša je sorodnost. Razred LangChain Embedding naj bi služil kot vmesnik za storitve vdelave, kot so OpenAI, HuggingFace in druge.

Osnovni razred nudi dve metodi, embed_query() in embed_documents(). Prvi od teh deluje na enem samem dokumentu, medtem ko drugi lahko deluje na več dokumentih.

Ta članek zajema praktično predstavitev vdelave v LangChain z uporabo besedilnih vdelav OpenAI.







Primer: pridobivanje enega samega vnosa besedila z vdelavo besedila OpenAI

Za prvo ilustracijo vnesemo en besedilni niz in pridobimo vdelano besedilo OpenAI zanj. Program se začne z namestitvijo potrebnih knjižnic.



Prva knjižnica, ki jo moramo namestiti v naš projekt, je LangChain. Ne prihaja s standardno knjižnico Python, zato ga moramo namestiti posebej. Ker je langchain na voljo na PyPi, ga lahko preprosto namestimo z ukazom pip na terminalu. Tako zaženemo naslednji ukaz za namestitev knjižnice LangChain:



$ pip namestite langchain

Knjižnica je nameščena takoj, ko so zahteve izpolnjene.





Potrebujemo tudi namestitev knjižnice OpenAI v naš projekt, da lahko dostopamo do modelov OpenAI. To knjižnico lahko odprete tako, da napišete ukaz pip:

$ pip namestite openai

Zdaj sta obe zahtevani knjižnici nameščeni v našo projektno datoteko. Uvoziti moramo zahtevane module.



od Langchain. vdelave . openai uvoz OpenAIEmbeddings

uvoz ti

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

Za pridobitev vdelav OpenAI moramo uvoziti razred OpenAIEmbeddings iz paketa »langchain.embeddings.openai«. Nato nastavimo ključ API kot spremenljivko okolja. Za dostop do različnih modelov OpenAI potrebujemo skrivni ključ API-ja. Ta ključ je mogoče ustvariti iz platforme OpenAI. Preprosto se prijavite in pridobite skrivni ključ v razdelku »ogled skrivnega ključa« vašega profila. Ta ključ je mogoče uporabiti v različnih projektih za določeno stranko.

Spremenljivke okolja se uporabljajo za shranjevanje ključev API za določeno okolje, namesto da bi jih trdo kodirali v funkcije. Torej, če želimo nastaviti ključ API kot spremenljivko okolja, moramo uvoziti modul »os«. Metoda os.environ() se uporablja za nastavitev ključa API kot spremenljivke okolja. Vsebuje ime in vrednost. Ime, ki smo ga nastavili, je »OPENAI_API_KEY«, skrivni ključ pa je nastavljen na »value«.

model = OpenAIEmbeddings ( )

vnosno_besedilo = 'To je za demonstracijo.'

izid = model. embed_query ( vnosno_besedilo )

tiskanje ( izid )

tiskanje ( samo ( izid ) )

Povezali smo se že z ovojom za vdelavo OpenAI. Nato pokličemo konstruktor razreda OpenAIEmbedding. OpenAI ponuja različne modele vdelave, vendar morate zanje plačati. Tu se odločimo za privzeti model vdelave OpenAI, tj. text-embedding-ada-002, ki je brezplačen. Če kot parameter ne navedete imena modela, se uporabi privzeti model.

Nato določimo besedilo, za katerega želimo pridobiti vdelavo. Besedilo je navedeno kot 'To je za predstavitev.' in ga shranite v spremenljivko input_text. Po tem se pokliče metoda embed_query() za vdelavo podanega besedila z uporabljenim modelom in input_text, ki ima besedilni niz za pridobitev vdelave, ki je na voljo kot parameter. Pridobljene vdelave so dodeljene izidu.

Nazadnje, da prikažemo rezultat na ogled, imamo Pythonovo metodo print(). Preprosto moramo posredovati objekt, ki hrani vrednost, ki jo želimo prikazati, metodi print(). Zato to funkcijo prikličemo dvakrat; najprej za prikaz seznama plavajočih števil in drugič za izpis dolžine teh vrednosti z uporabo metode len().

Seznam plavajočih vrednosti si lahko ogledate na naslednjem posnetku z dolžino teh vrednosti:

Primer: pridobivanje več vnosov besedila/dokumenta z uporabo vdelave besedila OpenAI

Poleg pridobitve vdelave za posamezno vhodno besedilo, ga lahko pridobimo tudi za več vhodnih nizov. To implementiramo v to ilustracijo.

Knjižnice smo že namestili na prejšnji sliki. Druga knjižnica, ki jo moramo namestiti tukaj, je Pythonova knjižnica tiktoken. Napišite ukaz na terminalu, da ga namestite:

$ pip namestite tiktoken

Paket tiktoken je tokenizator kodiranja bajtnih parov. Uporablja se z modeli OpenAI in razčleni besedilo na žetone. To se uporablja, ker so podani nizi včasih nekoliko dolgi za navedeni model OpenAI. Torej razdeli besedilo in jih kodira v žetone. Zdaj pa se lotimo glavnega projekta.

od Langchain. vdelave . openai uvoz OpenAIEmbeddings

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

nizi = ['
to je za demonstracija. ', ' to vrvica je tudi za demonstracija. ', ' to je še en demo vrvica . ', ' Tale je zadnja vrvica . ']

rezultat = model.embed_documents(nizi)

natisni (rezultat)

natisni(len(rezultat))

Razred OpenAIEmbeddings je uvožen iz paketa »langchain.embeddings.openai«. V prejšnjem primeru smo ključ API nastavili kot spremenljivko okolja. Toda za tega ga posredujemo neposredno konstruktorju. Torej nam tukaj ni treba uvoziti modula »os«.

Po priklicu modela OpenAI, ki je OpenAIEmbeddings, mu posredujemo skrivni ključ API. V naslednji vrstici so določeni besedilni nizi. Tukaj shranimo štiri besedilne nize v objektne nize. Ti nizi so »To je za predstavitev«, »Ta niz je tudi za predstavitev«, »To je še en predstavitveni niz« in »Ta niz je zadnji«.

Določite lahko več nizov tako, da vsakega preprosto ločite z vejico. V prejšnjem primeru je bila poklicana metoda embed_text(), vendar je tukaj ne moremo uporabiti, saj deluje samo za en besedilni niz. Za vdelavo več nizov je metoda, ki jo imamo, embed_document(). Torej ga kličemo z navedenim modelom OpenAI in besedilnimi nizi kot argumentom. Izhod se hrani v objektu rezultata. Na koncu se za prikaz izhoda uporabi metoda Python print() z rezultatom predmeta kot parametrom. Prav tako želimo videti dolžino teh plavajočih vrednosti. Tako prikličemo metodo len() znotraj metode print().

Pridobljeni izhod je na naslednji sliki:

Zaključek

Ta objava je obravnavala koncept vdelave v LangChain. Spoznali smo, kaj je vdelava in kako deluje. Tukaj je prikazana praktična izvedba vdelave besedilnih nizov. Izdelali smo dve ilustraciji. Prvi primer je delal na pridobivanju vdelave enega besedilnega niza, drugi primer pa je razumel, kako pridobiti vdelavo več vhodnih nizov z uporabo modela vdelave OpenAI.