Logo Zephyrnet

Khám phá API OpenAI bằng Python – KDnuggets

Ngày:

Khám phá API OpenAI bằng Python
Hình ảnh được tạo bằng chữ tượng hình.ai
 

Ai chưa nghe nói về OpenAI? Phòng thí nghiệm nghiên cứu AI đã thay đổi thế giới nhờ sản phẩm nổi tiếng ChatGPT.

Nó thực sự đã thay đổi cục diện triển khai AI và nhiều công ty hiện đang gấp rút trở thành công ty lớn tiếp theo.

Bất chấp nhiều sự cạnh tranh, OpenAI vẫn là công ty phù hợp cho mọi nhu cầu kinh doanh về Generative AI vì nó có một trong những mô hình tốt nhất và sự hỗ trợ liên tục. Công ty cung cấp nhiều mô hình Generative AI tiên tiến nhất với nhiều khả năng thực hiện nhiệm vụ khác nhau: Tạo hình ảnh, Chuyển văn bản thành giọng nói, v.v. 

Tất cả các mô hình OpenAI cung cấp đều có sẵn thông qua lệnh gọi API. Với mã Python đơn giản, bạn đã có thể sử dụng mô hình. 

Trong bài viết này, chúng ta sẽ khám phá cách sử dụng API OpenAI với Python và các tác vụ khác nhau mà bạn có thể thực hiện. Tôi hy vọng bạn học được nhiều điều từ bài viết này.

Để theo dõi bài viết này, có một số điều bạn cần chuẩn bị.

Điều quan trọng nhất bạn cần là Khóa API từ OpenAI, vì bạn không thể truy cập các mô hình OpenAI nếu không có khóa. Để có quyền truy cập, bạn phải đăng ký tài khoản OpenAI và yêu cầu Khóa API trên trang tài khoản. Sau khi nhận được key, hãy lưu nó vào nơi nào đó mà bạn có thể nhớ được vì nó sẽ không xuất hiện nữa trong giao diện OpenAI.

Điều tiếp theo bạn cần đặt là mua tín dụng trả trước để sử dụng API OpenAI. Gần đây, OpenAI đã công bố những thay đổi về cách thức công việc thanh toán của họ. Thay vì thanh toán vào cuối tháng, chúng tôi cần mua tín dụng trả trước cho lệnh gọi API. Bạn có thể ghé thăm Định giá OpenAI trang để ước tính tín dụng bạn cần. Bạn cũng có thể kiểm tra của họ trang mô hình để hiểu mô hình nào bạn yêu cầu.

Cuối cùng, bạn cần cài đặt gói OpenAI Python trong môi trường của mình. Bạn có thể làm điều đó bằng cách sử dụng đoạn mã sau.

pip install openai

 

Sau đó, bạn cần đặt biến Môi trường khóa OpenAI bằng mã bên dưới.

import os

os.environ['OPENAI_API_KEY'] = 'YOUR API KEY'

 

Khi mọi thứ đã sẵn sàng, hãy bắt đầu khám phá API của các mô hình OpenAI bằng Python.

Điểm nổi bật của API OpenAI là mô hình Tạo văn bản của họ. Họ Mô hình ngôn ngữ lớn này có thể tạo đầu ra văn bản từ kiểu nhập văn bản được gọi là lời nhắc. Lời nhắc về cơ bản là hướng dẫn về những gì chúng ta mong đợi từ mô hình, chẳng hạn như phân tích văn bản, tạo bản nháp tài liệu, v.v.

Hãy bắt đầu bằng cách thực hiện lệnh gọi API tạo văn bản đơn giản. Chúng tôi sẽ sử dụng mô hình GPT-3.5-Turbo từ OpenAI làm mô hình cơ sở. Đây không phải là mẫu máy tiên tiến nhất nhưng loại rẻ nhất thường đủ để thực hiện các tác vụ liên quan đến văn bản.

from openai import OpenAI
client = OpenAI()

completion = client.chat.completions.create(
  model="gpt-3.5-turbo",
  messages=[
    {"role": "system", "content": "You are a helpful assistant."},
    {"role": "user", "content": "Generate me 3 Jargons that I can use for my Social Media content as a Data Scientist content creator"}
  ]
)

print(completion.choices[0].message.content)

 

  1. “Giải phóng sức mạnh của phân tích dự đoán để thúc đẩy các quyết định dựa trên dữ liệu!”
  2. “Đi sâu vào đại dương dữ liệu để khám phá những hiểu biết có giá trị.”
  3. “Chuyển đổi dữ liệu thô thành thông tin hữu ích thông qua các thuật toán nâng cao.”

Lệnh gọi API cho mô hình Tạo văn bản sử dụng Điểm cuối API chat.completions để tạo phản hồi văn bản từ lời nhắc của chúng tôi. 

Có hai tham số bắt buộc để tạo văn bản: mô hình và tin nhắn. 

Đối với mô hình, bạn có thể kiểm tra danh sách các mô hình mà bạn có thể sử dụng trên trang mô hình liên quan. 

Đối với tin nhắn, chúng tôi chuyển một từ điển có hai cặp: vai trò và nội dung. Khóa vai trò đã chỉ định người gửi vai trò trong mô hình cuộc hội thoại. Có 3 vai trò khác nhau: hệ thống, người dùng và trợ lý.

Bằng cách sử dụng vai trò trong thông báo, chúng tôi có thể giúp thiết lập hành vi của mô hình và một ví dụ về cách mô hình sẽ trả lời lời nhắc của chúng tôi.

Hãy mở rộng ví dụ về mã trước đó với trợ lý vai trò để đưa ra hướng dẫn về mô hình của chúng tôi. Ngoài ra, chúng tôi sẽ khám phá một số tham số cho mô hình Tạo văn bản để cải thiện kết quả của chúng.

completion = client.chat.completions.create(
    model="gpt-3.5-turbo",
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Generate me 3 jargons that I can use for my Social Media content as a Data Scientist content creator."},
        {"role": "assistant", "content": "Sure, here are three jargons: Data Wrangling is the key, Predictive Analytics is the future, and Feature Engineering help your model."},
        {"role": "user", "content": "Great, can you also provide me with 3 content ideas based on these jargons?"}
    ],
    max_tokens=150,
    temperature=0.7,
    top_p=1,
    frequency_penalty=0
)

print(completion.choices[0].message.content)

 

Tất nhiên rồi! Dưới đây là ba ý tưởng nội dung dựa trên các thuật ngữ được cung cấp:

  1. “Giải phóng sức mạnh của việc sắp xếp dữ liệu: Hướng dẫn từng bước dành cho các nhà khoa học dữ liệu” - Tạo một bài đăng blog hoặc hướng dẫn bằng video giới thiệu các phương pháp và công cụ tốt nhất để sắp xếp dữ liệu trong một dự án khoa học dữ liệu trong thế giới thực.
  1. “Tương lai của phân tích dự đoán: Xu hướng và đổi mới trong khoa học dữ liệu” - Viết một bài viết lãnh đạo tư tưởng thảo luận về các xu hướng và công nghệ mới nổi trong phân tích dự đoán cũng như cách chúng định hình tương lai của khoa học dữ liệu.
  1. “Làm chủ kỹ thuật tính năng: Các kỹ thuật để tăng hiệu suất mô hình” - Phát triển một loạt đồ họa thông tin hoặc phương tiện truyền thông xã hội nêu bật các kỹ thuật kỹ thuật tính năng khác nhau và tác động của chúng trong việc cải thiện độ chính xác và hiệu quả của các mô hình học máy.

Kết quả đầu ra tuân theo ví dụ mà chúng tôi đã cung cấp cho mô hình. Việc sử dụng vai trò trợ lý sẽ hữu ích nếu chúng ta có một phong cách hoặc kết quả nhất định mà chúng ta muốn mô hình tuân theo.

Về các tham số, đây là những giải thích đơn giản về từng tham số mà chúng tôi đã sử dụng:

  • max_tokens: Tham số này đặt số lượng từ tối đa mà mô hình có thể tạo ra.
  • nhiệt độ: Tham số này kiểm soát tính không thể đoán trước của đầu ra của mô hình. Nhiệt độ cao hơn dẫn đến kết quả đầu ra đa dạng và giàu trí tưởng tượng hơn. Phạm vi chấp nhận được là từ 0 đến vô cùng, mặc dù các giá trị trên 2 là không bình thường.
  • đầu_p: Còn được gọi là lấy mẫu hạt nhân, tham số này giúp xác định tập hợp con của phân bố xác suất mà từ đó mô hình rút ra kết quả đầu ra. Ví dụ: giá trị top_p là 0.1 có nghĩa là mô hình chỉ xem xét 10% phân bố xác suất cao nhất để lấy mẫu. Giá trị của nó có thể nằm trong khoảng từ 0 đến 1, với giá trị cao hơn cho phép đa dạng đầu ra lớn hơn.
  • tần suất_hình phạt: Điều này sẽ phạt các mã thông báo lặp lại trong đầu ra của mô hình. Giá trị phạt có thể nằm trong khoảng từ -2 đến 2, trong đó các giá trị dương không khuyến khích việc lặp lại mã thông báo và các giá trị âm thì ngược lại, khuyến khích việc sử dụng từ lặp đi lặp lại. Giá trị 0 cho biết không có hình phạt nào được áp dụng cho việc lặp lại.

Cuối cùng, bạn có thể thay đổi đầu ra của mô hình sang định dạng JSON bằng mã sau.

completion = client.chat.completions.create(
  model="gpt-3.5-turbo",
  response_format={ "type": "json_object" },
  messages=[
    {"role": "system", "content": "You are a helpful assistant designed to output JSON.."},
    {"role": "user", "content": "Generate me 3 Jargons that I can use for my Social Media content as a Data Scientist content creator"}
  ]
)

print(completion.choices[0].message.content)

 

{
“biệt ngữ”: [
“Tận dụng phân tích dự đoán để khám phá những hiểu biết có giá trị”,
“Đi sâu vào sự phức tạp của các thuật toán học máy tiên tiến”,
“Khai thác sức mạnh của dữ liệu lớn để thúc đẩy các quyết định dựa trên dữ liệu”
]
}

Kết quả có định dạng JSON và tuân theo lời nhắc mà chúng tôi nhập vào mô hình.

Để hoàn thành Tài liệu API tạo văn bản, bạn có thể kiểm tra chúng trên trang chuyên dụng của họ.

Mô hình OpenAI rất hữu ích cho các trường hợp sử dụng tạo văn bản và cũng có thể gọi API cho mục đích tạo hình ảnh. 

Sử dụng mô hình DALL·E, chúng ta có thể tạo hình ảnh theo yêu cầu. Cách đơn giản để thực hiện nó là sử dụng đoạn mã sau.

from openai import OpenAI
from IPython.display import Image

client = OpenAI()

response = client.images.generate(
  model="dall-e-3",
  prompt="White Piano on the Beach",
  size="1792x1024",
  quality="hd",
  n=1,
)

image_url = response.data[0].url
Image(url=image_url)

 

Khám phá API OpenAI bằng Python
Hình ảnh được tạo bằng DALL·E 3
 

Đối với các tham số, đây là những lời giải thích:

  • kiểu mẫu: Mô hình tạo hình ảnh sẽ sử dụng. Hiện tại, API chỉ hỗ trợ các mô hình DALL·E 3 và DALL·E 2. 
  • nhanh chóng: Đây là mô tả bằng văn bản dựa vào đó mô hình sẽ tạo ra hình ảnh. 
  • kích thước: Xác định độ phân giải của hình ảnh được tạo ra. Có ba lựa chọn cho kiểu DALL·E 3 (1024×1024, 1024×1792 hoặc 1792×1024).
  • chất lượng: Thông số này ảnh hưởng đến chất lượng của hình ảnh được tạo ra. Nếu cần thời gian tính toán, “tiêu chuẩn” sẽ nhanh hơn “hd”.
  • n: Chỉ định số lượng hình ảnh cần tạo dựa trên lời nhắc. DALL·E 3 chỉ có thể tạo một hình ảnh mỗi lần. DALL·E 2 có thể tạo tối đa 10 cùng một lúc.

Cũng có thể tạo một hình ảnh biến thể từ hình ảnh hiện có, mặc dù nó chỉ khả dụng khi sử dụng mô hình DALL·E 2. API cũng chỉ chấp nhận hình ảnh PNG vuông dưới 4 MB.

from openai import OpenAI
from IPython.display import Image

client = OpenAI()

response = client.images.create_variation(
  image=open("white_piano_ori.png", "rb"),
  n=2,
  size="1024x1024"
)

image_url = response.data[0].url

Image(url=image_url)

 

Hình ảnh có thể không đẹp bằng DALL·E 3 thế hệ vì nó đang sử dụng model cũ.

OpenAI là công ty hàng đầu cung cấp các mô hình có thể hiểu được hình ảnh đầu vào. Mẫu này được gọi là mẫu Vision, đôi khi được gọi là GPT-4V. Mô hình có khả năng trả lời các câu hỏi dựa trên hình ảnh chúng tôi đưa ra.

Hãy thử API mô hình Vision. Trong ví dụ này, tôi sẽ sử dụng hình ảnh cây đàn piano màu trắng mà chúng tôi tạo từ mô hình DALL·E 3 và lưu trữ cục bộ. Ngoài ra, tôi sẽ tạo một hàm lấy đường dẫn hình ảnh và trả về văn bản mô tả hình ảnh. Đừng quên thay đổi biến api_key thành Khóa API của bạn.

from openai import OpenAI
import base64
import requests
def provide_image_description(img_path):

    client = OpenAI()

    api_key = 'YOUR-API-KEY'
    # Function to encode the image
    def encode_image(image_path):
      with open(image_path, "rb") as image_file:
        return base64.b64encode(image_file.read()).decode('utf-8')
   
    # Path to your image
    image_path = img_path
   
    # Getting the base64 string
    base64_image = encode_image(image_path)
   
    headers = {
      "Content-Type": "application/json",
      "Authorization": f"Bearer {api_key}"
    }
   
    payload = {
      "model": "gpt-4-vision-preview",
      "messages": [
        {
          "role": "user",
          "content": [
            {
              "type": "text",
              "text": """Can you describe this image? """
            },
            {
              "type": "image_url",
              "image_url": {
                "url": f"data:image/jpeg;base64,{base64_image}"
              }
            }
          ]
        }
      ],
      "max_tokens": 300
    }
   
    response = requests.post("https://api.openai.com/v1/chat/completions", headers=headers, json=payload)

    return response.json()['choices'][0]['message']['content']

 

Hình ảnh này có một cây đàn piano lớn được đặt trên khung cảnh bãi biển thanh bình. Đàn piano có màu trắng, biểu thị sự hoàn thiện thường gắn liền với sự sang trọng. Nhạc cụ được đặt ngay sát bờ biển, nơi những con sóng nhẹ nhàng vuốt ve bãi cát, tạo thành lớp bọt xốp vừa chạm vào đế đàn và chiếc ghế đẩu phù hợp. Môi trường xung quanh bãi biển mang lại cảm giác yên bình và biệt lập với bầu trời trong xanh, những đám mây bồng bềnh ở phía xa và một vùng biển tĩnh lặng trải dài đến tận chân trời. Rải rác xung quanh cây đàn piano trên cát là vô số vỏ sò với nhiều kích cỡ và hình dạng khác nhau, làm nổi bật vẻ đẹp tự nhiên và bầu không khí thanh bình của khung cảnh. Sự đặt cạnh nhau của một nhạc cụ cổ điển trong môi trường bãi biển tự nhiên tạo ra một bố cục siêu thực và đầy chất thơ.

Bạn có thể điều chỉnh các giá trị văn bản trong từ điển ở trên để phù hợp với yêu cầu về mô hình Vision của mình.

OpenAI cũng cung cấp một mô hình để tạo âm thanh dựa trên mô hình Chuyển văn bản thành giọng nói của họ. Nó rất dễ sử dụng, mặc dù phong cách tường thuật bằng giọng nói còn hạn chế. Ngoài ra, mô hình này còn hỗ trợ nhiều ngôn ngữ mà bạn có thể thấy trên trang hỗ trợ ngôn ngữ.

Để tạo âm thanh, bạn có thể sử dụng mã dưới đây.

from openai import OpenAI
client = OpenAI()

speech_file_path = "speech.mp3"
response = client.audio.speech.create(
  model="tts-1",
  voice="alloy",
  input="I love data science and machine learning"
)

response.stream_to_file(speech_file_path)

 

Bạn sẽ thấy tập tin âm thanh trong thư mục của bạn. Hãy thử chơi nó và xem nó có đạt tiêu chuẩn của bạn không. 

Hiện tại, chỉ có một số tham số bạn có thể sử dụng cho mô hình Chuyển văn bản thành giọng nói:

  • model: Mô hình Chuyển văn bản thành giọng nói sẽ sử dụng. Chỉ có hai mẫu (tts-1 hoặc tts-1-hd), trong đó tts-1 tối ưu hóa tốc độ và tts-1-hd tối ưu hóa chất lượng.
  • giọng nói: Kiểu giọng nói sẽ sử dụng khi tất cả giọng nói được tối ưu hóa sang tiếng Anh. Lựa chọn là hợp kim, tiếng vang, truyện ngụ ngôn, mã não, nova và ánh sáng lung linh.
  • reply_format: Tệp định dạng âm thanh. Hiện tại, các định dạng được hỗ trợ là mp3, opus, aac, flac, wav và pcm.
  • tốc độ: Tốc độ âm thanh được tạo ra. Bạn có thể chọn các giá trị trong khoảng từ 0.25 đến 4. 
  • input: Văn bản để tạo ra âm thanh. Hiện tại, model chỉ hỗ trợ tối đa 4096 ký tự.

OpenAI cung cấp các mô hình để phiên âm và dịch dữ liệu âm thanh. Sử dụng mô hình thì thầm, chúng ta có thể chuyển âm thanh từ ngôn ngữ được hỗ trợ sang tệp văn bản và dịch chúng sang tiếng Anh.

Hãy thử phiên âm đơn giản từ tệp âm thanh mà chúng tôi đã tạo trước đó.

from openai import OpenAI
client = OpenAI()

audio_file= open("speech.mp3", "rb")
transcription = client.audio.transcriptions.create(
  model="whisper-1",
  file=audio_file
)

print(transcription.text)

 

Tôi yêu thích khoa học dữ liệu và học máy.

Cũng có thể thực hiện dịch từ tệp âm thanh sang ngôn ngữ tiếng Anh. Mô hình này chưa có sẵn để dịch sang ngôn ngữ khác.

from openai import OpenAI
client = OpenAI()

audio_file = open("speech.mp3", "rb")
translate = client.audio.translations.create(
  model="whisper-1",
  file=audio_file
)

Chúng tôi đã khám phá một số dịch vụ mô hình mà OpenAI cung cấp, từ các mô hình Tạo văn bản, Tạo hình ảnh, Tạo âm thanh, Tầm nhìn và Chuyển văn bản thành giọng nói. Mỗi mô hình đều có thông số và thông số kỹ thuật API mà bạn cần tìm hiểu trước khi sử dụng chúng.
 
 

Cornellius Yudha Wijaya là trợ lý quản lý khoa học dữ liệu và người viết dữ liệu. Khi làm việc toàn thời gian tại Allianz Indonesia, anh ấy thích chia sẻ các mẹo về Python và dữ liệu qua mạng xã hội và phương tiện viết lách. Cornellius viết về nhiều chủ đề về AI và học máy.

tại chỗ_img

Tin tức mới nhất

tại chỗ_img