Integrieren von Azure OpenAI mit Ihrer App

Abgeschlossen

Azure OpenAI bietet sowohl sprachspezifische SDKs und eine REST-API, mit denen Entwickler KI-Funktionen zu ihren Anwendungen hinzufügen können. Generative KI-Funktionen in Azure OpenAI werden über Modelle bereitgestellt. Die im Azure OpenAI-Dienst verfügbaren Modelle gehören verschiedenen Familien mit jeweils eigenem Schwerpunkt an. Damit Sie eines dieser Modelle verwenden können, müssen Sie die Bereitstellung über den Azure OpenAI Service durchführen.

Erstellen einer Azure OpenAI-Ressource

Eine Azure OpenAI-Ressource kann sowohl über die Azure-Befehlszeilenschnittstelle (CLI) als auch über das Azure-Portal bereitgestellt werden. Die Erstellung der Azure OpenAI-Ressource über das Azure-Portal ähnelt der Bereitstellung einzelner Azure KI Services-Ressourcen und ist Teil der Azure KI Services-Services.

  1. Navigieren Sie zum Azure-Portal.
  2. Suchen Sie nach Azure OpenAI, und klicken Sie nach der Auswahl auf Erstellen.
  3. Geben Sie die entsprechenden Werte für die leeren Felder ein, und erstellen Sie die Ressource.

Die möglichen Regionen für Azure OpenAI sind derzeit begrenzt. Wählen Sie die Region aus, die Ihrem physischen Standort am nächsten kommt, oder den nächstgelegenen Bereich, der die Verfügbarkeit für das/die Modell(e) aufweist, das/die Sie verwenden möchten.

Nachdem die Ressource erstellt wurde, verfügen Sie über Schlüssel und einen Endpunkt, die Sie in Ihrer App verwenden können.

Auswählen und Bereitstellen eines Modells

Jede Modellfamilie zeichnet sich durch unterschiedliche Aufgaben aus, und in jeder Familie gibt es unterschiedliche Funktionen der Modelle. Modellfamilien werden in drei Standard Familien unterteilt:

  • Generative Pre-trained Transformer (GPT) – Modelle, die natürliche Sprache und etwas Code verstehen und erzeugen. Diese Modelle eignen sich am besten für allgemeine Aufgaben, Unterhaltungen und Chatformate.
  • Code (gpt-3und früher) – Codemodelle werden auf GPT-Modellen aufgebaut und auf Millionen von Codezeilen trainiert. Diese Modelle können Code verstehen und generieren, einschließlich der Interpretation von Kommentaren oder natürlicher Sprache, um Code zu generieren. gpt-35-turbo und spätere Modelle verfügen über diese Codefunktionalität, ohne dass ein separates Codemodell erforderlich ist.
  • Einbettungen: Diese Modelle können Einbettungen verstehen und verwenden, bei denen es sich um ein spezielles Format von Daten handelt, das von Machine Learning-Modellen und -Algorithmen verwendet werden kann.

Dieses Modul konzentriert sich auf allgemeine GPT-Modelle, wobei andere Modelle in anderen Modulen behandelt werden.

Bei älteren Modellen werden die Modellfamilie und die Fähigkeit im Namen des Basismodells angegeben, wie z. B. text-davinci-003, was angibt, dass es sich um ein Textmodell mit davinci-Ebenenfunktion handelt, und dem Bezeichner 3. Details zu Modellen, Fähigkeitsstufen und Namenskonventionen finden Sie auf der Dokumentationsseite Azure OpenAI Models.

Bei neueren Modellen wird angegeben, um welche gpt-Generation es sich handelt und ob es sich um die turbo-Version, wie beispielsweise gpt-35-turbo handelt, die das Modell GPT 3.5 Turbo darstellt.

Zum Bereitstellen eines Modells, das Sie verwenden können, navigieren Sie zu Azure AI Studio, und wechseln Sie zur Seite Bereitstellungen. Im Lab im weiteren Verlauf dieses Moduls wird genau beschrieben, wie Sie dabei vorgehen müssen.

Authentifizierung und Spezifikation des bereitgestellten Modells

Wenn Sie ein Modell in Azure OpenAI bereitstellen, wählen Sie einen Bereitstellungsnamen, den Sie ihm geben. Beim Konfigurieren der App müssen Sie den Ressourcenendpunkt, den Schlüssel und den Bereitstellungsnamen angeben, um festzulegen, an welches Bereitstellungsmodell die Anforderung gesendet werden soll. Auf diese Weise können Sie verschiedene Modelle innerhalb derselben Ressource bereitstellen und abhängig von der Aufgabe Anforderungen an das entsprechende Modell senden.

Eingabeaufforderungsengineering

Wie die Eingabeaufforderung geschrieben wird, wirkt sich ganz erheblich auf die Reaktion des KI-Modells aus. Wenn als Eingabeaufforderung eine einfache Anfrage wie „Was ist Azure OpenAI?“ verwendet wird, erhalten Sie häufig eine allgemeine Antwort wie bei Nutzung einer Suchmaschine.

Wenn Sie jedoch weitere Details zu den Aspekten angeben, die Sie in der Antwort wünschen, erhalten Sie eine spezifischere Antwort. Beispiel: Bei folgender Eingabeaufforderung:

Classify the following news headline into 1 of the following categories: Business, Tech, Politics, Sport, Entertainment

Headline 1: Donna Steffensen Is Cooking Up a New Kind of Perfection. The Internet’s most beloved cooking guru has a buzzy new book and a fresh new perspective
Category: Entertainment

Headline 2: Major Retailer Announces Plans to Close Over 100 Stores
Category:

Wird die „Kategorie:“ unter der Überschrift wahrscheinlich mit „Business“ ausgefüllt.

Mehrere ähnliche Beispiele finden Sie im Playground von Azure AI Studio in der Dropdownliste Beispieleingabeaufforderungen. Versuchen Sie, so spezifisch wie möglich anzugeben, was Sie als Reaktion vom Modell haben möchten, und Sie werden möglicherweise überrascht sein, wie aufschlussreich die Antwort ausfallen kann!

Hinweis

Es kann niemals mit Sicherheit davon ausgegangen werden, dass Antworten aus einem KI-Modell sachgerecht oder richtig sind. Teams oder Personen, die mit der Entwicklung und Bereitstellung von KI-Systemen beauftragt sind, sollten Schäden aktiv identifizieren, messen und mindern. Es liegt in Ihrer Verantwortung, alle Antworten aus einem KI-Modell zu überprüfen und KI verantwortungsvoll zu nutzen. Weitere Richtlinien zur verantwortungsvollen Verwendung von Azure OpenAI-Modellen finden Sie in den Transparenzhinweisen von Microsoft zu Azure OpenAI.

Weitere Informationen finden Sie auf der Dokumentationsseite zum Thema Prompt Engineering.

verfügbaren Endpunkten

Auf Azure OpenAI kann über eine REST-API oder über ein SDK zugegriffen werden, das für Python, C#, JavaScript und vieles mehr verfügbar ist. Die für die Interaktion mit einem bereitgestellten Modell verfügbaren Endpunkte werden unterschiedlich verwendet, und mit bestimmten Endpunkten können nur bestimmte Modelle verwendet werden. Verfügbare Endpunkte:

  • Completion – Vom Modell wird eine Aufforderung verwendet und mindestens eine vorhergesagte Vervollständigung generiert. Dieser Playground wird im Studio angezeigt, wird aber in diesem Modul nicht ausführlich behandelt.
  • ChatCompletion – Vom Modell werden Eingaben in Form einer Chatunterhaltung aufgenommen (bei der Rollen mit der gesendeten Nachricht angegeben werden), und die nächste Chatvervollständigung wird generiert.
  • Embeddings – Das Modell nimmt Eingaben an und gibt eine Vektordarstellung dieser Eingabe zurück.

Zum Beispiel ist die Eingabe für ChatCompletion eine Konversation mit klar definierten Rollen für jede Nachricht:

{"role": "system", "content": "You are a helpful assistant, teaching people about AI."},
{"role": "user", "content": "Does Azure OpenAI support multiple languages?"},
{"role": "assistant", "content": "Yes, Azure OpenAI supports several languages, and can translate between them."},
{"role": "user", "content": "Do other Azure AI Services support translation too?"}

Wenn Sie dem KI-Modell eine echte Unterhaltung verfügbar machen, kann es eine bessere Antwort generieren, in der Ausdrucksweise, Formulierung und Kontext präziser ausfallen. Der Endpunkt ChatCompletion ermöglicht es dem ChatGPT-Modell, eine realistischere Unterhaltung zu führen, indem der Verlauf des Chats mit der nächsten Benutzernachricht gesendet wird.

ChatCompletion ermöglicht auch Szenarien ohne Chat, z. B. Zusammenfassungen oder die Extraktion von Entitäten. Die Umsetzung erreichen Sie, indem Sie eine kurze Unterhaltung bereitstellen und dabei die Systeminformationen und die gewünschten Informationen zusammen mit der Benutzereingabe angeben. Wenn Sie beispielsweise eine Aufgabenbeschreibung generieren möchten, stellen Sie für ChatCompletion etwa die folgende Unterhaltung als Eingabe bereit.

{"role": "system", "content": "You are an assistant designed to write intriguing job descriptions. "},
{"role": "user", "content": "Write a job description for the following job title: 'Business Intelligence Analyst'. It should include responsibilities, required qualifications, and highlight benefits like time off and flexible hours."}

Hinweis

Completion ist für alle gpt-3-Generierungsmodelle verfügbar, während ChatCompletion die einzige unterstützte Option für gpt-4-Modelle und bei Verwendung des gpt-35-turbo-Modells der bevorzugte Endpunkt ist. Das Lab in diesem Modul verwendet gpt-35-turbo mit dem ChatCompletion-Endpunkt.