Task A: Ein Generativer ChatBot#

Intelligente, dialog-fähige Assistenten sind seit mehreren Jahrzehnten ein Ziel in der Forschung der Künstlichen Intelligenz. Der Erfolg von ChatGPT [OpenAI, 2022] und im speziellen die besonderen Fähigkeiten des ChatBots auch komplexe inhaltliche Zusammenhänge zu verstehen –selbst über lange Zeiträume oder längere Texte– und (zumindest in einem auf der Oberfläche) angemessenem Maße zu reagieren, haben dies aktuell auch in den Fokus einer breiten Öffentlichkeit gerückt (für mehr technische Hintergründe siehe [Ouyang et al., 2022] und zum (empfohlenen) ausprobieren gehe auf https://chat.openai.com/).

Kompilieren und Ausführen der C++ Programme#

Sie können weiterhin auf dem JupyterHub arbeiten (Wählen sie dabei das “Software Development” Image (3.3.0)!). Hierbei wird direkt das entsprechende gitlab in ihren Arbeitsbereich geupdated. Auf dem Hub können sie eine IDE im Browser nutzen (siehe Beschreibung hier), wobei wir an diesem Termin mit einem einfachen Terminal auskommen.

Installationshinweise: Es existieren verschiedene Compiler: GNU Compiler Collection (GCC), Clang, Intel C/C++ Compiler (ICC), Microsoft Visual C++, IBM XL C/C++, uvm. Wir verwenden GCC oder Clang.

  • Linux Installation eines Paketes (z. B. gcc) aus der Paketverwaltung, z.B. unter Ubuntu: sudo apt-get install gcc

  • Windows Installation:

  • Mac: gcc sollte bereits vorinstalliert sein, ansonsten die Entwicklertools / Xcode installieren wodurch Clang automatisch im Terminal verfügbar wird.

Der Code als Grundlage für die Task ist in diesem gitlab zu finden.

Als Nachschlagewerk können sie weiter gut diese Referenz nutzen https://cppreference.com/ .

Background: Eliza – ein frühes Chatprogramm#

Eliza war ein frühes Chatprogramm, das in den 1960er von Joseph Weizenbaum entwickelt wurde [Weizenbaum, 1966]. Es war eines der ersten Programme, das versuchte, menschliche Sprache zu verstehen und darauf zu reagieren. Eliza wurde als Therapie-Programm konzipiert und sollte dazu dienen, Menschen zu helfen, ihre Probleme durch Gespräche zu lösen.

Eliza basierte auf einem einfachen Regelsystem, das auf Mustererkennung und Textersetzung basierte. Das Programm analysierte die Eingabe des Benutzers, suchte nach bestimmten Schlüsselwörtern oder Phrasen und antwortete dann mit vorprogrammierten Antworten. Dabei gab sich das Programm als eine Art Psychotherapeut aus und stellte dem Benutzer Fragen, um mehr Informationen zu erhalten.

Obwohl Eliza im Vergleich zu heutigen Chatprogrammen sehr einfach war, war es ein wichtiger Meilenstein in der Entwicklung von künstlicher Intelligenz und menschenähnlichen Interaktionen zwischen Mensch und Maschine. Heute wird Eliza immer noch als Lehrbeispiel für Programmierung und KI genutzt.

  • Eliza wurde in der Programmiersprache MAD-SLIP geschrieben.

  • Das Programm nutzt eine einfache Mustererkennung und Textersetzung, um auf die Eingaben des Benutzers zu reagieren.

  • Eliza basiert auf einem Regelsystem, das aus einer Liste von vordefinierten Mustern und passenden Antworten bestand.

  • Die Eingaben des Benutzers werden in Schlüsselwörter und Phrasen zerlegt, um sie mit den Mustern abzugleichen.

  • Eliza stellt dem Benutzer Fragen, um mehr Informationen zu erhalten, und antwortet dann mit vordefinierten Antworten.

(OpenAI’s ChatGPT, personal communication, 11.3.2023)

Referenzen#

1

OpenAI. Introducing chatgpt. OpenAI blog post, 2022. URL: https://openai.com/blog/chatgpt.

2

Long Ouyang, Jeff Wu, Xu Jiang, Diogo Almeida, Carroll L Wainwright, Pamela Mishkin, Chong Zhang, Sandhini Agarwal, Katarina Slama, Alex Ray, and others. Training language models to follow instructions with human feedback. arXiv preprint arXiv:2203.02155, 2022.

3

Joseph Weizenbaum. Eliza–a computer program for the study of natural language communication between man and machine. Communications of the ACM ACM, 9(1):36–45, 1966. doi:10.1145/365153.365168.