Underground-Digital/Workflow-Engine
0
1from flask_restful import fields2 3from fields.member_fields import simple_account_fields4from libs.helper import TimestampField5 6from .raws import FilesContainedField7 8 9class MessageTextField(fields.Raw):10 def format(self, value):11 return value[0]["text"] if value else ""12 13 14feedback_fields = {15 "rating": fields.String,16 "content": fields.String,17 "from_source": fields.String,18 "from_end_user_id": fields.String,19 "from_account": fields.Nested(simple_account_fields, allow_null=True),20}21 22annotation_fields = {23 "id": fields.String,24 "question": fields.String,25 "content": fields.String,26 "account": fields.Nested(simple_account_fields, allow_null=True),27 "created_at": TimestampField,28}29 30annotation_hit_history_fields = {31 "annotation_id": fields.String(attribute="id"),32 "annotation_create_account": fields.Nested(simple_account_fields, allow_null=True),33 "created_at": TimestampField,34}35 36message_file_fields = {37 "id": fields.String,38 "filename": fields.String,39 "type": fields.String,40 "url": fields.String,41 "mime_type": fields.String,42 "size": fields.Integer,43 "transfer_method": fields.String,44 "belongs_to": fields.String(default="user"),45}46 47agent_thought_fields = {48 "id": fields.String,49 "chain_id": fields.String,50 "message_id": fields.String,51 "position": fields.Integer,52 "thought": fields.String,53 "tool": fields.String,54 "tool_labels": fields.Raw,55 "tool_input": fields.String,56 "created_at": TimestampField,57 "observation": fields.String,58 "files": fields.List(fields.String),59}60 61message_detail_fields = {62 "id": fields.String,63 "conversation_id": fields.String,64 "inputs": FilesContainedField,65 "query": fields.String,66 "message": fields.Raw,67 "message_tokens": fields.Integer,68 "answer": fields.String(attribute="re_sign_file_url_answer"),69 "answer_tokens": fields.Integer,70 "provider_response_latency": fields.Float,71 "from_source": fields.String,72 "from_end_user_id": fields.String,73 "from_account_id": fields.String,74 "feedbacks": fields.List(fields.Nested(feedback_fields)),75 "workflow_run_id": fields.String,76 "annotation": fields.Nested(annotation_fields, allow_null=True),77 "annotation_hit_history": fields.Nested(annotation_hit_history_fields, allow_null=True),78 "created_at": TimestampField,79 "agent_thoughts": fields.List(fields.Nested(agent_thought_fields)),80 "message_files": fields.List(fields.Nested(message_file_fields)),81 "metadata": fields.Raw(attribute="message_metadata_dict"),82 "status": fields.String,83 "error": fields.String,84 "parent_message_id": fields.String,85}86 87feedback_stat_fields = {"like": fields.Integer, "dislike": fields.Integer}88 89model_config_fields = {90 "opening_statement": fields.String,91 "suggested_questions": fields.Raw,92 "model": fields.Raw,93 "user_input_form": fields.Raw,94 "pre_prompt": fields.String,95 "agent_mode": fields.Raw,96}97 98simple_configs_fields = {99 "prompt_template": fields.String,100}101 102simple_model_config_fields = {103 "model": fields.Raw(attribute="model_dict"),104 "pre_prompt": fields.String,105}106 107simple_message_detail_fields = {108 "inputs": FilesContainedField,109 "query": fields.String,110 "message": MessageTextField,111 "answer": fields.String,112}113 114conversation_fields = {115 "id": fields.String,116 "status": fields.String,117 "from_source": fields.String,118 "from_end_user_id": fields.String,119 "from_end_user_session_id": fields.String(),120 "from_account_id": fields.String,121 "from_account_name": fields.String,122 "read_at": TimestampField,123 "created_at": TimestampField,124 "updated_at": TimestampField,125 "annotation": fields.Nested(annotation_fields, allow_null=True),126 "model_config": fields.Nested(simple_model_config_fields),127 "user_feedback_stats": fields.Nested(feedback_stat_fields),128 "admin_feedback_stats": fields.Nested(feedback_stat_fields),129 "message": fields.Nested(simple_message_detail_fields, attribute="first_message"),130}131 132conversation_pagination_fields = {133 "page": fields.Integer,134 "limit": fields.Integer(attribute="per_page"),135 "total": fields.Integer,136 "has_more": fields.Boolean(attribute="has_next"),137 "data": fields.List(fields.Nested(conversation_fields), attribute="items"),138}139 140conversation_message_detail_fields = {141 "id": fields.String,142 "status": fields.String,143 "from_source": fields.String,144 "from_end_user_id": fields.String,145 "from_account_id": fields.String,146 "created_at": TimestampField,147 "model_config": fields.Nested(model_config_fields),148 "message": fields.Nested(message_detail_fields, attribute="first_message"),149}150 151conversation_with_summary_fields = {152 "id": fields.String,153 "status": fields.String,154 "from_source": fields.String,155 "from_end_user_id": fields.String,156 "from_end_user_session_id": fields.String,157 "from_account_id": fields.String,158 "from_account_name": fields.String,159 "name": fields.String,160 "summary": fields.String(attribute="summary_or_query"),161 "read_at": TimestampField,162 "created_at": TimestampField,163 "updated_at": TimestampField,164 "annotated": fields.Boolean,165 "model_config": fields.Nested(simple_model_config_fields),166 "message_count": fields.Integer,167 "user_feedback_stats": fields.Nested(feedback_stat_fields),168 "admin_feedback_stats": fields.Nested(feedback_stat_fields),169}170 171conversation_with_summary_pagination_fields = {172 "page": fields.Integer,173 "limit": fields.Integer(attribute="per_page"),174 "total": fields.Integer,175 "has_more": fields.Boolean(attribute="has_next"),176 "data": fields.List(fields.Nested(conversation_with_summary_fields), attribute="items"),177}178 179conversation_detail_fields = {180 "id": fields.String,181 "status": fields.String,182 "from_source": fields.String,183 "from_end_user_id": fields.String,184 "from_account_id": fields.String,185 "created_at": TimestampField,186 "updated_at": TimestampField,187 "annotated": fields.Boolean,188 "introduction": fields.String,189 "model_config": fields.Nested(model_config_fields),190 "message_count": fields.Integer,191 "user_feedback_stats": fields.Nested(feedback_stat_fields),192 "admin_feedback_stats": fields.Nested(feedback_stat_fields),193}194 195simple_conversation_fields = {196 "id": fields.String,197 "name": fields.String,198 "inputs": FilesContainedField,199 "status": fields.String,200 "introduction": fields.String,201 "created_at": TimestampField,202 "updated_at": TimestampField,203}204 205conversation_infinite_scroll_pagination_fields = {206 "limit": fields.Integer,207 "has_more": fields.Boolean,208 "data": fields.List(fields.Nested(simple_conversation_fields)),209}210 211conversation_with_model_config_fields = {212 **simple_conversation_fields,213 "model_config": fields.Raw,214}215 216conversation_with_model_config_infinite_scroll_pagination_fields = {217 "limit": fields.Integer,218 "has_more": fields.Boolean,219 "data": fields.List(fields.Nested(conversation_with_model_config_fields)),220}221 