|
|
import streamlit as st |
|
|
import random |
|
|
import os |
|
|
from transformers import AutoTokenizer, AutoModelForSeq2SeqLM |
|
|
|
|
|
|
|
|
username_secret = os.environ["USER_NAME_SECRET"] |
|
|
password_secret = os.environ["PASSWORD_SECRET"] |
|
|
|
|
|
|
|
|
logo_url = "https://einfachalex.net/wp-content/uploads/2023/12/einfachchat-1024x597.png" |
|
|
|
|
|
|
|
|
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) |
|
|
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): |
|
|
|
|
|
main_page() |
|
|
else: |
|
|
st.sidebar.error("Fehler: Falscher Benutzername oder Passwort.") |
|
|
|
|
|
if __name__ == "__main__": |
|
|
login_page() |
|
|
|