import requests from openai import OpenAI # === Hugging Face Sentiment Analysis === def create_hf_headers(api_key): """Create headers for Hugging Face API requests.""" return {"Authorization": f"Bearer {api_key}"} def query_hf_sentiment(post, api_key, model_url): """Query Hugging Face sentiment analysis API for a list of posts.""" headers = create_hf_headers(api_key) response = requests.post(model_url, headers=headers, json={"inputs": post}) return { "text": post, "raw_output": response.json()[0] } # === OpenAI / Hugging Face GPT-based Theme Extraction === def create_openai_client(api_key, base_url="https://router.huggingface.co/v1"): """Create an OpenAI client for Hugging Face router.""" return OpenAI(api_key=api_key, base_url=base_url) def extract_themes(post, client, prompt=None): """Extract main themes from posts using GPT model.""" if prompt is None: prompt = ("Donne uniquement les thèmes principaux en un ou deux mots pour le texte suivant, " "sans explication. (par exemple, contenus liés à la solitude, " "au soutien psychologique, aux symptômes, etc.).") completion = client.chat.completions.create( model="openai/gpt-oss-20b:fireworks-ai", messages=[{"role": "user", "content": f"{prompt}\n\nTexte : {post}"}], ) return completion.choices[0].message.content # === Example Usage ===