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 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')
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.26.1.. 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 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 use the appropriate Python libraries from these domains, e.g. pandas, seaborn, nltk, gensim, scrapy and bia-bob.

    ## Python specific instructions

    When writing python code, you can only use the libraries: pandas, seaborn, nltk, gensim, scrapy.
    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.26.1.. 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 NLP ? Erklär mir ganz kurz worum es sich dabei handelt.

Hallo! Natürlich kenne ich mich mit NLP aus. NLP steht für Natural Language Processing, also die Verarbeitung natürlicher Sprache. Es handelt sich dabei um ein Gebiet der Informatik, das sich mit der Interaktion zwischen Computern und Menschen durch natürliche Sprache befasst. NLP-Techniken ermöglichen es Computern, menschliche Sprache zu verstehen, zu interpretieren und darauf zu reagieren. Dies umfasst Aufgaben wie das Erkennen von Spracheinheiten, die Erkennung von Semantik, Syntax und Pragmatik, die Texterkennung, die Textgenerierung und die Übersetzung von Sprache. NLP wird in vielen Bereichen eingesetzt, darunter Chatbots, Sprachassistenten, Übersetzungssoftware, Spracherkennungssysteme und mehr.

%%bob
Hallo. Kennst du dich aus mit Web-Scraping?
Erklär mir kurz worum es sich dabei handelt.
Nenne ein paar passende Python-Bibliotheken.

Hallo! Natürlich kenne ich mich mit Web-Scraping aus. Web-Scraping ist der Prozess des automatischen Abrufs und Auswertens von Daten aus Webseiten. Es ermöglicht es, Informationen und Daten von Webseiten zu extrahieren, die man manuell nicht einfach abrufen kann. Web-Scraping wird oft verwendet, um aktuelle Daten zu sammeln, Marktforschung zu betreiben, Preisvergleiche durchzuführen und vieles mehr.

Einige passende Python-Bibliotheken für Web-Scraping sind:

  • BeautifulSoup: Eine Bibliothek zur Parsing von HTML- und XML-Dokumenten.

  • Scrapy: Ein Open-Source-Web-Crawler und -Scraping-Framework.

  • Selenium: Eine Bibliothek zur Automatisierung von Web-Browsern, die auch für das Scraping von Webseiten verwendet werden kann.

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.