ogaa12's picture
Update app.py
136b6b1 verified
Raw
History Blame Contribute Delete
1.61 kB
from fastapi import FastAPI, HTTPException
from pydantic import BaseModel
from fastapi.middleware.cors import CORSMiddleware
import os
import google.generativeai as genai
# Load API Key dari environment
api_key = os.environ.get("GEMINI_API_KEY")
if not api_key:
raise RuntimeError("❌ API key Gemini tidak ditemukan. Tambahkan di Secrets!")
genai.configure(api_key=api_key)
model = genai.GenerativeModel("gemini-1.5-flash")
app = FastAPI()
# CORS agar bisa diakses dari frontend
app.add_middleware(
CORSMiddleware,
allow_origins=["*"], # Produksi? Ubah ke domain spesifik
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
class PromptRequest(BaseModel):
prompt: str
max_new_tokens: int = 300
temperature: float = 0.7
@app.post("/generate")
async def generate_text(req: PromptRequest):
try:
system_prompt = """\
Kamu adalah tutor bahasa Inggris yang ramah dan interaktif.
Jawab dalam Bahasa Indonesia.
Berikan SATU contoh kalimat dalam bahasa Inggris.
Jangan membuat dialog, langsung jawab to the point.
"""
final_prompt = f"<<SYS>>\n{system_prompt}\n<</SYS>>\n\n{req.prompt}"
result = model.generate_content(
[final_prompt],
generation_config={
"temperature": req.temperature,
"max_output_tokens": req.max_new_tokens,
}
)
return {"generated_text": result.text}
except Exception as e:
raise HTTPException(status_code=500, detail=str(e))
@app.get("/")
async def root():
return {"message": "Server jalan boss! 🔥"}