Kaip naudoti įterpimus „LangChain“.

Kaip Naudoti Iterpimus Langchain



Įterpimai yra teksto eilučių ryšio rodyklė ir išreiškiami slankiojo kablelio sveikųjų skaičių vektoriumi (sąrašu). Atstumas tarp dviejų vektorių naudojamas kaip matas, kaip glaudžiai jie yra susiję; kuo mažesnis atstumas, tuo artimesnis ryšys. „LangChain Embedding“ klasė skirta tarnauti kaip sąsaja įterpiant paslaugas, pvz., „OpenAI“, „HuggingFace“ ir kitas.

Bazinėje klasėje pateikiami du metodai, embed_query() ir embed_documents(). Pirmasis iš jų veikia su vienu dokumentu, o kitas gali veikti su daugybe dokumentų.

Šiame straipsnyje pateikiama praktinė įterpimo į LangChain demonstracija naudojant OpenAI teksto įterpimus.







Pavyzdys: vienos įvesties teksto gavimas naudojant OpenAI teksto įterpimą

Pirmajai iliustracijai įvedame vieną teksto eilutę ir gauname jos OpenAI teksto įterpimą. Programa pradedama diegiant reikalingas bibliotekas.



Pirmoji biblioteka, kurią turime įdiegti į savo projektą, yra „LangChain“. Jame nėra standartinės Python bibliotekos, todėl turime ją įdiegti atskirai. Kadangi „langchain“ yra „PyPi“, galime lengvai jį įdiegti naudodami terminalo komandą pip. Taigi, norėdami įdiegti „LangChain“ biblioteką, vykdome šią komandą:



$ pip įdiegti langchain

Biblioteka įrengiama iš karto, kai įvykdomi reikalavimai.





Mums taip pat reikia, kad mūsų projekte būtų įdiegta OpenAI biblioteka, kad galėtume pasiekti OpenAI modelius. Šią biblioteką galima atidaryti parašant pip komandą:

$ pip įdiegti openai

Dabar abi reikalingos bibliotekos yra įdiegtos į mūsų projekto failą. Turime importuoti reikiamus modulius.



langchain. įterpimai . openai importuoti OpenAIEmbeddings

importuoti tu

tu . maždaug [ „OPENAI_API_KEY“ ] = „sk-YOUR_API_KEY“

Norėdami gauti OpenAI įterpimus, turime importuoti OpenAIEmbeddings klasę iš paketo „langchain.embeddings.openai“. Tada API raktą nustatome kaip aplinkos kintamąjį. Mums reikia slapto API rakto, kad galėtume pasiekti skirtingus OpenAI modelius. Šį raktą galima sugeneruoti iš OpenAI platformos. Tiesiog prisiregistruokite ir gaukite slaptą raktą iš savo profilio skilties „Peržiūrėti slaptąjį raktą“. Šis raktas gali būti naudojamas įvairiuose konkrečiam klientui skirtuose projektuose.

Aplinkos kintamieji naudojami tam tikros aplinkos API raktams saugoti, o ne koduoti juos funkcijose. Taigi, norėdami nustatyti API raktą kaip aplinkos kintamąjį, turime importuoti „os“ modulį. os.environ() metodas naudojamas API raktui nustatyti kaip aplinkos kintamąjį. Jame yra pavadinimas ir reikšmė. Mūsų nustatytas pavadinimas yra „OPENAI_API_KEY“, o slaptasis raktas nustatytas į „vertė“.

modelis = OpenAIEmbeddings ( )

įvesties_tekstas = „Tai demonstracijai“.

rezultatas = modelis. embed_query ( įvesties_tekstas )

spausdinti ( rezultatas )

spausdinti ( tik ( rezultatas ) )

Jau susiejome su „OpenAI“ įterpimo paketu. Po to mes vadiname OpenAIEMbedding klasės konstruktorių. „OpenAI“ siūlo įvairius įterpimo modelius, tačiau už juos reikia mokėti. Čia mes naudojame numatytąjį OpenAI įdėjimo modelį, ty teksto įterpimą-ada-002, kuris yra nemokamas. Kai nepateikiate jokio modelio pavadinimo kaip parametro, naudojamas numatytasis modelis.

Tada nurodome tekstą, kurį turime įterpti. Tekstas nurodytas kaip „Tai skirtas demonstravimui“. ir išsaugokite jį įvesties_teksto kintamajame. Po to iškviečiamas embed_query() metodas, skirtas įterpti pateiktą tekstą su naudojamu modeliu ir įvesties_tekstu, turinčiu teksto eilutę, kad būtų galima gauti įterpimą, kuris pateikiamas kaip parametras. Gauti įterpimai priskiriami rezultato objektui.

Galiausiai, norėdami pamatyti rezultatą, turime Python print () metodą. Mes tiesiog turime perduoti objektą, kuriame saugoma reikšmė, kurią norime parodyti, metodui print (). Taigi šią funkciją iškviečiame du kartus; pirma, kad būtų rodomas slankiųjų skaičių sąrašas, o antra – išspausdintų šių reikšmių ilgį naudojant metodą len().

Slankiųjų reikšmių sąrašą galima pamatyti toliau pateiktoje momentinėje nuotraukoje su šių reikšmių ilgiu:

Pavyzdys: kelių įvesties teksto / dokumento gavimas naudojant OpenAI teksto įterpimą

Be to, kad gauname vieno įvesties teksto įterpimą, taip pat galime jį gauti kelioms įvesties eilutėms. Tai įgyvendiname šioje iliustracijoje.

Jau įdiegėme bibliotekas ankstesnėje iliustracijoje. Kita biblioteka, kurią turime įdiegti čia, yra Python tiktoken biblioteka. Parašykite komandą terminale, kad ją įdiegtumėte:

$ pip įdiegti tiktoken

Tiktoken paketas yra baitų poros kodavimo prieigos raktas. Jis naudojamas su OpenAI modeliais ir skaido tekstą į žetonus. Tai naudojama, nes pateiktos eilutės kartais yra šiek tiek ilgos nurodytam OpenAI modeliui. Taigi, jis suskaido tekstą ir užkoduoja juos į žetonus. Dabar dirbkime prie pagrindinio projekto.

langchain. įterpimai . openai importuoti OpenAIEmbeddings

modelis = OpenAIEmbeddings ( openai_api_key = „sk-YOUR_API_KEY“

eilutės = ['
Tai yra dėl demonstracija. ', ' Tai styga yra taip pat dėl demonstracija. ', ' Tai yra dar viena demonstracija styga . ', ' Šitas yra paskutinis styga . ']

rezultatas = model.embed_documents(strings)

spausdinti (rezultatas)

spausdinti(len(rezultatas))

OpenAIEMbeddings klasė importuojama iš paketo „langchain.embeddings.openai“. Ankstesniame pavyzdyje API raktą nustatėme kaip aplinkos kintamąjį. Bet šį perduodame tiesiai konstruktoriui. Taigi, čia nereikia importuoti „os“ modulio.

Iškvietę OpenAI modelį, kuris yra OpenAIEMbeddings, perduodame jam slaptą API raktą. Kitoje eilutėje nurodomos teksto eilutės. Čia mes saugome keturias teksto eilutes objektų eilutėse. Šios eilutės yra „Tai skirta demonstravimui“, „Ši eilutė taip pat skirta demonstravimui“, „Tai dar viena demonstracinė eilutė“ ir „Ši eilutė yra paskutinė“.

Galite nurodyti kelias eilutes, tiesiog atskirdami jas kableliais. Ankstesniu atveju metodas embed_text() buvo iškviestas, bet čia negalime jo naudoti, nes jis veikia tik su viena teksto eilute. Norėdami įterpti kelias eilutes, turime metodą embed_document(). Taigi, mes tai vadiname nurodytu OpenAI modeliu ir teksto eilutėmis kaip argumentu. Išvestis saugoma rezultato objekte. Galiausiai, norint parodyti išvestį, naudojamas Python print() metodas, kurio parametras yra objekto rezultatas. Be to, norime pamatyti šių slankiųjų verčių ilgį. Taigi mes iškviečiame metodą len () per print () metodą.

Gauta išvestis pateikta šiame paveikslėlyje:

Išvada

Šiame įraše buvo aptarta įterpimo į „LangChain“ koncepcija. Sužinojome, kas yra įterpimas ir kaip jis veikia. Čia parodytas praktinis teksto eilučių įdėjimo įgyvendinimas. Padarėme dvi iliustracijas. Pirmajame pavyzdyje buvo nagrinėjamas vienos teksto eilutės įterpimas, o antrasis pavyzdys – kaip gauti kelių įvesties eilučių įterpimą naudojant OpenAI įterpimo modelį.