ReAct-агент: рассуждение + действие
Реализуем паттерн ReAct (Reasoning + Acting) с Gemini 2.0 Flash и Wikipedia API. Модель генерирует цепочки Thought→Action→Observation для ответа на сложные вопросы.
Реализуйте ReAct-агент с двумя инструментами: Wikipedia и калькулятором (eval-безопасный). Задайте вопрос, требующий поиска и расчёта, например: «Сколько лет Эйфелевой башне в 2025 году?»
Скопируйте и адаптируйте под свой контекст. Текст в треугольных скобках — то, что нужно заменить.
import google.generativeai as genai
import wikipedia, re
genai.configure(api_key=GOOGLE_API_KEY)
model = genai.GenerativeModel("gemini-2.0-flash")
chat = model.start_chat(history=[])
def search(query):
try:
return wikipedia.summary(query, sentences=3)
except Exception as e:
return f"Error: {e}"
# ReAct loop
response = chat.send_message(REACT_PROMPT + "\nQuestion\n" + "How tall is Eiffel Tower?")
while "<finish>" not in response.text:
match = re.search(r"<search>(.*?)</search>", response.text)
if match:
obs = search(match.group(1))
response = chat.send_message(f"Observation {obs}")