Partager via


Utiliser Azure OpenAI dans Fabric avec le Kit de développement logiciel (SDK) Python et Synapse ML (préversion)

Important

Cette fonctionnalité est en préversion.

Cet article montre des exemples d’utilisation d’Azure OpenAI dans Fabric à l’aide du Kit de développement logiciel (SDK) Python OpenAI et d’utilisation de SynapseML.

Prérequis

Le Kit de développement logiciel (SDK) Python OpenAI n’est pas installé dans le runtime par défaut, vous devez d’abord l’installer.

%pip install openai==0.28.1

Conversation instantanée

ChatGPT et GPT-4 sont des modèles de langage optimisés pour les interfaces conversationnelles. L’exemple montré ici présente des opérations de saisie semi-automatique de conversation simples et n’est pas destiné à servir de tutoriel.

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

Sortie

    assistant: Orange who?

Nous pouvons aussi diffuser en continu la réponse

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)

Sortie

    assistant: Orange who?

Incorporations

Une incorporation est un format spécial de représentation des données que les modèles et les algorithmes Machine Learning peuvent facilement utiliser. Il contient une signification sémantique d’un texte riche en informations, représenté par un vecteur de nombres à virgule flottante. La distance entre deux incorporations dans l’espace vectoriel est liée à la similarité sémantique entre deux entrées d’origine. Par exemple, si deux textes sont similaires, leurs représentations vectorielles doivent également l’être.

L’exemple montré ici présente la manière d’obtenir des incorporations et n’est pas destiné à servir de tutoriel.

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)

Sortie

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