Del via


Bruk Azure OpenAI i Fabric med Python SDK og Synapse ML (forhåndsversjon)

Viktig

Denne funksjonen er i forhåndsvisning.

Denne artikkelen viser eksempler på hvordan du bruker Azure OpenAI i Fabric ved hjelp av OpenAI Python SDK og bruk av SynapseML.

Forutsetning

OpenAI Python SDK er ikke installert i standard kjøretid, du må først installere den.

%pip install openai==0.28.1

Chat

ChatGPT og GPT-4 er språkmodeller som er optimalisert for samtalegrensesnitt. Eksemplet som presenteres her viser enkle fullføringsoperasjoner for chat og er ikke ment å fungere som en opplæring.

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

Utdata

    assistant: Orange who?

Vi kan også strømme svaret

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)

Utdata

    assistant: Orange who?

Innebygginger

En innebygging er et spesielt datarepresentasjonsformat som maskinlæringsmodeller og algoritmer enkelt kan bruke. Den inneholder informasjonsrik semantisk betydning av en tekst, representert ved en vektor av flytende punkttall. Avstanden mellom to innebygginger i vektorområdet er relatert til semantisk likhet mellom to opprinnelige innganger. Hvis for eksempel to tekster er like, bør vektorrepresentasjonene også være like.

Eksemplet som vises her, viser hvordan du får tak i innebygginger og ikke er ment som en opplæring.

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)

Utdata

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