SolusOps/Study-with-ChampAI
0
1from __future__ import annotations2import json3import urllib.request4 5FEATHERLESS_API_BASE = "https://api.featherless.ai/v1"6 7def generate(model_id: str, prompt: str, system: str = "",8 api_key: str = "", max_tokens: int = 1024, temperature: float = 0.3) -> str:9 """Featherless.ai (OpenAI-compatible) — Nemotron reasoning tasks."""10 url = f"{FEATHERLESS_API_BASE}/chat/completions"11 messages = []12 if system:13 messages.append({"role": "system", "content": system})14 messages.append({"role": "user", "content": prompt})15 payload = {"model": model_id, "messages": messages,16 "max_tokens": max_tokens, "temperature": temperature}17 data = json.dumps(payload).encode("utf-8")18 headers = {"Content-Type": "application/json",19 "Authorization": f"Bearer {api_key}"}20 req = urllib.request.Request(url, data=data, headers=headers, method="POST")21 with urllib.request.urlopen(req, timeout=120) as resp:22 result = json.loads(resp.read().decode("utf-8"))23 return result["choices"][0]["message"]["content"]24 