Как да внедрите логиката на ReAct с помощта на агент в LangChain?

Kak Da Vnedrite Logikata Na React S Pomosta Na Agent V Langchain



LangChain е рамката за изграждане на езикови модели и чатботове, които могат да разбират и генерират текст на човешки език. Ефективността на модела се основава на разбирането на езика и неговите сложности по време на фазата на обучение на процеса. Следващата фаза е генериране на данни или текст на естествен език, който може да бъде лесно четим и разбираем. Тези фази се наричат ​​„ Обосновавам се ' и ' Актьорство ” съответно в домейна за обработка на естествен език.

Бързо очертание

Тази публикация ще демонстрира:

Как да внедрите логиката на ReAct с помощта на агент в LangChain?

ReAct ” е комбинацията от фазите Причина и Действие за подобряване на ефективността на езиковия модел като „ Re ' се отнася до разума и ' действайте ” към действие. Логиката на ReAct често се смята за най-оптимизираната за изграждане на LLMs или chatbots за разбиране и генериране на текст. Агентът е лицето, вземащо решения, което решава кои действия да бъдат извършени и в какъв ред ще бъдат извършени.







За да научите процеса на внедряване на логиката на ReAct с помощта на агент в LangChain, просто преминете през следното ръководство:



Стъпка 1: Инсталиране на Frameworks

Първо, инсталирайте LangChain, за да започнете с процеса на внедряване на ReAct логиката:



pip инсталирайте langchain





Инсталирайте модула google-search-results, за да получите зависимостите за изграждане на агента, който може да получава резултатите от търсенето от google:

pip инсталирате openai google-search-results



След това инсталирайте модулите OpenAI, които могат да се използват за зареждане на големите езикови модели или LLM за прилагане на логиката на ReAct:

pip инсталирайте openai

След като получите всички необходими модули, просто настройте OpenAI среда за изграждане на LLM и SerpAPI среда за използване на агента в модела:

импортиране Вие

импортиране getpass

Вие . приблизително [ „OPENAI_API_KEY“ ] = getpass . getpass ( „API ключ на OpenAI:“ )

Вие . приблизително [ „SERPAPI_API_KEY“ ] = getpass . getpass ( „API ключ на Serpapi:“ )

Стъпка 2: Зареждане на езиков модел

Следващата стъпка е зареждане на езиковите модели чрез импортиране на необходимите библиотеки с помощта на рамката LangChain:

от Langchain. агенти импортиране load_tools

от Langchain. агенти импортиране инициализиращ_агент

от Langchain. агенти импортиране AgentType

от Langchain. llms импортиране OpenAI

Използвайте метода OpenAI(), за да изградите езиковия модел (llm) и след това да конфигурирате инструментите за агентите с помощта на SerpAPI:

llm = OpenAI ( температура = 0 )

инструменти = load_tools ( [ 'серпапи' , 'llm-math' ] , llm = llm )

Метод 1: Използване на LandChain Expression Language

LCEL е процес на интегриране или композиране на вериги заедно, докато се изграждат езиковите модели в LangChain. Стартирайте процеса, като инсталирате LangChainHub, за да получите неговите зависимости за изграждане и използване на ReAct логика с агенти в LangChain:

pip инсталирайте langchainhub

Импортиране на библиотеките от LangChain като ReActSingleInputOutputParser за изграждане на модела, който може да използва ReAct модела:

от Langchain. инструменти . изобразявам импортиране render_text_description

от Langchain. агенти . изходни анализатори импортиране ReActSingleInputOutputParser

от Langchain. агенти . format_scratchpad импортиране format_log_to_str

от Langchain импортиране хъб

Заредете езиковия модел, за да проектирате логиката на ReAct, като използвате метода pull() и го запазете в променливата за подкана. Дефинирайте някои инструменти, които могат да се използват за прилагане на логиката върху заредения набор от данни, за да се реализира работата му с агент:

подкана = хъб. дръпнете ( 'hwchase17/реагирайте' )

подкана = подкана. частично (

инструменти = render_text_description ( инструменти ) ,

имена на инструменти = ', ' . присъединяване ( [ T. име за T в инструменти ] ) ,

)

Строителен агент

Сега конфигурирайте агента и неговите инструменти, като го интегрирате с езиковия модел, зареден в стъпка 2 от това ръководство:

llm_with_stop = llm. обвързвам ( Спри се = [ ' наблюдение' ] )

Дефинирайте променлива на агент, за да предоставите аргументите и инструментите за конфигуриране на агента, които обясняват неговата работа. Конфигурираните по-рано части като llm_with_stop и метода ReActSingleInputOutputParser() се интегрират с агента:

агент = {

'вход' : ламбда х: х [ 'вход' ] ,

'agent_scratchpad' : ламбда x: format_log_to_str ( х [ 'междинни_стъпки' ] )

} | подкана | llm_with_stop | ReActSingleInputOutputParser ( )

Вземете библиотеката AgentExecutor и конфигурирайте нейния метод, като използвате аргументи като agent, tools и verbose, за да получите по-четлив изход:

от Langchain. агенти импортиране AgentExecutor

агент_изпълнител = AgentExecutor ( агент = агент , инструменти = инструменти , многословен = Вярно )

Извикайте метода agent_executor() със заявка за низ като вход, който ще задейства агента да извлече изхода:

агент_изпълнител. извиквам ( { 'вход' : 'Коя е приятелката на Лео ди Каприо' } )

Изход

Следната екранна снимка показва, че агентът е извлякъл информацията с помощта на логиката ReAct и е генерирал текста на естествен език:

Метод 2: Използване на ZeroShotReactAgent

Логиката ReAct може също да бъде внедрена чрез използване на друг агент като ZeroShotReactAgent, докато конфигурирате променливата agent_executor. След това просто извикайте променливата agent_executor с въпроса като вход за извикване на агента:

агент_изпълнител = инициализиращ_агент ( инструменти , llm , агент = AgentType. ZERO_SHOT_REACT_DESCRIPTION , многословен = Вярно )

агент_изпълнител. извиквам ( { 'вход' : „Каква е възрастта на приятелката на Лео ди Каприо, повишена на степен 0,21“ } )

Изход

Агентът е извлякъл информацията въз основа на входа, поискан при извикване на agent_executor:

Метод 3: Използване на чат модели

Друг процес, който може да се използва за прилагане на логиката на ReAct чрез използване на чат моделите след импортиране на библиотеката ChatOpenAI:

от Langchain. chat_models импортиране ChatOpenAI

Изградете модела на чат, като използвате метода ChatOpenAI() със стойност на температурата, равна на 0, която може да контролира произволността в резултатите от модела:

chat_model = ChatOpenAI ( температура = 0 )

Заредете модела, върху който потребителят може да приложи логиката на ReAct, за да го съхраните в променливата за подкана и конфигурирайте инструментите, които да се използват в процеса:

подкана = хъб. дръпнете ( 'hwchase17/react-json' )

подкана = подкана. частично (

инструменти = render_text_description ( инструменти ) ,

имена на инструменти = ', ' . присъединяване ( [ T. име за T в инструменти ] ) ,

)

Изграждане на агента

Използвайте модела за чат, за да съхранявате наблюденията или последните съобщения, когато моделът спре да генерира текста:

chat_model_with_stop = chat_model. обвързвам ( Спри се = [ ' наблюдение' ] )

Вземете библиотеката ReActJsonSingleInputOutputParser, за да приложите логиката на ReAct и да създадете резултатите във формат JSON:

от Langchain. агенти . изходни анализатори импортиране ReActJsonSingleInputOutputParser

Изградете и конфигурирайте агента, като използвате променливата chat_model и метода, за да получите резултати чрез извикване на агента:

агент = {

'вход' : ламбда х: х [ 'вход' ] ,

'agent_scratchpad' : ламбда x: format_log_to_str ( х [ 'междинни_стъпки' ] )

} | подкана | chat_model_with_stop | ReActJsonSingleInputOutputParser ( )

Конфигурирайте agent_executor и го стартирайте, за да получите резултатите въз основа на заявката, предоставена във входната променлива:

агент_изпълнител = AgentExecutor ( агент = агент , инструменти = инструменти , многословен = Вярно )

агент_изпълнител. извиквам ( { 'вход' : „Каква е възрастта на приятелката на Лео ди Каприо, повишена на степен 0,21“ } )

Изход

Агентът е извлякъл изхода, както е показано на следната екранна снимка:

Метод 4: Използване на ChatZeroShotReactAgent

Промяната на стойността на агента може също да се използва за прилагане на логиката ReAct с рамката LangChain:

агент = инициализиращ_агент ( инструменти , chat_model , агент = AgentType. CHAT_ZERO_SHOT_REACT_DESCRIPTION , многословен = Вярно )

агент. тичам ( „Каква е възрастта на приятелката на Лео ди Каприо, повишена на степен 0,21“ )

Изход

Изходната структура съдържа подробна информация за работата на агента от токените и модела, използвани за извличане на информацията:

Това е всичко за процеса на внедряване на логиката на ReAct с помощта на агент в LangChain.

Заключение

За да приложите логиката на ReAct с агент, използващ рамката LangChain, инсталирайте модули като google-search-results, за да конфигурирате агента. След това настройте средата, като използвате идентификационните данни на OpenAI и SerpAPI от техните акаунти, за да започнете да използвате модела. Логиката ReAct може да бъде внедрена с помощта на LCEL и чат модели с множество агенти, предлагани от модула LangChain. Това ръководство е разработило внедряването на логиката на ReAct с помощта на агента в LangChain.