final-agent-course / agent.py
jjvelezo's picture
Update agent.py
ae12037 verified
raw
history blame
1.3 kB
import requests
import urllib.parse
class DuckDuckGoAgent:
def __init__(self):
print("DuckDuckGoAgent initialized.")
def get_duckduckgo_answer(self, query: str) -> str:
# Crear una consulta de búsqueda para DuckDuckGo
search_query = urllib.parse.quote(query)
url = f"https://api.duckduckgo.com/?q={search_query}&format=json&no_html=1&skip_disambig=1"
# Realizar la solicitud a DuckDuckGo
response = requests.get(url)
if response.status_code == 200:
data = response.json()
# Tomamos el primer resultado de la respuesta (si existe)
if 'AbstractText' in data and data['AbstractText']:
answer = data['AbstractText']
# Limitamos la respuesta a 200 caracteres
return answer[:200]
else:
return "No se encontró una respuesta adecuada en DuckDuckGo."
else:
return "Error al contactar con DuckDuckGo."
def __call__(self, question: str) -> str:
print(f"Agent received question (first 50 chars): {question[:50]}...")
# Obtener respuesta de DuckDuckGo
answer = self.get_duckduckgo_answer(question)
print(f"Agent returning answer: {answer}")
return answer