Delen via


Azure OpenAI gebruiken in Fabric met Python SDK en Synapse ML (preview)

Belangrijk

Deze functie is beschikbaar als preview-versie.

In dit artikel vindt u voorbeelden van het gebruik van Azure OpenAI in Fabric met behulp van de OpenAI Python SDK en het gebruik van SynapseML.

Vereisten

OpenAI Python SDK is niet geïnstalleerd in de standaardruntime. U moet deze eerst installeren.

%pip install openai==0.28.1

Chat

ChatGPT en GPT-4 zijn taalmodellen die zijn geoptimaliseerd voor gespreksinterfaces. Het voorbeeld dat hier wordt weergegeven, toont eenvoudige bewerkingen voor het voltooien van chats en is niet bedoeld als zelfstudie.

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}")

Uitvoer

    assistant: Orange who?

We kunnen het antwoord ook 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)

Uitvoer

    assistant: Orange who?

Insluitingen

Een insluiting is een speciale indeling voor gegevensweergave die machine learning-modellen en -algoritmen eenvoudig kunnen gebruiken. Het bevat informatierijke semantische betekenis van een tekst, vertegenwoordigd door een vector van drijvendekommanummers. De afstand tussen twee insluitingen in de vectorruimte is gerelateerd aan de semantische gelijkenis tussen twee oorspronkelijke invoerwaarden. Als twee teksten bijvoorbeeld vergelijkbaar zijn, moeten hun vectorweergaven ook vergelijkbaar zijn.

In het voorbeeld dat hier wordt getoond, ziet u hoe u insluitingen kunt verkrijgen en niet is bedoeld als zelfstudie.

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)

Uitvoer

    {
      "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
      }
    }