Skip to content

Latest commit

 

History

History
182 lines (167 loc) · 5.71 KB

README.md

File metadata and controls

182 lines (167 loc) · 5.71 KB

DjangoOpenAIVRMChat

上記サンプルイメージでは、フリー素材キャラクター「つくよみちゃん」 (© Rei Yumesaki)を使用しています。

What is this?

DjangoOpenAIStreamingChatをベースにOpenAI APIと音声認識にAzure Speech Studioを利用したVRMとの会話アプリを学習として作成しました

Warning

* 本コードはベータ版です。
* AZURE_SPEECH_SERVICE_API キーを現在直接Templateへ渡しており、本番環境ではサーバサイドからの呼び出しが必要です。(調査中)
* 即席のため不要なコードも多く、かなり汚いです。

設置

DjangoTemplateとの差分のみ表示

static > apps > chat > vrm へダウンロードした3Dモデル(.vrm)を格納します

3Dモデル(.vrm)はお好きなものをおいてください。モデルサイズ等に応じて、 templates/apps/chat/room/include/vrm_script.html のカメラ位置等を修正ください。
サンプルイメージに使用したのはつくよみちゃん公式3Dモデル タイプA「①通常版(VRM)」です。

config > settings.pyでの設定

RADISの使用
# RADIS(WebSoocket/Celery)
IS_USE_RADIS = True

.envファイル用意

AZURE_SPEECH_SERVICE の設定
AZURE_SPEECH_SERVICE_API_KEY='*** YOUR AZURE_SPEECH_SERVICE_API_KEY ***'  
AZURE_SPEECH_SERVICE_REGION='*** YOUR AZURE_SPEECH_SERVICE_REGION ***'  
AZURE_SPEECH_SERVICE_LANGUAGE='*** YOUR AZURE_SPEECH_SERVICE_LANGUAGE ***'
OpenAI API KEYの設定
OPENAI_API_KEY='*** YOUR OPENAI_API_KEY ***'
Radisの利用
RADIS_HOST='*** RADIS HOST ***'  
RADIS_PORT='*** RADIS PORT ***'

実行

  • terminal(0)
    ここでエラーがでる場合には python=3.9.18 を確認してみてください
$ pip install -r requirements-base.txt
$ ProjectSetupBat
$ python manage.py runserver
  • terminal(1)
$ RunRedisServer
  • terminal(2)
$ RunCeleryWorker

主な実行環境

詳細は requirements-base.txt をご覧ください

python=3.9.18
Django==4.2.1
channels==4.0.0
celery==5.4.0

Other

本アプリケーションで使われる各種ライブラリのライセンスは改変したものを含めて本ライセンスには含まれません。各種ライブラリの原ライセンスに従って利用してください。

suppl.

TREE
DjangoOpenAIVRMChat/
├─accounts
│  ├─forms
│  ├─models
│  │  └─receivers
│  └─views
│      └─send_mail
├─apps
│  ├─access_security
│  │  └─models
│  │      └─receivers
│  ├─chat
│  │  ├─models
│  │  │  ├─ajax
│  │  │  ├─ModelNameChoice
│  │  │  └─query_search
│  │  └─Utils
│  ├─inquiry
│  │  ├─models
│  │  │  └─receivers
│  │  └─views
│  └─user_properties
│      ├─models
│      └─views
├─common
│  ├─lib
│  │  ├─axes
│  │  ├─social_core
│  │  └─social_django
│  ├─scripts
│  │  ├─DjangoUtils
│  │  ├─LlmUtils
│  │  └─PythonCodeUtils
│  └─views
├─config
│  ├─acsess_logic
│  ├─admin_protect
│  ├─extra_settings
│  └─security
├─media
│  └─apps
│      ├─chat
│      │  └─ai_icon
│      └─user_profile
│          └─user_icon
├─static
│  ├─apps
│  │  ├─chat
│  │  │  │─ai_icon
│  │  │  │   └─default
│  │  │  └─vrm
│  │  └─user_profile
│  │      └─user_icon
│  │          └─default
│  └─templates
│      ├─apps
│      │  └─chat
│      │      └─css
│      ├─base
│      ├─common
│      │  ├─css
│      │  ├─func
│      │  └─lib
│      ├─meta_image
│      └─pages
│          └─home
├─templates
│  ├─accounts
│  │  ├─AccountDelete
│  │  ├─AccountLock
│  │  ├─EmailChange
│  │  │  └─mail_template
│  │  ├─LogIn
│  │  ├─PasswordChange
│  │  ├─PasswordReset
│  │  │  └─mail_template
│  │  ├─SignUp
│  │  │  └─mail_template
│  │  ├─TokenDelete
│  │  └─UserIdSet
│  ├─apps
│  │  ├─chat
│  │  │  ├─include
│  │  │  └─room
│  │  │      └─include
│  │  │          └─feedback
│  │  ├─inquiry
│  │  │  └─inquiry_form
│  │  │      └─notice_admin_mail_template
│  │  └─user_properties
│  │      ├─asset
│  │      │  └─sidenav
│  │      └─Settings
│  ├─common
│  │  ├─asset
│  │  └─debug
│  └─pages
│      ├─general
│      └─home
└─templatetags