Condividi tramite


Usare OpenAI di Azure in Fabric con Python SDK e Synapse ML (anteprima)

Importante

Questa funzionalità si trova in anteprima.

Questo articolo illustra come usare Azure OpenAI in Fabric, con OpenAI Python SDK e con SynapseML.

Prerequisiti

OpenAI Python SDK non è installato nel runtime predefinito, bisogna prima installarlo.

%pip install openai==0.28.1

Conversazione

Creare una nuova cella nel notebook di Fabric per usare questo codice, separato dalla cella descritta nel passaggio precedente per installare le librerie openai. GPT-4o e GPT-4o-mini sono modelli linguistici ottimizzati per le interfacce conversazionali. L'esempio presentato qui illustra semplici operazioni di completamento della chat e non è destinato a fungere da esercitazione.

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

Risultato

    assistant: Orange who?

È anche possibile trasmettere la risposta

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)

Risultato

    assistant: Orange who?

Incorporamenti

Creare una nuova cella nel notebook di Fabric per usare questo codice, separato dalla cella descritta nel passaggio precedente per installare le librerie openai. Un incorporamento è un formato speciale di rappresentazione dei dati che può essere facilmente usato da modelli e algoritmi di apprendimento automatico. Contiene un significato semantico ricco di informazioni di un testo, rappresentato da un vettore di numeri a virgola mobile. La distanza tra due incorporamenti nello spazio vettoriale è correlata alla somiglianza semantica tra due input originali. Ad esempio, se due testi sono simili, anche le loro rappresentazioni vettoriali dovrebbero essere simili.

L'esempio illustrato di seguito mostra come ottenere incorporamenti e non è destinato a un'esercitazione.

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)

Risultato

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