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"],
}
}