Ako používať vloženia v LangChain

Ako Pouzivat Vlozenia V Langchain



Vloženia sú indexom príbuznosti textového reťazca a sú vyjadrené vektorom (zoznamom) celých čísel s pohyblivou rádovou čiarkou. Vzdialenosť medzi dvoma vektormi slúži ako miera toho, ako úzko sú prepojené; čím je vzdialenosť menšia, tým je príbuznosť bližšia. Trieda LangChain Embedding má slúžiť ako rozhranie pre služby vkladania, ako sú OpenAI, HuggingFace a ďalšie.

Základná trieda poskytuje dve metódy, embed_query() a embed_documents(). Prvý z nich pracuje s jedným dokumentom, zatiaľ čo druhý môže pracovať s mnohými dokumentmi.

Tento článok obsahuje praktickú ukážku vkladania do LangChain pomocou vkladania textu OpenAI.







Príklad: Získanie textu s jedným vstupom pomocou vkladania textu OpenAI

Pre prvú ilustráciu zadáme jeden textový reťazec a získame preň vloženie textu OpenAI. Program začína inštaláciou potrebných knižníc.



Prvá knižnica, ktorú musíme nainštalovať do nášho projektu, je LangChain. Neprichádza so štandardnou knižnicou Python, takže ju musíme nainštalovať samostatne. Keďže langchain je dostupný na PyPi, môžeme ho jednoducho nainštalovať pomocou príkazu pip na termináli. Spustíme teda nasledujúci príkaz na inštaláciu knižnice LangChain:



$ pip nainštalovať langchain

Knižnica je nainštalovaná hneď, ako sú splnené požiadavky.





Potrebujeme tiež, aby bola v našom projekte nainštalovaná knižnica OpenAI, aby sme mali prístup k modelom OpenAI. Táto knižnica môže byť inaugurovaná napísaním príkazu pip:

$ pip install openai

Teraz sú obe požadované knižnice nainštalované do nášho projektového súboru. Musíme importovať požadované moduly.



od langchain. vsadenia . openai importovať OpenAIEmbeddings

importovať vy

vy . približne [ 'OPENAI_API_KEY' ] = 'sk-VAŠE_API_KEY'

Aby sme získali vloženie OpenAI, musíme importovať triedu OpenAIEmbeddings z balíka „langchain.embeddings.openai“. Potom nastavíme kľúč API ako premennú prostredia. Na prístup k rôznym modelom OpenAI potrebujeme tajný kľúč API. Tento kľúč je možné vygenerovať z platformy OpenAI. Jednoducho sa zaregistrujte a získajte tajný kľúč zo sekcie „zobraziť tajný kľúč“ vášho profilu. Tento kľúč je možné použiť v rôznych projektoch pre konkrétneho klienta.

Premenné prostredia sa používajú na ukladanie kľúčov API pre konkrétne prostredie, nie na ich pevné kódovanie do funkcií. Aby sme teda nastavili kľúč API ako premennú prostredia, musíme importovať modul „os“. Metóda os.environ() sa používa na nastavenie kľúča API ako premennej prostredia. Obsahuje názov a hodnotu. Názov, ktorý sme nastavili, je „OPENAI_API_KEY“ a tajný kľúč je nastavený na hodnotu „value“.

Model = OpenAIEmbeddings ( )

vstupný_text = 'Toto je na demonštráciu.'

výsledok = Model. embed_query ( vstupný_text )

vytlačiť ( výsledok )

vytlačiť ( len ( výsledok ) )

Už sme sa spojili s obalom na vkladanie OpenAI. Potom zavoláme konštruktor triedy OpenAIEmbedding. OpenAI poskytuje rôzne modely vkladania, ale musíte za ne zaplatiť. Tu ideme s predvoleným modelom vkladania OpenAI, t. j. text-embedding-ada-002, ktorý je bezplatný. Ak ako parameter nezadáte žiadny názov modelu, použije sa predvolený model.

Potom špecifikujeme text, ktorého vloženie máme získať. Text je špecifikovaný ako „Toto je pre demonštráciu“. a uložte ho do premennej input_text. Potom sa zavolá metóda embed_query() na vloženie poskytnutého textu s použitým modelom a input_text, ktorý má textový reťazec na získanie vloženia, ktoré je poskytnuté ako parameter. Získané vloženia sú priradené k výslednému objektu.

Nakoniec, aby sme videli výsledok, máme metódu print() Pythonu. Jednoducho musíme odovzdať objekt, v ktorom je uložená hodnota, ktorú chceme zobraziť, metóde print(). Preto túto funkciu vyvoláme dvakrát; najprv sa zobrazí zoznam pohyblivých čísel a potom sa vytlačí dĺžka týchto hodnôt pomocou metódy len().

Zoznam plávajúcich hodnôt je možné vidieť na nasledujúcej snímke s dĺžkou týchto hodnôt:

Príklad: Získanie textu/dokumentu s viacerými vstupmi pomocou vkladania textu OpenAI

Okrem získania vloženia pre jeden vstupný text ho môžeme získať aj pre viacero vstupných reťazcov. Implementujeme to do tejto ilustrácie.

Knižnice sme už nainštalovali na predchádzajúcej ilustrácii. Ďalšou knižnicou, ktorú tu musíme nainštalovať, je knižnica tiktokenov Pythonu. Napíšte príkaz na terminál, aby ste ho nainštalovali:

$ pip nainštalovať tiktoken

Balíček tiktoken je tokenizér kódovania bajtov. Používa sa s modelmi OpenAI a rozdeľuje text na tokeny. Toto sa používa, pretože poskytnuté reťazce sú niekedy trochu dlhé pre špecifikovaný model OpenAI. Takže rozdelí text a zakóduje ho do tokenov. Teraz poďme pracovať na hlavnom projekte.

od langchain. vsadenia . openai importovať OpenAIEmbeddings

Model = OpenAIEmbeddings ( openai_api_key = 'sk-VAŠE_API_KEY'

reťazce = ['
Toto je pre demonštrácie. ',' Toto reťazec je tiež pre demonštrácie. ',' Toto je ďalšie demo reťazec . ',' Toto je posledný reťazec . ']

výsledok = model.embed_documents(strings)

vytlačiť (výsledok)

tlač (len(výsledok))

Trieda OpenAIEmbeddings je importovaná z balíka “langchain.embeddings.openai”. V predchádzajúcom príklade sme nastavili kľúč API ako premennú prostredia. Ale v tomto prípade to postúpime priamo konštruktérovi. Takže tu nemusíme importovať modul „os“.

Po vyvolaní modelu OpenAI, ktorým je OpenAIEmbeddings, mu odovzdáme tajný kľúč API. V ďalšom riadku sú špecifikované textové reťazce. Tu ukladáme štyri textové reťazce do reťazcov objektov. Tieto reťazce sú „Toto je na demonštráciu“, „Tento reťazec je tiež na demonštráciu“, „Toto je ďalší reťazec ukážky“ a „Tento reťazec je posledný“.

Môžete zadať viacero reťazcov jednoduchým oddelením každého z nich čiarkou. V predchádzajúcom prípade sa volá metóda embed_text(), ale tu ju nemôžeme použiť, pretože funguje len pre jeden textový reťazec. Na vloženie viacerých reťazcov používame metódu embed_document(). Voláme ho teda so špecifikovaným modelom OpenAI a textovými reťazcami ako argumentom. Výstup sa uchováva vo výslednom objekte. Nakoniec sa na zobrazenie výstupu použije metóda print() Python s výsledkom objektu ako jej parametrom. Tiež chceme vidieť dĺžku týchto pohyblivých hodnôt. V rámci metódy print() teda vyvoláme metódu len().

Získaný výstup je uvedený na nasledujúcom obrázku:

Záver

Tento príspevok diskutoval o koncepte vloženia do LangChain. Naučili sme sa, čo je to vkladanie a ako to funguje. Tu je znázornená praktická implementácia vkladania textových reťazcov. Urobili sme dve ilustrácie. Prvý príklad pracoval na získaní vloženia jedného textového reťazca a druhý príklad pochopil, ako získať vloženie viacerých vstupných reťazcov pomocou modelu vkladania OpenAI.