重要:ウクライナでの戦争はまだ進行中です。毎日、ロシアの兵士がレイプ、殺人、拷問、国外のウクライナの民間人。このページにアクセスして、今日ウクライナをサポートする方法をご覧ください。
Horaceを使用すると、LLMとChatGPTプラグインのセットを使用してカスタムチャットボットを実装できます。 Websocketサーバーとして実行されるため、LLMを搭載したチャットボットをWebまたはモバイルアプリに簡単に追加できます。
特徴:
none 、 user_http 、 service_httpHoraceは、私の元のLLM駆動のチャットボットであるGraceの上に構築し、拡張します。 Webクライアントを介してアクセスされるKlarna ChatGptプラグインを使用して、デバッグモードで走っているHoraceは次のとおりです。
cd horaceに移動しますpython3 -m venv ./venvsource ./venv/bin/activatepip3 install -r requirements.txtapp Directory: cd appに移動しますOPENAI_API_KEY=openai-api-key python3 main.py ( openai-api-keyをopenai apiキーに置き換えます - ここで入手してください) cd horace
source ./venv/bin/activate
python3 app/horace-cli.py
client-demo/index.htmlダブルクリックして、ブラウザで開きます。 cd horaceに移動しますdocker build -t horace:latest . docker run --rm
-e OPENAI_API_KEY=openai-api-key
-p 8001:8001
--name horace
horace:latest
docker exec -it horace python3 /app/horace-cli.pyclient-demo/index.htmlダブルクリックして、ブラウザで開きます。 main.pyとhorace-cli.pyいくつかのコマンドライン引数をサポートします:
python3 main.py --help
usage: main.py [-h] [--host HOST] [--port PORT] [--debug]
optional arguments:
-h, --help show this help message and exit
--host HOST bind host name
--port PORT bind port number
--debug enable debug mode
python3 app/horace-cli.py --help
usage: horace-cli.py [-h] [--host HOST] [--port PORT]
optional arguments:
-h, --help show this help message and exit
--host HOST server host name
--port PORT server port number
現時点では、OpenAI APIバックエンドのみがサポートされています。 (プラグインの呼び出しに十分なレベルの指導に従うレベルの非オペナイLLMを知りません。)しかし、HoraceにカスタムLLMバックエンドを追加することは非常に簡単です。
backends/backend.pyにあるBackendベースから新しいバックエンドクラスを継承し、 complete()メソッドを実装しますbackendsディレクトリに配置しますmain.pyに追加しますmain.pyでBACKENDSマッピングを調整して、新しいバックエンドのエイリアスとクラス名を含めるconfig.yamlの新しいバックエンドに切り替えます: backend:
name: my_llm_backend
例として、OpenAI API BackEnd( backends/openai_backend.py )を参照してください。
Openai APIバックエンドでは、次のモデルを切り替えることができます。
OpenAI APIモデル間の切り替えについては、 config.yaml参照してください。
Horaceは、箱から出してChatGptプラグインを使用して動作します。プラグインを有効にするには、 config.yamlのpluginsセクションにオプションのポート番号を付けたホスト名を追加します。
router:
plugins:
# For https://github.com/artmatsak/chatgpt-todo-plugin/
# - localhost:5002
- www.klarna.com
開始後、サーバーは各プラグインに対してhttp://[hostname]/.well-known/ai-plugin.jsonを要求し、そこからそれを取り、それらをロードします。
Horaceは現在、ChatGPTプラグインのnone 、 user_http 、 server_http Authメソッドをサポートしています。プラグインにAuthトークンが必要な場合、Horaceはサーバーの起動中に1つを要求します。現時点では、authトークンは.plugin_auth.jsonで暗号化されていない保存されています。
HoraceのデフォルトのLLMプロンプトは、ボットをニュートラルにするように設計されています。ボットは、プラグインフライト型ユーザーリクエスト(たとえば、レストランの予約ボットなど)に限定されておらず、プラグイン対応の機能をユーザーに積極的にプッシュしません。言い換えれば、通常のようにボットとチャットすることができます。ボットがプラグイン方法を呼び出す必要があると感じた場合、そうします。
実際のシナリオでは、ボットをテーブルの予約などの特定のスコープに制限することをお勧めします(グレースのインスピレーションのプロンプトを参照)、またはユニークな声/個性を提供することをお勧めします。これを行うには、 config.yamlのextra_instructionsプロパティを使用して、LLMプロンプトに手順を追加できます。
horace:
# Any extra instructions to prepend the prompt with
extra_instructions: >-
You are a helpful and polite AI assistant.
# extra_instructions: >-
# In your speech, you impersonate Jedi Master Yoda and crack jokes in response
# to mentions of other Star Wars characters.
上記のヨーダブロックを無効にして、チャットボットの声がどのように変化するかを確認してください。 (構成に変更を加えた後、サーバーを再起動することを忘れないでください。)
グレースからのフォーキング以来、テストはまだ更新されていません。修正する。