Azure OpenAI: Chatbot in .NET integrieren

Azure OpenAI: Chatbot in .NET integrieren
05/2024
Darius S. | Solution Engineer

TL;DR

Dieses Azure OpenAI Tutorial zeigt, wie ein individueller Chatbot mit dem Azure OpenAI Service erstellt, konfiguriert und über die API in eine .NET-Anwendung integriert wird. Anhand von Playground-Tests und Postman-Beispielen wird erklärt, wie Requests aufgebaut sind und wie Chatverlauf sowie Systemkonfiguration korrekt übergeben werden.

Individuelle Chatbots einfach erstellen und integrieren

Azure OpenAI Tutorial .NET Chatbot Integration Guide

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 Azure OpenAI Tutorial wird im Rahmen eines .NET Chatbot Integration Guide gezeigt, wie sich das Sprachmodell als individueller Chatbot nutzen und in Anwendungen integrieren lässt.

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.

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.

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.

Chat-Interface mit Setup-Bereich und Antwort: „Ich bin ein AI-Sprachmodell …“

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.

Systemnachricht fordert Abschluss mit: „Ich hoffe, ich konnte Ihnen behilflich sein.“

Chat startet mit Sam, einem freundlichen Assistenten, der sich namentlich vorstellt.

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.

Azure-Portal zeigt API-Schlüssel, Endpunkt und Regionen für OpenAI-Services.

In Postman wird dann im Authorization-Tab der API-Key hinterlegt.

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

Beispiel: Chatbot-Request über Postman

Postman-Schnittstelle mit konfiguriertem API-Key für Azure OpenAI-Endpunkt.

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. | Solution Engineer
Darius S. | Solution Engineer

KI-Integration

Einstufung, Kennzeichnung und Datenwege klären wir am Projektanfang, nicht in der Abnahme. Auf .NET-Fundament, seit 2004, ISO 27001 und ISO 9001 zertifiziert.
Pfeil-Icon – Mehr erfahren

Mehr zum Thema

Pfeil nach rechts (Verlinkung)
Unittests in C#
09/2026

Unittests in C#

Blauer Pfeil nach rechts (Verlinkung)
EU AI Act: was er für den Mittel­stand bedeutet
09/2026

EU AI Act: was er für den Mittel­stand bedeutet

Blauer Pfeil nach rechts (Verlinkung)
Effizientes Prompt engineering in Claude 2026
09/2026

Effizientes Prompt engineering in Claude 2026

Blauer Pfeil nach rechts (Verlinkung)
Effizientes Prompt engineering in Claude 2026
09/2026

Effizientes Prompt engineering in Claude 2026

Blauer Pfeil nach rechts (Verlinkung)