File size: 2,570 Bytes
2221a1f
e73a724
2221a1f
 
e73a724
 
b3eb52a
e73a724
 
b3eb52a
e73a724
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
b3eb52a
f2416ec
 
 
 
 
 
 
 
92ff4de
f2416ec
 
 
 
 
 
fb73f18
b3eb52a
e73a724
 
fb73f18
d104111
e73a724
b3eb52a
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
import streamlit as st
import requests
import os

# 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": "nvidia/Llama-3.1-Nemotron-70B-Instruct-HF",
        "messages": [
            {"role": "system", "content": "You are an AI that generates short, creative titles based on the user's input."},
            {"role": "user", "content": prompt}
        ],
        "temperature": 0.6,
        "max_tokens": 512,
        "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="Input Text Area",  # Required but can be empty
    placeholder="Type or Pate 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)