Spaces:
Paused
Paused
import os | |
import openai | |
# === OpenAI Client === | |
client = openai.OpenAI(api_key=os.getenv("OPENAI_API_KEY")) | |
# === System Message === | |
INTENT_SYSTEM_MESSAGE = """ | |
You are an intent classification engine for Flux Pro's AI prompt enhancement system. | |
Given a short user prompt, your job is to classify the *underlying marketing or creative intent* behind it using a single lowercase label that reflects the intent category. | |
You must: | |
- Respond with only one concise intent label (a single word or hyphenated phrase) | |
- Avoid using punctuation, explanations, or examples | |
- Infer intent intelligently using your understanding of marketing and creative goals | |
- You may return previously unseen or new intent labels if appropriate | |
Some valid label types might include (but are not limited to): product-ad, service-promotion, public-awareness, brand-storytelling, social-trend, artistic-expression, educational-content, campaign-launch, or experimental-style. | |
Only return the label. Do not echo the prompt or add any commentary. | |
""".strip() | |
def classify_prompt_intent(user_prompt: str) -> str: | |
""" | |
Uses GPT-4 to classify the user's prompt into a marketing or creative intent label. | |
Returns a lowercase intent string (e.g., 'product-ad', 'artistic-expression'). | |
""" | |
user_msg = f"Prompt: {user_prompt}\nReturn only the label." | |
try: | |
response = client.chat.completions.create( | |
model="gpt-4", | |
messages=[ | |
{"role": "system", "content": INTENT_SYSTEM_MESSAGE}, | |
{"role": "user", "content": user_msg} | |
], | |
temperature=0, | |
max_tokens=10, | |
) | |
label = response.choices[0].message.content.strip().lower() | |
print(f"π [DEBUG] Inferred intent label: {label}") | |
return label | |
except Exception as e: | |
print(f"β [ERROR] Failed to classify prompt intent: {e}") | |
return "unknown" | |