「HAL」は、外部の AI Agent から OpenAI の /v1/chat/completions API 互換リクエストを受け取り、裏側で人間がレスポンスを書いて返すサービスです。
- OpenAI API と互換性を持つ HTTP サーバー
- 同時リクエスト不可(排他制御)
- 画面上にリクエスト内容を表示し、人間オペレータが応答文を作成
- 応答を JSON 形式で返却
- 各種エラー・ステータスコード制御機能
- テストクライアント
- 固定返答をするデーモンモード
- 詳細ログ出力モード
# リポジトリのクローン
git clone https://github.com/uzulla/HAL.git
cd HAL
# 仮想環境のセットアップ
python -m venv venv
source venv/bin/activate # Windowsの場合: venv\Scripts\activate
# 依存関係のインストール
pip install -r requirements.txt
# 通常モード
bin/hal
# verboseモード
bin/hal -v
# 固定返答デーモンモード
bin/hal --fix-reply-daemon="こんにちは、休暇中です。"
# メッセージ送信
bin/chat_client send --user "こんにちは、元気ですか?"
# システムプロンプト付きメッセージ送信
bin/chat_client send --system "あなたは医療アシスタントです。" --user "頭痛がします"
# デーモンの終了
bin/chat_client daemon --kill --message "任意のメッセージ"
TUI画面では以下のキー操作が可能です:
- F1:「このメッセージには対応できません」を返す
- F2:Internal Server Error を返す
- F3:Forbidden を返す
- Enter:入力した応答を送信する
このプロジェクトではRuffを使用してコード品質を維持しています。
# Ruffによるコードチェック
ruff check .
# 自動修正可能な問題を修正
ruff check . --fix
pytestを使用してユニットテストを実行できます。
# すべてのテストを実行
pytest
# 詳細出力でテストを実行
pytest -v