def request_claude_data()

in Utils/llm/api.py [0:0]


def request_claude_data(system_prompt, messages, model):
    config = API[model]()  # Claude Opus or Sonnet

    headers = {
        'Content-Type': 'application/json; charset=utf-8',
        "Authorization": f"Bearer {config['api_key']}",
    }
    payload = {
        "anthropic_version": config['version'],
        "max_tokens": 4096,
        "stream": False,
        "temperature": temperature,
        "system": system_prompt,
        "messages": messages  # [{"role": "user", "content": prompt}]
    }
    response = requests.post(config["url"], headers=headers, json=payload, timeout=300)

    if not response.ok:
        raise APIException(response.status_code, response.content)

    data = response.json()
    return {
        'content': data["content"][0]["text"],
        'tokens': {
            "input_tokens": data["usage"]["input_tokens"],
            "output_tokens": data["usage"]["output_tokens"],
        }
    }