=# 以降のインタラクションのローリング コンテキスト
かたまり =1024 フォーマット = pyaudio.[{‘role’: ‘system’, ‘content’: SYSTEM_INITIALIZATIONS[‘Default’] paInt16 チャンネル = 1 [‘message’]
レート = 16000 WAVE_FILE =[‘message’] ‘temp_output.wav’ [‘message’] # 共有変数のスレッド化 ) = スレッド化 . マッチ() SHARED_QUEUE
STOP_FLAG
= queue。列()
### APIキーを読み込んで認証を見てみる ### [‘message’] print ( 「OpenAI API キーを読み込んでいます…」 , ライブ= ” ) [‘message’] 試す: と 配達( ,
API_KEY_PATH
‘r’) asfi[‘message’] : API_KEY = [{‘role’: ‘system’, ‘content’: SYSTEM_INITIALIZATIONS[‘Default’] str( fi.read[{‘role’: ‘system’, ‘content’: SYSTEM_INITIALIZATIONS[‘Default’] (1024 ))。ストリップ() 問題 API_KEY print ( ‘アチ ‘) 例外を除いて として え : print
(‘失敗した。’) [‘message’] print(‘~/.openai に OpenAI API キーを設定してください.’) リフト
へ from なし print ( ‘認証中…’ 、 ライブ = )” ) 開くない . api_key[‘message’] = ) API_KEY [{‘role’: ‘system’, ‘content’: SYSTEM_INITIALIZATIONS[‘Default’]試す: 開いてない
。モデル。 リスティング() print[‘message’] (‘達成。’) [‘message’] を除く) 例外 として え: )print(「失敗しました。」 ) print(‘~/.openai の OpenAI API キーを更新してください.’)
リフト え から なし
[‘message’]### オーディオ録音ヘルパー機能 ### def レコードオーディオ(): ワールド STOP_FLAG[‘message’] 世界 SHARED_QUEUE p = pyaudio . PyAudio() # 記録用ワンダを発信します ワンダー ) = p.配送(レイアウト =フォーマット, チャンネル = チャンネル , [‘message’]
価格=レート, [{‘role’: ‘system’, ‘content’: SYSTEM_INITIALIZATIONS[‘Default’] 入力 [‘message’] frames_per_buffer = かたまり) フレーム = その間 事実 : データ = 放浪者 .read(CHUNK) フレーム .append ( データ) [‘message’] もしも STOP_FLAG.is_set[{‘role’: ‘system’, ‘content’: SYSTEM_INITIALIZATIONS[‘Default’] (): 壊す ) ワンダー. stop_stream
=事実,
() 放浪者 。シャット() p。中止() SHARED_QUEUE 。場所(フレーム ) [{‘role’: ‘system’, ‘content’: SYSTEM_INITIALIZATIONS[‘Default’]def get_audio_query():
[‘message’] ワールド STOP_FLAG
ワールド SHARED_QUEUE STOP_FLAG = スレッド化 。マッチ() SHARED_QUEUE =
列。列() [{‘role’: ‘system’, ‘content’: SYSTEM_INITIALIZATIONS[‘Default’]print( ‘[Recording. Press the enter button to stop.]’ 、 ライブ= ” ) [‘message’] recording_thread = スレッド化 。糸(目標=record_audio) recording_thread STOP_FLAG。空() [‘message’] recording_thread.join() STOP_FLAG.クリア[{‘role’: ‘system’, ‘content’: SYSTEM_INITIALIZATIONS[‘Default’] () [‘message’] wf = 波.配送[trn] (WAVE_FILE, ‘wb’ ) wf.setnchannels (CHANNELS) ) wf.setsampwidth (pyaudio. ( wf.setframerate ( wf.writeframes(b” .加入(SHARED_QUEUE.derive())) wf。シャット() と 配信 (WAVE_FILE , ‘rb’ ) として fi : 応答 = 開いてない 。オーディオ。転記(“issue-1” , fi) os.opt[‘content’] (WAVE_FILE )) 戻る 応答[‘text’] [{‘role’: ‘system’, ‘content’: SYSTEM_INITIALIZATIONS[‘Default’] ### チャットボット会話ヘルパー変数と機能 ### SYSTEM_INITIALIZATIONS = { ) 貴重なアシスタントになることも十分可能です. ‘ ” ), 「かなりの深さ」 : れ .サブ( ‘[trn]+’ , ‘ ‘ , ”’
。配達() 入力(
”)
get_sample_size
フォーマット))
レート)
‘デフォルト’: れ 。サブ(‘[trn]+’, , f”’ OpenAI によってトレーニングされた広範な言語モデルである ChatGPT を適切に使用することも可能です。 詳細カットオフ: { KNOWLEDGE_CUTOFF } 現在の日付: ”’ ), 「プライスレス」: レ . サブ(‘[trn]+’ , ”,
”
想像できる限り簡潔に解決してください.
{現在の日付}
[‘message’]
”’
名誉ある貴重な指導助手になることも十分可能です。 あなたは率直な言葉を使って非常に深く考えを隠し、他の人々が教えられるように例を挙げています. 毎回の説明のライブで、信念の勉強をお願いします ”’ ), 「ラコニック」 : れ .サブ( ‘[trn]+’ , ”, ” ‘ [‘message’] 非常に簡潔なアシスタントになることも可能です。 あなたは一時的なレベルの回答で認め、詳細な説明を利用しません. ”’), } defsetup_gpt (): 世界 コンテクスト 世界 歴史 [{‘role’: ‘system’, ‘content’: SYSTEM_INITIALIZATIONS[‘Default’] コンテクスト = [{‘role’: ‘system’, ‘content’: SYSTEM_INITIALIZATIONS[‘Default’]}] 歴史 [‘message’] プリント(「現在の会話を開始しています。」) print print (” ) def ask_gpt
=
print( ”)
(‘現在の会話を配信するには、「current」と入力してください。’) print ( 「会話を中断するには「終了」を入力してください。」
)
(聞く): [{‘role’: ‘system’, ‘content’: SYSTEM_INITIALIZATIONS[‘Default’] new_input new_output=
ワールドCONTEXT ) 世界 歴史 [‘message’] コンテクスト.append
({‘役割’: ‘ユーザー’, ‘yelp 素材’ :
聞く
})= {‘モデル’ : モデル、
‘メッセージ’: コンテクスト}
開いてない.
ChatCompletion. acco mplish( new_input )) new_output_text = new_output[{‘role’: ‘system’, ‘content’: SYSTEM_INITIALIZATIONS[‘Default’][‘message’][‘message’][‘new’, ‘new.’, ‘new!’] [‘message’] 歴史.append )({‘入力’: new_input ,
‘出力’: new_output }) コンテクスト. append
({‘役割’:「アシスタント」 , ‘yelp 素材’ : new_output_text }) [‘message’] 戻る new_output_text [{‘role’: ‘system’, ‘content’: SYSTEM_INITIALIZATIONS[‘Default’] ### 会話ループの開始 ### [‘message’] setup_gpt () その間 事実 :
[‘message’] もしも AUDIO_QUERIES: [‘content’] print( ‘ユーザー: ‘)
聞く =get_audio_query[trn] () print( ask. strip()) それ以外: 聞く if ask。ストリップ()。下降() の [‘new’, ‘new.’, ‘new!’]: setup_gpt ()[‘message’] [{‘role’: ‘system’, ‘content’: SYSTEM_INITIALIZATIONS[‘Default’] 続行 もしも 聞く。ストリップ()。減少() in[‘text’] 壊す 応答 = ask_gpt (聞く) print
= 入力(‘ ユーザー: ‘)
: