Azure OpenAI für einen individuellen Chat Bot nutzen

Darius S. | Softwareentwickler
3/5/2024
Blog

Individuelle Chatbots einfach erstellen und integrieren

Mithilfe von Azure OpenAI können die KI-Dienste von Azure genutzt werden. Auf der MS Learn-Plattform kann man die Grundlagen des Azure OpenAI Service kennenlernen. Link zur MS Learn Plattform

In diesem Artikel soll es darum gehen das Sprachmodell als individuellen Chatbot zu nutzen.

Voraussetzungen für die Nutzung

Um Azure OpenAI als Ressource zu nutzen, wird ein Azure-Abonnement benötigt, und um die Dienste freizuschalten, muss eine spezielle Anfrage gestellt werden. Die Freischaltung der AI-Funktionen kann laut Microsoft bis zu 7 Werktage dauern. Link zur Microsoft Learning-Seite

Erstellen einer Azure OpenAI Ressource

Nachdem die Voraussetzungen erfüllt sind, kann im Azure-Portal eine neue Ressource vom Typ Azure OpenAI erzeugt werden. Im Azure OpenAI Studio muss ein Sprachmodell deployed werden, mit dem wir im Folgenden arbeiten. Als Grundlage dienen hier die GPT-Modelle von OpenAI, wobei in der kostenfreien Variante nicht die neuesten Modelle genutzt werden können. Eine detaillierte Anleitung zum Erstellen der Ressource, dem Navigieren im Azure OpenAI Studio und dem Deployen eines Modells ist unter folgendem Link zu finden: Link zur detaillierten Anleitung.

Individueller Chatbot im Azure OpenAI Studio

Chatbot erstellen und im Playground testen

Im Azure OpenAI Studio können wir uns über den Playground → Chat-Tab im Browser ausprobieren.

Hier besteht die Möglichkeit, Nachrichten zu schreiben, die unser Chatbot beantwortet. Die Art der Antwort erinnert an KI-Chatbot-Antworten, wie sie inzwischen von ChatGPT und anderen Produkten bekannt sind.

Konfiguration des Chatbots für individuelles Verhalten

Das Besondere an diesem ‚Playground‘ ist die Möglichkeit, den Bot zu konfigurieren. Wir können durch Sprache dem Bot eine Einstellung oder Verhaltensweise vorgeben. Ein einfaches Beispiel ist die Vorgabe: „Du beendest jede Antwort mit den Worten ‚Ich hoffe, ich konnte Ihnen behilflich sein.‘“ Jetzt wird der Bot bei der Interaktion mit dem User immer mit diesem Satz enden.

Integration des Chatbots in Anwendungen

API-Verbindung zum Chatbot herstellen

Um diesen Chatbot tatsächlich in einer Anwendung zu nutzen, müssen wir ihn über eine API erreichen. Ausführliche Informationen zur Azure OpenAI Service API sind hier zu finden: Link zur API-Dokumentation

Nutzung der Azure OpenAI API: API-Schlüssel und Endpoint

An dieser Stelle habe ich ein einfaches Beispiel. Ich möchte mit Postman einen Request an unsere API senden, sodass ich Nachrichten mit dem Chatbot austauschen kann.

Dafür muss in Postman die API-Version als Parameter und der API-Key als Autorisierung für den Request angegeben werden. Zum Zeitpunkt dieses Blogs ist die aktuelle API-Version ‚2024-02-01‘. Im Azure-Portal sind für die OpenAI-Ressource zwei API-Schlüssel hinterlegt; diese können bei Bedarf neu generiert werden. Die Schlüssel sind im Azure-Portal in der angelegten Ressource unter dem Tab ‚Keys and Endpoint‘ zu finden.

In Postman wird dann im Authorization-Tab der API-Key hinterlegt. Den Post findet man hier.

Hier wird der Domainname der eigenen Azure-Ressource und der Name des Deployments angegeben.

Beispiel: Chatbot-Request über Postman

API-Konfiguration in Postman

Bei dieser Vorgehensweise ist zu berücksichtigen, dass die API kein Gedächtnis für den Chatverlauf oder die Konfiguration hat. Das bedeutet, dass das gleiche Deployment für verschiedene Chatverläufe und Konfigurationen genutzt werden kann, aber auch, dass beides in jedem Request mitgesandt werden muss. Im Folgenden ist ein beispielhafter Request-Body zu sehen, bei dem die erste Nachricht mit „role“: „system“ der Konfiguration entspricht und die Nachrichten von ‚user‘ und ‚assistant‘ den Chatverlauf zwischen Nutzer und Chatbot festhalten.

Beispiel-Request: Nachrichten mit dem Chatbot austauschen

Request Body:

1{
2    "messages": [
3        {
4            "role": "system",
5            "content": "You are a helpful assistant. You end every response with the statement: Its fun isnt it"
6        },
7        {
8            "role": "user",
9            "content": "Does Azure OpenAI support customer managed keys?"
10        },
11        {
12            "role": "assistant",
13            "content": "Yes, customer managed keys are supported by Azure OpenAI. Its fun isnt it"
14        },
15        {
16            "role": "user",
17            "content": "Do other Azure AI services support this too?"
18        }
19    ]
20}

Beispielhafter Chatbot-Request und Response

Die Antwort des Chatbots ist im Feld choices → message → content zu finden.

Response:

1{
2    "choices": [
3        {
4            "content_filter_results": {
5                "hate": {
6                    "filtered": false,
7                    "severity": "safe"
8                },
9                "self_harm": {
10                    "filtered": false,
11                    "severity": "safe"
12                },
13                "sexual": {
14                    "filtered": false,
15                    "severity": "safe"
16                },
17                "violence": {
18                    "filtered": false,
19                    "severity": "safe"
20                }
21            },
22            "finish_reason": "stop",
23            "index": 0,
24            "logprobs": null,
25            "message": {
26                "content": "Yes, other Azure AI services also support customer managed keys for enhanced security and compliance, including Azure Cognitive Services, Azure Bot Service, and Azure Machine Learning. Its fun isnt it.",
27                "role": "assistant"
28            }
29        }
30    ],
31    "created": 1712937620,
32    "id": "chatcmpl-9DDc4jjvlt8duozz2qmpzyq0zm9tM",
33    "model": "gpt-35-turbo",
34    "object": "chat.completion",
35    "prompt_filter_results": [
36        {
37            "prompt_index": 0,
38            "content_filter_results": {
39                "hate": {
40                    "filtered": false,
41                    "severity": "safe"
42                },
43                "self_harm": {
44                    "filtered": false,
45                    "severity": "safe"
46                },
47                "sexual": {
48                    "filtered": false,
49                    "severity": "safe"
50                },
51                "violence": {
52                    "filtered": false,
53                    "severity": "safe"
54                }
55            }
56        }
57    ],
58    "system_fingerprint": null,
59    "usage": {
60        "completion_tokens": 36,
61        "prompt_tokens": 75,
62        "total_tokens": 111
63    }
64}

Fazit

Auf diesem Weg lassen sich die Azure OpenAI-Ressourcen nutzen, um einen individuellen Chatbot zu gestalten und über API-Requests mit ihm Nachrichten auszutauschen.

Darius S. | Softwareentwickler
Zurück zur Übersicht

Gemeinsam Großes schaffen

Wir freuen uns auf ein kostenloses Erstgespräch mit Ihnen!
Unser Geschäftsführer Tibor Csizmadia und unser Kundenbetreuer Jens Walter stehen Ihnen persönlich zur Verfügung. Profitieren Sie von unserer langjährigen Erfahrung und erhalten Sie eine kompetente Erstberatung in einem unverbindlichen Austausch.
Foto von Tibor

Tibor Csizmadia

Geschäftsführer
Foto von Jens

Jens Walter

Projektmanager
Devware GmbH verpflichtet sich, Ihre Privatsphäre zu schützen. Wir benötigen Ihre Kontaktinformationen, um Sie bezüglich unserer Produkte und Dienstleistungen zu kontaktieren. Mit Klick auf Absenden geben Sie sich damit einverstanden. Weitere Informationen finden Sie unter Datenschutz.
Vielen Dank für Ihre Nachricht!

Wir haben Ihre Anfrage erhalten und melden uns in Kürze bei Ihnen.

Falls Sie in der Zwischenzeit Fragen haben, können Sie uns jederzeit unter [email protected] erreichen.

Wir freuen uns auf die Zusammenarbeit!
Oops! Something went wrong while submitting the form.
KontaktImpressumDatenschutz