Compartir a través de


Uso de Azure OpenAI en Fabric con el SDK de Python y Synapse ML (versión preliminar)

Importante

Esta característica se encuentra en versión preliminar.

En este artículo se muestran ejemplos de cómo usar Azure OpenAI en Fabric mediante el SDK de Python de OpenAI y el uso de SynapseML.

Requisitos previos

El SDK de Python de OpenAI no está instalado en el runtime predeterminado; primero debe instalarlo.

%pip install openai==0.28.1

Chat

ChatGPT y GPT-4 son modelos de lenguaje optimizados para interfaces conversacionales. En el ejemplo que se presenta aquí se muestran las operaciones de finalización de chat simples y no está pensado para servir como tutorial.

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

Salida

    assistant: Orange who?

También podemos transmitir la respuesta

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)

Salida

    assistant: Orange who?

Inserciones

Una inserción es un formato especial de representación de datos que los modelos y algoritmos de Machine Learning pueden usar fácilmente. Contiene significado semántico con gran cantidad de información de un texto, representado por un vector de números de punto flotante. La distancia entre dos inserciones en el espacio vectorial está relacionada con la similitud semántica entre dos entradas originales. Por ejemplo, si hay dos textos similares, sus representaciones vectoriales también deberían ser similares.

En el ejemplo que se muestra aquí se muestra cómo obtener inserciones y no está pensado como tutorial.

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)

Salida

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