from pydantic import BaseModel import os from enum import Enum class BaseConfig(BaseModel): projectInfo:str = os.getenv("PROJECT_TITLE","会话提示消息") def ParamterCfg(self,**args): prjItems = args.get('projectInfo') questions = os.getenv("CONVERSATION_STARTERS", "dev") return{ "opening_statement": self.projectInfo, "suggested_questions": questions.split('\n'), "suggested_questions_after_answer": { "enabled": False }, "speech_to_text": { "enabled": False }, "text_to_speech": { "enabled": False, "language": "", "voice": "" }, "retriever_resource": { "enabled": True }, "annotation_reply": { "enabled": False }, "more_like_this": { "enabled": False }, "user_input_form": [ { "select": { "variable": "projectname", "label": "\u5de5\u7a0b\u540d\u79f0", "type": "select", "max_length": 48, "required": True, "options": prjItems } } ], "sensitive_word_avoidance": { "enabled": False }, "file_upload": { "image": { "enabled": False, "number_limits": 3, "transfer_methods": [ "remote_url" ] } }, "system_parameters": { "image_file_size_limit": "10", "language": "", "voice": "", }, "retriever_resource": { "enabled": True }, "annotation_reply": { "enabled": False }, "more_like_this": { "enabled": False }, } def ConversationCfg(self): return{ "id": "", 'user_id':'', "name": "", "inputs": {}, "status": "normal", "introduction": self.projectInfo, "created_at":'' } @classmethod def MessageCfg(cls): return { "id": "", 'user_id':'', "conversation_id": "", "inputs": {}, "query": "", "answer": "" } class ChatEventType(str, Enum): WORKFLOW_START = "workflow_started" WORKFLOW_FINISHED = "workflow_finished" NODE_START = "node_started" NODE_FINISHED = "node_finished" MESSAGE = "message" MESSAGE_END = "message_end"