WhotookNima commited on
Commit
449b6a7
·
verified ·
1 Parent(s): 0e62a43

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +19 -6
app.py CHANGED
@@ -4,6 +4,7 @@ import torch
4
 
5
  app = FastAPI()
6
 
 
7
  model_name = "AI-Sweden-Models/gpt-sw3-126m"
8
  try:
9
  tokenizer = AutoTokenizer.from_pretrained(model_name)
@@ -17,14 +18,26 @@ async def parse_arithmetic_prompt(prompt: str):
17
  if not prompt or len(prompt) > 100:
18
  return {"error": "Ogiltig eller för lång prompt"}
19
  try:
20
- messages = [
21
- {"role": "system", "content": "Du är en assistent som omvandlar aritmetiska frågor på svenska till strängar, t.ex. '5+5'. Svara endast med strängen."},
22
- {"role": "user", "content": prompt}
23
- ]
24
- input_ids = tokenizer.apply_chat_template(messages, return_tensors="pt")
 
 
25
  with torch.no_grad():
26
- output = model.generate(input_ids, max_new_tokens=10, do_sample=False)
 
 
 
 
 
 
 
 
27
  result = tokenizer.decode(output[0], skip_special_tokens=True).strip()
 
 
28
  return {"result": result}
29
  except Exception as e:
30
  return {"error": f"Fel vid parsning: {str(e)}"}
 
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)
 
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
+ full_prompt = f"Omvandla följande aritmetiska fråga på svenska till en sträng, t.ex. '5+5'. Fråga: {prompt} Svar: "
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
+
41
  return {"result": result}
42
  except Exception as e:
43
  return {"error": f"Fel vid parsning: {str(e)}"}