Код должен продемонстрировать использование потоковой передачи с помощью GPT-4 API, API CHATGPT и инструктаж (GPT-3.5.) Модели и Streamlit-App.
В этом подходе используются только открытые библиотеки и временные библиотеки и повторно печатают потоки с помощью print (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 ()Отказ от ответственности. Недостатком потоковой передачи использования производства является контроль политики использования одобрения: https://beta.openai.com/docs/usage-guidelines, которая должна быть рассмотрена заранее для каждого приложения, поэтому я предлагаю взглянуть на эту политику предыдущей решающей решающей решающей потоковой передачи.
Запустите File Streams.ipnyb первой части.
### 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 )После вставки пользовательского ввода и нажатия Enter вы должны увидеть напечатанный вывод:

Запустите File Streams.ipnyb Вторая часть. Добавьте пользовательский ввод, и вы должны увидеть аналогично ниже:
### 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 )
Запустите File Streams.pnyb Третья часть. Добавьте пользовательский ввод, и вы должны увидеть аналогично ниже:
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 )
Я добавляю работающий «app_streamlit.py»-file, который вы можете поколебать свой репозиторий с помощью «tedment.txt» и развернуть его в потоковом линии.

В расширенных настройках добавьте openai_api_key-Variable с помощью формата:
OPENAI_API_KEY = "INSERT HERE YOUR KEY" Не стесняйтесь вилка и дополнительно улучшайте код в соответствии с лицензией. Например, вы можете дополнительно улучшить CHATML, чтобы гарантировать, что поток следует желаемым правилам «системы». Теперь я оставил эти пустые, чтобы сделать этот базовый сценарий очень общим. Я рекомендую проверить свои статьи, специфичные для API CHATGPT о потоковых ответах в среде, связанных с потоковой передачей, Chatml: руководящие подсказки с помощью системы, помощника и пользователя и учебного пособия API CHATGPT.