Kategorien
Programmierung Tipps & Tricks

genAI4BUW in VS Code mit Continue nutzen: eine Schritt-für-Schritt-Anleitung

Die Integration von KI-Modellen in die eigene Entwicklungsumgebung wird immer einfacher. Mit genAI4BUW steht Studierenden und Mitarbeitenden der Bergischen Universität Wuppertal eine leistungsstarke Plattform zur Verfügung, die verschiedene Open-Source-KI-Modelle anbietet. Besonders praktisch: Über die Continue-Extension für VS Code lassen sich diese Modelle direkt in den Code-Editor einbinden – ideal für Chat und Zusammenfassungen.

1. Vorbereitung: API-Key generieren

Bevor du genAI4BUW in VS Code nutzen kannst, benötigst du einen API-Key. Dieser wird über die Plattform bereitgestellt. So geht’s:

  1. Anmeldung: Logge dich mit deiner Uni-Kennung auf der genAI4BUW-Seite ein.
  2. API-Key generieren: Folge der Anleitung unter Neue freie Modelle für genAI4BUW – API-Zugang, um deinen persönlichen API-Schlüssel zu erstellen.
  3. Key sichern: Kopiere den generierten API-Key und bewahre ihn sicher auf. Du wirst ihn später in der Continue-Konfiguration benötigen.

2. Continue-Extension installieren

Die Continue-Extension ist der Schlüssel zur Integration von genAI4BUW in VS Code. Installiere sie direkt über den Visual Studio Marketplace oder suche in VS Code nach „Continue“ und installiere die Extension.

3. Konfiguration der Continue-Extension

Nach der Installation musst du Continue so konfigurieren, dass es mit genAI4BUW kommuniziert. Erstelle oder bearbeite die Konfigurationsdatei config.json in deinem VS Code-Projekt. Füge folgende Einstellungen hinzu:

{
  "name": "genAI4BUW",
  "version": "1.0.3",
  "schema": "v1",
  "models": [
    {
      "name": "Mistral Small 4 119B – Coding",
      "provider": "openai",
      "model": "inferenz-mistral-small-4-119b",
      "apiBase": "https://chat.kiconnect.nrw/api/v1",
      "apiKey": "DEIN_API_KEY",
      "roles": [
        "chat",
        "summarize"
      ],
      "defaultCompletionOptions": {
        "temperature": 0.1,
        "topP": 0.8
      }
    },
    {
      "name": "GPT OSS 120B – General Reasoning",
      "provider": "openai",
      "model": "inferenz-gpt-oss-120b",
      "apiBase": "https://chat.kiconnect.nrw/api/v1",
      "apiKey": "DEIN_API_KEY",
      "roles": [
        "chat",
        "summarize"
      ],
      "defaultCompletionOptions": {
        "temperature": 0.2,
        "topP": 0.8
      }
    }
  ]
}

Wichtig: Ersetze DEIN_API_KEY mit deinem tatsächlichen genAI4BUW-API-Key.

4. Funktionen nutzen

Mit dieser minimal Konfiguration kannst du genAI4BUW in VS Code für folgende Funktionen nutzen:

  • Chat: Stelle Fragen direkt im Editor und erhalte Antworten basierend auf den ausgewählten Modellen.
  • Zusammenfassungen: Lass dir Code oder Texte zusammenfassen, um schneller den Überblick zu behalten.

Hinweis: Aktuell werden nur die Rollen chat und summarize unterstützt! Funktionen wie apply, autocomplete und edit sind zurzeit noch nicht verfügbar, sollen aber zu einem späteren Zeitpunkt folgen.

5. Verfügbare Modelle nutzen

genAI4BUW bietet aktuell folgende KI-Modelle an:

Modell-IDBeschreibung
inferenz-gpt-oss-120bFür allgemeines Reasoning
inferenz-qwen3-embedding-8bFür Embeddings
inferenz-e5-mistral-7b-instructFür instruktionsbasierte Aufgaben
inferenz-mistral-small-4-119bFür Coding und Chat

Aktuell sind in der Continue-Extension für VS Code nur die beiden Modelle „Mistral Small 4 119B – Coding“ und „GPT OSS 120B – General Reasoning“ sinnvoll. Diese können zur Zeit nur für Chat und Zusammenfassungen verwendet werden!

6. Fazit

Die Kombination aus genAI4BUW und Continue bietet eine flexible und datenschutzfreundliche Möglichkeit, KI direkt in den Entwicklungsprozess zu integrieren. Besonders für Entwickler:innen, die auf Open-Source-Lösungen setzen, ist dies eine spannende Alternative zu kommerziellen Angeboten.

Wichtig: Aktuell unterstützt genAI4BUW nur die Funktionen Chat und Zusammenfassungen! Funktionen wie apply, autocomplete und edit sind derzeit noch nicht verfügbar und werden voraussichtlich zu einem späteren Zeitpunkt nachgerüstet.

Tipp: Für weitere Informationen zur Continue-Extension besuche die offizielle Dokumentation.

Kategorien
Gastbeitrag Lehren und Lernen Moodle Programmierung

Virtual Programming Lab – Programmieren lehren und lernen leicht gemacht

In vielen fachlichen Disziplinen möchten wir nicht nur Computer-Programme benutzen, die es schon gibt, sondern wollen selber neue Programme entwickeln. Hierzu brauchen wir Programmiersprachen wie C/C++, Python, Java, Octave/Matlab oder andere. Wer schon einmal eine neue Programmiersprache gelernt hat, wird es kennen, dass vor dem ersten Programm die mühsame Installation der notwendigen Software steht.
Das gilt natürlich insbesondere auch für unsere vielen Grundlagenvorlesungen zu Programmiersprachen hier an der Bergischen Universität.

Mit dem Update auf Moodle 4.5 ist nun das Plugin Virtual Programming Lab (VPL) verfügbar. Auf den ersten Blick ist VPL nur ein weiterer Aufgabentyp über den Studierende Quelltext, also Programme, einreichen können.
Aber VPL ist viel mehr: Im Hintergrund versteckt sich eine komplett eingerichtete Programmierumgebung, die es ermöglicht, dass Studierende nur mit dem Browser den kompletten Quelltext schreiben, Programme kompilieren und ausführen, und sogar “debuggen” können, also mit speziellen Programmen, den “Debuggern” auf Fehlersuche gehen.

Das ist alles nur einen Klick entfernt, und erfordert keinerlei Installation von Programmen auf dem privaten Rechner. Und das geht sogar mit Programmen, die eine graphische Ausgabe haben.

Also tschüss Installationsärger und schnell zum “Hello BUW!”.

Programmierumgebung mit Quellcode und Konsolenfenster. Das Ausgabefenster zeigt: "Hello BUW!"
Screenshot der Aktivität “VPL” in Moodle mit Quellcode, Konsole und Ausgabefenster.

Aus Sicht der Lehrenden bietet VPL nicht nur die deutlich vereinfachte Programmierumgebung. Darüber hinaus können beispielsweise automatisierte Tests bereitgestellt werden, mit denen das korrekte Verhalten eines abzugebenden Programms für vordefinierte Eingaben überprüft werden kann. Diese Tests können Studierende zur Selbstkontrolle nutzen oder Lehrende können die Tests sogar in eine automatisierte Lernzielkontrolle mit einbeziehen.
Auch können Ressourcenverbrauch oder Programmgröße der Abgaben limitiert werden sowie verschiedene Abgaben auf ihre Ähnlichkeit hin überprüft werden. Schließlich ist es möglich, zufällige Variationen von Aufgabenstellungen an Studierende zu verteilen.
All diese Optionen stehen natürlich auch dann zur Verfügung, wenn Studierende in fortgeschrittenen Programmiervorlesungen ihre eigene Programmierumgebung außerhalb des Browsers nutzen.

Zusätzlich zur Aktivität, die in den Moodle-Kurs eingebunden werden kann, bringt VPL auch einen neuen Fragetyp für den Moodle-Test mit, der z. B. zur Abfrage von kleineren Programmieraufgaben genutzt werden kann.

Die Liste der unterstützten Programmiersprachen und -umgebungen ist beachtlich und umfasst mindestens Ada, Assembler, C/C++, C#, D, Fortran, Go, Haskell, Java, JavaScript, Julia, HTML, Kotlin, Lisp, Lua, Octave/Matlab, Pascal, Pearl, PHP, Prolog, Python, R, Ruby, Rust, Scala, Shell (Bash), SQL, TypesSript, Verilog, VHDL und VisualBasic.

Grund genug, sich VPL einmal genauer anzuschauen.

Weitere Details zum Plugin und zur Nutzung finden sich im Moodle-Glossar oder auf der Webseite zum Virtual Programming Lab.

Kategorien
Dienste des ZIM Programmierung

BUW API

Einführung

Die BUW-API ist ein Webservice, um Daten unterschiedlicher Quellsysteme in unterschiedlichen Formaten (TXT, CSV, SOAP, Rest…) in einem einheitlich geordneten Format abrufbar zu machen.
Dadurch wird die Möglichkeit gegeben, verschiedene Universitätsanwendungen Daten austauschen zu lassen, ohne eine eigene vollständige Middleware bauen zu müssen, da die BUW-API flexibel weitere Quellsysteme einbinden kann.
Die Daten können dabei zwischengespeichert oder, soweit dies technisch möglich ist, “live” zur Verfügung gestellt werden.

Daten können öffentlich abrufbar sein, wenn sie grundsätzlich für die Öffentlichkeit von Interesse sein können und keinem besonderen (Daten-)Schutz unterliegen oder erst nach Registrierung über einen API-Key zugänglich sein.

Definition einer API

Allgemeines zu einer API

Eine API, kurz für Anwendungsprogrammierschnittstelle, ist ein Satz von Regeln und Protokollen, die Softwareanwendungen verwenden, um miteinander zu kommunizieren. Sie nimmt Anfragen entgegen und liefert die entsprechenden Antworten zurück. Auf diese Weise können verschiedene Softwareanwendungen effizient zusammenarbeiten und Informationen austauschen.

Wir verwenden eine REST API

Eine REST-API (Representational State Transfer) ist eine Art von API, die auf den Prinzipien des HTTP-Protokolls basiert. Sie verwendet Standard-HTTP-Methoden wie GET, POST, PUT und DELETE, um Daten zu lesen, zu erstellen, zu aktualisieren und zu löschen. Durch die Zustandslosigkeit und die Nutzung von Standard-HTTP-Protokollen ermöglicht sie eine einfache Integration zwischen verschiedenen Softwareanwendungen über das Internet.

Vorteile iner REST API

  1. Einfachheit: REST-APIs verwenden das HTTP-Protokoll und sind daher einfacher zu implementieren und zu verwenden als SOAP, das eine umfangreichere und komplexere Spezifikation hat.
  2. Effizienz: REST-APIs können verschiedene Datenformate wie JSON, XML usw. verwenden, während SOAP nur XML verwendet, was zu größeren Nachrichten und langsamerer Verarbeitung führt.
  3. Skalierbarkeit: Da REST-APIs zustandslos sind, können sie leicht skaliert werden, um eine große Anzahl von Anfragen zu verarbeiten, während SOAP zustandsbehaftete Operationen unterstützt, die schwieriger zu skalieren sind.
  4. Browser-Kompatibilität: REST-APIs können direkt von Webbrowsern aus aufgerufen werden, was sie ideal für den Einsatz in Webanwendungen macht, während SOAP dies nicht nativ unterstützt.

API-Design

Wir verwenden ein Pfad-Format, das die Version der API, den Themenbereich der Daten und eine konkrete Abfrage einschließt, die ggf. durch Parameter weiter spezifiziert werden kann.

Beispiel für eine Response zu einem Call:

{
  "records": [
    {
      "sn": "Willis",
      "cn": "Bruce Willis",
      "givenname": "Bruce",
      "displayname": "Willis, Bruce",
      "gender": "Herr",
      "title": "k.A.",
      "customerid": "bwillis",
      "uid": "ABC-123",
      "mail": [
        "bwillis@uni-wuppertal.de"
      ],
      "telephonenumber": [
        "+492024390000"
      ],
      "mobile": [
        "k.A."
      ],
      "facsimiletelephonenumber": [
        "k.A."
      ],
      "roomnumber": [
        "T.11.00"
      ],
      "o": [
        "ZIM"
      ],
      "labeleduri": [
        "https://uni-w.de"
      ]
    }
  ]
}


API-Dokumentation

Eine komplette Dokumentation steht hier bereit:

https://apic.uni-wuppertal.de/v1/doc/index.php

Nach Registrierung können für jeden User auch individuelle Dokumentationen bereitgestellt werden.

API-Zugriff

Alle Aufrufe sind zurzeit nur aus dem Uni-Netz möglich. Es gibt zurzeit nur zwei öffentliche Aufrufe, für alle anderen ist ein API Key notwendig, der auf Anfrage zugeteilt wird.

Zukunft der APIs

Unser Ziel mit der BUW API ist es, die IT-Systeme unserer Universität weiter zu vernetzen. Wir möchten mehr Schnittstellen für mehr Einrichtungen der Universität verfügbar machen, um eine effizientere und effektivere Kommunikation zu ermöglichen. Eine Grundidee dabei ist es Insellösungen and der BUW – sofern gewünscht – in Zukunft ein Stück weit zu reduzieren. Dies ermöglicht eine bessere Kommunikation und eine einheitliche Datenbasis für Systeme an der BUW bereit zu stellen. Darüber hinaus sind wir bestrebt, öffentliche Informationen der universitären Öffentlichkeit zur Verfügung zu stellen. Im Sinne der Digitalisierung fördern wir die Entwicklung weiterer Anwendungen, die auf diesen Informationen basieren, als ein weiterer wichtiger Schritt in Richtung einer integrierten und digitalisierten Universität ist.

Wenn Sie Interesse an der Nutzung oder Bereitstellung von Daten aus universitären Systemen haben, melden Sie sich gerne unter api at uni-wuppertal.de.

geschrieben von: Florian Siegmund und Tim-Florian Reinartz

Kategorien
Dienste des ZIM Lehren und Lernen Moodle Open Source Programmierung Software

Digitale Abgaben 1.0

In den vergangenen Jahren wurde sowohl von Studierenden als auch Lehrenden der Bergischen Universität Wuppertal (BUW) immer wieder der Wunsch geäußert Prüfungsleistungen (Hausarbeiten, Ausarbeitungen, Praktikumsberichte usw.) auch digital einreichen und bewerten zu können. Um diese Anforderungen rechtssicher abzubilden, hat das Zentrum für Informations- und Medienverarbeitung (ZIM) der BUW nach Rücksprache mit dem Rektorat und der Verwaltung hierfür ein Verfahren entwickelt.

Kategorien
PHP Programmierung

Einheitlicher PHP-Code auf Knopfdruck

Ob man alleine an einem Projekt arbeit oder im Team: Code sollte übersichtlich und einheitlich formatiert sein. Fragen wie

  • Kommen geschweifte Klammern ans Zeilenende oder an den Anfang der nächsten Zeile?
  • Werden TRUE und false groß oder klein geschrieben?
  • In welcher Reihenfolge stehen private, public und protected in einer Klasse?

sind durchaus kontrovers. Aber selbst wenn man sich beim Programmieren alle Mühe gibt sämtliche Absprachen einzuhalten, so wird es dennoch Abweichungen geben. Damit ihr dies in PHP-Projekten nicht händisch machen müsst, gibt es ein paar nette Werkzeuge.

Die Tools

Je nachdem ob ihr mit Windows, Linux oder Mac OS arbeitet, verläuft die Installation anders, aber die jeweiligen Projektseiten liefern dazu alles.

Der Workflow

Ihr habt nun zwei Möglichkeiten euren Code überarbeiten zu lassen: innerhalb des Editors oder auf der Kommandozeile. Atom könnt ihr nun automatisch beim Speichern den CS-Fixer ausführen lassen oder ihr macht dies manuell.

Das Ergebnis

Damit ihr wisst warum sich das alles lohnt 😉

Vorher

Nachher