alex-abb's picture
Update app.py
2e937f5 verified
raw
history blame
2.53 kB
import requests
from bs4 import BeautifulSoup
import gradio as gr
import os
api_token = os.environ.get("TOKEN")
API_URL = "https://api-inference.huggingface.co/models/meta-llama/Meta-Llama-3-8B-Instruct"
headers = {"Authorization": f"Bearer {api_token}"}
url = "https://huggingface.co/posts"
def query(payload):
response = requests.post(API_URL, headers=headers, json=payload)
return response.json()
def analyze_sentiment(text):
output = query({
"inputs": f'''
system
you are going to analyse the prompt that I'll give to you and tell me if they are either talking about "chat bot", "AI dev", or something else.
user
{text}
assistant
'''
})
if isinstance(output, list) and len(output) > 0:
response = output[0].get('generated_text', '').strip().lower()
if "chat bot" in response:
return "chat bot"
elif "ai dev" in response:
return "AI dev"
else:
return "autre"
return "autre"
def scrape_and_analyze(url):
try:
response = requests.get(url)
if response.status_code != 200:
return f"Erreur lors de la requête : {response.status_code}"
soup = BeautifulSoup(response.text, 'html.parser')
# Ajustez ce sélecteur selon la structure du site cible
posts = soup.find_all('div', class_='cursor-pointer')
categories = {"chat bot": 0, "AI dev": 0, "autre": 0}
total_posts = 0
result = ""
for post in posts:
total_posts += 1
content = post.find('div', class_='relative').text.strip() if post.find('div', class_='relative') else "Pas de contenu"
# Analyse du texte
category = analyze_sentiment(content)
categories[category] += 1
# Affichage en temps réel
print(f"Post {total_posts} analysé. Catégorie : {category}")
print(f"Compteurs actuels : {categories}")
print("---")
# Ajout des résultats à la chaîne finale
result += f"Post {total_posts} : Catégorie {category}\n"
# Résultat final
result += f"\nTotal des posts analysés : {total_posts}\n"
for cat, count in categories.items():
result += f"{cat} : {count}\n"
return result
except Exception as e:
return f"Une erreur s'est produite : {str(e)}"
result = scrape_and_analyze(url)
print(result)