File size: 2,710 Bytes
2221a1f
e73a724
2221a1f
 
06b2c0f
53e4475
06b2c0f
e73a724
 
b3eb52a
e73a724
 
b3eb52a
e73a724
 
 
 
 
53e4475
e73a724
d9f15d7
53e4475
e73a724
 
7f59196
d9f15d7
e73a724
 
 
 
 
 
 
 
 
 
 
b3eb52a
f2416ec
 
 
 
 
 
 
 
92ff4de
f2416ec
 
 
 
 
 
fb73f18
b3eb52a
8b3d40e
4ec3e61
e73a724
7f59196
4ec3e61
e73a724
92ff4de
7dafa85
d104111
e73a724
ee054d1
 
 
e73a724
 
 
 
ee054d1
 
 
 
1aba979
ee054d1
 
 
 
b3eb52a
e73a724
 
 
 
4e05833
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
import streamlit as st
import requests
import os

# Set page title and layout
st.set_page_config(page_title="Super Prompt Generator", layout="wide") 

# API key from environment variable
API_KEY = os.environ.get("NEBIUS_API_KEY")

if not API_KEY:
    st.error("API key not found. Please set the `NEBIUS_API_KEY` environment variable.")

# Function to call Nebius API
def generate_response(prompt, api_key):
    api_url = "https://api.studio.nebius.ai/v1/chat/completions"
    headers = {"Authorization": f"Bearer {api_key}"}
    payload = {
        "model": "microsoft/Phi-3.5-mini-instruct",
        "messages": [
            {"role": "system",  "content": """You are a prompt enhancer your work is to enhance the prompt without changing the essence and only provide the enhance prompt and nothing else"""},
           
            {"role": "user", "content": prompt}
        ],
        "temperature": 0.9,
        "max_tokens": 200,
        "top_p": 0.9,
        "top_k": 50
    }
    
    response = requests.post(api_url, headers=headers, json=payload)
    
    if response.status_code == 200:
        return response.json()
    else:
        st.error(f"Error: {response.status_code}, {response.text}")
        return None

# Custom CSS for centering
st.markdown(
    """
    <style>
    .title-container {
        text-align: center;
        margin-bottom: 20px;
    }
    
    </style>
    """,
    unsafe_allow_html=True
)

# Centered title
#st.markdown('<div class="title-container"><h1>AI Title Generator</h1></div>', unsafe_allow_html=True)


# Input bar for user prompt
user_input = st.text_area(
    label="Prompt Enhancer",
    placeholder="Type or Paste Your Input..."
)


if st.button("Generate", use_container_width=True):
    if user_input.strip():
        with st.spinner("Generating... Please wait!"):
            result = generate_response(user_input, API_KEY)
        
        if result:
            try:
                # Extracting generated titles
                assistant_message = result["choices"][0]["message"]["content"]
                
                # Enhanced Output with Markdown
                st.markdown(
                    f"""
                    <div style="background-color:#000; padding:15px; border-radius:8px;">
                    <pre style="color:#000; font-family:monospace; white-space:pre-wrap;">{assistant_message}</pre>
                    </div>
                    """,
                    unsafe_allow_html=True
                )
            except KeyError as e:
                st.error(f"Unexpected response format: {e}")
    else:
        st.warning("Please provide input before clicking Generate.")
st.markdown('</div>', unsafe_allow_html=True)