Azure OpenAI nutzt fortschrittliche Machine-Learning- und KI-Algorithmen, um eine gute Developer Experience zu erzielen. In diesem Beitrag werden wir einige Code-Beispiele betrachten und zeigen, wie Azure OpenAI zur Verbesserung des jeweiligen Codes verwendet werden kann.
Um die Beispiele in diesem Beitrag nachzuvollziehen, wird einmal mehr ein Azure-OpenAI-Account benötigt, der zunächst beantragt sein will. Anschließend erstellen sie im Azure Portal einen „Azure OpenAI“, wechseln darin zum „Azure OpenAI-Studio“ und erstellen in diesem ein „Deployment“, welches auf dem von ihnen spezifizierten „Modell“ in der gewünschten „Version“ basiert.
Die Kosten für die einzelnen Modelle und Versionen variieren und werden über die Azure-Subscription abgerechnet, die sie beim Beantragen von Azure OpenAI für ihren Mandanten angegeben haben. Wir haben die erforderlichen Schritte in Teil 1 dieser kleinen Workshop-Serie erläutert.
Azure OpenAI bietet eine Vielzahl von Funktionen und Tools, die Entwicklern und Entwicklerinnen helfen, ihre Arbeit zu optimieren. Ein wichtiger Aspekt davon ist die Möglichkeit, Code zu kommentieren. Kommentare sind nicht für andere Entwickler, sondern auch für den erstellenden Entwickler selbst wichtig, wenn er auch nach langer Zeit den selbst geschriebenen Coder analysieren und verstehen muss.
Um Code durch Azure OpenAI kommentieren zu lassen, können Entwickler den Chat-Bot bei gegebenem Code-Fragment einfach darum bitten. Aus …
def add(a, b):
return a + b
… wird dann …
# Funktion „add“ nimmt zwei Argumente „a“ und „b“ entgegen
def add(a, b):
# Die Funktion gibt die Summe von „a“ und „b“ zurück
return a + b
Ein weiterer wichtiger Aspekt von Azure OpenAI ist die Möglichkeit, fehlerhaften Code durch das Modell korrigieren zu lassen. Folgende Funktion zum Dividieren sollte (mathematisch korrekt) eine Fehlermeldung liefern, wenn der Nenner Null ist.
def divide(a, b):
return a / b
Wir benötigen also in unserem Code eine saubere Routine zur Fehlerbehandlung, die eine Division durch Null erkennt und abfängt. Für Azure OpenAI ist das ein Leichtes und der Bot liefert das Ergebnis.
def divide(a, b):
if b == 0:
# Wenn b = 0 ist, kann die Division nicht durchgeführt werden.
# Wir geben deshalb einen Fehler zurück.
return „Fehler: Division durch Null ist nicht definiert“
else:
# Andernfalls führen wir die Division durch und geben das Ergebnis zurück
return a / b
![](https://www.drilling-azure.de/wp-content/uploads/2024/07/code-korrigieren1.png)
Selbstverständlich kann Azure OpenAI ihren Code auch verbessern. Im nächsten Beispiel betrachten wir ein einfaches Python-Code-Snippet, das die Fakultät einer Zahl berechnet:
def factorial(n):
if n == 0:
return 1
else:
return n * factorial(n-1)
Dieser Code funktioniert gut für kleine Zahlen, aber für große Zahlen kann er aufgrund des rekursiven Ansatzes sehr langsam sein. Mit Azure OpenAI können sie diesen Code optimieren. Azure OpenAI schlägt u. a. eine iterative anstelle der rekursiven Lösung vor.
def factorial(n):
result = 1
for i in range(1, n+1):
result *= i
return result
![Azure OpenAI ist auch in der Lage, Code in seiner Ausführung effizienter zu machen.](https://www.drilling-azure.de/wp-content/uploads/2024/07/code-optimieren1-e1721940344137.png)
Hier ein weiteres Beispiel für ineffizienten Code zum Berechnen der Fibonacci-Folge:
def fibonacci(n):
if n == 0:
return 0
elif n == 1:
return 1
else:
return fibonacci(n-1) + fibonacci(n-2)
Die Funktion arbeitet ebenfalls ineffizient, weil auch sie wieder rekursiv ist und daher viel Speicherplatz benötigt. Um den Code zu optimieren, bitte sie Azure OpenAI eine iterative Alternative zu verwenden. Das Ergebnis steht wieder instantan zur Verfügung:
def fibonacci(n):
if n == 0:
return 0
elif n == 1:
return 1
else:
prev1 = 0
prev2 = 1
for i in range(2, n+1):
current = prev1 + prev2
prev1 = prev2
prev2 = current return current
![Azure OpenAI optimiert das Berechnen der Fibonacci-Folge durch einen iterativen Ansatz.](https://www.drilling-azure.de/wp-content/uploads/2024/07/code-optimieren2-e1721940472397.png)
Fazit
Die Beispiele hier zeigen erneut, dass bereits die aktuellen Modell-Versionen des Standard-Chat-Modells von OpenAI in der Lage sind, Entwicklerinnen und Entwicklern eine ganze Reihe von Routineaufgaben abzunehmen. Dazu gehört auch das Kommentieren, Korrigieren und Optimieren von Code. Bei komplexeren Aufgabestellungen gilt es aber freilich weiterhin, ein Auge auf die Ergebnisse zu haben und sie ausgiebig zu testen.