Spaces:
Running
Running
import os | |
import streamlit as st | |
from openai import OpenAI # β Import OpenAI's new client | |
# Load API key securely | |
api_key = os.getenv("OPENAI_API_KEY", st.secrets.get("OPENAI_API_KEY")) | |
# Initialize OpenAI client | |
client = OpenAI(api_key=api_key) | |
# Function to generate AI response | |
def call_openai_api(prompt, model, max_tokens, temperature): | |
try: | |
response = client.chat.completions.create( | |
model=model, | |
messages=[{"role": "user", "content": prompt}], | |
max_tokens=max_tokens, | |
temperature=temperature | |
) | |
return response.choices[0].message.content # β Correct format | |
except Exception as e: | |
return f"Error: {str(e)}" | |
# Streamlit UI | |
st.set_page_config(page_title="AI-Powered Text Generator", layout="centered") | |
st.title("π AI-Powered Text Generation") | |
st.write("Generate text with AI by providing a prompt below!") | |
# User input fields | |
user_input = st.text_area("Enter your prompt here:", height=150) | |
col1, col2 = st.columns(2) | |
with col1: | |
model = st.selectbox("Choose AI Model:", ["gpt-3.5-turbo", "gpt-4"]) | |
max_tokens = st.slider("Max Tokens (Word Length)", min_value=50, max_value=500, value=200, step=50) | |
with col2: | |
temperature = st.slider("Creativity Level (0 = Predictable, 1 = Creative)", min_value=0.0, max_value=1.0, value=0.7, step=0.1) | |
# Generate button | |
if st.button("Generate Text"): | |
if user_input.strip(): | |
st.subheader("Generated Response:") | |
result = call_openai_api(user_input, model, max_tokens, temperature) | |
st.write(result) | |
else: | |
st.warning("β οΈ Please enter a prompt before generating text.") | |
# Footer | |
st.markdown("---") | |
st.markdown("πΉ *Powered by OpenAI GPT* | πΉ *Developed with Streamlit*") | |