ym88659208ym87991671
Self ask with search | Документация для разработчиков

Self ask with search

Обновлено 1 марта 2024

Поиск ответа в интернете с промежуточными вопросами

from langchain import hub
from langchain.agents import AgentExecutor, create_self_ask_with_search_agent
from langchain_community.llms import Fireworks
from langchain_community.tools.tavily_search import TavilyAnswer

Initialize Tools

We will initialize the tools we want to use. This is a good tool because it gives us answers (not documents)

For this agent, only one tool can be used and it needs to be named "Intermediate Answer"

tools = [TavilyAnswer(max_results=1, name="Intermediate Answer")]

Create Agent

# Get the prompt to use - you can modify this!
prompt = hub.pull("hwchase17/self-ask-with-search")
# Choose the LLM that will drive the agent
llm = Fireworks()

# Construct the Self Ask With Search Agent
agent = create_self_ask_with_search_agent(llm, tools, prompt)

Run Agent

# Create an agent executor by passing in the agent and tools
agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True)
from langchain.agents import AgentType, Tool, initialize_agent
from langchain.chat_models import ChatOpenAI, GigaChat
from langchain.llms import OpenAI
from langchain.utilities import SerpAPIWrapper

# llm = GigaChat(credentials=..., verbose=True)
llm = ChatOpenAI(model="gpt-4", openai_api_key="<sk-...>")
search = SerpAPIWrapper()
tools = [
Tool(
name="Промежуточный ответ",
func=search.run,
description="Используется, когда нужно вопспользоваться поиском",
)
]

self_ask_with_search = initialize_agent(
tools, llm, agent=AgentType.SELF_ASK_WITH_SEARCH, verbose=True
)
self_ask_with_search.run("Как звали жену человека, который придумал психотипы")
    

> Entering new AgentExecutor chain...
Да.
Дополнительный вопрос: Кто придумал психотипы?
Промежуточный ответ: Психотип. Психологический тип –это теория личности, созданная швейцарским психиатром Карлом Густавом Юнгом для объяснения нормальных различий здоровых людей ...
Дополнительный вопрос: Как звали жену Карла Густава Юнга?
Промежуточный ответ: Emma Jung
Итак, окончательный ответ: Emma Jung

> Finished chain.
    {'input': "What is the hometown of the reigning men's U.S. Open champion?",
'output': 'Novak Djokovic.'}

Используем внутренний агент

self_ask_with_search = initialize_agent(
tools, llm, agent=AgentType.SELF_ASK_WITH_SEARCH, verbose=True
)
self_ask_with_search.run("Сколько можно купить самых дешевых автомобилей за 1 биткоин?")
    

> Entering new AgentExecutor chain...
Да.
Дополнительный вопрос: Какова стоимость 1 биткоина?
Промежуточный ответ: Логотип. Bitcoin. 25823.7$. Стоимость. 221 302 000$. Объем 24ч. Логотип. Ethereum. 1629.13$. Стоимость. 104 832 000$. Объем 24ч. Логотип.
Дополнительный вопрос: Сколько стоит самый дешевый автомобиль?
Промежуточный ответ: Bajaj Qute – самый дешевый автомобиль в мире. У себя на родине, в Индии, он стоит 3 400 долларов. В пересчете на рубли это 193 тысяч. Компания, ...
Итак, окончательный ответ: Примерно 7 автомобилей.

> Finished chain.
    'Примерно 7 автомобилей.'
ПАО Сбербанк использует cookie для персонализации сервисов и удобства пользователей.
Вы можете запретить сохранение cookie в настройках своего браузера.