| import json |
| import os |
| from googleapiclient.discovery import build |
| from logger import logger |
|
|
| activo = True |
| try: |
| api_key = os.getenv("GOOGLE_API_KEY") |
| cse_id = os.getenv("GOOGLE_CSE_ID") |
| except: |
| api_key = False |
| cse_id = False |
| if not api_key or not cse_id: |
| activo = False |
|
|
| user_text = "Buscando en google" |
|
|
| info = { |
| "type": "function", |
| "function":{ |
| "name": "buscar_google", |
| "description": "Un API de Búsqueda de Google. Útil cuando necesitas responder preguntas sobre\ |
| eventos actuales, personas o noticias. Utiliza esta herramienta especialmente cuando busques\ |
| información sobre eventos o personas. El resultado será un JSON { \n\ |
| \"conseguidos\": [\n\ |
| { \n\ |
| \"titulo\": este contendrá el titulo del enlace , \n\ |
| \"link\": este contendrá el enlace a la pagina donde está la información, puedes usar este enlace en \ |
| la herramienta leer_pagina_web si está disponible para obtener más información, \n\ |
| \"resumen\": este contendrá un resumen del contenido de la pagina \n\ |
| },\n\ |
| ...\n\ |
| ] \n\ |
| }", |
| "parameters": { |
| "type": "object", |
| "properties": { |
| "busqueda": { |
| "type": "string", |
| "description": "El termino a buscar en google para obtener información. e.g. Alejandro Magno", |
| }, |
| }, |
| "required": ["busqueda"], |
| }} |
| } |
|
|
| def ejecutar(busqueda): |
| try: |
| service = build("customsearch", "v1", developerKey=api_key) |
| results = service.cse().list(q=busqueda, cx=cse_id).execute() |
| retorno = {} |
| retorno["conseguidos"] = [] |
| for result in results["items"]: |
| retorno["conseguidos"].append({ |
| "titulo": result["title"], |
| "link": result["link"], |
| "resumen": result["snippet"] |
| }) |
| return json.dumps(retorno) |
| except Exception as e: |
| logger.error(repr(e)) |
| return json.dumps({"status": "api failed"}) |
| |
|
|
|
|