Овај водич ће илустровати процес додавања меморије у ланац са више улаза у ЛангЦхаин-у.
Како додати меморију у ланац са више улаза у ЛангЦхаин-у?
Меморија се може додати ЛЛМ-овима или цхатботовима за чување најновијих порука или података како би модел могао да разуме контекст команде. Да бисте научили процес додавања меморије у ланац са више улаза у ЛангЦхаин-у, једноставно прођите кроз следеће кораке:
Корак 1: Инсталирајте модуле
Прво, инсталирајте оквир ЛангЦхаин јер има различите зависности за изградњу језичких модела:
пип инсталл лангцхаин
Инсталирајте цхромадб за складиштење података које користи меморија у Цхрома векторском складишту:
пип инсталл цхромадб
Тиктокен је токенизер који се користи за креирање малих комада великих докумената тако да се њима може лако управљати:
пип инсталл тиктокен
ОпенАИ је модул који се може користити за изградњу ланаца и ЛЛМ користећи ОпенАИ() метод:
пип инсталл опенаи
Корак 2: Подесите окружење и отпремите податке
Следећи корак након инсталирања свих потребних модула за овај процес је постављање средине користећи АПИ кључ са ОпенАИ налога:
увоз тиувоз гетпасс
ти . Приближно [ „ОПЕНАИ_АПИ_КЕИ“ ] = гетпасс . гетпасс ( „ОпенАИ АПИ кључ:“ )
Отпремите документе користећи библиотеку датотека да бисте изградили ланце у оквиру ЛангЦхаин:
из гоогле. ЕТ АЛ увоз фајловиуплоадед = фајлови. отпремити ( )
Корак 3: Увезите библиотеке
Када се документ успешно отпреми, једноставно увезите потребне библиотеке из Лангцхаин модула:
из лангцхаин. уградње . опенаи увоз ОпенАИЕмбеддингсиз лангцхаин. уградње . цохере увоз ЦохереЕмбеддингс
из лангцхаин. тект_сплиттер увоз ЦхарацтерТектСплиттер
из лангцхаин. векторске продавнице . еластиц_вецтор_сеарцх увоз ЕластицВецторСеарцх
из лангцхаин. векторске продавнице увоз Цхрома
из лангцхаин. доцсторе . документ увоз Документ
Корак 4: Изградња меморије помоћу Цхрома базе података
Сада почните да градите векторски простор за складиштење уграђивања и токена документа који је раније отпремљен:
са отворен ( 'стате_оф_тхе_унион.ткт' ) као ф:стате_оф_тхе_унион = ф. читати ( )
тект_сплиттер = ЦхарацтерТектСплиттер ( цхунк_сизе = 1000 , цхунк_оверлап = 0 )
текстови = тект_сплиттер. сплит_тект ( стате_оф_тхе_унион )
уградње = ОпенАИЕмбеддингс ( )
Конфигуришите Цхрома базу података за складиштење текста и уградње из документа:
доцсеарцх = Цхрома. фром_тектс (текстови , уградње , метаподаци = [ { 'извор' : и } за и ин домет ( само ( текстови ) ) ]
)
Тестирајте меморију тражењем команде у променљивој упита, а затим извршите методу симиларити_сеарцх():
упит = 'Када је формиран НАТО'доцс = доцсеарцх. сличност_претрага ( упит )
Корак 5: Конфигурисање шаблона упита
Овај корак објашњава процес конфигурисања шаблона за упите увозом следећих библиотека:
из лангцхаин. ланцима . питање_одговарање увоз лоад_ка_цхаиниз лангцхаин. ллмс увоз ОпенАИ
из лангцхаин. упити увоз ПромптТемплате
из лангцхаин. меморија увоз ЦонверсатионБуфферМемори
Након тога, једноставно конфигуришите шаблон или структуру за упит и покрените ланац када се меморија дода у модел:
шаблон = '''Ви сте модел који разговара са човекомС обзиром на делове извучене из дугог документа и питања, креирајте коначан одговор
{контекст}
{хист}
Човек: {инпут}
Цхатбот:'''
промпт = ПромптТемплате (
инпут_вариаблес = [ 'историја' , 'улазни' , 'контекст' ] , шаблон = шаблон
)
меморија = ЦонверсатионБуфферМемори ( мемори_кеи = 'историја' , инпут_кеи = 'улазни' )
ланац = лоад_ка_цхаин (
ОпенАИ ( температура = 0 ) , цхаин_типе = 'ствари' , меморија = меморија , промпт = промпт
)
Корак 6: Тестирање меморије
Ово је време да тестирате модел тако што ћете поставити питање користећи променљиву упита, а затим извршити метод цхаин() са његовим параметрима:
упит = 'Када је формиран НАТО'ланац ( { 'инпут_доцументс' : доцс , 'улазни' : упит } , ретурн_онли_оутпутс = Истина )
Одштампајте податке ускладиштене у бафер меморији пошто је одговор који је дао модел недавно ускладиштен у меморији:
принт ( ланац. меморија . тампон )
То је све о додавању меморије у ланац са више улаза у ЛангЦхаин-у.
Закључак
Да бисте додали меморију у ланац са вишеструким улазима у ЛангЦхаин-у, једноставно инсталирајте модуле и векторску продавницу за складиштење текста и уградње. Након тога, отпремите податке/документ из локалног система, а затим увезите потребне библиотеке за складиштење података да бисте изградили меморију за ЛЛМ. Конфигуришите предложак упита за складиштење најновијих порука у меморији бафера, а затим текстуални ланац. Овај водич је разрадио процес додавања меморије у ланац са вишеструким улазима у ЛангЦхаин-у.