Spaces:
Build error
Build error
| from fastapi import FastAPI, HTTPException | |
| from pydantic import BaseModel | |
| import os, requests | |
| app = FastAPI() | |
| class ChatRequest(BaseModel): | |
| message: str | |
| def root(): | |
| return {"name": "Textilindo AI Power", "model": os.getenv("DEFAULT_MODEL", "meta-llama/Llama-3.1-8B-Instruct")} | |
| def health(): | |
| return {"status": "healthy"} | |
| def chat(body: ChatRequest): | |
| endpoint = (os.getenv("HF_ENDPOINT_URL") or "").rstrip("/") | |
| token = os.getenv("HUGGINGFACE_API_KEY") or os.getenv("HF_TOKEN") or os.getenv("HUGGINGFAC_API_KEY_2") | |
| model = os.getenv("DEFAULT_MODEL", "meta-llama/Llama-3.1-8B-Instruct") | |
| if not endpoint or not token: | |
| raise HTTPException(status_code=500, detail="Endpoint or token not configured") | |
| url = f"{endpoint}/v1/chat/completions" | |
| headers = {"Authorization": f"Bearer {token}", "Content-Type": "application/json"} | |
| payload = {"model": model, "messages": [{"role": "system", "content": "Jawablah singkat dalam Bahasa Indonesia."}, {"role": "user", "content": body.message}], "temperature": 0.5, "top_p": 0.9, "max_tokens": 180} | |
| r = requests.post(url, headers=headers, json=payload, timeout=60) | |
| if r.status_code >= 400: | |
| raise HTTPException(status_code=502, detail=r.text) | |
| data = r.json() | |
| content = (data.get("choices") or [{}])[0].get("message", {}).get("content") | |
| return {"response": content} | |