Freigeben über


Verwenden von Azure OpenAI in Fabric mit Python SDK und Synapse ML (Vorschau)

Wichtig

Dieses Feature befindet sich in der Vorschau.

In diesem Artikel finden Sie Beispiele für die Verwendung von Azure OpenAI in Fabric mit OpenAI Python SDK und mit SynapseML.

Voraussetzungen

OpenAI Python SDK ist nicht in der Standard-Laufzeitumgebung installiert, Sie müssen es zuerst installieren.

%pip install openai==0.28.1

Chat

ChatGPT und GPT-4 sind Sprachmodelle, die für Unterhaltungsschnittstellen optimiert sind. Das hier vorgestellte Beispiel zeigt einfache Vorgänge beim Vervollständigen von Chats und soll nicht als Tutorial dienen.

import openai

response = openai.ChatCompletion.create(
    deployment_id='gpt-35-turbo-0125', # deployment_id could be one of {gpt-35-turbo-0125 or gpt-4-32k}
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Knock knock."},
        {"role": "assistant", "content": "Who's there?"},
        {"role": "user", "content": "Orange."},
    ],
    temperature=0,
)

print(f"{response.choices[0].message.role}: {response.choices[0].message.content}")

Ausgabe

    assistant: Orange who?

Wir können die Antwort auch streamen

response = openai.ChatCompletion.create(
    deployment_id='gpt-35-turbo-0125', # deployment_id could be one of {gpt-35-turbo-0125 or gpt-4-32k}
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Knock knock."},
        {"role": "assistant", "content": "Who's there?"},
        {"role": "user", "content": "Orange."},
    ],
    temperature=0,
    stream=True
)

for chunk in response:
    delta = chunk.choices[0].delta

    if "role" in delta.keys():
        print(delta.role + ": ", end="", flush=True)
    if "content" in delta.keys():
        print(delta.content, end="", flush=True)

Output

    assistant: Orange who?

Einbettungen

Eine Einbettung ist ein spezielles Format der Datendarstellung, das problemlos von Machine Learning-Modellen und -Algorithmen genutzt werden kann. Sie enthält eine informationsreiche semantische Bedeutung eines Texts, die durch einen Vektor von Gleitkommazahlen dargestellt wird. Der Abstand zwischen zwei Einbettungen im Vektorraum hängt mit der semantischen Ähnlichkeit zwischen zwei ursprünglichen Eingaben zusammen. Wenn beispielsweise zwei Texte semantisch sehr ähnlich sind, sollten auch ihre Vektordarstellungen nahe zueinander liegen.

Das hier vorgestellte Beispiel zeigt, wie man Einbettungen erhält, und ist nicht als Tutorial gedacht.

deployment_id = "text-embedding-ada-002" # set deployment_name as text-embedding-ada-002
embeddings = openai.Embedding.create(deployment_id=deployment_id,
                                     input="The food was delicious and the waiter...")
                                
print(embeddings)

Output

    {
      "object": "list",
      "data": [
        {
          "object": "embedding",
          "index": 0,
          "embedding": [
            0.002306425478309393,
            -0.009327292442321777,
            0.015797346830368042,
            ...
            0.014552861452102661,
            0.010463837534189224,
            -0.015327490866184235,
            -0.01937841810286045,
            -0.0028842221945524216
          ]
        }
      ],
      "model": "ada",
      "usage": {
        "prompt_tokens": 8,
        "total_tokens": 8
      }
    }