Spaces:
Sleeping
Sleeping
import chainlit as cl | |
from models.chat_state import get_security_survey_initial_state | |
from workflows.chat_workflow import survey_chainlit_app | |
from security_checklist import security_checklist | |
from langchain_core.messages import HumanMessage | |
async def process_user_message(message: cl.Message): | |
"""ユーザメッセージを処理する""" | |
state = cl.user_session.get("state") | |
# ユーザ回答をmessagesに追加(HumanMessage型で追加) | |
state['messages'].append(HumanMessage(content=message.content)) | |
# ワークフロー進行 - process_input -> display_question or survey_complete | |
state = await survey_chainlit_app.ainvoke(state) | |
cl.user_session.set("state", state) | |
async def start(): | |
"""チャット開始時の処理""" | |
# 初期状態を作成 | |
state = get_security_survey_initial_state(security_checklist) | |
cl.user_session.set("state", state) | |
# 最初の質問を表示するためにワークフローを呼び出す | |
await process_user_message(cl.Message(content="セキュリティチェックリスト診断を開始したい")) | |
async def chat_profile(): | |
return [ | |
cl.ChatProfile( | |
name="security_survey_bot", | |
markdown_description="セキュリティチェックリスト診断を行うチャットボットです。", | |
icon="public/icon.jpg", | |
starters=[ | |
cl.Starter( | |
label="セキュリティチェックリスト診断", | |
message="セキュリティチェックリスト診断を開始したい" | |
), | |
] | |
) | |
] |