Jak používat vložení v LangChain

Jak Pouzivat Vlozeni V Langchain



Vložení jsou indexem příbuznosti textových řetězců a jsou vyjádřena vektorem (seznamem) celých čísel s plovoucí desetinnou čárkou. Vzdálenost mezi dvěma vektory slouží jako míra toho, jak úzce jsou spojeny; čím menší vzdálenost, tím bližší je příbuznost. Třída LangChain Embedding má sloužit jako rozhraní pro vkládání služeb, jako je OpenAI, HuggingFace a další.

Základní třída poskytuje dvě metody, embed_query() a embed_documents(). První z nich pracuje s jedním dokumentem, zatímco druhý může pracovat s mnoha dokumenty.

Tento článek obsahuje praktickou ukázku vkládání v LangChain pomocí vkládání textu OpenAI.







Příklad: Získání textu s jedním vstupem pomocí vkládání textu OpenAI

Pro první ilustraci zadáme jeden textový řetězec a načteme pro něj textové vložení OpenAI. Program začíná instalací potřebných knihoven.



První knihovnou, kterou musíme nainstalovat do našeho projektu, je LangChain. Nepřichází se standardní knihovnou Python, takže ji musíme nainstalovat samostatně. Vzhledem k tomu, že langchain je k dispozici na PyPi, můžeme jej snadno nainstalovat pomocí příkazu pip na terminálu. Spustíme tedy následující příkaz k instalaci knihovny LangChain:



$ pip nainstalovat langchain

Knihovna je nainstalována, jakmile jsou splněny požadavky.





Potřebujeme také, aby byla v našem projektu nainstalována knihovna OpenAI, abychom měli přístup k modelům OpenAI. Tuto knihovnu lze otevřít napsáním příkazu pip:

$ pip install openai

Nyní jsou obě požadované knihovny nainstalovány do souboru našeho projektu. Musíme importovat požadované moduly.



z langchain. vložení . openai import OpenAIEmbeddings

import vy

vy . přibližně [ 'OPENAI_API_KEY' ] = 'sk-VAŠE_API_KEY'

Abychom získali vložení OpenAI, musíme importovat třídu OpenAIEmbeddings z balíčku „langchain.embeddings.openai“. Poté nastavíme klíč API jako proměnnou prostředí. Pro přístup k různým modelům OpenAI potřebujeme tajný klíč API. Tento klíč lze vygenerovat z platformy OpenAI. Jednoduše se zaregistrujte a získejte tajný klíč ze sekce „Zobrazit tajný klíč“ vašeho profilu. Tento klíč lze použít v různých projektech pro konkrétního klienta.

Proměnné prostředí se používají k ukládání klíčů API pro konkrétní prostředí, místo aby je pevně zakódovaly do funkcí. Abychom tedy nastavili klíč API jako proměnnou prostředí, musíme importovat modul „os“. K nastavení klíče API jako proměnné prostředí se používá metoda os.environ(). Obsahuje jméno a hodnotu. Název, který jsme nastavili, je „OPENAI_API_KEY“ a tajný klíč je nastaven na hodnotu „value“.

Modelka = OpenAIEmbeddings ( )

vstupní text = 'To je pro demonstraci.'

výsledek = Modelka. embed_query ( vstupní text )

tisk ( výsledek )

tisk ( jen ( výsledek ) )

Již jsme se spojili s obalem pro vkládání OpenAI. Poté zavoláme konstruktor třídy OpenAIEmbedding. OpenAI poskytuje různé modely vkládání, ale musíte za ně zaplatit. Zde jdeme s výchozím modelem vkládání OpenAI, tj. text-embedding-ada-002, který je zdarma. Pokud jako parametr nezadáte žádný název modelu, použije se výchozí model.

Poté specifikujeme text, jehož vložení máme získat. Text je specifikován jako „Toto je pro demonstraci“. a uložte jej do proměnné input_text. Poté se zavolá metoda embed_query() pro vložení poskytnutého textu s použitým modelem a input_text, který má textový řetězec pro načtení vložení, které je zadáno jako parametr. Načtená vložení jsou přiřazena k výslednému objektu.

A konečně, abychom viděli výsledek, máme metodu print() v Pythonu. Objekt, který ukládá hodnotu, kterou chceme zobrazit, jednoduše musíme předat metodě print(). Tuto funkci tedy vyvoláme dvakrát; nejprve zobrazí seznam plovoucích čísel a poté vytiskne délku těchto hodnot pomocí metody len() s tím.

Seznam plovoucích hodnot je vidět na následujícím snímku s délkou těchto hodnot:

Příklad: Získání vícenásobného vstupního textu/dokumentu pomocí vkládání textu OpenAI

Kromě získání vložení pro jeden vstupní text jej můžeme také načíst pro více vstupních řetězců. Implementujeme to do této ilustrace.

Knihovny jsme již nainstalovali na předchozím obrázku. Další knihovnou, kterou zde musíme nainstalovat, je knihovna tiktoken Pythonu. Napište na terminál příkaz pro instalaci:

$ pip nainstalovat tiktoken

Balíček tiktoken je tokenizer Byte Pair Encoding. Používá se s modely OpenAI a rozděluje text na tokeny. To se používá, protože poskytnuté řetězce jsou někdy trochu dlouhé pro zadaný model OpenAI. Takže rozdělí text a zakóduje je do tokenů. Nyní pojďme pracovat na hlavním projektu.

z langchain. vložení . openai import OpenAIEmbeddings

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

řetězce = ['
Tento je pro demonstrace. ',' Tento tětiva je taky pro demonstrace. ',' Tento je další demo tětiva . ',' Toto je poslední tětiva . ']

výsledek = model.embed_documents(strings)

tisknout (výsledek)

tisk (len (výsledek))

Třída OpenAIEmbeddings je importována z balíčku „langchain.embeddings.openai“. V předchozím příkladu jsme nastavili klíč API jako proměnnou prostředí. Ale v tomto případě jej předáme přímo konstruktorovi. Nemusíme zde tedy importovat modul „os“.

Po vyvolání modelu OpenAI, což je OpenAIEmbeddings, mu předáme tajný klíč API. V dalším řádku jsou uvedeny textové řetězce. Zde ukládáme čtyři textové řetězce do objektových řetězců. Tyto řetězce jsou „Toto je pro ukázku“, „Tento řetězec je také pro demonstraci“, „Toto je další ukázkový řetězec“ a „Tento řetězec je poslední“.

Můžete zadat více řetězců tak, že je jednoduše oddělíte čárkou. V předchozím případě je volána metoda embed_text(), ale zde ji nemůžeme použít, protože funguje pouze pro jeden textový řetězec. Pro vložení více řetězců máme k dispozici metodu embed_document(). Zavoláme jej tedy se zadaným modelem OpenAI a textovými řetězci jako argumentem. Výstup je zachován ve výsledném objektu. Nakonec se k zobrazení výstupu použije metoda print() Pythonu s výsledkem objektu jako jejím parametrem. Také chceme vidět délku těchto plovoucích hodnot. V rámci metody print() tedy vyvoláme metodu len().

Získaný výstup je uveden na následujícím obrázku:

Závěr

Tento příspěvek pojednával o konceptu vkládání do LangChain. Naučili jsme se, co je to vkládání a jak funguje. Zde je ukázána praktická implementace vkládání textových řetězců. Provedli jsme dvě ilustrace. První příklad pracoval na načtení vložení jednoho textového řetězce a druhý příklad pochopil, jak získat vložení více vstupních řetězců pomocí modelu vkládání OpenAI.