artelo1 commited on
Commit
6cca775
verified
1 Parent(s): 79c0a5a

Upload main.py

Browse files
Files changed (1) hide show
  1. main.py +15 -8
main.py CHANGED
@@ -1,8 +1,10 @@
 
 
 
1
  from fastapi import FastAPI, HTTPException
 
2
  from pydantic import BaseModel
3
  from transformers import pipeline
4
- import uvicorn
5
- import os
6
 
7
  # Utw贸rz instancj臋 FastAPI
8
  app = FastAPI(
@@ -13,7 +15,8 @@ app = FastAPI(
13
 
14
  # 艢cie偶ka do modelu - Hugging Face automatycznie pobierze model
15
  MODEL_NAME = "speakleash/Bielik-1.5B-v3.0-Instruct"
16
- generator = None # Zostanie za艂adowany p贸藕niej
 
17
 
18
  # Model wej艣ciowy dla POST request
19
  class GenerationRequest(BaseModel):
@@ -22,6 +25,7 @@ class GenerationRequest(BaseModel):
22
  temperature: float = 0.7
23
  top_p: float = 0.9
24
 
 
25
  @app.on_event("startup")
26
  async def startup_event():
27
  """
@@ -44,7 +48,7 @@ async def startup_event():
44
  print(f"B艂膮d 艂adowania modelu: {e}")
45
  # Mo偶esz zdecydowa膰, czy aplikacja ma zako艅czy膰 dzia艂anie, czy kontynuowa膰 bez modelu
46
  # W przypadku b艂臋du 艂adowania modelu, endpoint generacji tekstu b臋dzie zwraca艂 b艂膮d
47
- generator = None # Ustaw na None, aby sygnalizowa膰 problem
48
 
49
 
50
  @app.get("/")
@@ -54,12 +58,12 @@ async def root():
54
  """
55
  return {"message": "Bielik Text Generation API is running!"}
56
 
 
57
  @app.post("/generate")
58
  async def generate_text(request: GenerationRequest):
59
  """
60
  Endpoint do generowania tekstu na podstawie promptu.
61
  """
62
- print(request)
63
  if generator is None:
64
  raise HTTPException(status_code=503, detail="Model nie zosta艂 za艂adowany lub wyst膮pi艂 b艂膮d.")
65
 
@@ -69,13 +73,16 @@ async def generate_text(request: GenerationRequest):
69
  max_new_tokens=request.max_new_tokens,
70
  temperature=request.temperature,
71
  top_p=request.top_p,
72
- do_sample=True, # Wa偶ne dla generowania z temperatur膮
73
  )
74
  # Pipeline zwraca list臋 s艂ownik贸w, bierzemy pierwszy wynik
75
- return {"generated_text": generated_text[0]["generated_text"]}
 
 
76
  except Exception as e:
77
  raise HTTPException(status_code=500, detail=f"B艂膮d podczas generowania tekstu: {e}")
78
 
 
79
  # Uruchamianie serwera Uvicorn bezpo艣rednio (dla Dockera)
80
  if __name__ == "__main__":
81
- uvicorn.run(app, host="0.0.0.0", port=int(os.getenv("PORT", 7860)))
 
1
+ import os
2
+
3
+ import uvicorn
4
  from fastapi import FastAPI, HTTPException
5
+ from fastapi.responses import Response
6
  from pydantic import BaseModel
7
  from transformers import pipeline
 
 
8
 
9
  # Utw贸rz instancj臋 FastAPI
10
  app = FastAPI(
 
15
 
16
  # 艢cie偶ka do modelu - Hugging Face automatycznie pobierze model
17
  MODEL_NAME = "speakleash/Bielik-1.5B-v3.0-Instruct"
18
+ generator = None # Zostanie za艂adowany p贸藕niej
19
+
20
 
21
  # Model wej艣ciowy dla POST request
22
  class GenerationRequest(BaseModel):
 
25
  temperature: float = 0.7
26
  top_p: float = 0.9
27
 
28
+
29
  @app.on_event("startup")
30
  async def startup_event():
31
  """
 
48
  print(f"B艂膮d 艂adowania modelu: {e}")
49
  # Mo偶esz zdecydowa膰, czy aplikacja ma zako艅czy膰 dzia艂anie, czy kontynuowa膰 bez modelu
50
  # W przypadku b艂臋du 艂adowania modelu, endpoint generacji tekstu b臋dzie zwraca艂 b艂膮d
51
+ generator = None # Ustaw na None, aby sygnalizowa膰 problem
52
 
53
 
54
  @app.get("/")
 
58
  """
59
  return {"message": "Bielik Text Generation API is running!"}
60
 
61
+
62
  @app.post("/generate")
63
  async def generate_text(request: GenerationRequest):
64
  """
65
  Endpoint do generowania tekstu na podstawie promptu.
66
  """
 
67
  if generator is None:
68
  raise HTTPException(status_code=503, detail="Model nie zosta艂 za艂adowany lub wyst膮pi艂 b艂膮d.")
69
 
 
73
  max_new_tokens=request.max_new_tokens,
74
  temperature=request.temperature,
75
  top_p=request.top_p,
76
+ do_sample=True, # Wa偶ne dla generowania z temperatur膮
77
  )
78
  # Pipeline zwraca list臋 s艂ownik贸w, bierzemy pierwszy wynik
79
+ #gen_text = {"generated_text": generated_text[0]["generated_text"]}
80
+ return Response(content=generated_text[0]["generated_text"], media_type="text/plain; charset=utf-8")
81
+ # return {"generated_text": generated_text[0]["generated_text"]}
82
  except Exception as e:
83
  raise HTTPException(status_code=500, detail=f"B艂膮d podczas generowania tekstu: {e}")
84
 
85
+
86
  # Uruchamianie serwera Uvicorn bezpo艣rednio (dla Dockera)
87
  if __name__ == "__main__":
88
+ uvicorn.run(app, host="0.0.0.0", port=int(os.getenv("PORT", 7860)))