Kode ini adalah untuk menunjukkan penggunaan streaming dengan API GPT-4, API ChatGPT dan Instruktur (GPT-3.5.) Model & Streamlit-App.
Pendekatan ini hanya menggunakan pustaka openai dan waktu dan mencetak ulang aliran menggunakan cetak (end = '', flush = true):
!p ip install - - upgrade openai
import openai
import time
openai . api_key = user_secrets . get_secret ( "OPENAI_API_KEY" )
startime = time . time ()Penafian: Kelemahan dari streaming dalam penggunaan produksi adalah kontrol kebijakan penggunaan yang disetujui: https://beta.openai.com/docs/usage-guidelines, yang harus ditinjau sebelumnya untuk setiap aplikasi, jadi saya sarankan untuk melihat kebijakan ini sebelum memutuskan untuk menggunakan streaming.
Jalankan stream file.ipnyb bagian pertama.
### STREAM GPT-4 API RESPONSES
delay_time = 0.01 # faster
max_response_length = 8000
answer = ''
# ASK QUESTION
prompt = input ( "Ask a question: " )
start_time = time . time ()
response = openai . ChatCompletion . create (
# GPT-4 API REQQUEST
model = 'gpt-4' ,
messages = [
{ 'role' : 'user' , 'content' : f' { prompt } ' }
],
max_tokens = max_response_length ,
temperature = 0 ,
stream = True , # this time, we set stream=True
)
for event in response :
# STREAM THE ANSWER
print ( answer , end = '' , flush = True ) # Print the response
# RETRIEVE THE TEXT FROM THE RESPONSE
event_time = time . time () - start_time # CALCULATE TIME DELAY BY THE EVENT
event_text = event [ 'choices' ][ 0 ][ 'delta' ] # EVENT DELTA RESPONSE
answer = event_text . get ( 'content' , '' ) # RETRIEVE CONTENT
time . sleep ( delay_time )Setelah memasukkan input pengguna dan menekan enter, Anda akan melihat output dicetak:

Jalankan stream file.ipnyb Bagian kedua. Tambahkan input pengguna dan Anda akan melihat serupa dengan di bawah ini:
### STREAM CHATGPT API RESPONSES
delay_time = 0.01 # faster
max_response_length = 200
answer = ''
# ASK QUESTION
prompt = input ( "Ask a question: " )
start_time = time . time ()
response = openai . ChatCompletion . create (
# CHATPG GPT API REQQUEST
model = 'gpt-3.5-turbo' ,
messages = [
{ 'role' : 'user' , 'content' : f' { prompt } ' }
],
max_tokens = max_response_length ,
temperature = 0 ,
stream = True , # this time, we set stream=True
)
for event in response :
# STREAM THE ANSWER
print ( answer , end = '' , flush = True ) # Print the response
# RETRIEVE THE TEXT FROM THE RESPONSE
event_time = time . time () - start_time # CALCULATE TIME DELAY BY THE EVENT
event_text = event [ 'choices' ][ 0 ][ 'delta' ] # EVENT DELTA RESPONSE
answer = event_text . get ( 'content' , '' ) # RETRIEVE CONTENT
time . sleep ( delay_time )
Jalankan arsip streams.pnyb Bagian ketiga. Tambahkan input pengguna dan Anda akan melihat serupa dengan di bawah ini:
collected_events = []
completion_text = []
speed = 0.05 #smaller is faster
max_response_length = 200
start_time = time . time ()
prompt = input ( "Ask a question: " )
# Generate Answer
response = openai . Completion . create (
model = 'text-davinci-003' ,
prompt = prompt ,
max_tokens = max_response_length ,
temperature = 0 ,
stream = True , # this time, we set stream=True
)
# Stream Answer
for event in response :
event_time = time . time () - start_time # calculate the time delay of the event
collected_events . append ( event ) # save the event response
event_text = event [ 'choices' ][ 0 ][ 'text' ] # extract the text
completion_text += event_text # append the text
time . sleep ( speed )
print ( f" { event_text } " , end = "" , flush = True )
Saya menambahkan "app_streamlit.py" -file yang berfungsi, yang dapat Anda garpu ke repositori Anda dengan "persyaratan.txt" dan sebarkan di streamlit.

Di pengaturan lanjutan, tambahkan format OpenAI_API_KEY-Variable:
OPENAI_API_KEY = "INSERT HERE YOUR KEY" Jangan ragu untuk membayar dan lebih meningkatkan kode sesuai lisensi. Misalnya Anda dapat lebih meningkatkan chatml untuk memastikan aliran mengikuti aturan "sistem yang diinginkan". Saya meninggalkan ini kosong sekarang untuk membuat skrip dasar ini sangat umum. Saya sarankan untuk memeriksa artikel saya khusus untuk chatgpt API tentang respons streaming dalam media yang terkait dengan streaming, chatml: memandu petunjuk dengan sistem, asisten dan peran pengguna dan tutorial pengantar chatgpt API.