Condividi tramite


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

Importante

Questa funzionalità si trova in anteprima.

Questo articolo fornisce esempi di come usare OpenAI di Azure in Fabric usando OpenAI Python SDK e SynapseML.

Prerequisiti

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

%pip install openai==0.28.1

Chat

ChatGPT e GPT-4 sono modelli di linguaggio 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-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}")

Output

    assistant: Orange who?

È anche possibile trasmettere la risposta

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)

Output

    assistant: Orange who?

Incorporamenti

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)

Output

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