Spaces:
Sleeping
Sleeping
Commit
·
fc8d8ec
1
Parent(s):
7d6020a
updating to different model
Browse files
app.py
CHANGED
|
@@ -4,7 +4,8 @@ from transformers import pipeline, AutoTokenizer
|
|
| 4 |
|
| 5 |
app = FastAPI()
|
| 6 |
|
| 7 |
-
|
|
|
|
| 8 |
summarizer = pipeline("summarization", model=model_name)
|
| 9 |
tokenizer = AutoTokenizer.from_pretrained(model_name)
|
| 10 |
|
|
@@ -14,7 +15,8 @@ class SummarizationRequest(BaseModel):
|
|
| 14 |
class SummarizationResponse(BaseModel):
|
| 15 |
summary: str
|
| 16 |
|
| 17 |
-
|
|
|
|
| 18 |
tokens = tokenizer.encode(text, truncation=False)
|
| 19 |
chunks = []
|
| 20 |
|
|
@@ -24,25 +26,25 @@ def chunk_text(text, max_tokens=800):
|
|
| 24 |
|
| 25 |
return chunks
|
| 26 |
|
|
|
|
| 27 |
@app.post("/summarize", response_model=SummarizationResponse)
|
| 28 |
async def summarize_text(request: SummarizationRequest):
|
| 29 |
chunks = chunk_text(request.inputs)
|
| 30 |
-
|
| 31 |
-
|
| 32 |
-
|
| 33 |
-
|
| 34 |
-
|
| 35 |
-
|
| 36 |
-
|
| 37 |
-
|
| 38 |
-
|
| 39 |
-
|
| 40 |
-
|
| 41 |
-
|
| 42 |
-
|
| 43 |
-
final_summary = " ".join(summaries)
|
| 44 |
return {"summary": final_summary}
|
| 45 |
|
|
|
|
| 46 |
@app.get("/")
|
| 47 |
def greet_json():
|
| 48 |
-
return {"message": "
|
|
|
|
| 4 |
|
| 5 |
app = FastAPI()
|
| 6 |
|
| 7 |
+
# Faster and lighter summarization model
|
| 8 |
+
model_name = "sshleifer/distilbart-cnn-12-6"
|
| 9 |
summarizer = pipeline("summarization", model=model_name)
|
| 10 |
tokenizer = AutoTokenizer.from_pretrained(model_name)
|
| 11 |
|
|
|
|
| 15 |
class SummarizationResponse(BaseModel):
|
| 16 |
summary: str
|
| 17 |
|
| 18 |
+
|
| 19 |
+
def chunk_text(text, max_tokens=700):
|
| 20 |
tokens = tokenizer.encode(text, truncation=False)
|
| 21 |
chunks = []
|
| 22 |
|
|
|
|
| 26 |
|
| 27 |
return chunks
|
| 28 |
|
| 29 |
+
|
| 30 |
@app.post("/summarize", response_model=SummarizationResponse)
|
| 31 |
async def summarize_text(request: SummarizationRequest):
|
| 32 |
chunks = chunk_text(request.inputs)
|
| 33 |
+
|
| 34 |
+
summaries = summarizer(
|
| 35 |
+
chunks,
|
| 36 |
+
max_length=150,
|
| 37 |
+
min_length=30,
|
| 38 |
+
truncation=True,
|
| 39 |
+
do_sample=False,
|
| 40 |
+
batch_size=4 # Adjust batch size according to CPU capability
|
| 41 |
+
)
|
| 42 |
+
|
| 43 |
+
final_summary = " ".join([summary["summary_text"] for summary in summaries])
|
| 44 |
+
|
|
|
|
|
|
|
| 45 |
return {"summary": final_summary}
|
| 46 |
|
| 47 |
+
|
| 48 |
@app.get("/")
|
| 49 |
def greet_json():
|
| 50 |
+
return {"message": "DistilBART Summarizer API is running"}
|