1. Xây dựng Yêu Cầu API
1.1 Gửi Yêu Cầu Sử Dụng CURL
CURL là một công cụ dòng lệnh hỗ trợ gửi và nhận dữ liệu bằng các giao thức khác nhau như HTTP và HTTPS. Để gửi yêu cầu đến API của OpenAI bằng CURL, bạn cần có một khóa API hợp lệ và sau đó thêm nó vào tiêu đề yêu cầu.
Dưới đây là một ví dụ về lệnh CURL được sử dụng để gửi yêu cầu đến API của OpenAI:
curl https://api.openai.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
"model": "gpt-3.5-turbo",
"messages": [{"role": "user", "content": "Nói rằng đây là một bài kiểm tra!"}],
"temperature": 0.7
}'
Bạn cần thay thế $OPENAI_API_KEY
bằng khóa API của bạn. Vì lý do bảo mật, hãy tránh tiết lộ khóa API của bạn trong bất kỳ cài đặt công cộng nào.
1.2 Phân Tích Tiêu Đề Yêu Cầu
Trong lệnh CURL ở trên, chúng ta sử dụng hai tiêu đề yêu cầu quan trọng: Content-Type
và Authorization
.
-
Content-Type
: Thông báo cho máy chủ rằng chúng ta đang gửi dữ liệu dưới định dạng JSON. Giá trị thường làapplication/json
. -
Authorization
: Đây là thông tin xác thực được sử dụng để xác thực yêu cầu API, và định dạng của nó luôn làBearer (khóa API của bạn)
.
Đảm bảo tính chính xác của hai tiêu đề này rất quan trọng đối với sự thành công của yêu cầu.
1.3 Xây Dựng Nội Dung Yêu Cầu
Nội dung yêu cầu là một chuỗi được định dạng JSON thông báo cho OpenAI về ý định của chúng ta. Trong yêu cầu này, chúng ta sử dụng model
để chỉ định mô hình chúng ta đang sử dụng, truyền một mảng messages
xác định đầu vào của người dùng, và đặt một temperature
để điều chỉnh độ biến đổi của phản hồi.
Dạng JSON như sau:
{
"model": "gpt-3.5-turbo",
"messages": [{"role": "user", "content": "Nói rằng đây là một bài kiểm tra!"}],
"temperature": 0.7
}
Trong ví dụ này, chúng ta đang yêu cầu mô hình tạo ra một phản hồi kiểm tra dựa trên tin nhắn đầu vào.
1.4 Giải Thích Chi Tiết Các Tham Số Yêu Cầu
Trong nội dung yêu cầu, có một số tham số quan trọng cần chú ý:
-
model
: Chỉ định mô hình trí tuệ nhân tạo (AI) mà chúng ta dự định sử dụng. OpenAI cung cấp nhiều mô hình, mỗi mô hình có các chức năng và hiệu ứng khác nhau. -
messages
: Đây là một mảng chứa một hoặc nhiều đối tượng tin nhắn, với mỗi tin nhắn bao gồmrole
cung cấp vai trò của tin nhắn vàcontent
đại diện cho nội dung của tin nhắn. -
temperature
: Điều khiển độ chắc chắn của phản hồi. Giá trịtemperature
thấp tạo ra những câu trả lời chắc chắn hơn, trong khi giá trị cao dẫn đến sự ngẫu nhiên hơn.
2. Phân Tích Phản Hồi API
2.1 Hiểu Phản Hồi
Khi bạn gửi một yêu cầu, máy chủ sẽ trả về một mã trạng thái HTTP và có thể là một phần thân phản hồi. Thông thường, một yêu cầu thành công sẽ nhận được mã trạng thái trong loạt 200. Dữ liệu JSON trả về chứa kết quả của yêu cầu, và một ví dụ phản hồi như sau:
{
"id": "chatcmpl-abc123",
"object": "chat.completion",
"created": 1677858242,
"model": "gpt-3.5-turbo-1106",
"usage": {
"prompt_tokens": 13,
"completion_tokens": 7,
"total_tokens": 20
},
"choices": [
{
"message": {
"role": "assistant",
"content": "\n\nĐây là một bài kiểm tra!"
},
"logprobs": null,
"finish_reason": "stop",
"index": 0
}
]
}
Trong phản hồi này, chúng ta có thể thấy ID hoàn tất, dấu thời gian tạo, mô hình được sử dụng, sử dụng token, và nội dung thực tế của phản hồi (trong trường choices
).
2.2 Đầy Đủ và Xử Lý Lỗi
Trường finish_reason
chỉ ra tại sao API dừng việc đầu ra nội dung. Các lý do kết thúc thông thường bao gồm stop
, length
, và idle
. Nếu xảy ra lỗi, như vượt quá giới hạn token hoặc khóa API không chính xác, bạn sẽ nhận được thông báo lỗi tương ứng và mã trạng thái. Quan trọng là xử lý những lỗi này một cách đúng đắn để đảm bảo tính liên tục của trải nghiệm người dùng và sự ổn định của ứng dụng của bạn. Đối với xử lý lỗi, bạn có thể quyết định về một chiến lược xử lý lỗi phù hợp dựa trên mã trạng thái trả về và thông báo lỗi, như việc thử lại yêu cầu hoặc cung cấp phản hồi cho người dùng giải thích lý do của lỗi.
2.3 Gửi Yêu Cầu API bằng Python SDK
Dưới đây là một ví dụ về việc sử dụng OpenAI Python SDK chính thức để thực hiện các cuộc gọi API.
Đầu tiên, bạn cần cài đặt thư viện openai, điều này có thể thực hiện bằng cách sử dụng pip:
pip install --upgrade openai
Tiếp theo, bạn có thể sử dụng đoạn code Python sau để thực hiện một yêu cầu API tương tự như ví dụ ở trên. Lưu ý thay thế YOUR_OPENAI_API_KEY
bằng khóa API của bạn.
from openai import OpenAI
client = OpenAI(
api_key="YOUR_OPENAI_API_KEY",
)
completion = client.chat.completions.create(
model="gpt-3.5-turbo",
messages=[
{"role": "system", "content": "Bạn là trợ lý phát triển chuyên nghiệp, thành thạo trong việc giải quyết các vấn đề lập trình khác nhau."},
{"role": "user", "content": "Viết một hàm cho quicksort trong Go."}
]
)
print(completion.choices[0].message)