다음을 통해 공유


Python S FabrDK 및 Synapse ML(미리 보기)과 함께 에서 Azure OpenAI 사용

Important

이 기능은 미리 보기로 제공됩니다.

이 문서에서는 OpenAI Python SDK를 사용하고 SynapseML을 사용하여 Fabric에서 Azure OpenAI를 사용하는 방법의 예를 보여줍니다.

필수 조건

OpenAI Python SDK는 기본 런타임에 설치되지 않으므로 먼저 설치해야 합니다.

%pip install openai==0.28.1

채팅

ChatGPT 및 GPT-4는 대화형 인터페이스에 최적화된 언어 모델입니다. 여기에 제시된 예제는 간단한 채팅 완료 작업을 보여주며 자습서로 사용할 수 없습니다.

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

출력

    assistant: Orange who?

응답을 스트리밍할 수도 있습니다.

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)

출력

    assistant: Orange who?

포함(Embeddings)

포함은 기계 학습 모델 및 알고리즘에서 쉽게 활용할 수 있는 특수한 형식의 데이터 표현입니다. 부동 소수점 숫자의 벡터로 표현되는 텍스트의 정보가 풍부한 의미 체계 의미를 포함합니다. 벡터 공간에서 두 포함 간의 거리는 두 원본 입력 간의 의미론적 유사성과 관련이 있습니다. 예를 들어 두 텍스트가 비슷한 경우 벡터 표현도 유사해야 합니다.

여기에 설명된 예제에서는 포함을 가져오는 방법을 보여주며 이는 자습서로 의도된 것은 아닙니다.

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)

출력

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