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 muestra cómo usar Azure OpenAI en Fabric, con el SDK de Python de OpenAI y con 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

El chat

Cree una nueva celda en el cuaderno de Fabric para usar este código, independiente de la celda descrita en el paso anterior para instalar las bibliotecas de Openai. GPT-4o y GPT-4o-mini 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-4o', # deployment_id could be one of {gpt-4o or gpt-4o-mini}
    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-4o', # deployment_id could be one of {gpt-4o or gpt-4o-mini}
    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

Cree una nueva celda en el cuaderno de Fabric para usar este código, independiente de la celda descrita en el paso anterior para instalar las bibliotecas de Openai. 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
      }
    }