Spaces:
Sleeping
Sleeping
| 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 === | |