yashxx07's picture
Update main.py
43e8e4e verified
raw
history blame
3.39 kB
import requests
from bs4 import BeautifulSoup
from fastapi import FastAPI, Request
from fastapi.responses import StreamingResponse
from pydantic import BaseModel
import re
import os
# import transformers
# import torch
class Item(BaseModel):
url: str
percentage: int
app = FastAPI()
#summarizer = transformers.pipeline("summarization", model="Falconsai/text_summarization")
def extract_article_content(url):
try:
# Fetch the HTML content of the article URL
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
results = soup.find_all(['h1', 'p'])
text = [result.text for result in results]
ARTICLE = ' '.join(text)
return ARTICLE
except Exception as e:
return ""
@app.get("/")
async def root():
return {"status": "OK"}
@app.post("/summarize-v1")
async def root(item: Item):
try:
article = extract_article_content(item.url)
if len(article) == 0:
return {'summary': ""}
response = requests.post('https://fumes-api.onrender.com/llama3',
json={'prompt': "{ 'User': 'Summarize the following news article: '" + article + "}",
"temperature":0.6,
"topP":0.9,
"maxTokens": 200}, stream=True)
response_content = response.content.decode('utf-8')
response_content = response_content.replace("Here is a summary of the news article:", "")
response_content = response_content.replace("YOU CAN BUY ME COFFE! https://buymeacoffee.com/mygx", "")
return {"summary":response_content}
except requests.RequestException as e:
return {"error": str(e), "status_code": 500}
# @app.post("/summarize-v2")
# async def root(item: Item):
# try:
# article = extract_article_content(item.url)
# if len(article) == 0:
# return StreamingResponse(content="", media_type="application/json")
# response = requests.post('https://fumes-api.onrender.com/llama3',
# json={'prompt': "{ 'User': 'Summarize the following news article: '" + article + "}",
# "temperature":0.6,
# "topP":0.9,
# "maxTokens": 200}, stream=True)
# async def send_chunks():
# for chunk in response.iter_content(chunk_size=1024):
# if chunk:
# yield chunk.decode('utf-8')
# return StreamingResponse(send_chunks(), media_type="text/plain")
# except requests.RequestException as e:
# return {"error": str(e), "status_code": 500}
@app.post("/extract-content")
async def root(item: Item):
try:
article = extract_article_content(item.url)
if len(article) == 0:
return {'ERROR': "AHHHHHHHHH"}
return {"content":article}
except requests.RequestException as e:
return {"error": str(e), "status_code": 500}
# @app.post("/summarize-v3")
# async def root(item: Item):
# try:
# article = extract_article_content(item.url)
# if len(article) == 0:
# return {'summary': ""}
# summ = summarizer(article, max_length=1000, min_length=30, do_sample=False)
# return {"summary":summ}
# except requests.RequestException as e:
# return {"error": str(e), "status_code": 500}