Бързо очертание
Тази публикация ще демонстрира:
- Как да внедрите логиката на ReAct с помощта на агент в LangChain
- Инсталиране на Frameworks
- Зарежда се езиков модел
- Метод 1: Използване на LandChain Expression Language
- Строителен агент
- Метод 2: Използване на ZeroShotReactAgent
- Метод 3: Използване на чат модели
- Изграждане на агента
- Метод 4: Използване на ChatZeroShotReactAgent
- Заключение
Как да внедрите логиката на 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.