** disclamer:ドキュメントを書くのが得意ではありません。使用方法についてさらにサポートが必要な場合は、お気軽にお問い合わせください**
あなたのパーソナルアシスタント。 Cyranoは、ユーザーに回答するために必要なときにいつでも使用することができるツールのセットにアクセスできる大きな言語モデルです。その名前は、エドモンド・ロスタンドのフランスの劇場のキャラクターであるCyrano de Bergeracに由来しています。
Cyranoは、最後のOpenaiモデルであるGPT-3.5-Turbo-0613(より速い)またはGPT-4-0613(よりスマート)を使用しています。彼らはOpenAI関数にアクセスできます。レポは、Langchainフレームワークに基づいています。
TODO:例やビデオを追加します
Cyranoは、Python-Chessを使用して、常にチェスボードの状態を常に維持します。会話の中で自然言語でチェスの動きを聞くと、対応する代数表現に翻訳し、内部のPython-Chessボードで再生します。ストックフィッシュを0.1秒間使用して、それに応じて何をプレイするかを決定します。その後、ボードはJSONファイルのFENとして保存され、将来いつでもゲームを再開できるようにします。
Cyranoは、3つのチェス関連のアクションにアクセスできます。
Cyranoは、コンテキストウィンドウで、最後のメッセージを一定量のトークン(デフォルト1500)に保存します。
紙の生成エージェントに基づく:Park、et。アル。
長期メモリは、時間加重されたベクトルストアを使用します。会話が1500トークンを超えるたびに、最も古いメッセージが要約され、ベクトル化され(文変換器モデルを使用)、ベクターストアデータベース(QDRANT)に保存されます。 Cyranoがメモリを保存するたびに、それらがどれほど記憶に残るかについて10のうちにスコアを獲得します。各メモリは、短いテキスト、対応するベクトル、重要な_score、created_at datetimeオブジェクト、およびlast_accessed_at datetimeオブジェクトです。
実行時に、Cyranoはトップ5の最も関連性の高いメモリを取得し、最後のユーザーメッセージに追加します。最も関連性の高いメモリを選択するときは、式: semantic_similarity + (1 - decay_rate) ** hours_passedを使用して、記憶の年齢によって重み付けされたセマンティックの類似性を使用します。 semantic_similarityはベクトル間のコサイン距離であり、decale_rateはメモリが関連性を失う速さを表し、hours_passedは現在とlast_accessed_atの間のデルタです。
SRC/main.pyでsound変数をfalseに設定することにより、Cyranoをテキストのみのエージェントとして使用できます。私はそうすることを選択します、入力はpython input()であり、出力はテキストになります。
音声と耳を使用して対話することを選択した場合は、Wake Word検出にPorcupineを使用する必要があります。この「Alexa」または「Hey Google」に相当する場合、私は単に「Cyrano」を選択しました。モデルとやり取りしたいときはいつでも、その名前を大声で言うことができ、ビープ音を待って話し始めます。
注:ウェイクワードは現在、フランス語のアクセントで設定されています。必要に応じて、Porcupine Webサイトから別の言語でそれを再生するだけです。
音は、SpeechRecognitionライブラリを使用して記録されます。沈黙を聞いた後、録音を停止し、サウンドファイルを送信して、転写されたテキストを送り返すOpenai Whisper APIに送信します。
Cyranoは3つのTTSオプションを使用できます。
Pyttsx3は無料で、Windowsでロボットであるが許容可能な声を持っています。
Google Cloud TTS非常に良質/価格オプションIMO。あらゆるOSでうまく機能します。
11のラボで最高の音質がありますが、無料版は限られており、有料版は月に十分な文字を提供しません。
ラズベリーで走るためにシラノが必要だったので、高品質と大量の大量を望んでいたので、あまり高価ではないので、Google TTSを選びました。 src/sound_utils.pyの3つのオプションのすべての関数を残しました。自分に最適なものを自由に使用してください。 GoogleまたはEleven Labsの場合、.ENVファイルにAPIキーを追加する必要があります。
リポジトリをクローンし、すべてのAPI_KEYと以下を含むシステムプロンプトを使用して.ENVファイルを作成します。
システムプロンプトの例(モデルのID):
SYS_PROMPT="You are Cyrano, a personal assistant with the personality of Cyrano de Bergerac. Today's date is {current_date}. You're on {user_name}'s desk. {user_description}. {user_name}'s messages are recorded in sound and then transcribed into text. It may happen that the sound is incorrectly transcribed. You regularly reply in a sarcastic and humorous manner."
Openai APIキー
Google検索APIキー
オプション名:Google検索APIキー
必要なライブラリをインストールする: pip install -r requirements.txt
アプリを起動する: python src/main.py
アプリを起動するときは、いくつかのメモを再生する必要があります。 「シラノ」と対話したいとき、ビープ音は、沈黙を検出して転写を停止したときに、それが聞いていることを通知します。