公開サイト
開発環境
Server | lightSail |
Language | Python3.11 |
Framework | Django |
DB | sqlite3 |
ローカル環境ではPythonのvenvを使用。エディタはvs codeです。
目的
ChatGPTとのトークを某SNS風のデザインにしました。
過去のリクエスト、レスポンスをSESSIONに保存し、格納。ChatGPTとのトークがよりフレンドリーな感じになりました。
これから、このレイアウトをベースに、ChatGPT同士で会話させたり、違うプロンプトを入れたChatGPTに質問し、異なる答えと投票システムを入れて、エヴァンゲリオンのマギシステムを再現できたらなって思っている。マギシステムはそれっぽいデザインに変えるかもしれない。
コード
qiita.rb
@login_required
OPENAI_API_KEY = os.environ['OPENAI_API_KEY']
user_message = request.POST.get('message')
conversation = request.session.get('conversation', [])
conversation.append(user_message)
prompt = " ".join(conversation)
client = OpenAI(
api_key = OPENAI_API_KEY,
)
response = client.chat.completions.create(
model="gpt-3.5-turbo",
messages=[
{
"role": "system",
"content": "日本語で応答してください"
},
{
"role": "user",
"content": prompt
},
],
)
bot_response = response.choices[0].message.content
bot_response = bot_response.replace("\n", "<br>")
conversation.append(bot_response)
request.session['conversation'] = conversation
return JsonResponse({'message': bot_response})
def chat_view(request):
full_url = request.build_absolute_uri('/')
app_name = "chat_bot"
return render(request, 'chat.html', {'domain': full_url,'app_name': app_name})
アプリ画面
感想
しばらくはこの画面をベースにして、生成AIのAPIを組み合わせてやっていくと思う。今回はデザインばかりの対応をしてしまったが、デザインさえできてしまえば、あとは組み合わせたAPIが量産できるので、今後いろいろやっていきたい。
ユーザーログインシステムにしたらユーザーのアイコンを設置とかできるんだろうな、とは可能性はいろいろある。