Menggunakan Azure OpenAI di Fabric dengan Python SDK dan Synapse ML (pratinjau)

Penting

Fitur ini dalam pratinjau.

Artikel ini memperlihatkan contoh cara menggunakan Azure OpenAI di Fabric menggunakan OpenAI Python SDK dan menggunakan SynapseML.

Prasyarat

OpenAI Python SDK tidak diinstal dalam runtime default, Anda harus terlebih dahulu menginstalnya.

%pip install openai==0.28.1

Obrolan

ChatGPT dan GPT-4 adalah model bahasa yang dioptimalkan untuk antarmuka percakapan. Contoh yang disajikan di sini menampilkan operasi penyelesaian obrolan sederhana dan tidak dimaksudkan untuk berfungsi sebagai tutorial.

import openai

response = openai.ChatCompletion.create(
    deployment_id='gpt-35-turbo', # deployment_id could be one of {gpt-35-turbo, gpt-35-turbo-16k}
    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}")

Hasil

    assistant: Orange who?

Kita juga dapat melakukan streaming respons

response = openai.ChatCompletion.create(
    deployment_id='gpt-35-turbo', # deployment_id could be one of {gpt-35-turbo, gpt-35-turbo-16k}
    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)

Hasil

    assistant: Orange who?

Penyelesaian

Titik akhir penyelesaian dapat digunakan untuk berbagai macam tugas. Titik akhir ini menyediakan antarmuka text-in, text-out yang sederhana namun kuat untuk salah satu model kami. Anda memasukkan beberapa teks sebagai perintah, dan model menghasilkan penyelesaian teks yang mencoba mencocokkan konteks atau pola apa pun yang Anda berikan. Misalnya, jika Anda memberi API perintah, "Seperti yang dikatakan Descartes, saya pikir, oleh karena itu," itu mengembalikan penyelesaian " Saya" dengan probabilitas tinggi.

Contoh yang disajikan di sini menampilkan operasi penyelesaian sederhana dan tidak dimaksudkan untuk berfungsi sebagai tutorial.

Anda dapat menyimpulkan kalimat menggunakan titik akhir penyelesaian.

prompt = "The food was delicious and the waiter"
completion = openai.Completion.create(deployment_id='text-davinci-003',  # deployment_id could be text-davinci-003 or code-cushman-002
                                        prompt=prompt, 
                                        stop=".", 
                                        temperature=0)
                                
print(f"{prompt}{completion['choices'][0]['text']}.")

Hasil

    The food was delicious and the waiter was very friendly.

Anda dapat menggunakan titik akhir penyelesaian untuk menghasilkan kode dari bahasa alami.

deployment_id = "code-cushman-002" # deployment_id could be text-davinci-003 or code-cushman-002
prompt = "# Python 3\n# Write a quick sort function\ndef quicksort(arr):"
response = openai.Completion.create(
    deployment_id=deployment_id,
    prompt=prompt,
    max_tokens=200,
    temperature=0,
    stop=["#"]
)
text = response['choices'][0]['text']
print(prompt + text)

Hasil

    # Python 3
    # Write a quick sort function
    def quicksort(arr):
        if len(arr) <= 1:
            return arr
        pivot = arr[len(arr) // 2]
        left = [x for x in arr if x < pivot]
        middle = [x for x in arr if x == pivot]
        right = [x for x in arr if x > pivot]
        return quicksort(left) + middle + quicksort(right)

    print(quicksort([3, 6, 8, 10, 1, 2, 1]))

Semua fungsi dalam satu panggilan

Tidak ada langkah-langkah untuk bagian ini di Python SDK.

Penyematan

Penyematan adalah format representasi data khusus yang dapat digunakan oleh model dan algoritma pembelajaran mesin. Ini berisi arti semantik yang kaya informasi dari teks, yang diwakili oleh vektor angka titik mengambang. Jarak antara dua penyematan di ruang vektor terkait dengan kesamaan semantik antara dua input asli. Misalnya, jika dua teks serupa, representasi vektornya juga harus serupa.

Contoh yang ditunjukkan di sini menampilkan cara mendapatkan penyematan dan tidak dimaksudkan sebagai tutorial.

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)

Hasil

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