File size: 2,437 Bytes
44eb4d0
 
b7059fb
44eb4d0
 
b7059fb
 
 
 
cef8088
b7059fb
cef8088
 
26c1e88
 
44eb4d0
26c1e88
44eb4d0
26c1e88
44eb4d0
 
 
2625151
46f22b1
2625151
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import streamlit as st
import random
import os
from transformers import AutoTokenizer, AutoModelForSeq2SeqLM

# Nutze os.environ, um auf Secrets zuzugreifen, die in Hugging Face Spaces gespeichert sind
username_secret = os.environ["USER_NAME_SECRET"]
password_secret = os.environ["PASSWORD_SECRET"]

# URL des Logos
logo_url = "https://einfachalex.net/wp-content/uploads/2023/12/einfachchat-1024x597.png"

# Modell und Tokenizer initialisieren
tokenizer = AutoTokenizer.from_pretrained("Kaludi/chatgpt-gpt4-prompts-bart-large-cnn-samsum")
model = AutoModelForSeq2SeqLM.from_pretrained("Kaludi/chatgpt-gpt4-prompts-bart-large-cnn-samsum", from_tf=True)

def generate(prompt, max_new_tokens):
    batch = tokenizer(prompt, return_tensors="pt")
    generated_ids = model.generate(batch["input_ids"], max_new_tokens=max_new_tokens)
    output = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)
    return output[0]

ERLAUBTE_BENUTZER = {
    os.environ["USER_NAME_SECRET"]: os.environ["PASSWORD_SECRET"]
}

def check_login(username, password):
    """Überprüft die Anmeldedaten."""
    return username in ERLAUBTE_BENUTZER and password == ERLAUBTE_BENUTZER[username]

def main_page():
    """Hauptseite der Anwendung, die nach erfolgreicher Anmeldung angezeigt wird."""
    st.markdown(f"<img src='{logo_url}' style='max-height: 100px;'>", unsafe_allow_html=True)  # Logo einfügen
    st.title("ChatGPT_Streamlit-Prompt Generator")
    st.write("Gib eine Rolle ein, und es wird ein Prompt basierend darauf generiert.")
    prompt = st.text_input("Gib eine Rolle ein, Beispiel: Virtueller Assistent", placeholder="Text hier", value="")
    max_new_tokens = st.slider("Wähle die maximale Anzahl an Tokens in der Antwort", min_value=100, max_value=500, value=150, step=10)
    
    if st.button("Generieren"):
        output = generate(prompt, max_new_tokens)
        st.write("Generierter Prompt:")
        st.write(output)

def login_page():
    """Anmeldeseite."""
    st.sidebar.title("Anmeldung")
    username = st.sidebar.text_input("Benutzername")
    password = st.sidebar.text_input("Passwort", type="password")
    if st.sidebar.button("Anmelden"):
        if check_login(username, password):
            # Erfolgreiche Anmeldung, zeigt die Hauptseite an
            main_page()
        else:
            st.sidebar.error("Fehler: Falscher Benutzername oder Passwort.")

if __name__ == "__main__":
    login_page()