alex-abb's picture
Update app.py
f34d7d5 verified
raw
history blame
2.83 kB
import os
import requests
from bs4 import BeautifulSoup
api_token = os.environ.get("TOKEN")
API_URL = "https://api-inference.huggingface.co/models/meta-llama/Llama-2-7b-chat-hf"
headers = {"Authorization": f"Bearer {api_token}"}
def query(payload):
try:
response = requests.post(API_URL, headers=headers, json=payload)
response.raise_for_status() # Raise an exception for bad status codes
return response.json()
except requests.exceptions.RequestException as e:
print(f"Error making request to API: {e}")
return None
def analyze_sentiment(pl7_text):
prompt = f'''<|begin_of_text|>
<|start_header_id|>system<|end_header_id|>
You're going to deeply analyze the text I'm going to give you and you're only going to tell me which category it belongs to by answering only the words that correspond to the following categories:
For posts that talk about chat models/LLM, return "Chatmodel/LLM"
For posts that talk about image generation models, return "image_generation"
For texts that ask for information from the community, return "questions"
For posts about fine-tuning or model adjustment, return "fine_tuning"
For posts related to ethics and bias in AI, return "ethics_bias"
For posts about datasets and data preparation, return "datasets"
For posts about tools and libraries, return "tools_libraries"
For posts containing tutorials and guides, return "tutorials_guides"
For posts about debugging and problem-solving, return "debugging"
Respond only with the category name, without any additional explanation or text.
<|eot_id|>
<|start_header_id|>user<|end_header_id|>
{pl7_text}
<|eot_id|>
<|start_header_id|>assistant<|end_header_id|>
'''
print("Sending request to API...")
output = query({"inputs": prompt})
if output is None:
return "Error: Failed to get response from API"
print("Raw API response:")
print(output)
if isinstance(output, list) and len(output) > 0:
generated_text = output[0].get('generated_text', '')
return generated_text.strip()
else:
return "Error: Unexpected response format from API"
# Fetch a single post
url = 'https://huggingface.co./posts'
response = requests.get(url)
if response.status_code == 200:
soup = BeautifulSoup(response.content, 'html.parser')
pl7_element = soup.find(class_='pl-7')
if pl7_element:
pl7_text = pl7_element.text.strip()
print("Post content (first 100 characters):")
print(pl7_text[:100] + "..." if len(pl7_text) > 100 else pl7_text)
print("\nAnalyzing post...")
llm_response = analyze_sentiment(pl7_text)
print(f"\nLLM Response:\n{llm_response}")
else:
print("No post found with class 'pl-7'")
else:
print(f"Error {response.status_code} when retrieving {url}")