Spaces:
Runtime error
Runtime error
File size: 1,476 Bytes
476ac07 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
# Copyright (c) OpenMMLab. All rights reserved.
import os
import sys
import requests
try:
SERPER_API_KEY = os.environ['SERPER_API_KEY']
except Exception:
print('Please obtain the `SERPER_API_KEY` from https://serper.dev and '
'set it using `export SERPER_API_KEY=xxx`.')
sys.exit(1)
def parse_results(results, k=10):
snippets = []
for result in results['organic'][:k]:
if 'snippet' in result:
snippets.append(result['snippet'])
for attribute, value in result.get('attributes', {}).items():
snippets.append(f'{attribute}: {value}.')
return snippets
def search(api_key, search_term, **kwargs):
headers = {
'X-API-KEY': api_key,
'Content-Type': 'application/json',
}
params = {
'q': search_term,
**{key: value
for key, value in kwargs.items() if value is not None},
}
try:
response = requests.post(
'https://google.serper.dev/search',
headers=headers,
params=params,
timeout=5)
except Exception as e:
return -1, str(e)
return response.status_code, response.json()
def Search(q, k=10):
status_code, response = search(SERPER_API_KEY, q)
if status_code != 200:
ret = 'None\n'
else:
text = parse_results(response, k=k)
ret = ''
for idx, res in enumerate(text):
ret += f"<|{idx+1}|>: '{res}'\n"
return ret
|