Spaces:
Running
Running
import requests | |
from bs4 import BeautifulSoup | |
from fastapi import FastAPI | |
from pydantic import BaseModel | |
import re | |
import os | |
token = os.environ.get("huggingface_token") | |
key = os.environ.get("rapid_key") | |
app = FastAPI() | |
print("hello world") | |
async def root(): | |
return {"status": "OK"} | |
class Item(BaseModel): | |
url: str | |
percentage: int | |
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 f"Error: {e}" | |
async def root(item: Item): | |
try: | |
article = extract_article_content(item.url) | |
url = "https://text-analysis12.p.rapidapi.com/summarize-text/api/v1.1" | |
payload = { | |
"language": "english", | |
"summary_percent": item.percentage, | |
'text': article | |
} | |
headers = { | |
"content-type": "application/json", | |
"X-RapidAPI-Key": key, | |
"X-RapidAPI-Host": "text-analysis12.p.rapidapi.com" | |
} | |
response = requests.post(url, json=payload, headers=headers).json() | |
#text processing | |
text = response["summary"].replace('\"', " "); | |
text = re.sub(r'\s+', ' ', text) | |
#return {clean_response} | |
return { | |
"summary":text} | |
except requests.RequestException as e: | |
return {"error": str(e), "status_code": 500} | |
async def root(item: Item): | |
try: | |
article = extract_article_content(item.url) | |
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 {clean_response} | |
return { | |
"summary":response_content} | |
except requests.RequestException as e: | |
return {"error": str(e), "status_code": 500} | |
async def root(item: Item): | |
try: | |
article = extract_article_content(item.url) | |
API_URL = "https://api-inference.huggingface.co/models/facebook/bart-large-cnn" | |
headers = {'Authorization': token} | |
def query(payload): | |
response = requests.post(API_URL, headers=headers, json=payload) | |
return response.json() | |
params = {'do_sample': False} | |
output = query({ | |
'inputs': article, | |
'parameters': params | |
}) | |
return {"summary": output} | |
except requests.RequestException as e: | |
return {"error": str(e), "status_code": 500} | |