API thời gian thực OpenAI cung cấp hai phương thức kết nối:
WebRTC - Để tương tác âm thanh/video theo thời gian thực trên trình duyệt và ứng dụng khách trên thiết bị di động
WebSocket - Để tích hợp ứng dụng server-to-server
Cuộc trò chuyện bằng giọng nói thời gian thực
Hội nghị âm thanh/video
Dịch thuật thời gian thực
Phiên âm lời nói
Tạo mã thời gian thực
Tích hợp thời gian thực phía máy chủ
Truyền phát âm thanh hai chiều
Cuộc hội thoại văn bản và âm thanh hỗn hợp
Hỗ trợ gọi hàm
Tự động phát hiện hoạt động giọng nói (VAD)
Khả năng phiên âm âm thanh
Tích hợp phía máy chủ WebSocket
Khóa API tiêu chuẩn (chỉ phía máy chủ)
Mã thông báo tạm thời (sử dụng phía khách hàng)
Hiệu lực: 1 phút
Giới hạn sử dụng: Kết nối đơn
Thế hệ: Được tạo thông qua API phía máy chủ
POST https://88api.ai/v1/realtime/sessions
Content-Type : application/json
Authorization : Bearer $NEW_API_KEY
{
"model" : "gpt-4o-realtime-preview-2024-12-17" ,
"voice" : "verse"
}
Không bao giờ để lộ các khóa API tiêu chuẩn ở phía máy khách
Sử dụng HTTPS/WSS để liên lạc
Triển khai các biện pháp kiểm soát truy cập thích hợp
Theo dõi hoạt động bất thường
-Địa chỉ: https://88api.ai/v1/realtime
Tham số truy vấn: model
Tiêu đề:
Authorization: Bearer EPHEMERAL_KEY
Content-Type: application/sdp
-Địa chỉ: wss://88api.ai/v1/realtime
Tham số truy vấn: model
Tiêu đề:
Authorization: Bearer YOUR_API_KEY
OpenAI-Beta: realtime=v1
sequenceDiagram
participant Client
participant Server
participant OpenAI
alt WebRTC Connection
Client->>Server: Request ephemeral token
Server->>OpenAI: Create session
OpenAI-->>Server: Return ephemeral token
Server-->>Client: Return ephemeral token
Client->>OpenAI: Create WebRTC offer
OpenAI-->>Client: Return answer
Note over Client,OpenAI: Establish WebRTC connection
Client->>OpenAI: Create data channel
OpenAI-->>Client: Confirm data channel
else WebSocket Connection
Server->>OpenAI: Establish WebSocket connection
OpenAI-->>Server: Confirm connection
Note over Server,OpenAI: Begin real-time conversation
end
Tên: oai-events
Mục đích: Truyền sự kiện
Định dạng: JSON
Đầu vào: addTrack()
Đầu ra: ontrack sự kiện
Cuộc trò chuyện chỉ có văn bản
Cuộc trò chuyện bằng giọng nói
Cuộc trò chuyện hỗn hợp
Tạo phiên
Phiên cập nhật
Kết thúc phiên
Cấu hình phiên
Sự kiện văn bản
Sự kiện âm thanh
Lời gọi hàm
Cập nhật trạng thái
Sự kiện lỗi
Định dạng đầu vào
pcm16
g711_ulaw
g711_alaw
Định dạng đầu ra
pcm16
g711_ulaw
g711_alaw
Các loại giọng nói
alloy
echo
shimmer
Nhiệt độ
Chiều dài đầu ra tối đa
Hệ thống nhắc nhở
Cấu hình công cụ
Ngưỡng
Thời gian im lặng
Đệm tiền tố
async function init () {
// Get ephemeral key from server - see server code below
const tokenResponse = await fetch ( '/session' );
const data = await tokenResponse. json ();
const EPHEMERAL_KEY = data.client_secret.value;
// Create peer connection
const pc = new RTCPeerConnection ();
// Set up remote audio from model playback
const audioEl = document. createElement ( 'audio' );
audioEl.autoplay = true ;
pc. ontrack = ( e ) => (audioEl.srcObject = e.streams[ 0 ]);
// Add local audio track from browser microphone input
const ms = await navigator.mediaDevices. getUserMedia ({
audio: true ,
});
pc. addTrack (ms. getTracks ()[ 0 ]);
// Set up data channel for sending and receiving events
const dc = pc. createDataChannel ( 'oai-events' );
dc. addEventListener ( 'message' , ( e ) => {
// Receive real-time server events here!
console. log (e);
});
// Start session using Session Description Protocol (SDP)
const offer = await pc. createOffer ();
await pc. setLocalDescription (offer);
const baseUrl = 'https://88api.ai/v1/realtime' ;
const model = 'gpt-4o-realtime-preview-2024-12-17' ;
const sdpResponse = await fetch ( `${ baseUrl }?model=${ model }` , {
method: 'POST' ,
body: offer.sdp,
headers: {
Authorization: `Bearer ${ EPHEMERAL_KEY }` ,
'Content-Type' : 'application/sdp' ,
},
});
const answer = {
type: 'answer' ,
sdp: await sdpResponse. text (),
};
await pc. setRemoteDescription (answer);
}
init ();
import express from 'express' ;
const app = express ();
// Create an endpoint for generating ephemeral tokens
// This endpoint works with the client code above
app. get ( '/session' , async ( req , res ) => {
const r = await fetch (
'https://88api.ai/v1/realtime/sessions' ,
{
method: 'POST' ,
headers: {
Authorization: `Bearer ${ process . env . NEW_API_KEY }` ,
'Content-Type' : 'application/json' ,
},
body: JSON . stringify ({
model: 'gpt-4o-realtime-preview-2024-12-17' ,
voice: 'verse' ,
}),
}
);
const data = await r. json ();
// Send the JSON received from OpenAI REST API back to client
res. send (data);
});
app. listen ( 3000 );
// Create data channel from peer connection
const dc = pc. createDataChannel ( 'oai-events' );
// Listen for server events on data channel
// Event data needs to be parsed from JSON string
dc. addEventListener ( 'message' , ( e ) => {
const realtimeEvent = JSON . parse (e.data);
console. log (realtimeEvent);
});
// Send client event: serialize valid client events to
// JSON and send via data channel
const responseCreate = {
type: 'response.create' ,
response: {
modalities: [ 'text' ],
instructions: 'Write a haiku about code' ,
},
};
dc. send ( JSON . stringify (responseCreate));
import WebSocket from 'ws' ;
const url =
'wss://88api.ai/v1/realtime?model=gpt-4o-realtime-preview-2024-12-17' ;
const ws = new WebSocket (url, {
headers: {
Authorization: 'Bearer ' + process.env. NEW_API_KEY ,
'OpenAI-Beta' : 'realtime=v1' ,
},
});
ws. on ( 'open' , function open () {
console. log ( 'Connected to server.' );
});
ws. on ( 'message' , function incoming ( message ) {
console. log ( JSON . parse (message. toString ()));
});
# Requires websocket-client library:
# pip install websocket-client
import os
import json
import websocket
NEW_API_KEY = os.environ.get( "NEW_API_KEY" )
url = "wss://88api.ai/v1/realtime?model=gpt-4o-realtime-preview-2024-12-17"
headers = [
"Authorization: Bearer " + NEW_API_KEY ,
"OpenAI-Beta: realtime=v1"
]
def on_open (ws):
print ( "Connected to server." ) ;
def on_message (ws, message):
data = json.loads(message)
print ( "Received event:" , json.dumps(data, indent = 2 ))
ws = websocket.WebSocketApp(
url,
header = headers,
on_open = on_open,
on_message = on_message,
)
ws.run_forever()
/*
Note: In browser and other client environments, we recommend using WebRTC.
But in Deno and Cloudflare Workers and other browser-like environments,
you can also use the standard WebSocket interface.
*/
const ws = new WebSocket (
'wss://88api.ai/v1/realtime?model=gpt-4o-realtime-preview-2024-12-17' ,
[
'realtime' ,
// Authentication
'openai-insecure-api-key.' + NEW_API_KEY ,
// Optional
'openai-organization.' + OPENAI_ORG_ID ,
'openai-project.' + OPENAI_PROJECT_ID ,
// Beta protocol, required
'openai-beta.realtime-v1' ,
]
);
ws. on ( 'open' , function open () {
console. log ( 'Connected to server.' );
});
ws. on ( 'message' , function incoming ( message ) {
console. log (message.data);
});
// Receive server events
ws. on ( 'message' , function incoming ( message ) {
// Need to parse message data from JSON
const serverEvent = JSON . parse (message.data);
console. log (serverEvent);
});
// Send events, create JSON data structure conforming to client event format
const event = {
type: 'response.create' ,
response: {
modalities: [ 'audio' , 'text' ],
instructions: 'Give me a haiku about code.' ,
},
};
ws. send ( JSON . stringify (event));
# Send client events, serialize dictionary to JSON
def on_open (ws):
print ( "Connected to server." ) ;
event = {
"type" : "response.create" ,
"response" : {
"modalities" : [ "text" ],
"instructions" : "Please assist the user."
}
}
ws.send(json.dumps(event))
# Receive messages need to parse message payload from JSON
def on_message (ws, message):
data = json.loads(message)
print ( "Received event:" , json.dumps(data, indent = 2 ))
Lỗi kết nối
Sự cố mạng
Lỗi xác thực
Lỗi cấu hình
Lỗi âm thanh
Quyền thiết bị
Các định dạng không được hỗ trợ
Vấn đề về mã hóa
Lỗi phiên
Mã thông báo hết hạn
Thời gian chờ của phiên
Giới hạn đồng thời
Tự động kết nối lại
Khôi phục phiên
Lỗi thử lại
Suy thoái duyên dáng
Tất cả sự kiện cần bao gồm các tiêu đề yêu cầu sau:
Tiêu đề Loại Mô tả Giá trị mẫu Ủy quyền Chuỗi Mã thông báo xác thực Người mang $NEW_API_KEY OpenAI-Beta Chuỗi Phiên bản API thời gian thực=v1
Cập nhật cấu hình mặc định cho phiên.
Tham số Loại Bắt buộc Mô tả Giá trị mẫu/Giá trị tùy chọn sự kiện_id Chuỗi Không Mã định danh sự kiện do khách hàng tạo sự kiện_123 gõ Chuỗi Không Loại sự kiện phiên.update phương thức Mảng chuỗi Không Các loại phương thức mà mô hình có thể phản hồi với ["văn bản", "âm thanh"] hướng dẫn Chuỗi Không Hướng dẫn hệ thống được thêm vào trước các cuộc gọi mô hình "Mức kiến thức của bạn là 2023-10..." giọng nói Chuỗi Không Loại giọng nói được người mẫu sử dụng hợp kim, tiếng vang, ánh sáng lung linh đầu vào_audio_format Chuỗi Không Định dạng âm thanh đầu vào pcm16, g711_ulaw, g711_alaw đầu ra_audio_format Chuỗi Không Định dạng âm thanh đầu ra pcm16, g711_ulaw, g711_alaw input_audio_transcription.model Chuỗi Không Mô hình được sử dụng để phiên mã thì thầm-1 Turn_Detection.type Chuỗi Không Loại phát hiện giọng nói máy chủ_vad Turn_Detection.threshold Số Không Ngưỡng kích hoạt VAD (0,0-1,0) 0,8 Turn_Detection.prefix_padding_ms Số nguyên Không Thời lượng âm thanh được bao gồm trước khi bắt đầu bài phát biểu 500 Turn_Detection.silence_duration_ms Số nguyên Không Khoảng thời gian im lặng để phát hiện điểm dừng giọng nói 1000 công cụ Mảng Không Danh sách các công cụ có sẵn cho mô hình [] tool_choice Chuỗi Không Cách người mẫu chọn công cụ tự động/không có/bắt buộc nhiệt độ Số Không Nhiệt độ lấy mẫu mô hình 0,8 max_output_tokens Chuỗi/Số nguyên Không Mã thông báo tối đa cho mỗi phản hồi "inf"/4096
Nối dữ liệu âm thanh vào bộ đệm âm thanh đầu vào.
Tham số Loại Bắt buộc Mô tả Giá trị mẫu sự kiện_id Chuỗi Không Mã định danh sự kiện do khách hàng tạo sự kiện_456 gõ Chuỗi Không Loại sự kiện input_audio_buffer.append âm thanh Chuỗi Không Dữ liệu âm thanh được mã hóa Base64 Base64EncodedAudioData
Cam kết dữ liệu âm thanh trong bộ đệm dưới dạng tin nhắn của người dùng.
Tham số Loại Bắt buộc Mô tả Giá trị mẫu sự kiện_id Chuỗi Không Mã định danh sự kiện do khách hàng tạo sự kiện_789 gõ Chuỗi Không Loại sự kiện input_audio_buffer.commit
Xóa tất cả dữ liệu âm thanh khỏi bộ đệm âm thanh đầu vào.
Tham số Loại Bắt buộc Mô tả Giá trị mẫu sự kiện_id Chuỗi Không Mã định danh sự kiện do khách hàng tạo sự kiện_012 gõ Chuỗi Không Loại sự kiện input_audio_buffer.clear
Thêm một mục hội thoại mới vào cuộc trò chuyện.
Tham số Loại Bắt buộc Mô tả Giá trị mẫu sự kiện_id Chuỗi Không Mã định danh sự kiện do khách hàng tạo sự kiện_345 gõ Chuỗi Không Loại sự kiện cuộc trò chuyện.item.create trước_item_id Chuỗi Không Mục mới sẽ được chèn sau ID này vô giá trị item.id Chuỗi Không Mã định danh duy nhất cho mục hội thoại tin nhắn_001 item.type Chuỗi Không Loại mục hội thoại tin nhắn/function_call/function_call_output mục.status Chuỗi Không Trạng thái của mục hội thoại đã hoàn thành/in_progress/chưa hoàn thành mục.role Chuỗi Không Vai trò của người gửi tin nhắn người dùng/trợ lý/hệ thống item.content Mảng Không Nội dung tin nhắn [text/audio/transcript]item.call_id Chuỗi Không ID của lệnh gọi hàm gọi_001 mục.name Chuỗi Không Tên hàm được gọi tên_hàm item.arguments Chuỗi Không Đối số cho lệnh gọi hàm {"param": "value"}item.output Chuỗi Không Kết quả đầu ra của lệnh gọi hàm {"result": "value"}
Cắt bớt nội dung âm thanh trong tin nhắn trợ lý.
Tham số Loại Bắt buộc Mô tả Giá trị mẫu sự kiện_id Chuỗi Không Mã định danh sự kiện do khách hàng tạo sự kiện_678 gõ Chuỗi Không Loại sự kiện cuộc trò chuyện.item.truncate item_id Chuỗi Không ID của mục tin nhắn trợ lý cần cắt bớt tin nhắn_002 nội dung_index Số nguyên Không Mục lục phần nội dung cần cắt bớt 0 âm thanh_end_ms Số nguyên Không Điểm kết thúc việc cắt âm thanh 1500
Xóa mục hội thoại đã chỉ định khỏi lịch sử hội thoại.
Tham số Loại Bắt buộc Mô tả Giá trị mẫu sự kiện_id Chuỗi Không Mã định danh sự kiện do khách hàng tạo sự kiện_901 gõ Chuỗi Không Loại sự kiện cuộc trò chuyện.item.delete item_id Chuỗi Không ID của mục hội thoại cần xóa tin nhắn_003
Tạo phản ứng kích hoạt.
Tham số Loại Bắt buộc Mô tả Giá trị mẫu sự kiện_id Chuỗi Không Mã định danh sự kiện do khách hàng tạo sự kiện_234 gõ Chuỗi Không Loại sự kiện phản hồi.create phản hồi.modalities Mảng chuỗi Không Các loại phương thức phản hồi ["văn bản", "âm thanh"] phản hồi.hướng dẫn Chuỗi Không Hướng dẫn làm mô hình "Xin hãy hỗ trợ người dùng." phản hồi.voice Chuỗi Không Loại giọng nói được người mẫu sử dụng hợp kim/tiếng vang/ánh sáng lung linh phản hồi.output_audio_format Chuỗi Không Định dạng âm thanh đầu ra pcm16 phản hồi.tools Mảng Không Danh sách các công cụ có sẵn cho mô hình ["loại", "tên", "mô tả"] phản hồi.tool_choice Chuỗi Không Cách người mẫu chọn công cụ tự động phản ứng.nhiệt độ Số Không Nhiệt độ lấy mẫu 0,7 phản hồi.max_output_tokens Số nguyên/Chuỗi Không Mã thông báo đầu ra tối đa 150/"thông tin"
Hủy việc tạo phản hồi đang diễn ra.
Tham số Loại Bắt buộc Mô tả Giá trị mẫu sự kiện_id Chuỗi Không Mã định danh sự kiện do khách hàng tạo sự kiện_567 gõ Chuỗi Không Loại sự kiện phản hồi.hủy
Sự kiện được trả về khi xảy ra lỗi.
Tham số Loại Bắt buộc Mô tả Giá trị mẫu sự kiện_id Mảng chuỗi Không Mã định danh duy nhất cho sự kiện máy chủ ["sự kiện_890"] gõ Chuỗi Không Loại sự kiện lỗi lỗi.type Chuỗi Không Loại lỗi không hợp lệ_request_error/server_error lỗi.code Chuỗi Không Mã lỗi sự kiện_không hợp lệ lỗi.tin nhắn Chuỗi Không Thông báo lỗi con người có thể đọc được "Trường 'loại' bị thiếu." lỗi.param Chuỗi Không Thông số liên quan đến lỗi vô giá trị lỗi.event_id Chuỗi Không ID của sự kiện liên quan sự kiện_567
Được trả về khi tính năng sao chép âm thanh đầu vào được bật và quá trình sao chép thành công.
Tham số Loại Bắt buộc Mô tả Giá trị mẫu sự kiện_id Chuỗi Không Mã định danh duy nhất cho sự kiện máy chủ sự kiện_2122 gõ Chuỗi Không Loại sự kiện đàm thoại.item.input_audio_transcription.completed item_id Chuỗi Không ID của mục tin nhắn của người dùng tin nhắn_003 nội dung_index Số nguyên Không Mục lục phần nội dung chứa âm thanh 0 bảng điểm Chuỗi Không Nội dung văn bản được phiên âm "Xin chào bạn khoẻ không?"
Được trả về khi phiên âm âm thanh đầu vào được định cấu hình nhưng yêu cầu phiên âm cho tin nhắn của người dùng không thành công.
Tham số Loại Bắt buộc Mô tả Giá trị mẫu sự kiện_id Chuỗi Không Mã định danh duy nhất cho sự kiện máy chủ sự kiện_2324 gõ Mảng chuỗi Không Loại sự kiện ["conversation.item.input_audio_transcription.failed"] item_id Chuỗi Không ID của mục tin nhắn của người dùng tin nhắn_003 nội dung_index Số nguyên Không Mục lục phần nội dung chứa âm thanh 0 lỗi.type Chuỗi Không Loại lỗi phiên âm_error lỗi.code Chuỗi Không Mã lỗi audio_unintelligible lỗi.tin nhắn Chuỗi Không Thông báo lỗi con người có thể đọc được "Âm thanh không thể được phiên âm." lỗi.param Chuỗi Không Thông số liên quan đến lỗi vô giá trị
Trả về khi khách hàng cắt bớt mục tin nhắn âm thanh trợ lý trước đó.
Tham số Loại Bắt buộc Mô tả Giá trị mẫu sự kiện_id Chuỗi Không Mã định danh duy nhất cho sự kiện máy chủ sự kiện_2526 gõ Chuỗi Không Loại sự kiện cuộc trò chuyện.item.truncated item_id Chuỗi Không ID của mục tin nhắn trợ lý bị cắt ngắn tin nhắn_004 nội dung_index Số nguyên Không Mục lục phần nội dung bị cắt bớt 0 âm thanh_end_ms Số nguyên Không Thời điểm âm thanh bị cắt ngắn (mili giây) 1500
Trả về khi một mục trong cuộc trò chuyện bị xóa.
Tham số Loại Bắt buộc Mô tả Giá trị mẫu sự kiện_id Chuỗi Không Mã định danh duy nhất cho sự kiện máy chủ sự kiện_2728 gõ Chuỗi Không Loại sự kiện cuộc trò chuyện.item.deleted item_id Chuỗi Không ID của mục hội thoại đã xóa tin nhắn_005
Được trả về khi dữ liệu bộ đệm âm thanh được cam kết.
Tham số Loại Bắt buộc Mô tả Giá trị mẫu sự kiện_id Chuỗi Không Mã định danh duy nhất cho sự kiện máy chủ sự kiện_1121 gõ Chuỗi Không Loại sự kiện input_audio_buffer.commit trước_item_id Chuỗi Không Mục hội thoại mới sẽ được chèn sau ID này tin nhắn_001 item_id Chuỗi Không ID của mục tin nhắn người dùng sẽ được tạo tin nhắn_002
Trả về khi máy khách xóa bộ đệm âm thanh đầu vào.
Tham số Loại Bắt buộc Mô tả Giá trị mẫu sự kiện_id Chuỗi Không Mã định danh duy nhất cho sự kiện máy chủ sự kiện_1314 gõ Chuỗi Không Loại sự kiện input_audio_buffer.cleared
Trong chế độ phát hiện giọng nói của máy chủ, được trả về khi phát hiện thấy đầu vào bằng giọng nói.
Tham số Loại Bắt buộc Mô tả Giá trị mẫu sự kiện_id Chuỗi Không Mã định danh duy nhất cho sự kiện máy chủ sự kiện_1516 gõ Chuỗi Không Loại sự kiện input_audio_buffer.speech_started âm thanh_start_ms Số nguyên Không Một phần nghìn giây từ khi bắt đầu phiên đến khi phát hiện giọng nói 1000 item_id Chuỗi Không ID của mục tin nhắn người dùng sẽ được tạo khi giọng nói dừng tin nhắn_003
Ở chế độ phát hiện giọng nói của máy chủ, được trả về khi ngừng nhập giọng nói.
Tham số Loại Bắt buộc Mô tả Giá trị mẫu sự kiện_id Chuỗi Không Mã định danh duy nhất cho sự kiện máy chủ sự kiện_1718 gõ Chuỗi Không Loại sự kiện input_audio_buffer.speech_stopped âm thanh_start_ms Số nguyên Không Một phần nghìn giây từ khi bắt đầu phiên đến khi phát hiện dừng giọng nói 2000 item_id Chuỗi Không ID của mục tin nhắn người dùng sẽ được tạo tin nhắn_003
Trả về khi một phản hồi mới được tạo.
Tham số Loại Bắt buộc Mô tả Giá trị mẫu sự kiện_id Chuỗi Không Mã định danh duy nhất cho sự kiện máy chủ sự kiện_2930 gõ Chuỗi Không Loại sự kiện phản hồi.created phản hồi.id Chuỗi Không Mã định danh duy nhất cho phản hồi phản hồi_001 phản hồi.object Chuỗi Không Loại đối tượng thời gian thực.response phản hồi.status Chuỗi Không Trạng thái phản hồi in_progress phản hồi.status_details Đối tượng Không Chi tiết bổ sung về trạng thái vô giá trị phản hồi.output Mảng chuỗi Không Danh sách các mục đầu ra được tạo bởi phản hồi ["[]"] phản hồi.sử dụng Đối tượng Không Thống kê sử dụng để phản hồi vô giá trị
Được trả về khi quá trình truyền phản hồi hoàn tất.
Tham số Loại Bắt buộc Mô tả Giá trị mẫu sự kiện_id Chuỗi Không Mã định danh duy nhất cho sự kiện máy chủ sự kiện_3132 gõ Chuỗi Không Loại sự kiện phản hồi.done phản hồi.id Chuỗi Không Mã định danh duy nhất cho phản hồi phản hồi_001 phản hồi.object Chuỗi Không Loại đối tượng thời gian thực.response phản hồi.status Chuỗi Không Trạng thái phản hồi cuối cùng đã hoàn thành/hủy/thất bại/chưa hoàn thành phản hồi.status_details Đối tượng Không Chi tiết bổ sung về trạng thái vô giá trị phản hồi.output Mảng chuỗi Không Danh sách các mục đầu ra được tạo bởi phản hồi ["[...]"] phản hồi.usage.total_tokens Số nguyên Không Tổng số token 50 phản hồi.usage.input_tokens Số nguyên Không Mã thông báo đầu vào 20 phản hồi.usage.output_tokens Số nguyên Không Mã thông báo đầu ra 30
Được trả về khi một mục đầu ra mới được tạo trong quá trình tạo phản hồi.
Tham số Loại Bắt buộc Mô tả Giá trị mẫu sự kiện_id Chuỗi Không Mã định danh duy nhất cho sự kiện máy chủ sự kiện_3334 gõ Chuỗi Không Loại sự kiện phản hồi.output_item.thêm phản hồi_id Chuỗi Không ID của phản hồi mà mục đầu ra thuộc về phản hồi_001 đầu ra_index Chuỗi Không Chỉ mục mục đầu ra phản hồi 0 item.id Chuỗi Không Mã định danh duy nhất cho mục đầu ra tin nhắn_007 item.object Chuỗi Không Loại đối tượng thời gian thực.item item.type Chuỗi Không Loại hạng mục đầu ra tin nhắn/function_call/function_call_output mục.status Chuỗi Không Trạng thái của mục đầu ra in_progress/đã hoàn thành mục.role Chuỗi Không Vai trò liên quan đến mục đầu ra trợ lý item.content Mảng Không Nội dung mục đầu ra ["loại", "văn bản", "âm thanh", "bản ghi"]
Được trả về khi quá trình truyền mục đầu ra hoàn tất.
Tham số Loại Bắt buộc Mô tả Giá trị mẫu sự kiện_id Chuỗi Không Mã định danh duy nhất cho sự kiện máy chủ sự kiện_3536 gõ Chuỗi Không Loại sự kiện phản hồi.output_item.done phản hồi_id Chuỗi Không ID của phản hồi mà mục đầu ra thuộc về phản hồi_001 đầu ra_index Chuỗi Không Chỉ mục mục đầu ra phản hồi 0 item.id Chuỗi Không Mã định danh duy nhất cho mục đầu ra tin nhắn_007 item.object Chuỗi Không Loại đối tượng thời gian thực.item item.type Chuỗi Không Loại hạng mục đầu ra tin nhắn/function_call/function_call_output mục.status Chuỗi Không Trạng thái cuối cùng của mục đầu ra đã hoàn thành/chưa hoàn thành mục.role Chuỗi Không Vai trò liên quan đến mục đầu ra trợ lý item.content Mảng Không Nội dung mục đầu ra ["loại", "văn bản", "âm thanh", "bản ghi"]
Được trả về khi một phần nội dung mới được thêm vào mục tin nhắn trợ lý trong quá trình tạo phản hồi.
Tham số Loại Bắt buộc Mô tả Giá trị mẫu sự kiện_id Chuỗi Không Mã định danh duy nhất cho sự kiện máy chủ sự kiện_3738 gõ Chuỗi Không Loại sự kiện phản hồi.content_part.add phản hồi_id Chuỗi Không ID phản hồi phản hồi_001 item_id Chuỗi Không ID của mục tin cần thêm phần nội dung vào tin nhắn_007 đầu ra_index Số nguyên Không Chỉ mục mục đầu ra phản hồi 0 nội dung_index Số nguyên Không Chỉ mục phần nội dung trong mảng nội dung mục tin nhắn 0 phần.type Chuỗi Không Loại nội dung văn bản/âm thanh phần.text Chuỗi Không Nội dung văn bản "Xin chào" phần.audio Chuỗi Không Dữ liệu âm thanh được mã hóa Base64 "base64_encoded_audio_data" phần.transcript Chuỗi Không Văn bản được phiên âm của âm thanh "Xin chào"
Được trả về khi phần nội dung trong quá trình phát trực tuyến mục tin nhắn trợ lý hoàn tất.
Tham số Loại Bắt buộc Mô tả Giá trị mẫu sự kiện_id Chuỗi Không Mã định danh duy nhất cho sự kiện máy chủ sự kiện_3940 gõ Chuỗi Không Loại sự kiện phản hồi.content_part.done phản hồi_id Chuỗi Không ID phản hồi phản hồi_001 item_id Chuỗi Không ID của mục tin cần thêm phần nội dung vào tin nhắn_007 đầu ra_index Số nguyên Không Chỉ mục mục đầu ra phản hồi 0 nội dung_index Số nguyên Không Chỉ mục phần nội dung trong mảng nội dung mục tin nhắn 0 phần.type Chuỗi Không Loại nội dung văn bản/âm thanh phần.text Chuỗi Không Nội dung văn bản "Xin chào" phần.audio Chuỗi Không Dữ liệu âm thanh được mã hóa Base64 "base64_encoded_audio_data" phần.transcript Chuỗi Không Văn bản được phiên âm của âm thanh "Xin chào"
Được trả về khi giá trị văn bản của phần nội dung loại "văn bản" được cập nhật.
Tham số Loại Bắt buộc Mô tả Giá trị mẫu sự kiện_id Chuỗi Không Mã định danh duy nhất cho sự kiện máy chủ sự kiện_4142 gõ Chuỗi Không Loại sự kiện phản hồi.text.delta phản hồi_id Chuỗi Không ID phản hồi phản hồi_001 item_id Chuỗi Không ID của mục tin nhắn tin nhắn_007 đầu ra_index Số nguyên Không Chỉ mục mục đầu ra phản hồi 0 nội dung_index Số nguyên Không Chỉ mục phần nội dung trong mảng nội dung mục tin nhắn 0 đồng bằng Chuỗi Không Nội dung cập nhật văn bản delta "Chắc chắn rồi, tôi có thể h"
Được trả về khi quá trình truyền phát văn bản phần nội dung loại "văn bản" hoàn tất.
Tham số Loại Bắt buộc Mô tả Giá trị mẫu sự kiện_id Chuỗi Không Mã định danh duy nhất cho sự kiện máy chủ sự kiện_4344 gõ Chuỗi Không Loại sự kiện phản hồi.text.done phản hồi_id Chuỗi Không ID phản hồi phản hồi_001 item_id Chuỗi Không ID của mục tin nhắn tin nhắn_007 đầu ra_index Số nguyên Không Chỉ mục mục đầu ra phản hồi 0 nội dung_index Số nguyên Không Chỉ mục phần nội dung trong mảng nội dung mục tin nhắn 0 đồng bằng Chuỗi Không Nội dung văn bản hoàn chỉnh cuối cùng "Chắc chắn rồi, tôi có thể giúp việc đó."
Trả về khi cập nhật nội dung phiên âm của đầu ra âm thanh do mô hình tạo.
Tham số Loại Bắt buộc Mô tả Giá trị mẫu sự kiện_id Chuỗi Không Mã định danh duy nhất cho sự kiện máy chủ sự kiện_4546 gõ Chuỗi Không Loại sự kiện phản hồi.audio_transcript.delta phản hồi_id Chuỗi Không ID phản hồi phản hồi_001 item_id Chuỗi Không ID của mục tin nhắn tin nhắn_008 đầu ra_index Số nguyên Không Chỉ mục mục đầu ra phản hồi 0 nội dung_index Số nguyên Không Chỉ mục phần nội dung trong mảng nội dung mục tin nhắn 0 đồng bằng Chuỗi Không Nội dung cập nhật delta văn bản phiên âm "Xin chào, làm sao tôi có thể"
Được trả về khi quá trình sao chép quá trình truyền phát âm thanh do mô hình tạo hoàn tất.
Tham số Loại Bắt buộc Mô tả Giá trị mẫu sự kiện_id Chuỗi Không Mã định danh duy nhất cho sự kiện máy chủ sự kiện_4748 gõ Chuỗi Không Loại sự kiện phản hồi.audio_transcript.done phản hồi_id Chuỗi Không ID phản hồi phản hồi_001 item_id Chuỗi Không ID của mục tin nhắn tin nhắn_008 đầu ra_index Số nguyên Không Chỉ mục mục đầu ra phản hồi 0 nội dung_index Số nguyên Không Chỉ mục phần nội dung trong mảng nội dung mục tin nhắn 0 bảng điểm Chuỗi Không Văn bản ghi âm hoàn chỉnh cuối cùng "Xin chào, hôm nay tôi có thể giúp gì cho bạn?"
Trả về khi cập nhật nội dung âm thanh do mô hình tạo.
Tham số Loại Bắt buộc Mô tả Giá trị mẫu sự kiện_id Chuỗi Không Mã định danh duy nhất cho sự kiện máy chủ sự kiện_4950 gõ Chuỗi Không Loại sự kiện phản hồi.audio.delta phản hồi_id Chuỗi Không ID phản hồi phản hồi_001 item_id Chuỗi Không ID của mục tin nhắn tin nhắn_008 đầu ra_index Số nguyên Không Chỉ mục mục đầu ra phản hồi 0 nội dung_index Số nguyên Không Chỉ mục phần nội dung trong mảng nội dung mục tin nhắn 0 đồng bằng Chuỗi Không Delta dữ liệu âm thanh được mã hóa Base64 "Base64EncodedAudioDelta"
Được trả về khi âm thanh do mô hình tạo hoàn tất.
Tham số Loại Bắt buộc Mô tả Giá trị mẫu sự kiện_id Chuỗi Không Mã định danh duy nhất cho sự kiện máy chủ sự kiện_5152 gõ Chuỗi Không Loại sự kiện phản hồi.audio.done phản hồi_id Chuỗi Không ID phản hồi phản hồi_001 item_id Chuỗi Không ID của mục tin nhắn tin nhắn_008 đầu ra_index Số nguyên Không Chỉ mục mục đầu ra phản hồi 0 nội dung_index Số nguyên Không Chỉ mục phần nội dung trong mảng nội dung mục tin nhắn 0
Trả về khi cập nhật các đối số lệnh gọi hàm do mô hình tạo.
Tham số Loại Bắt buộc Mô tả Giá trị mẫu sự kiện_id Chuỗi Không Mã định danh duy nhất cho sự kiện máy chủ sự kiện_5354 gõ Chuỗi Không Loại sự kiện phản hồi.function_call_arguments.delta phản hồi_id Chuỗi Không ID phản hồi phản hồi_002 item_id Chuỗi Không ID của mục tin nhắn fc_001 đầu ra_index Số nguyên Không Chỉ mục mục đầu ra phản hồi 0 gọi_id Chuỗi Không ID của lệnh gọi hàm gọi_001 đồng bằng Chuỗi Không Đối số gọi hàm định dạng JSON delta {"location": "San"}
Được trả về khi quá trình truyền đối số lệnh gọi hàm do mô hình tạo hoàn tất.
Tham số Loại Bắt buộc Mô tả Giá trị mẫu sự kiện_id Chuỗi Không Mã định danh duy nhất cho sự kiện máy chủ sự kiện_5556 gõ Chuỗi Không Loại sự kiện phản hồi.function_call_arguments.done phản hồi_id Chuỗi Không ID phản hồi phản hồi_002 item_id Chuỗi Không ID của mục tin nhắn fc_001 đầu ra_index Số nguyên Không Chỉ mục mục đầu ra phản hồi 0 gọi_id Chuỗi Không ID của lệnh gọi hàm gọi_001 lập luận Chuỗi Không Đối số lệnh gọi hàm hoàn chỉnh cuối cùng (định dạng JSON) {"vị trí": "San Francisco"}
Được kích hoạt sau mỗi sự kiện "response.done" để cho biết giới hạn tốc độ được cập nhật.
Tham số Loại Bắt buộc Mô tả Giá trị mẫu sự kiện_id Chuỗi Không Mã định danh duy nhất cho sự kiện máy chủ sự kiện_5758 gõ Chuỗi Không Loại sự kiện rate_limits.updated tỷ lệ_limits Mảng đối tượng Không Danh sách thông tin giới hạn tỷ lệ [{"name": "requests_per_min", "limit": 60, "remaining": 45, "reset_seconds": 35}]
Trả về khi cuộc trò chuyện được tạo.
Tham số Loại Bắt buộc Mô tả Giá trị mẫu sự kiện_id Chuỗi Không Mã định danh duy nhất cho sự kiện máy chủ sự kiện_9101 gõ Chuỗi Không Loại sự kiện cuộc trò chuyện.created cuộc trò chuyện Đối tượng Không Đối tượng tài nguyên hội thoại {"id": "conv_001", "object": "realtime.conversation"}
Được trả về khi mục hội thoại được tạo.
Tham số Loại Bắt buộc Mô tả Giá trị mẫu sự kiện_id Chuỗi Không Mã định danh duy nhất cho sự kiện máy chủ sự kiện_1920 gõ Chuỗi Không Loại sự kiện cuộc trò chuyện.item.created trước_item_id Chuỗi Không ID của mục hội thoại trước đó tin nhắn_002 mục Đối tượng Không Đối tượng mục hội thoại {"id": "msg_003", "object": "realtime.item", "type": "message", "status": "completed", "role": "user", "content": [{"type": "text", "text": "Hello"}]}
Trả về khi phiên được tạo.
Tham số Loại Bắt buộc Mô tả Giá trị mẫu sự kiện_id Chuỗi Không Mã định danh duy nhất cho sự kiện máy chủ sự kiện_1234 gõ Chuỗi Không Loại sự kiện phiên.created phiên Đối tượng Không Đối tượng phiên {"id": "sess_001", "object": "realtime.session", "model": "gpt-4", "modalities": ["text", "audio"]}
Trả về khi phiên được cập nhật.
Tham số Loại Bắt buộc Mô tả Giá trị mẫu sự kiện_id Chuỗi Không Mã định danh duy nhất cho sự kiện máy chủ sự kiện_5678 gõ Chuỗi Không Loại sự kiện phiên.updated phiên Đối tượng Không Đối tượng phiên cập nhật {"id": "sess_001", "object": "realtime.session", "model": "gpt-4", "modalities": ["text", "audio"]}
Tham số Loại Bắt buộc Mô tả Giá trị mẫu tên Chuỗi Có Tên giới hạn yêu cầu_per_min giới hạn Số nguyên Có Giá trị giới hạn 60 còn lại Số nguyên Có Số tiền còn lại 45 reset_seconds Số nguyên Có Đặt lại thời gian (giây) 35
Tham số Loại Bắt buộc Mô tả Giá trị mẫu gõ Chuỗi Có Loại chức năng chức năng tên Chuỗi Có Tên chức năng get_weather mô tả Chuỗi Không Mô tả chức năng Nhận thời tiết hiện tại thông số Đối tượng Có Định nghĩa tham số hàm {"type": "object", "properties": {...}}
Tham số Loại Mô tả Giá trị tùy chọn mẫu_rate Số nguyên Tỷ lệ mẫu 8000, 16000, 24000, 44100, 48000 kênh Số nguyên Số lượng kênh 1 (đơn âm), 2 (âm thanh nổi) bit_per_sample Số nguyên Bit trên mỗi mẫu 16 (pcm16), 8 (g711) mã hóa Chuỗi Phương pháp mã hóa pcm16, g711_ulaw, g711_alaw
Tham số Loại Mô tả Giá trị mặc định Phạm vi ngưỡng Phao Ngưỡng kích hoạt VAD 0,5 0,0-1,0 tiền tố_padding_ms Số nguyên Phần đệm tiền tố giọng nói (mili giây) 500 0-5000 im lặng_duration_ms Số nguyên Thời lượng phát hiện im lặng (mili giây) 1000 100-10000
Tham số Loại Mô tả Giá trị tùy chọn tool_choice Chuỗi Phương pháp lựa chọn công cụ tự động, không có, bắt buộc công cụ Mảng Danh sách công cụ có sẵn [{type, name, description, parameters}]
Tham số Loại Mô tả Phạm vi/Giá trị tùy chọn Giá trị mặc định nhiệt độ Phao Nhiệt độ lấy mẫu 0,0-2,0 1.0 max_output_tokens Số nguyên/Chuỗi Độ dài đầu ra tối đa 1-4096/"thông tin" "thông tin" phương thức Mảng chuỗi Phương thức phản hồi ["văn bản", "âm thanh"] ["văn bản"] giọng nói Chuỗi Loại giọng nói hợp kim, tiếng vang, ánh sáng lung linh hợp kim
Tham số Loại Bắt buộc Mô tả Giá trị mẫu sự kiện_id Chuỗi Có Mã định danh duy nhất cho sự kiện sự kiện_123 gõ Chuỗi Có Loại sự kiện phiên.update dấu thời gian Số nguyên Không Dấu thời gian sự kiện (mili giây) 1677649363000
Tham số Loại Mô tả Giá trị tùy chọn trạng thái Chuỗi Trạng thái phiên đang hoạt động, đã kết thúc, lỗi lỗi Đối tượng Thông tin lỗi {"type": "error_type", "message": "error message"}siêu dữ liệu Đối tượng Siêu dữ liệu phiên {"client_id": "web", "session_type": "chat"}
Tham số Loại Mô tả Giá trị tùy chọn trạng thái Chuỗi Trạng thái mục hội thoại đã hoàn thành, đang_tiến hành, chưa hoàn thành vai trò Chuỗi Vai trò người gửi người dùng, trợ lý, hệ thống gõ Chuỗi Loại mục hội thoại tin nhắn, function_call, function_call_output
Tham số Loại Mô tả Giá trị tùy chọn gõ Chuỗi Loại nội dung văn bản, âm thanh, bản ghi định dạng Chuỗi Định dạng nội dung đơn giản, đánh dấu, html mã hóa Chuỗi Phương pháp mã hóa utf-8, base64
Tham số Loại Mô tả Giá trị tùy chọn trạng thái Chuỗi Trạng thái phản hồi đã hoàn thành, bị hủy bỏ, thất bại, chưa hoàn thành trạng thái_chi tiết Đối tượng Chi tiết trạng thái {"reason": "user_cancelled"}sử dụng Đối tượng Thống kê sử dụng {"total_tokens": 50, "input_tokens": 20, "output_tokens": 30}
Tham số Loại Mô tả Giá trị mẫu đã bật Boolean Liệu phiên âm có được bật hay không đúng người mẫu Chuỗi Mô hình phiên mã thì thầm-1 ngôn ngữ Chuỗi Ngôn ngữ phiên âm vi, zh, ô tô nhắc Chuỗi Lời nhắc phiên âm "Bản ghi cuộc trò chuyện"
Tham số Loại Mô tả Giá trị tùy chọn chunk_size Số nguyên Kích thước đoạn âm thanh (byte) 1024, 2048, 4096 độ trễ Chuỗi Chế độ trễ thấp, cân bằng, cao nén Chuỗi Phương pháp nén không có, opus, mp3
Tham số Loại Mô tả Giá trị mặc định máy chủ băng Mảng Danh sách máy chủ ICE [{"urls": "stun:stun.l.google.com:19302"}]audio_constraint Đối tượng Hạn chế về âm thanh {"echoCancellation": true}kết nối_timeout Số nguyên Hết thời gian kết nối (mili giây) 30000