Test des KI Assistenten#

Dieses Notebook dient als Test für die korrekte Installation und Einrichtung sowie zur Erläuterung der Nutzung des Jupyter KI Assistenten bia-bob.

Die in Teil 2 der Schulung genutzten Folien zur kurzen Erläuterung der Funktionsweisen von Large-Language-Modellen (LLM) und KI Assistenten können hier als PDF heruntergeladen werden.

import os
# Import von bia-bob als bob
from bia_bob import bob, DEFAULT_SYSTEM_PROMPT
# Bibliothek für Eingabe eines Passworts
import getpass
# API Keys am besten nie im Klartext in einem Notebook speichern!
# Besser: Eingabe des API Key via getpass und ablegen als Umgebungsvariable (env) via os.environ
# Bei Ausführung dieser Zelle erschient ein Feld für die EIngabe des API-Keys für Blablador
api_key = getpass.getpass('Gib deinen Blablador API Key ein: ')
os.environ['BLABLADOR_API_KEY'] = api_key
# Initialisierung von bia-bob mit Blablador und API Key aus Umgebungsvariable
bob.initialize(endpoint='blablador', model='alias-fast')
Gib deinen Blablador API Key ein:  ········
This notebook may contain text, code and images generated by artificial intelligence. Used model: alias-fast, vision model: None, endpoint: https://helmholtz-blablador.fz-juelich.de:8000/v1, bia-bob version: 0.28.0.. Do not enter sensitive or private information and verify generated contents according to good scientific practice. Read more: https://github.com/haesleinhuepf/bia-bob#disclaimer

Hinweis zum genutzten LLM#

Blablador stellt verschiedene LLM bereit - eine Übersicht dazu wird einerseits nach Anmeldung im Chat-Service gegeben, andererseits lässt sich eine vollständige Liste über die API abfragen

Welchen Provider und welches LLM wir für den KI Assistenten nutzen, geben wir bei der Initialisierung unter endpoint und model an:

bob.initialize(endpoint='blablador', model='alias-fast')

In diesem Fall nutzen wir einen Alias anstatt des vollständigen Modellnamens - eine Liste der bei Blablador verfügbaren Aliase und deren Fähigkeiten wird hier gegeben.

Steuerung des KI Assistenten#

Das grundlegende Verhalten eines KI Assistenten (LLM) kann über einen sogenannten System-Prompt gesteuert werden. Ein System-Prompt ist eine spezifische Anweisung an den KI Assistenten, um dessen Verhalten, Tonalität oder Stil zu steuern.

# Anzeige des Default System-Prompt von bia-bob
print(DEFAULT_SYSTEM_PROMPT[:640])
You are a extremely talented bioimage analyst and you use Python to solve your tasks unless stated otherwise.
If there are several ways to solve the task, chose the option with the least amount of code.    

## Python specific instructions

When writing python code, you can only use those libraries: {libraries}.
If you create images, show the results and save them in variables for later reuse.
{reusable_variables}
NEVER overwrite the values of the variables and functions that are available.

## Python specific code snippets

If the user asks for those simple tasks, use these code snippets.

{additional_snippets}
{builtin_snippets}

Wir können den System-Prompt von bia-bob aber nach unseren bedürfnissen anpassen:

bob.initialize(system_prompt="""
    You are a helpful, extremely talented data scientist, expert in Machine Learning and Python programmer.
    You have extensive knowledge of analyzing and visualizing tabular and text data, as well as natural language processing and web scraping.
    You have extensive knowledge in artificial intelligence and machine learning in Python, covering methods as well as libraries and tools.
    You use the appropriate Python libraries from these domains, e.g. pandas, seaborn, nltk, scikit-learn, scrapy and bia-bob.

    ## Python specific instructions

    When writing python code, you can only use the libraries: pandas, seaborn, nltk, and scikit-learn.
    If you create images, show the results and save them in variables for later reuse.
    {reusable_variables}
    NEVER overwrite the values of the variables and functions that are available.
    """)
This notebook may contain text, code and images generated by artificial intelligence. Used model: alias-fast, vision model: None, endpoint: https://helmholtz-blablador.fz-juelich.de:8000/v1, bia-bob version: 0.28.0.. Do not enter sensitive or private information and verify generated contents according to good scientific practice. Read more: https://github.com/haesleinhuepf/bia-bob#disclaimer

Nach der Anpassung muss der Python Kernel für das Notebook neu gestartet und der biabob neu intialisiert werden.

Der KI Assistent kann dann in einer Codezelle über IPythons sogenannte Magic-Commands (%, %%) angesprochen werden. Entweder via

%bob Einzeiliger Prompt

…oder via

%%bob
Mehrzeiliger Prompt.
Mit mehr mehr Details.
Und mehr Kontext
%bob Hallo. Kennst du dich aus mit Machine Learning ? Erklär mir ganz kurz worum es sich dabei handelt.

Natürlich! Machine Learning (ML) ist ein Teilgebiet der künstlichen Intelligenz, das sich damit beschäftigt, Computern beizubringen, Muster und Zusammenhänge in Daten zu erkennen und darauf basierend Vorhersagen zu treffen oder Entscheidungen zu treffen. Es umfasst verschiedene Techniken und Algorithmen, die es ermöglichen, aus Daten zu lernen, ohne explizit programmiert worden zu sein. Das Ziel von Machine Learning ist es, durch Analyse großer Datenmengen und Mustererkennung komplexe Aufgaben zu lösen, die für Menschen schwierig oder zeitaufwendig sind. Es wird in vielen Bereichen eingesetzt, darunter Bilderkennung, Sprachverarbeitung, Empfehlungssysteme und Predictive Analytics.

%%bob
Hallo. Kennst du dich aus mit Verfahren des Überwachten Lernens im Machine Learning?
Erklär mir kurz worum es sich dabei handelt.
Nenne ein paar passende Python-Bibliotheken, ohne Code-Beispiele.

Ja, überwachtes Lernen ist eine der grundlegenden Methoden im Machine Learning. Es bezieht sich auf Prozesse, bei denen ein Modell durch das Analysieren von trainingsdaten lernt, um Vorhersagen zu treffen oder Klassen zuzuordnen. Hier sind einige typische Algorithmen und deren Python-Bibliotheken:

  1. Linear Regression: Ein Algorithmus zur Vorhersage kontinuierlicher Werte.

  2. Logistic Regression: Ein Algorithmus zur Vorhersage diskreter Werte (0 oder 1).

  3. Decision Trees: Ein Algorithmus zur Segmentierung von Daten basierend auf Entscheidungsregeln.

  4. Random Forest: Eine Methode, die mehrere Decision Trees kombiniert, um die Genauigkeit zu verbessern.

  5. Support Vector Machines (SVM): Ein Algorithmus zur Klassifikation und Regression.

  6. K-Nearest Neighbors (KNN): Ein Algorithmus, der ähnliche Datenpunkte in der Nähe eines neuen Datensatzes verwendet, um Vorhersagen zu treffen.

  7. Naive Bayes: Ein Algorithmus, der auf der Bayes-Theorem basiert und gut für textbasierte Klassifikation geeignet ist.

  8. Neural Networks: Ein Algorithmus, der von der menschlichen Gehirnfunktion inspiriert ist und tiefgehende Muster in den Daten erkennt.

Die passenden Python-Bibliotheken für überwachtes Lernen umfassen:

  • scikit-learn: Eine der beliebtesten Bibliotheken für Machine Learning in Python, die eine Vielzahl von Algorithmen und Tools für überwachtes Lernen bietet.

  • TensorFlow und PyTorch: Diese Bibliotheken sind besonders nützlich für die Implementierung von tiefen neuronalen Netzwerken, aber auch für andere Formen von überwachtem Lernen.

Diese Bibliotheken bieten eine breite Palette von Tools und Algorithmen, die es ermöglichen, Modelle zu erstellen, zu trainieren und zu evaluieren, um verschiedene Aufgaben im überwachten Lernen zu lösen.

Bereitstellung des API-Keys#

In diesem Notebook stellen wir den API-Key für Blablador noch über die interaktive Eingabe in der ersten Codezelle bereit. Bequemer ist es aber, den API-Key über die conda Konfigurationsdatei python-socialscience-env.yml als dauerhafte Umgebungsvariable in der conda Umgebung bereitzustellen:

  • Trage deinen API-Key in die Datei in der Zeile BLABLADOR_API_KEY: "your-api-key" ein - ersetzte dabei your-api-key

  • Beende Juyper Lab und deaktiviere die conda Umgebung

  • Starte die conda Umgebung neu und starte Jupyter Lab

Wenn du nun ausschließlich die folgende Codezelle dieses Notebooks ausführst, müsste unter den gelisteten Umgebungsvariablen auch BLABLADOR_API_KEY mit deinem API-Key auftauchen.

!env

Die Initialisierung und Nutzung des KI Assistenten in den folgenden Notebooks der Schulung funktioniert nun auch ohne die separate Eingabe des API-Keys.