Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Prüfungssimulator Website

Empfohlene Antworten

Hallo an Alle! ),

Ich habe eine kleine Website erstellt, auf der ihr euch Prüfungsfragen generieren lassen könnt, die dann korrigiert werden. Ihr findet sie unter folgender IP:

(Entfernt, siehe Antwort von @hellerKopf direkt unter dem Beitrag)

Mein Ausbilder hat gesagt, dass KI generierter Inhalt (In die Webseite ist eine DeepSeek API integriert) immer mit Vorsicht zu genießen ist, da diese hallizinuieren kann, und man dann Gefahr läuft bei scheinbarem Lernerfolg, sich eine fachspezifische Fehlhaltung anzutrainieren. Er rät mir dazu, dieses Tool nur unter qualifizierter Fachaufsicht zu nutzen. Dies möchte ich an euch weitergeben.

Nichts desto trotz, poste ich hier mal die Hauptteil Snippets, (damit ihr wisst was passiert):

Die Aufgabenstellung:


with st.sidebar:
    st.header("Konfiguration")
    exam_part = st.selectbox("Prüfungsteil", ["AP1 (Kernqualifikation)", "AP2 (Fachqualifikation)"])
    skill_level = st.select_slider("Anforderungsniveau", options=["Anfänger", "Fortgeschrittene", "Experten"])
    
    category_options = list(TOPIC_HIERARCHY.keys()) + ["Eigene Eingabe..."]
    category = st.selectbox("Themenbereich", category_options)
    
    if category == "Eigene Eingabe...":
        final_topic = st.text_input("Spezifisches Thema eingeben:", placeholder="z.B. KI im Unternehmen")
    else:
        sub_topic = st.selectbox("Detailthema", TOPIC_HIERARCHY[category])
        final_topic = f"{category}: {sub_topic}"

    if st.button("Aufgabe generieren", use_container_width=True):
        if not final_topic:
            st.warning("Bitte geben Sie ein Thema ein.")
        else:
            st.session_state.submitted = False
            with st.spinner("IHK-Szenario wird erstellt..."):
                gen_prompt = f"""
                Erstelle eine IHK-Prüfungssituation für {exam_part} zum Thema '{final_topic}'. Niveau: {skill_level}.
                Anforderungen:
                1. 'situation': Fachlich spezifischer Kontext (ca. 150 Wörter).
                2. 'tasks': 4 exakte Handlungsschritte. Weise jedem Schritt 'max_points' zu.
                3. Achte darauf, dass die 4 Aufgaben kontinuierlich aufeinander aufbauen.
                WICHTIG: Die Summe aller 'max_points' muss exakt 100 ergeben.
                JSON: {{
                    "situation": "...",
                    "tasks": [
                        {{"label": "1", "question": "...", "solution": "...", "max_points": 25}},
                        {{"label": "2", "question": "...", "solution": "...", "max_points": 25}},
                        {{"label": "3", "question": "...", "solution": "...", "max_points": 25}},
                        {{"label": "4", "question": "...", "solution": "...", "max_points": 25}}
                    ]
                }}
                """
                data = get_ai_response(gen_prompt)
                if data:
                    st.session_state.situation = data.get('situation', "")
                    st.session_state.tasks = data.get('tasks', [])
                    st.session_state.current_topic = final_topic
                    st.rerun()

Die Korrektur:

if st.session_state.situation:
    st.subheader(f"Thema: {st.session_state.current_topic}")
    st.info(st.session_state.situation)

    with st.form("exam_form"):
        st.write("### Ihre Bearbeitung")
        for i, t in enumerate(st.session_state.tasks):
            st.markdown(f"**Handlungsschritt {t['label']} ({t['max_points']} Punkte)**")
            st.write(t['question'])
            st.text_area("Antwort:", key=f"ans_{i}", height=184, placeholder="Lösung hier eingeben...")
            st.divider()
        
        submit_btn = st.form_submit_button("Prüfung zur Korrektur einreichen", use_container_width=True)

    if submit_btn or st.session_state.submitted:
        st.session_state.submitted = True
        total_achieved = 0
        all_answers_text = ""

        st.header("Korrekturbogen des Prüfers")
        
        for i, t in enumerate(st.session_state.tasks):
            user_ans = st.session_state.get(f"ans_{i}", "").strip()
            max_p = t['max_points']
            all_answers_text += f"Aufgabe {t['label']}: {user_ans}\n"


        with st.container():
                st.markdown(f"#### Analyse Schritt {t['label']}")
                if user_ans:
                    with st.spinner(f"Prüfe Schritt {t['label']}..."):
                        eval_prompt = f"""
                        Bewerte die Antwort '{user_ans}' nach IHK-Standard gegen die Lösung '{t['solution']}'.
                        Vergib Punkte von 0 bis maximal {max_p}.
                        JSON: {{ 'punkte': int, 'feedback': 'kurze Begründung mit Tipps' }}
                        """
                        result = get_ai_response(eval_prompt)
                        if result:
                            p = min(result.get('punkte', 0), max_p)
                            total_achieved += p
                            st.metric(f"Punkte für Schritt {t['label']}", f"{p} / {max_p}")
                            st.success(result.get('feedback', 'Kein Feedback verfügbar.'))
                else:
                    st.error(f"Schritt {t['label']} nicht bearbeitet (0 / {max_p} Punkte).")
                
                with st.expander("Referenz-Musterlösung anzeigen"):
                    st.write(t['solution'])
                st.divider()


Gerne dürft ihr mich auch anschreiben, wenn ihr gute Ideen habt, oder etwas verbessern wollt...

Mit einem Link auf eine Seite unter der IP, die eine chinesische KI nutzen soll und zu China Mobile Communications Corporation gehört, wirst du hier rege zur Diskussion über KI und LLM beitragen können.

Einen Aufruf deiner Seite erwarte ich allerdings nicht.
Zumindest nicht von den Usern, die ein wenig Sicherheitsempfinden haben.

Bearbeitet von hellerKopf

  • Autor

Hallo! Ist der helle Kopf ein Chat-Moderator?
Da ich leider noch nicht das Geld dazu hatte eine Domain anzumelden, fehlte mir das SSL/TLS Zertifikat. Man sollte es aber denke ich den Usern selbst überlassen, ob sie dieses Sicherheitsempfinden haben, oder ob sie die IP nicht sehen wollen. Denn wenn hier jeder meine Posts ändern kann, wie ist dann die Integrität der Information gewahrt? Eines der drei Schutzziele der IT-Sicherheit ;)...

vor 3 Minuten, Jamigeo hat gesagt:

Hallo! Ist der helle Kopf ein Chat-Moderator?

nein, ich habe lediglich meine Bedenken gegen die IP gemeldet, da der IP Range zu den 'Blacklisted IPs" auf allen meinen Servern gehört.
Die Menge der von China Mobile Communications Corporation ausgehenden Angriffe, die ich monitore, gehört zu den Top 5.
Für eine einfache Python-Webseite mit Flask oder Django würde ich zuerst PythonAnywhere oder ähnliches nehmen. Der Free-Account erlaubt eine Python-Webapp unter einer PythonAnywhere-Subdomain

  • Autor
vor 1 Minute, hellerKopf hat gesagt:

nein, ich habe lediglich meine Bedenken gegen die IP gemeldet, da der IP Range zu den 'Blacklisted IPs" auf allen meinen Servern gehört.
Die Menge der von China Mobile Communications Corporation ausgehenden Angriffe, die ich monitore, gehört zu den Top 5.
Für eine einfache Python-Webseite mit Flask oder Django würde ich zuerst PythonAnywhere oder ähnliches nehmen. Der Free-Account erlaubt eine Python-Webapp unter einer PythonAnywhere-Subdomain

Das Backend läuft über eine AWS EC2 Instanz in einer deutschen Region. Kann denn eine API Einbindung auf eine Website Schaden bei demjenigen verursachen, der auf den Server zugreift, auf dem die Website läuft? Und wie kann, bzw. könnte in einem globalen Zeitalter, es den Architekten des Netzwerkes, nicht möglich sein, eine Firma vom Netz zu nehmen? Ich habe für mich entschieden, dass ich grundsätzlich ersteinmal jedem Grundvertrauen entgegenbringe. Und vor allem auch den Chinesen. Viele Gründe sprechen dafür.

Wie gesagt: '36.128.0.0 - 36.191.255.255' gehört zu den Hauptverdächtigen auf meiner Angriffsliste.

IP Location

China China Xicheng Qu China Mobile Communications Corporation

ASN

China AS9808 CHINAMOBILE-CN China Mobile Communications Group Co., Ltd., CN (registered Jan 10, 2000)

Und deepseek hat ja einen eigenen Ruf.

Wenn du Zugriffauf eine AWS EC2 hast, könntest du auch da deine Webseite betreiben.

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Konto

Navigation

Suchen

Suchen

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.