Cum să utilizați încorporațiile în LangChain

Cum Sa Utilizati Incorporatiile In Langchain



Înglobările sunt un index de relație cu șirurile de text și sunt exprimate printr-un vector (listă) de numere întregi în virgulă mobilă. Distanța dintre doi vectori servește ca măsură a cât de strâns sunt conectați; cu cât distanța este mai mică, cu atât relația este mai apropiată. Clasa LangChain Embedding este destinată să servească drept interfață pentru încorporarea serviciilor precum OpenAI, HuggingFace și altele.

Două metode, embed_query() și embed_documents(), sunt furnizate de clasa de bază. Primul dintre acestea operează pe un singur document, în timp ce celălalt poate opera pe mai multe documente.

Acest articol cuprinde demonstrația practică a încorporarii în LangChain folosind încorporarea textului OpenAI.







Exemplu: Obținerea unui text de intrare unică folosind încorporarea textului OpenAI

Pentru prima ilustrare, introducem un singur șir de text și recuperăm încorporarea textului OpenAI pentru acesta. Programul începe prin instalarea bibliotecilor necesare.



Prima bibliotecă pe care trebuie să o instalăm în proiectul nostru este LangChain. Nu vine cu biblioteca standard Python, așa că trebuie să o instalăm separat. Deoarece langchain este disponibil pe PyPi, îl putem instala cu ușurință folosind comanda pip de pe terminal. Astfel, rulăm următoarea comandă pentru a instala biblioteca LangChain:



$ pip install langchain

Biblioteca este instalată imediat ce cerințele sunt îndeplinite.





De asemenea, avem nevoie ca biblioteca OpenAI să fie instalată în proiectul nostru, astfel încât să putem accesa modelele OpenAI. Această bibliotecă poate fi inaugurată prin scrierea comenzii pip:

$ pip install openai

Acum, ambele biblioteci necesare sunt instalate în fișierul nostru de proiect. Trebuie să importam modulele necesare.



din langchain. înglobări . openai import OpenAIEmbeddings

import tu

tu . aproximativ [ „OPENAI_API_KEY” ] = „sk-YOUR_API_KEY”

Pentru a obține înglobările OpenAI, trebuie să importam clasa OpenAIEmbeddings din pachetul „langchain.embeddings.openai”. Apoi, setăm cheia API ca variabilă de mediu. Avem nevoie de cheia secretă API pentru a accesa diferitele modele OpenAI. Această cheie poate fi generată de pe platforma OpenAI. Pur și simplu înregistrați-vă și obțineți o cheie secretă din secțiunea „Afișați cheia secretă” a profilului dvs. Această cheie poate fi utilizată în diferite proiecte pentru un anumit client.

Variabilele de mediu sunt folosite pentru a stoca cheile API pentru un anumit mediu, mai degrabă decât pentru a le codifica în funcții. Deci, pentru a seta cheia API ca variabilă de mediu, trebuie să importam modulul „os”. Metoda os.environ() este folosită pentru a seta cheia API ca variabilă de mediu. Conține un nume și o valoare. Numele pe care îl setăm este „OPENAI_API_KEY”, iar cheia secretă este setată la „valoare”.

model = OpenAIEmbeddings ( )

Introdu textul = „Acesta este pentru demonstrație”.

rezultat = model. interogare_încorporare ( Introdu textul )

imprimare ( rezultat )

imprimare ( numai ( rezultat ) )

Am interfațat deja cu ambalajul de încorporare OpenAI. După aceea, numim constructorul clasei OpenAIEmbedding. OpenAI oferă o varietate de modele de încorporare, dar trebuie să plătiți pentru ele. Aici, mergem cu modelul de încorporare implicit al OpenAI, adică text-embedding-ada-002, care este gratuit. Când nu furnizați niciun nume de model ca parametru, este utilizat modelul implicit.

Apoi, precizăm textul căruia trebuie să obținem încorporarea. Textul este specificat ca „Acesta este pentru demonstrație”. și stocați-l în variabila input_text. După aceea, metoda embed_query() pentru a încorpora textul furnizat este apelată cu modelul care este utilizat și input_text care are șirul de text pentru a prelua încorporarea care este furnizată ca parametru. Înglobările recuperate sunt atribuite obiectului rezultat.

În cele din urmă, pentru a afișa rezultatul, avem metoda print() a lui Python. Pur și simplu trebuie să trecem prin metoda print() obiectul care stochează valoarea pe care dorim să o afișăm. Prin urmare, invocăm această funcție de două ori; mai întâi pentru a afișa lista de numere plutitoare și al doilea pentru a tipări lungimea acestor valori folosind metoda len() cu aceasta.

Lista valorilor flotante poate fi văzută în următorul instantaneu cu lungimea acestor valori:

Exemplu: Obținerea textului/documentului cu intrări multiple utilizând încorporarea textului OpenAI

Pe lângă obținerea de încorporare pentru un singur text de intrare, îl putem prelua și pentru mai multe șiruri de intrare. Implementăm acest lucru în această ilustrație.

Am instalat deja bibliotecile din ilustrația anterioară. O altă bibliotecă pe care trebuie să o instalăm aici este biblioteca tiktoken a lui Python. Scrieți comanda pe terminal pentru a o instala:

$ pip install tiktoken

Pachetul tiktoken este un tokenizer de codificare perechi de octeți. Este folosit cu modelele OpenAI și descompune textul în jetoane. Acesta este folosit deoarece șirurile furnizate sunt uneori puțin lungi pentru modelul OpenAI specificat. Deci, împarte textul și le codifică în jetoane. Acum, să lucrăm la proiectul principal.

din langchain. înglobări . openai import OpenAIEmbeddings

model = OpenAIEmbeddings ( openai_api_key = „sk-YOUR_API_KEY”

șiruri = ['
Acest este pentru demonstrație. ', ' Acest şir este de asemenea pentru demonstrație. ', ' Acest este un alt demo şir . ', ' Aceasta este ultimul şir . ']

rezultat = model.embed_documents(strings)

imprimare (rezultat)

print(len (rezultat))

Clasa OpenAIEmbeddings este importată din pachetul „langchain.embeddings.openai”. În exemplul anterior, setăm cheia API ca variabilă de mediu. Dar pentru acesta, îl transmitem direct constructorului. Deci, nu trebuie să importam modulul „os” aici.

După invocarea modelului OpenAI care este OpenAIEmbeddings, îi transmitem cheia secretă API. În rândul următor, sunt specificate șirurile de text. Aici stocăm patru șiruri de text în șirurile obiectului. Aceste șiruri sunt „Acesta este pentru demonstrație”, „Acest șir este și pentru demonstrație”, „Acesta este un alt șir demonstrativ” și „Acesta este ultimul șir”.

Puteți specifica mai multe șiruri de caractere pur și simplu separând fiecare cu o virgulă. În instanța anterioară, metoda embed_text() este apelată, dar nu o putem folosi aici, deoarece funcționează doar pentru un singur șir de text. Pentru a încorpora mai multe șiruri de caractere, metoda pe care o avem este embed_document(). Deci, îl numim cu modelul OpenAI specificat și șiruri de text ca argument. Ieșirea este păstrată în obiectul rezultat. În cele din urmă, pentru a afișa rezultatul, metoda Python print() este utilizată cu rezultatul obiectului ca parametru. De asemenea, vrem să vedem lungimea acestor valori flotante. Astfel, invocăm metoda len() în cadrul metodei print().

Ieșirea preluată este furnizată în următoarea imagine:

Concluzie

Această postare a discutat despre conceptul de încorporare în LangChain. Am învățat ce este încorporarea și cum funcționează. O implementare practică a încorporarii șirurilor de text este prezentată aici. Am realizat două ilustrații. Primul exemplu a lucrat la preluarea încorporarii unui singur șir de text, iar al doilea exemplu a înțeles cum să obțineți încorporarea mai multor șiruri de intrare folosind modelul de încorporare OpenAI.