Nếu bạn tạo các yêu cầu hoàn thành dài, việc chờ phản hồi có thể mất nhiều giây.
Để nhận được phản hồi sớm hơn, bạn có thể 'phát trực tuyến' quá trình hoàn thành khi nó đang được tạo. Điều này cho phép bạn bắt đầu in hoặc xử lý phần đầu của quá trình hoàn thành trước khi quá trình hoàn thành đầy đủ kết thúc.
Để truyền phát hoàn thành, hãy đặt stream=True khi gọi các điểm cuối hoàn thành hoặc hoàn thành trò chuyện. Điều này sẽ trả về một đối tượng truyền phát phản hồi dưới dạng các sự kiện do máy chủ gửi chỉ có dữ liệu . Trích xuất các khối từ delta trường thay vì messagetrường.
- Sở hữu ngay tài khoản ChatGPT 4.0 chỉ với vài bước đơn giản
Nhược điểm
Lưu ý rằng việc sử dụng stream=Truetrong ứng dụng sản xuất khiến việc kiểm duyệt nội dung hoàn thành trở nên khó khăn hơn vì việc đánh giá hoàn thành một phần có thể khó khăn hơn. Điều này có thể có ý nghĩa đối với việc sử dụng đã được chấp thuận .
Mã ví dụ
Dưới đây, cuốn sổ tay này cho thấy:
+ Phản hồi hoàn thành trò chuyện thông thường trông như thế nào
+ Phản hồi hoàn tất trò chuyện trực tuyến trông như thế nào
+ Tiết kiệm được bao nhiêu thời gian khi phát trực tiếp hoàn tất trò chuyện
+ Cách lấy dữ liệu sử dụng mã thông báo cho phản hồi hoàn thành trò chuyện được phát trực tuyến
# !pip install openai# imports
import time # for measuring time duration of API calls
from openai import OpenAI
import os
client = OpenAI(api_key=os.environ.get("OPENAI_API_KEY", ""))Phản hồi hoàn thành trò chuyện thông thường trông như thế nào
Với lệnh gọi API ChatCompletions thông thường, phản hồi sẽ được tính toán trước rồi trả về cùng một lúc.
# Example of an OpenAI ChatCompletion request
# https://platform.openai.com/docs/guides/text-generation/chat-completions-api
# record the time before the request is sent
start_time = time.time()
# send a ChatCompletion request to count to 100
response = client.chat.completions.create( model='gpt-4o-mini', messages=[ {'role': 'user', 'content': 'Count to 100, with a comma between each number and no newlines. E.g., 1, 2, 3, ...'} ], temperature=0,
)
# calculate the time it took to receive the response
response_time = time.time() - start_time
# print the time delay and text received
print(f"Full response received {response_time:.2f} seconds after request")
print(f"Full response received:\n{response}")Nhận được phản hồi đầy đủ sau 1,88 giây kể từ khi yêu cầu Nhận được phản hồi đầy đủ: ChatCompletion(id='chatcmpl-9lMgdoiMfxVHPDNVCtvXuTWcQ2GGb', choices=[Choice(finish_reason='stop', index=0, logprobs=None, message=ChatCompletionMessage(content='1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, , 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100', role='trợ lý', function_call=Không có, tool_calls=Không có))], created=1721075651, model='gpt-july-test', object='chat.completion', system_fingerprint='fp_e9b8ed65d2', usage=CompletionUsage(completion_tokens=298, prompt_tokens=36, total_tokens=334))Câu trả lời có thể được trích xuất bằng response.choices[0].message.
Nội dung của câu trả lời có thể được trích xuất bằng response.choices[0].message.content.
reply = response.choices[0].message
print(f"Extracted reply: \n{reply}")
reply_content = response.choices[0].message.content
print(f"Extracted content: \n{reply_content}")Trích xuất trả lời: ChatCompletionMessage(content='1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100', role='assistant', function_call=None, tool_calls=None) Nội dung đã trích xuất: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, , 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100Cách phát trực tiếp hoàn thành trò chuyện
Với lệnh gọi API phát trực tuyến, phản hồi được gửi lại theo từng phần thông qua luồng sự kiện . Trong Python, bạn có thể lặp lại các sự kiện này bằng forvòng lặp.
Hãy cùng xem nó trông như thế nào:
# Example of an OpenAI ChatCompletion request with stream=True
# https://platform.openai.com/docs/api-reference/streaming#chat/create-stream
# a ChatCompletion request
response = client.chat.completions.create( model='gpt-4o-mini', messages=[ {'role': 'user', 'content': "What's 1+1? Answer in one word."} ], temperature=0, stream=True # this time, we set stream=True
)
for chunk in response: print(chunk) print(chunk.choices[0].delta.content) print("****************")
ChatCompletionChunk(id='chatcmpl-9lMgfRSWPHcw51s6wxKT1YEO2CKpd', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, role='assistant', tool_calls=None), finish_reason=None, index=0, logprobs=None)], created=1721075653, model='gpt-july-test', object='chat.completion.chunk', system_fingerprint='fp_e9b8ed65d2', usage=None)
**************** ChatCompletionChunk(id='chatcmpl-9lMgfRSWPHcw51s6wxKT1YEO2CKpd', choices=[Choice(delta=ChoiceDelta(content='Hai', function_call=None, role=None, tool_calls=Không có), finish_reason=Không có, index=0, logprobs=Không có)], created=1721075653, model='gpt-july-test', object='chat.completion.chunk', system_fingerprint='fp_e9b8ed65d2', usage=Không có) Hai **************** ChatCompletionChunk(id='chatcmpl-9lMgfRSWPHcw51s6wxKT1YEO2CKpd', choices=[Choice(delta=ChoiceDelta(content='.', function_call=Không có, role=Không có, tool_calls=Không có), finish_reason=Không có, index=0, logprobs=Không có)], created=1721075653, model='gpt-july-test', object='chat.completion.chunk', system_fingerprint='fp_e9b8ed65d2', usage=None) . **************** ChatCompletionChunk(id='chatcmpl-9lMgfRSWPHcw51s6wxKT1YEO2CKpd', choices=[Choice(delta=ChoiceDelta(content=None, function_call=None, role=None, tool_calls=None), finish_reason='stop', index=0, logprobs=None)], created=1721075653, model='gpt-july-test', object='chat.completion.chunk', system_fingerprint='fp_e9b8ed65d2', usage=None) None ****************Như bạn có thể thấy ở trên, phản hồi phát trực tuyến có một deltatrường thay vì một messagetrường. deltacó thể chứa những thứ như:
- một mã thông báo vai trò (ví dụ,
{"role": "assistant"}) - một mã thông báo nội dung (ví dụ,
{"content": "\n\n"}) - không có gì (ví dụ,
{}), khi luồng kết thúc
Tiết kiệm được bao nhiêu thời gian khi phát trực tiếp hoàn tất cuộc trò chuyện
Bây giờ chúng ta hãy yêu cầu gpt-4o-mini65 đếm đến 100 một lần nữa và xem mất bao lâu.
# Example of an OpenAI ChatCompletion request with stream=True
# https://platform.openai.com/docs/api-reference/streaming#chat/create-stream
# record the time before the request is sent
start_time = time.time()
# send a ChatCompletion request to count to 100
response = client.chat.completions.create( model='gpt-4o-mini', messages=[ {'role': 'user', 'content': 'Count to 100, with a comma between each number and no newlines. E.g., 1, 2, 3, ...'} ], temperature=0, stream=True # again, we set stream=True
)
# create variables to collect the stream of chunks
collected_chunks = []
collected_messages = []
# iterate through the stream of events
for chunk in response: chunk_time = time.time() - start_time # calculate the time delay of the chunk collected_chunks.append(chunk) # save the event response chunk_message = chunk.choices[0].delta.content # extract the message collected_messages.append(chunk_message) # save the message print(f"Message received {chunk_time:.2f} seconds after request: {chunk_message}") # print the delay and text
# print the time delay and text received
print(f"Full response received {chunk_time:.2f} seconds after request")
# clean None in collected_messages
collected_messages = [m for m in collected_messages if m is not None]
full_reply_content = ''.join(collected_messages)
print(f"Full conversation received: {full_reply_content}")Tin nhắn nhận được 1,14 giây sau khi yêu cầu: Tin nhắn nhận được 1,14 giây sau khi yêu cầu: 1 Tin nhắn nhận được 1,14 giây sau khi yêu cầu: , Tin nhắn nhận được 1,14 giây sau khi yêu cầu: Tin nhắn nhận được 1,14 giây sau khi yêu cầu: 2 Tin nhắn nhận được 1,16 giây sau khi yêu cầu: , Tin nhắn nhận được 1,16 giây sau khi yêu cầu: Tin nhắn nhận được 1,16 giây sau khi yêu cầu: 3 Tin nhắn nhận được 1,35 giây sau khi yêu cầu: , Tin nhắn nhận được 1,35 giây sau khi yêu cầu: Tin nhắn nhận được 1,35 giây sau khi yêu cầu: 4 Tin nhắn nhận được 1,36 giây sau khi yêu cầu: , Tin nhắn nhận được 1,36 giây sau khi yêu cầu : Tin nhắn nhận được 1,36 giây sau khi yêu cầu: 5 Tin nhắn nhận được 1,36 giây sau khi yêu cầu: , Tin nhắn nhận được 1,36 giây sau khi yêu cầu: Tin nhắn nhận được 1,36 giây sau khi yêu cầu: 6 Tin nhắn nhận được 1,36 giây sau khi yêu cầu: , Tin nhắn nhận được 1,36 giây sau khi yêu cầu: Tin nhắn nhận được 1,36 giây sau yêu cầu: 7 Tin nhắn đã nhận 1,36 giây sau khi yêu cầu: , Tin nhắn đã nhận 1,36 giây sau khi yêu cầu: Tin nhắn đã nhận 1,36 giây sau khi yêu cầu: 8 Tin nhắn đã nhận 1,36 giây sau khi yêu cầu: , Tin nhắn đã nhận 1,36 giây sau khi yêu cầu: Tin nhắn đã nhận 1,36 giây sau khi yêu cầu: 9 Tin nhắn đã nhận 1,36 giây sau khi yêu cầu: , Tin nhắn đã nhận 1,36 giây sau khi yêu cầu: Tin nhắn đã nhận 1,36 giây sau khi yêu cầu: 10 Tin nhắn đã nhận 1,36 giây sau khi yêu cầu: , Tin nhắn đã nhận 1,36 giây sau khi yêu cầu: Tin nhắn đã nhận 1,36 giây sau khi yêu cầu: 11 Tin nhắn đã nhận 1,36 giây sau khi yêu cầu: , Tin nhắn đã nhận 1,36 giây sau khi yêu cầu: Tin nhắn đã nhận 1,36 giây sau khi yêu cầu: 12 Tin nhắn đã nhận 1,36 giây sau khi yêu cầu: , Tin nhắn đã nhận 1,36 giây sau khi yêu cầu: Tin nhắn đã nhận 1,45 giây sau khi yêu cầu: 13 Tin nhắn đã nhận 1,45 giây sau khi yêu cầu: , Tin nhắn đã nhận 1,45 giây sau khi yêu cầu: Tin nhắn đã nhận 1,45 giây sau khi yêu cầu: 14 Tin nhắn đã nhận 1,45 giây sau khi yêu cầu: , Tin nhắn đã nhận 1,45 giây sau khi yêu cầu: Tin nhắn đã nhận 1,45 giây sau khi yêu cầu: 15 Tin nhắn đã nhận 1,45 giây sau khi yêu cầu: , Tin nhắn đã nhận 1,45 giây sau khi yêu cầu: Tin nhắn đã nhận 1,46 giây sau khi yêu cầu: 16 Tin nhắn đã nhận 1,46 giây sau khi yêu cầu: , Tin nhắn đã nhận 1,46 giây sau khi yêu cầu:
Tin nhắn nhận được 1,47 giây sau khi yêu cầu: 17 Tin nhắn nhận được 1,47 giây sau khi yêu cầu: , Tin nhắn nhận được 1,47 giây sau khi yêu cầu: Tin nhắn nhận được 1,49 giây sau khi yêu cầu: 18 Tin nhắn nhận được 1,49 giây sau khi yêu cầu: , Tin nhắn nhận được 1,49 giây sau khi yêu cầu: Tin nhắn nhận được 1,52 giây sau khi yêu cầu: 19 Tin nhắn nhận được 1,52 giây sau khi yêu cầu: , Tin nhắn nhận được 1,52 giây sau khi yêu cầu: Tin nhắn nhận được 1,53 giây sau khi yêu cầu: 20 Tin nhắn nhận được 1,53 giây sau khi yêu cầu: , Tin nhắn nhận được 1,53 giây sau khi yêu cầu: Tin nhắn nhận được 1,55 giây sau khi yêu cầu : 21 Tin nhắn nhận được 1,55 giây sau khi yêu cầu: , Tin nhắn nhận được 1,55 giây sau khi yêu cầu: Tin nhắn nhận được 1,56 giây sau khi yêu cầu: 22 Tin nhắn nhận được 1,56 giây sau khi yêu cầu: , Tin nhắn nhận được 1,56 giây sau khi yêu cầu: Tin nhắn nhận được 1,58 giây sau khi yêu cầu: 23 Tin nhắn nhận được 1,58 giây sau khi yêu cầu: , Tin nhắn nhận được 1,58 giây sau khi yêu cầu: Tin nhắn nhận được 1,59 giây sau khi yêu cầu: 24 Tin nhắn nhận được 1,59 giây sau khi yêu cầu: , Tin nhắn nhận được 1,59 giây sau khi yêu cầu: Tin nhắn nhận được 1,62 giây sau khi yêu cầu: 25 Tin nhắn nhận được 1,62 giây sau khi yêu cầu: , Tin nhắn nhận được 1,62 giây sau khi yêu cầu: Tin nhắn nhận được 1,62 giây sau khi yêu cầu: 26 Tin nhắn nhận được 1,62 giây sau khi yêu cầu: , Tin nhắn nhận được 1,62 giây sau khi yêu cầu: Tin nhắn nhận được 1,65 giây sau khi yêu cầu: 27 Tin nhắn nhận được 1,65 giây sau khi yêu cầu: , Tin nhắn nhận được 1,65 giây sau khi yêu cầu: Tin nhắn nhận được 1,67 giây sau khi yêu cầu: 28 Tin nhắn nhận được 1,67 giây sau khi yêu cầu: , Tin nhắn nhận được 1,67 giây sau khi yêu cầu: Tin nhắn nhận được 1,69 giây sau khi yêu cầu: 29 Tin nhắn nhận được 1,69 giây sau khi yêu cầu: , Tin nhắn nhận được 1,69 giây sau khi yêu cầu: Tin nhắn đã nhận 1,80 giây sau khi yêu cầu: 30 Tin nhắn đã nhận 1,80 giây sau khi yêu cầu: , Tin nhắn đã nhận 1,80 giây sau khi yêu cầu: Tin nhắn đã nhận 1,80 giây sau khi yêu cầu: 31 Tin nhắn đã nhận 1,80 giây sau khi yêu cầu: , Tin nhắn đã nhận 1,80 giây sau khi yêu cầu: Tin nhắn đã nhận 1,80 giây sau khi yêu cầu: 32 Tin nhắn đã nhận 1,80 giây sau khi yêu cầu: , Tin nhắn đã nhận 1,80 giây sau khi yêu cầu: Tin nhắn đã nhận 1,80 giây sau khi yêu cầu: 33
Tin nhắn nhận được 1,80 giây sau khi yêu cầu: , Tin nhắn nhận được 1,80 giây sau khi yêu cầu: Tin nhắn nhận được 1,80 giây sau khi yêu cầu: 34 Tin nhắn nhận được 1,80 giây sau khi yêu cầu: , Tin nhắn nhận được 1,80 giây sau khi yêu cầu: Tin nhắn nhận được 1,80 giây sau khi yêu cầu: 35 Tin nhắn nhận được 1,80 giây sau khi yêu cầu: , Tin nhắn nhận được 1,80 giây sau khi yêu cầu: Tin nhắn nhận được 1,80 giây sau khi yêu cầu: 36 Tin nhắn nhận được 1,80 giây sau khi yêu cầu: , Tin nhắn nhận được 1,80 giây sau khi yêu cầu: Tin nhắn nhận được 1,82 giây sau khi yêu cầu: 37 Tin nhắn nhận được 1,82 giây sau khi yêu cầu: , Tin nhắn nhận được 1,82 giây sau khi yêu cầu: , Tin nhắn nhận được 1,83 giây sau khi yêu cầu: 38 Tin nhắn nhận được 1,83 giây sau khi yêu cầu: , Tin nhắn nhận được 1,83 giây sau khi yêu cầu: Tin nhắn nhận được 1,84 giây sau khi yêu cầu: 39 Tin nhắn nhận được 1,84 giây sau khi yêu cầu: , Tin nhắn nhận được 1,84 giây sau khi yêu cầu: Tin nhắn đã nhận 1,87 giây sau khi yêu cầu: 40 Tin nhắn đã nhận 1,87 giây sau khi yêu cầu: , Tin nhắn đã nhận 1,87 giây sau khi yêu cầu: Tin nhắn đã nhận 1,88 giây sau khi yêu cầu: 41 Tin nhắn đã nhận 1,88 giây sau khi yêu cầu: , Tin nhắn đã nhận 1,88 giây sau khi yêu cầu: Tin nhắn đã nhận 1,91 giây sau khi yêu cầu: 42 Tin nhắn đã nhận 1,91 giây sau khi yêu cầu: , Tin nhắn đã nhận 1,91 giây sau khi yêu cầu: Tin nhắn đã nhận 1,93 giây sau khi yêu cầu : 43 Tin nhắn đã nhận 1,93 giây sau khi yêu cầu: , Tin nhắn đã nhận 1,93 giây sau khi yêu cầu: Tin nhắn đã nhận 1,93 giây sau khi yêu cầu: 44 Tin nhắn đã nhận 1,93 giây sau khi yêu cầu: , Tin nhắn đã nhận 1,93 giây sau khi yêu cầu: Tin nhắn đã nhận 1,95 giây sau khi yêu cầu: 45 Tin nhắn đã nhận 1,95 giây sau khi yêu cầu: , Tin nhắn đã nhận 1,95 giây sau khi yêu cầu: Tin nhắn đã nhận 2,00 giây sau yêu cầu: 46 Tin nhắn được nhận sau 2,00 giây kể từ khi yêu cầu: , Tin nhắn được nhận sau 2,00 giây kể từ khi yêu cầu: Tin nhắn được nhận sau 2,00 giây kể từ khi yêu cầu: 47 Tin nhắn được nhận sau 2,00 giây kể từ khi yêu cầu: , Tin nhắn được nhận sau 2,00 giây kể từ khi yêu cầu: Tin nhắn được nhận sau 2,00 giây kể từ khi yêu cầu: 48 Tin nhắn được nhận sau 2,00 giây kể từ khi yêu cầu: , Tin nhắn được nhận sau 2,00 giây kể từ khi yêu cầu: Tin nhắn được nhận sau 2,00 giây kể từ khi yêu cầu: 49 Tin nhắn được nhận sau 2,00 giây kể từ khi yêu cầu: ,
Tin nhắn nhận được 2,00 giây sau khi yêu cầu: Tin nhắn nhận được 2,00 giây sau khi yêu cầu: 50 Tin nhắn nhận được 2,00 giây sau khi yêu cầu: , Tin nhắn nhận được 2,00 giây sau khi yêu cầu: Tin nhắn nhận được 2,00 giây sau khi yêu cầu: 51 Tin nhắn nhận được 2,00 giây sau khi yêu cầu: , Tin nhắn nhận được 2,04 giây sau khi yêu cầu: Tin nhắn nhận được 2,04 giây sau khi yêu cầu: 52 Tin nhắn nhận được 2,04 giây sau khi yêu cầu: , Tin nhắn nhận được 2,04 giây sau khi yêu cầu: Tin nhắn nhận được 2,04 giây sau khi yêu cầu: 53 Tin nhắn nhận được 2,04 giây sau khi yêu cầu: , Tin nhắn nhận được 2,13 giây sau khi yêu cầu: Tin nhắn nhận được 2,13 giây sau khi yêu cầu: 54 Tin nhắn nhận được 2,14 giây sau khi yêu cầu: , Tin nhắn nhận được 2,14 giây sau khi yêu cầu: Tin nhắn nhận được 2,14 giây sau khi yêu cầu: 55 Tin nhắn nhận được 2,14 giây sau khi yêu cầu: , Tin nhắn nhận được 2,14 giây sau khi yêu cầu: Tin nhắn nhận được 2,14 giây sau khi yêu cầu: 56 Tin nhắn đã nhận 2,14 giây sau khi yêu cầu: , Tin nhắn đã nhận 2,14 giây sau khi yêu cầu: Tin nhắn đã nhận 2,16 giây sau khi yêu cầu: 57 Tin nhắn đã nhận 2,16 giây sau khi yêu cầu: , Tin nhắn đã nhận 2,16 giây sau khi yêu cầu: Tin nhắn đã nhận 2,17 giây sau khi yêu cầu: 58 Tin nhắn đã nhận 2,17 giây sau khi yêu cầu: , Tin nhắn đã nhận 2,17 giây sau khi yêu cầu: Tin nhắn đã nhận 2,19 giây sau khi yêu cầu: 59 Tin nhắn đã nhận 2,19 giây sau khi yêu cầu: , Tin nhắn đã nhận 2,19 giây sau khi yêu cầu: Tin nhắn đã nhận 2,21 giây sau khi yêu cầu: 60 Tin nhắn đã nhận 2,21 giây sau khi yêu cầu: , Tin nhắn đã nhận 2,21 giây sau khi yêu cầu: Tin nhắn đã nhận 2,34 giây sau khi yêu cầu: 61 Tin nhắn đã nhận 2,34 giây sau khi yêu cầu: , Tin nhắn đã nhận 2,34 giây sau khi yêu cầu: Tin nhắn đã nhận 2,34 giây sau khi yêu cầu: 62 Tin nhắn đã nhận 2,34 giây sau khi yêu cầu: , Tin nhắn đã nhận 2,34 giây sau khi yêu cầu: Tin nhắn đã nhận 2,34 giây sau khi yêu cầu: 63 Tin nhắn đã nhận 2,34 giây sau khi yêu cầu: , Tin nhắn đã nhận 2,34 giây sau khi yêu cầu: Tin nhắn đã nhận 2,34 giây sau khi yêu cầu: 64 Tin nhắn đã nhận 2,34 giây sau khi yêu cầu: , Tin nhắn đã nhận 2,34 giây sau khi yêu cầu: Tin nhắn đã nhận 2,34 giây sau khi yêu cầu: 65 Tin nhắn đã nhận 2,34 giây sau khi yêu cầu: , Tin nhắn đã nhận 2,34 giây sau khi yêu cầu:
Tin nhắn nhận được 2,34 giây sau khi yêu cầu: 66 Tin nhắn nhận được 2,34 giây sau khi yêu cầu: , Tin nhắn nhận được 2,34 giây sau khi yêu cầu: Tin nhắn nhận được 2,34 giây sau khi yêu cầu : 67 Tin nhắn nhận được 2,34 giây sau khi yêu cầu: , Tin nhắn nhận được 2,34 giây sau khi yêu cầu: Tin nhắn nhận được 2,36 giây sau khi yêu cầu: 68 Tin nhắn nhận được 2,36 giây sau khi yêu cầu: , Tin nhắn nhận được 2,36 giây sau khi yêu cầu: Tin nhắn nhận được 2,36 giây sau khi yêu cầu: 69 Tin nhắn nhận được 2,36 giây sau khi yêu cầu: , Tin nhắn nhận được 2,36 giây sau khi yêu cầu: Tin nhắn nhận được 2,38 giây sau khi yêu cầu : 70 Tin nhắn nhận được 2,38 giây sau khi yêu cầu: , Tin nhắn nhận được 2,38 giây sau khi yêu cầu: Tin nhắn nhận được 2,39 giây sau khi yêu cầu: 71 Tin nhắn nhận được 2,39 giây sau khi yêu cầu: , Tin nhắn nhận được 2,39 giây sau khi yêu cầu: Tin nhắn nhận được 2,39 giây sau khi yêu cầu: 72 Tin nhắn nhận được 2,39 giây sau khi yêu cầu: , Tin nhắn nhận được 2,39 giây sau khi yêu cầu: Tin nhắn nhận được 2,39 giây sau khi yêu cầu: 73 Tin nhắn nhận được 2,39 giây sau khi yêu cầu: , Tin nhắn nhận được 2,39 giây sau khi yêu cầu: Tin nhắn nhận được 2,39 giây sau khi yêu cầu: 74 Tin nhắn nhận được 2,39 giây sau khi yêu cầu: , Tin nhắn nhận được 2,39 giây sau khi yêu cầu: Tin nhắn nhận được 2,39 giây sau khi yêu cầu: 75 Tin nhắn nhận được 2,39 giây sau khi yêu cầu: , Tin nhắn nhận được 2,40 giây sau khi yêu cầu: Tin nhắn nhận được 2,40 giây sau khi yêu cầu: 76 Tin nhắn nhận được 2,40 giây sau khi yêu cầu: , Tin nhắn nhận được 2,42 giây sau khi yêu cầu: Tin nhắn nhận được 2,42 giây sau khi yêu cầu: 77 Tin nhắn nhận được 2,42 giây sau khi yêu cầu: , Tin nhắn nhận được 2,51 giây sau khi yêu cầu: Tin nhắn nhận được 2,51 giây sau khi yêu cầu: 78 Tin nhắn nhận được 2,51 giây sau khi yêu cầu: , Tin nhắn nhận được 2,52 giây sau khi yêu cầu: Tin nhắn đã nhận 2,52 giây sau khi yêu cầu: 79 Tin nhắn đã nhận 2,52 giây sau khi yêu cầu: , Tin nhắn đã nhận 2,52 giây sau khi yêu cầu: Tin nhắn đã nhận 2,52 giây sau khi yêu cầu: 80 Tin nhắn đã nhận 2,52 giây sau khi yêu cầu: , Tin nhắn đã nhận 2,52 giây sau khi yêu cầu: Tin nhắn đã nhận 2,52 giây sau khi yêu cầu: 81 Tin nhắn đã nhận 2,52 giây sau khi yêu cầu: , Tin nhắn đã nhận 2,52 giây sau khi yêu cầu: Tin nhắn đã nhận 2,52 giây sau khi yêu cầu: 82
Tin nhắn nhận được sau 2,52 giây kể từ khi yêu cầu: , Tin nhắn nhận được sau 2,60 giây kể từ khi yêu cầu: Tin nhắn nhận được sau 2,60 giây kể từ khi yêu cầu: 83 Tin nhắn nhận được sau 2,60 giây kể từ khi yêu cầu: , Tin nhắn nhận được sau 2,64 giây kể từ khi yêu cầu: Tin nhắn nhận được sau 2,64 giây kể từ khi yêu cầu: 84 Tin nhắn nhận được sau 2,64 giây kể từ khi yêu cầu : , Tin nhắn nhận được sau 2,64 giây kể từ khi yêu cầu: Tin nhắn nhận được sau 2,64 giây kể từ khi yêu cầu : 85 Tin nhắn nhận được sau 2,64 giây kể từ khi yêu cầu: , Tin nhắn nhận được sau 2,64 giây kể từ khi yêu cầu: Tin nhắn nhận được sau 2,66 giây kể từ khi yêu cầu: 86 Tin nhắn nhận được sau 2,66 giây kể từ khi yêu cầu: , Tin nhắn nhận được sau 2,66 giây kể từ khi yêu cầu: Tin nhắn nhận được sau 2,66 giây kể từ khi yêu cầu: 87 Tin nhắn nhận được sau 2,66 giây kể từ khi yêu cầu: , Tin nhắn nhận được sau 2,66 giây kể từ khi yêu cầu: 88 Tin nhắn nhận được sau 2,68 giây kể từ khi yêu cầu: , Tin nhắn nhận được 2,68 giây sau khi yêu cầu: Tin nhắn đã nhận 2,69 giây sau khi yêu cầu: 89 Tin nhắn đã nhận 2,69 giây sau khi yêu cầu: , Tin nhắn đã nhận 2,69 giây sau khi yêu cầu: Tin nhắn đã nhận 2,72 giây sau khi yêu cầu: 90 Tin nhắn đã nhận 2,72 giây sau khi yêu cầu: , Tin nhắn đã nhận 2,72 giây sau khi yêu cầu: Tin nhắn đã nhận 2,82 giây sau khi yêu cầu: 91 Tin nhắn đã nhận 2,82 giây sau khi yêu cầu: , Tin nhắn đã nhận 2,82 giây sau khi yêu cầu: Tin nhắn đã nhận 2,82 giây sau khi yêu cầu: 92 Tin nhắn đã nhận 2,82 giây sau khi yêu cầu: , Tin nhắn đã nhận 2,82 giây sau khi yêu cầu: Tin nhắn đã nhận 2,82 giây sau khi yêu cầu: 93 Tin nhắn đã nhận 2,82 giây sau khi yêu cầu: , Tin nhắn đã nhận 2,82 giây sau khi yêu cầu: Tin nhắn đã nhận 2,82 giây sau khi yêu cầu: 94 Tin nhắn đã nhận 2,82 giây sau khi yêu cầu: , Tin nhắn đã nhận 2,82 giây sau khi yêu cầu: Tin nhắn đã nhận 2,82 giây sau yêu cầu: 95 Tin nhắn được nhận sau 2,82 giây kể từ khi yêu cầu: , Tin nhắn được nhận sau 2,82 giây kể từ khi yêu cầu: Tin nhắn được nhận sau 2,82 giây kể từ khi yêu cầu: 96 Tin nhắn được nhận sau 2,82 giây kể từ khi yêu cầu: , Tin nhắn được nhận sau 2,82 giây kể từ khi yêu cầu: Tin nhắn được nhận sau 2,82 giây kể từ khi yêu cầu: 97 Tin nhắn được nhận sau 2,82 giây kể từ khi yêu cầu: , Tin nhắn được nhận sau 2,82 giây kể từ khi yêu cầu: Tin nhắn được nhận sau 2,82 giây kể từ khi yêu cầu: 98 Tin nhắn được nhận sau 2,82 giây kể từ khi yêu cầu: ,
Tin nhắn nhận được 2,82 giây sau khi yêu cầu: Tin nhắn nhận được 2,82 giây sau khi yêu cầu: 99 Tin nhắn nhận được 2,82 giây sau khi yêu cầu: , Tin nhắn nhận được 2,82 giây sau khi yêu cầu: Tin nhắn nhận được 2,82 giây sau khi yêu cầu: 100 Tin nhắn nhận được 2,82 giây sau khi yêu cầu: Không có Phản hồi đầy đủ nhận được 2,82 giây sau khi yêu cầu Toàn bộ cuộc trò chuyện nhận được: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, , 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100So sánh thời gian
Trong ví dụ trên, cả hai yêu cầu mất khoảng 4 đến 5 giây để hoàn tất. Thời gian yêu cầu sẽ thay đổi tùy thuộc vào tải và các yếu tố ngẫu nhiên khác.
Tuy nhiên, với yêu cầu phát trực tuyến, chúng tôi nhận được mã thông báo đầu tiên sau 0,1 giây và các mã thông báo tiếp theo sau mỗi khoảng 0,01-0,02 giây.
Cách lấy dữ liệu sử dụng mã thông báo cho phản hồi hoàn thành trò chuyện được phát trực tuyến
Bạn có thể lấy số liệu thống kê sử dụng mã thông báo cho phản hồi được truyền phát của mình bằng cách thiết lập stream_options={"include_usage": True}. Khi bạn thực hiện như vậy, một khối bổ sung sẽ được truyền phát dưới dạng khối cuối cùng. Bạn có thể truy cập dữ liệu sử dụng cho toàn bộ yêu cầu thông qua usagetrường trên khối này. Một vài lưu ý quan trọng khi bạn thiết lập stream_options={"include_usage": True}:
- Giá trị của
usagetrường trên tất cả các khối ngoại trừ khối cuối cùng sẽ là null. - Trường
usagetrên khối cuối cùng chứa số liệu thống kê về việc sử dụng mã thông báo cho toàn bộ yêu cầu. - Trường
choicesở phần cuối cùng sẽ luôn là một mảng trống[].
Chúng ta hãy cùng xem cách thức hoạt động của nó thông qua ví dụ ở phần 2.
# Example of an OpenAI ChatCompletion request with stream=True and stream_options={"include_usage": True}
# a ChatCompletion request
response = client.chat.completions.create( model='gpt-4o-mini', messages=[ {'role': 'user', 'content': "What's 1+1? Answer in one word."} ], temperature=0, stream=True, stream_options={"include_usage": True}, # retrieving token usage for stream response
)
for chunk in response: print(f"choices: {chunk.choices}\nusage: {chunk.usage}") print("****************")
lựa chọn: [Lựa chọn(delta=ChoiceDelta(content='', function_call=None, role='assistant', tool_calls=None), finish_reason=None, index=0, logprobs=None)] cách sử dụng: Không có **************** lựa chọn: [Lựa chọn(delta=ChoiceDelta(content='Two', function_call=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)] cách sử dụng: Không có **************** lựa chọn: [Lựa chọn(delta=ChoiceDelta(content='.', function_call=None, role=None, tool_calls=None), finish_reason=None, index=0, logprobs=None)] cách sử dụng: Không có **************** lựa chọn: [Lựa chọn(delta=ChoiceDelta(content=None, function_call=None, role=None, tool_calls=None), finish_reason='stop', index=0, logprobs=None)] cách sử dụng: Không có **************** lựa chọn: [] cách sử dụng: CompletionUsage(completion_tokens=2, prompt_tokens=18, total_tokens=20) ****************Xem thêm: mua tài khoản ChatGPT Plus chính hãng giá rẻ chỉ với vài bước đơn giản

Cách đổi Mật khẩu Chat GPT - Hướng dẫn đổi Pass Chat GPT 100% Thành công
Hướng dẫn Cách đăng nhập Chat GPT Nhanh nhất | Có hỗ trợ Miễn phí qua Teamview-Ultraview
Chat GPT Plus là gì? So sánh Chat GPT Plus với Chat GPT Miễn phí
Chat GPT bị giới hạn giải thích vì sao và cách khắc phục
Chat GPT là gì ? Cách đăng Ký Chat GPT Miễn Phí tại Việt Nam