Како користити уградње у ЛангЦхаин

Kako Koristiti Ugradne U Langchain



Уграђивање је индекс повезаности текстуалних низова и изражава се вектором (листом) целих бројева са покретним зарезом. Удаљеност између два вектора служи као мера колико су блиско повезани; што је удаљеност мања, то је сродност ближа. Класа ЛангЦхаин Ембеддинг је намењена да служи као интерфејс за услуге уграђивања као што су ОпенАИ, ХуггингФаце и други.

Основна класа обезбеђује две методе, ембед_куери() и ембед_доцументс(). Први од њих ради на једном документу, док други може да ради на више докумената.

Овај чланак обухвата практичну демонстрацију уграђивања у ЛангЦхаин помоћу уградње текста ОпенАИ.







Пример: Добијање једног текста за унос помоћу ОпенАИ уграђивања текста

За прву илустрацију, уносимо један текстуални низ и преузимамо ОпенАИ уграђивање текста за њега. Програм почиње инсталирањем потребних библиотека.



Прва библиотека коју треба да инсталирамо у наш пројекат је ЛангЦхаин. Не долази са Питхон стандардном библиотеком тако да морамо да је инсталирамо засебно. Пошто је лангцхаин доступан на ПиПи-у, можемо га лако инсталирати помоћу команде пип на терминалу. Стога покрећемо следећу команду да инсталирамо ЛангЦхаин библиотеку:



$ пип инсталл лангцхаин

Библиотека се инсталира чим се задовоље захтеви.





Такође нам је потребна ОпенАИ библиотека која ће бити инсталирана у наш пројекат како бисмо могли да приступимо ОпенАИ моделима. Ова библиотека се може инаугурисати писањем команде пип:

$ пип инсталл опенаи

Сада су обе потребне библиотеке инсталиране у наш пројектни фајл. Морамо да увеземо потребне модуле.



из лангцхаин. уградње . опенаи увоз ОпенАИЕмбеддингс

увоз ти

ти . Приближно [ „ОПЕНАИ_АПИ_КЕИ“ ] = 'ск-ИОУР_АПИ_КЕИ'

Да бисмо добили ОпенАИ уградње, морамо да увеземо ОпенАИЕмбеддингс класу из пакета „лангцхаин.ембеддингс.опенаи“. Затим постављамо АПИ кључ као променљиву окружења. Потребан нам је тајни АПИ кључ за приступ различитим ОпенАИ моделима. Овај кључ се може генерисати са ОпенАИ платформе. Једноставно се пријавите и набавите тајни кључ из одељка „погледајте тајни кључ“ на свом профилу. Овај кључ се може користити у различитим пројектима за одређеног клијента.

Променљиве окружења се користе за складиштење АПИ кључева за одређено окружење уместо да их чврсто кодирају у функције. Дакле, да бисмо поставили АПИ кључ као променљиву окружења, морамо да увеземо модул „ос“. Метода ос.енвирон() се користи за постављање АПИ кључа као променљиве окружења. Садржи име и вредност. Име које смо поставили је „ОПЕНАИ_АПИ_КЕИ“, а тајни кључ је подешен на „вредност“.

модел = ОпенАИЕмбеддингс ( )

унос текста = 'Ово је за демонстрацију.'

исход = модел. ембед_куери ( унос текста )

принт ( исход )

принт ( само ( исход ) )

Већ смо имали интерфејс са омотом за уградњу ОпенАИ. Након тога, позивамо конструктор класе ОпенАИЕмбеддинг. ОпенАИ нуди различите моделе уграђивања, али за њих морате платити. Овде идемо са подразумеваним моделом за уграђивање ОпенАИ-а, тј. тект-ембеддинг-ада-002, који је бесплатан. Када не наведете име модела као параметар, користи се подразумевани модел.

Затим специфицирамо текст за који морамо да добијемо уградњу. Текст је наведен као „Ово је за демонстрацију“. и сачувајте га у променљивој инпут_тект. Након тога, позива се метода ембед_куери() за уграђивање обезбеђеног текста са моделом који се користи и инпут_тект који има текстуални низ за преузимање уградње која је дата као параметар. Преузета уградња се додељује објекту исхода.

На крају, да бисмо приказали резултат, имамо Питхонов принт() метод. Једноставно морамо да проследимо објекат који чува вредност коју желимо да прикажемо методи принт(). Дакле, ову функцију позивамо двапут; прво да прикаже листу плутајућих бројева и друго да одштампа дужину ових вредности користећи метод лен() са њим.

Списак плутајућих вредности се може видети на следећем снимку са дужином ових вредности:

Пример: Добијање вишеструког уноса текста/документа коришћењем ОпенАИ Тект Ембеддинг-а

Осим добијања уграђивања за један улазни текст, можемо га преузети и за више низова уноса. Ово имплементирамо у ову илустрацију.

Већ смо инсталирали библиотеке на претходној илустрацији. Још једна библиотека коју морамо да инсталирамо овде је Питхон-ова библиотека тиктокена. Напишите команду на терминалу да бисте је инсталирали:

$ пип инсталл тиктокен

Тиктокен пакет је токенизер за кодирање пара бајтова. Користи се са ОпенАИ моделима и разлаже текст на токене. Ово се користи зато што су дати стрингови понекад мало дуги за наведени ОпенАИ модел. Дакле, дели текст и кодира их у токене. Сада, хајде да радимо на главном пројекту.

из лангцхаин. уградње . опенаи увоз ОпенАИЕмбеддингс

модел = ОпенАИЕмбеддингс ( опенаи_апи_кеи = 'ск-ИОУР_АПИ_КЕИ'

стрингс = ['
Ово је за демонстрација. ', ' Ово низ је такође за демонстрација. ', ' Ово је још један демо низ . ', ' Овај је последњи низ . ']

резултат = модел.ембед_доцументс(стрингс)

штампа (резултат)

штампа (лен(резултат))

Класа ОпенАИЕмбеддингс је увезена из пакета „лангцхаин.ембеддингс.опенаи“. У претходном примеру, поставили смо АПИ кључ као променљиву окружења. Али за овај, ми га прослеђујемо директно конструктору. Дакле, овде не морамо да увозимо модул „ос“.

Након што позовемо ОпенАИ модел који је ОпенАИЕмбеддингс, прослеђујемо му тајни АПИ кључ. У следећем реду су наведени текстуални низови. Овде чувамо четири текстуална низа у низовима објеката. Ови низови су „Ово је за демонстрацију“, „Овај низ је такође за демонстрацију“, „Ово је још један демо стринг“ и „Ово је последњи низ“.

Можете навести више стрингова једноставним одвајањем сваког зарезом. У претходној инстанци је позван метод ембед_тект(), али не можемо да га користимо овде јер ради само за један текстуални низ. Да бисмо уградили више стрингова, метод који имамо је ембед_доцумент(). Дакле, ми га зовемо са наведеним ОпенАИ моделом и текстуалним стринговима као аргументом. Излаз се чува у објекту резултата. Коначно, да би се приказао излаз, користи се Питхон принт() метода са резултатом објекта као параметром. Такође, желимо да видимо дужину ових плутајућих вредности. Дакле, позивамо методу лен() у оквиру методе принт().

Преузети излаз је приказан на следећој слици:

Закључак

Овај пост је разматрао концепт уграђивања у ЛангЦхаин. Научили смо шта је уграђивање и како функционише. Овде је приказана практична имплементација уграђивања текстуалних низова. Извели смо две илустрације. Први пример је радио на проналажењу уграђивања једног текстуалног низа, а други пример је разумео како да се добије уграђивање вишеструких улазних низова коришћењем ОпенАИ модела за уграђивање.