WhotookNima commited on
Commit
d239f50
·
verified ·
1 Parent(s): 89eb391

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +17 -12
app.py CHANGED
@@ -4,7 +4,7 @@ import torch
4
 
5
  app = FastAPI()
6
 
7
- # Load GPT-SW3-126M
8
  model_name = "AI-Sweden-Models/gpt-sw3-126m"
9
  try:
10
  tokenizer = AutoTokenizer.from_pretrained(model_name)
@@ -14,27 +14,32 @@ except Exception as e:
14
  raise e
15
 
16
  @app.post("/parse")
17
- async def parse_arithmetic_prompt(prompt: str):
18
- if not prompt or len(prompt) > 100:
19
- return {"error": "Ogiltig eller för lång prompt"}
20
  try:
21
- # Format prompt as plain text per GPT-SW3 documentation
22
- prompt = f"Du är en vänlig och hjälpsam assistent. Svara följande meddelande svenska:\n\nMeddelande: {message}\nSvar: "
 
 
 
 
 
23
 
24
- # Tokenize prompt
25
- input_ids = tokenizer(full_prompt, return_tensors="pt").input_ids
26
 
27
- # Generate response
28
  with torch.no_grad():
29
  output = model.generate(
30
  input_ids,
31
- max_new_tokens=10,
32
  do_sample=False,
33
  pad_token_id=tokenizer.pad_token_id,
34
  eos_token_id=tokenizer.eos_token_id
35
  )
36
 
37
- # Decode and extract result
38
  result = tokenizer.decode(output[0], skip_special_tokens=True).strip()
39
  result = result.split("Svar: ")[-1].strip()
40
 
@@ -44,4 +49,4 @@ async def parse_arithmetic_prompt(prompt: str):
44
 
45
  @app.get("/")
46
  async def root():
47
- return {"message": "Arithmetic Parser API is running!"}
 
4
 
5
  app = FastAPI()
6
 
7
+ # Ladda GPT-SW3-126M
8
  model_name = "AI-Sweden-Models/gpt-sw3-126m"
9
  try:
10
  tokenizer = AutoTokenizer.from_pretrained(model_name)
 
14
  raise e
15
 
16
  @app.post("/parse")
17
+ async def parse_user_request(request: str):
18
+ if not request or len(request) > 200:
19
+ return {"error": "Ogiltig eller för lång begäran"}
20
  try:
21
+ # Prompt för att extrahera vara och attribut
22
+ prompt = f"""Analysera följande begäran svenska och extrahera nyckelinformation som vara, färg, pris eller andra attribut. Returnera resultatet som en sträng med formatet "vara:namn,attribut1:värde,attribut2:värde" (bara relevanta attribut, utan tomma fält). Om ingen vara identifieras, returnera "error:ingen vara". Exempel:
23
+ - Input: "Jag vill ha en röd bil" -> "vara:bil,färg:röd"
24
+ - Input: "Jag vill ha en ros, helst billigt" -> "vara:ros,pris:billigt"
25
+
26
+ Begäran: {request}
27
+ Svar: """
28
 
29
+ # Tokenisera prompten
30
+ input_ids = tokenizer(prompt, return_tensors="pt").input_ids
31
 
32
+ # Generera svar
33
  with torch.no_grad():
34
  output = model.generate(
35
  input_ids,
36
+ max_new_tokens=20,
37
  do_sample=False,
38
  pad_token_id=tokenizer.pad_token_id,
39
  eos_token_id=tokenizer.eos_token_id
40
  )
41
 
42
+ # Dekoda och extrahera svaret
43
  result = tokenizer.decode(output[0], skip_special_tokens=True).strip()
44
  result = result.split("Svar: ")[-1].strip()
45
 
 
49
 
50
  @app.get("/")
51
  async def root():
52
+ return {"Nytt!"}