File size: 1,048 Bytes
33f44dd
 
8330c96
 
33f44dd
 
 
 
a269d46
8330c96
 
a269d46
8330c96
a269d46
8330c96
a269d46
5dd3e3f
 
a269d46
33f44dd
 
 
 
 
 
 
 
 
 
 
 
a269d46
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
from fastapi import FastAPI, Request
from transformers import AutoModelForCausalLM, AutoTokenizer
from peft import PeftModel
import torch
import uvicorn

app = FastAPI()

print("Loading base model...")
base_model = AutoModelForCausalLM.from_pretrained(
    "unsloth/mistral-7b-instruct-v0.3-bnb-4bit",
    device_map="cpu"
)
print("Base model loaded")

print("Loading NYXA adapter...")
model = PeftModel.from_pretrained(base_model, "ScuraDimensions/NYXA-Mistral-7B")
tokenizer = AutoTokenizer.from_pretrained("ScuraDimensions/NYXA-Mistral-7B")
print("NYXA loaded")

@app.post("/generate")
async def generate(request: Request):
    data = await request.json()
    prompt = data.get("prompt", "")
    inputs = tokenizer(prompt, return_tensors="pt")
    outputs = model.generate(**inputs, max_new_tokens=500)
    response = tokenizer.decode(outputs[0], skip_special_tokens=True)
    return {"response": response}

@app.get("/health")
def health():
    return {"status": "ok"}

if __name__ == "__main__":
    uvicorn.run(app, host="0.0.0.0", port=7860)