## ローカルで作業する ``` git clone https://huggingface.co/spaces/yuto0o/django-ai-chat uv sync cd django-ai-chat ``` ``` uv run ./key.py # 出力されたやつが`dev-key`となる ``` config/settings.py の DEBUG は True にしておくと色々様子が見えやすい ``` DEBUG =True ``` `django-ai-chat/.env` をつくって"dev-key"を入れておくとよい ``` #.env dev-key={さっき出力されたdev-key} ``` ``` # config/settings.py # 設定したdev-keyはここで読み取られる SECRET_KEY = os.environ.get("SECRET_KEY", "dev-key") ``` ローカルで起動 ``` uv run python manage.py migrate # 初めの一回だけでよい ur run python manage.py runserver #起動したいときは毎回 ``` こんなのがでてくる ``` http://127.0.0.1:8000/api/docs # ここにアクセスし、postを入力するところに {"text": "こんにちは!元気ですか?"} # こんなかんじで書いてtry it out で編集してexecuteをクリックすると返信が返ってくる # runserverしたのとは別のターミナルで以下を直接打ち込んでもよい curl -X POST http://localhost:8000/api/chat/ -H "Content-Type: application/json" -d '{"text": "こんにちは!元気ですか?"}' ``` ## requirement.txt 更新するときは ``` uv pip compile pyproject.toml -o requirements.txt ``` を使うこと ## build 実行(docker) ``` docker build -t my-django-bot . docker run -p 7860:7860 my-django-bot ``` view とか書き換えただけの時?毎回ビルドが重くならないように ``` docker run -p 7860:7860 \ -v ~/.cache/huggingface:/code/cache \ my-django-bot ``` docker で動かしているときは ``` http://localhost:7860/api/docs/ にアクセスして {"text": "こんにちは!元気ですか?"} # こんなかんじで書いてtry it out で編集してexecuteをクリックすると返信が返ってくる ターミナルで以下を打ち込んでもよい curl -X POST http://localhost:7860/api/chat/ -H "Content-Type: application/json" -d '{"text": "こんにちは!元気ですか?"}' ``` ## 容量解放 ``` # 特定のモデルだけ消すのが面倒な場合、hubフォルダごと消しても、 # 次回使う時に再ダウンロードされるだけなので安全です。 rm -rf ~/.cache/huggingface/hub/ # 使っていないイメージやコンテナを一括削除 docker system prune -a # uv cache clean uv cache clean ``` ## huggingface に push するとき ``` uv run hf auth login # あとはtokenとかを貼る? git config --global credential.helper store #トークン確認 cat ~/.cache/huggingface/token # なんかpushできないとき git push https://YOUR_USER_NAME:YOUR_HF_TOKEN@huggingface.co/spaces/yuto0o/django-ai-chat main # SECRET_KEY = os.environ.get("SECRET_KEY", "dev-key")の"SECRET_KEY"をリポジトリで登録しておくとよい ```