orbit-api / app.py
Littendekitten's picture
Create app.py
d87aadf verified
Raw
History Blame Contribute Delete
1.57 kB
import torch
from fastapi import FastAPI
from pydantic import BaseModel
from transformers import AutoModelForCausalLM, AutoTokenizer
app = FastAPI()
# Laad jouw eigen getrainde model in
model_path = "./SpaceStar-0.01-Final"
tokenizer = AutoTokenizer.from_pretrained(model_path)
model = AutoModelForCausalLM.from_pretrained(model_path).to("cpu")
class ChatRequest(BaseModel):
message: str
system_prompt: str = "Je bent SpaceStar 0.01, een geavanceerde AI-assistent die gespecialiseerd is in programmeren, wiskunde en communicatie in het Nederlands en Engels."
@app.post("/chat")
async def chat(request: ChatRequest):
# Formatteer het gesprek in de Qwen-stijl
messages = [
{"role": "system", "content": request.system_prompt},
{"role": "user", "content": request.message}
]
text = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
model_inputs = tokenizer([text], return_tensors="pt").to("cpu")
# Genereer het antwoord
generated_ids = model.generate(
**model_inputs,
max_new_tokens=256,
temperature=0.7,
top_p=0.9
)
# Filter de input-tokens weg zodat we alleen het antwoord overhouden
generated_ids = [
output_ids[len(input_ids):] for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids)
]
response = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0]
return {"response": response}
@app.get("/")
def home():
return {"status": "SpaceStar 0.01 is online and ready!"}