Del via


Brug Azure OpenAI i Fabric med Python SDK og Synapse ML (prøveversion)

Vigtigt

Denne funktion er en prøveversion.

I denne artikel vises eksempler på, hvordan du bruger Azure OpenAI i Fabric ved hjælp af OpenAI Python SDK og SynapseML.

Forudsætninger

OpenAI Python SDK er ikke installeret i standardkørslen. Du skal først installere det.

%pip install openai==0.28.1

Chat

ChatGPT og GPT-4 er sprogmodeller, der er optimeret til samtalegrænseflader. I det eksempel, der præsenteres her, vises enkle handlinger til fuldførelse af chat og er ikke beregnet til at fungere som et selvstudium.

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?

Vi kan også streame 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)

Output

    assistant: Orange who?

Integreringer

En integrering er et særligt datarepræsentationsformat, som modeller til maskinel indlæring og algoritmer nemt kan bruge. Den indeholder oplysningerrig semantisk betydning af en tekst, der repræsenteres af en vektor af flydende tal. Afstanden mellem to integreringer i vektorområdet er relateret til den semantiske lighed mellem to oprindelige input. Hvis to tekster f.eks. er ens, bør deres vektorrepræsentationer også være ens.

Det eksempel, der vises her, viser, hvordan du henter integreringer og ikke er beregnet som et selvstudium.

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