postpilot / app.py
SohamSSarkar's picture
Update app.py
eddfcdd verified
Raw History Blame Contribute Delete
1.45 kB
import os
import gradio as gr
from dotenv import load_dotenv
from openai import OpenAI
from transformers import pipeline
load_dotenv()
client = OpenAI(api_key=os.getenv("OPENAI_API_KEY"))
# Setup HF pipeline for fallback (runs inference in Hugging Face's cloud)
hf_generator = pipeline("text-generation", model="gpt2")
def generate_post(idea):
if not idea:
return "Please enter an idea."
prompt = f"""
You are PostPilot, an AI that turns an idea into a LinkedIn-ready post.
Return the post in 2-3 short paragraphs, add 4-6 hashtags, and mention it was built with AI in under 1 hour.
Idea: {idea}
"""
try:
# Try OpenAI first
resp = client.chat.completions.create(
model="gpt-3.5-turbo",
messages=[{"role": "user", "content": prompt}],
temperature=0.3
)
return resp.choices[0].message.content
except Exception as e:
# If OpenAI fails (e.g. quota exceeded), fallback to HF model
fallback_text = hf_generator(prompt, max_length=150, num_return_sequences=1)[0]["generated_text"]
return f"⚠️ OpenAI failed, showing fallback:\n\n" + fallback_text
demo = gr.Interface(
fn=generate_post,
inputs="text",
outputs="text",
title="PostPilot β€” AI LinkedIn Post Generator",
description="Paste an idea, get a ready-to-post LinkedIn article with hashtags."
)
if __name__ == "__main__":
demo.launch()