Spaces:
Sleeping
Sleeping
| import json | |
| import os | |
| import requests | |
| from langchain.tools import tool | |
| class SearchTools(): | |
| def search_internet(query): | |
| """Useful to search the internet | |
| about a a given topic and return relevant results""" | |
| top_result_to_return = 4 | |
| url = "https://google.serper.dev/search" | |
| payload = json.dumps({"q": query}) | |
| headers = { | |
| 'X-API-KEY': os.environ['SERPER_API_KEY'], | |
| 'content-type': 'application/json' | |
| } | |
| response = requests.request("POST", url, headers=headers, data=payload) | |
| results = response.json()['organic'] | |
| string = [] | |
| for result in results[:top_result_to_return]: | |
| try: | |
| string.append('\n'.join([ | |
| f"Title: {result['title']}", f"Link: {result['link']}", | |
| f"Snippet: {result['snippet']}", "\n-----------------" | |
| ])) | |
| except KeyError: | |
| next | |
| return '\n'.join(string) | |
| def search_news(query): | |
| """Useful to search news about a company, stock or any other | |
| topic and return relevant results""""" | |
| top_result_to_return = 4 | |
| url = "https://google.serper.dev/news" | |
| payload = json.dumps({"q": query}) | |
| headers = { | |
| 'X-API-KEY': os.environ['SERPER_API_KEY'], | |
| 'content-type': 'application/json' | |
| } | |
| response = requests.request("POST", url, headers=headers, data=payload) | |
| results = response.json()['news'] | |
| string = [] | |
| for result in results[:top_result_to_return]: | |
| try: | |
| string.append('\n'.join([ | |
| f"Title: {result['title']}", f"Link: {result['link']}", | |
| f"Snippet: {result['snippet']}", "\n-----------------" | |
| ])) | |
| except KeyError: | |
| next | |
| return '\n'.join(string) | |