Batrdj commited on
Commit
cd794df
·
verified ·
1 Parent(s): 3593fa2

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +48 -58
app.py CHANGED
@@ -1,58 +1,48 @@
1
- from fastapi import FastAPI, Header, HTTPException
2
- from pydantic import BaseModel
3
- from transformers import AutoTokenizer, AutoModelForCausalLM
4
- import torch
5
-
6
- app = FastAPI()
7
-
8
- # -----------------------------
9
- # MODEL
10
- # -----------------------------
11
- MODEL_NAME = "lfm-research/LFM-2.5-1.2B-Instruct"
12
-
13
- tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME)
14
-
15
- model = AutoModelForCausalLM.from_pretrained(
16
- MODEL_NAME,
17
- device_map="auto",
18
- torch_dtype=torch.float16
19
- )
20
-
21
- # -----------------------------
22
- # YOUR CUSTOM API KEY
23
- # -----------------------------
24
- API_KEY = "Model12134-1344"
25
-
26
- class Prompt(BaseModel):
27
- message: str
28
-
29
- @app.post("/chat")
30
- def chat(
31
- prompt: Prompt,
32
- x_api_key: str = Header(None)
33
- ):
34
- # ---- API KEY VALIDATION ----
35
- if not x_api_key:
36
- raise HTTPException(status_code=401, detail="API key missing")
37
-
38
- if x_api_key != API_KEY:
39
- raise HTTPException(status_code=403, detail="Invalid API key")
40
-
41
- inputs = tokenizer(
42
- prompt.message,
43
- return_tensors="pt"
44
- ).to(model.device)
45
-
46
- outputs = model.generate(
47
- **inputs,
48
- max_new_tokens=256,
49
- temperature=0.3,
50
- do_sample=True
51
- )
52
-
53
- response = tokenizer.decode(
54
- outputs[0][inputs["input_ids"].shape[-1]:],
55
- skip_special_tokens=True
56
- )
57
-
58
- return {"response": response}
 
1
+ from fastapi import FastAPI, Header, HTTPException
2
+ from pydantic import BaseModel
3
+ from transformers import AutoTokenizer, AutoModelForCausalLM
4
+ import torch
5
+
6
+ app = FastAPI()
7
+
8
+ # -----------------------------
9
+ # PUBLIC MODEL (NO HF TOKEN)
10
+ # -----------------------------
11
+ MODEL_NAME = "LiquidAI/LFM2.5-1.2B-Instruct"
12
+
13
+ tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME)
14
+
15
+ model = AutoModelForCausalLM.from_pretrained(
16
+ MODEL_NAME,
17
+ device_map="auto",
18
+ torch_dtype=torch.float16
19
+ )
20
+
21
+ # -----------------------------
22
+ # YOUR CUSTOM API KEY
23
+ # -----------------------------
24
+ API_KEY = "Model12134-1344"
25
+
26
+ class Prompt(BaseModel):
27
+ message: str
28
+
29
+ @app.post("/chat")
30
+ def chat(prompt: Prompt, x_api_key: str = Header(None)):
31
+ if x_api_key != API_KEY:
32
+ raise HTTPException(status_code=403, detail="Invalid API key")
33
+
34
+ inputs = tokenizer(prompt.message, return_tensors="pt").to(model.device)
35
+
36
+ outputs = model.generate(
37
+ **inputs,
38
+ max_new_tokens=256,
39
+ temperature=0.3,
40
+ do_sample=True
41
+ )
42
+
43
+ response = tokenizer.decode(
44
+ outputs[0][inputs["input_ids"].shape[-1]:],
45
+ skip_special_tokens=True
46
+ )
47
+
48
+ return {"response": response}