Skip to content

llm

Wrapper for Anthropic API

call_anthropic(api_key, prompt, max_tokens=2000)

Make a request to Anthropic API using urllib.

Source code in src/embar/tools/llm.py
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
def call_anthropic(api_key: str, prompt: str, max_tokens: int = 2000) -> str:
    """Make a request to Anthropic API using urllib."""
    url = "https://api.anthropic.com/v1/messages"

    data = {
        "model": "claude-3-5-haiku-20241022",
        "max_tokens": max_tokens,
        "messages": [{"role": "user", "content": prompt}],
    }

    headers = {"Content-Type": "application/json", "x-api-key": api_key, "anthropic-version": "2023-06-01"}

    request = Request(url, data=json.dumps(data).encode("utf-8"), headers=headers, method="POST")

    with urlopen(request) as response:
        result = json.loads(response.read().decode("utf-8"))
        return result["content"][0]["text"]