File size: 710 Bytes
0becb21
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
"""Exa client - semantic + keyword web search."""
import os
import requests

BASE = os.getenv("EXA_API_BASE", "https://api.exa.ai")
KEY = os.getenv("EXA_API_KEY")


def _h():
    if not KEY:
        raise RuntimeError("EXA_API_KEY not set")
    return {"Authorization": f"Bearer {KEY}", "Content-Type": "application/json"}


def search(query, num_results=10, type="auto", **kwargs):
    body = {"query": query, "numResults": num_results, "type": type, **kwargs}
    return requests.post(f"{BASE}/search", headers=_h(), json=body, timeout=60).json()


def get_contents(urls, **kwargs):
    body = {"urls": urls, **kwargs}
    return requests.post(f"{BASE}/contents", headers=_h(), json=body, timeout=60).json()