first commit

This commit is contained in:
2026-04-07 16:05:05 +08:00
commit 9d9bdbb1ce
136 changed files with 5103 additions and 0 deletions
+11
View File
@@ -0,0 +1,11 @@
from .user import UserSchema
from .workspace import WorkspaceSchema
from .agent import AgentSchema
from .conversation import ConversationSchema
from .message import MessageSchema
from .tool import ToolSchema, AgentToolSchema
from .skill import SkillSchema
from .memory import MemorySchema
from .model import ModelSchema
from .cron_job import CronJobSchema
from .channel import ChannelSchema
+34
View File
@@ -0,0 +1,34 @@
from marshmallow import Schema, fields
class AgentSchema(Schema):
id = fields.Integer(dump_only=True)
workspace_id = fields.Integer()
name = fields.String(required=True)
description = fields.String(allow_none=True)
system_prompt = fields.String(allow_none=True)
model_id = fields.String(allow_none=True)
temperature = fields.Float()
max_tokens = fields.Integer()
is_active = fields.Boolean()
created_at = fields.DateTime(dump_only=True)
updated_at = fields.DateTime(dump_only=True)
class AgentCreateSchema(Schema):
name = fields.String(required=True)
description = fields.String(allow_none=True)
system_prompt = fields.String(allow_none=True)
model_id = fields.String(allow_none=True)
temperature = fields.Float()
max_tokens = fields.Integer()
class AgentUpdateSchema(Schema):
name = fields.String()
description = fields.String()
system_prompt = fields.String()
model_id = fields.String()
temperature = fields.Float()
max_tokens = fields.Integer()
is_active = fields.Boolean()
+23
View File
@@ -0,0 +1,23 @@
from marshmallow import Schema, fields
class ChannelSchema(Schema):
id = fields.Integer(dump_only=True)
type = fields.String(required=True)
name = fields.String(required=True)
config = fields.Dict(required=True, load_only=True)
is_active = fields.Boolean()
created_at = fields.DateTime(dump_only=True)
updated_at = fields.DateTime(dump_only=True)
class ChannelCreateSchema(Schema):
type = fields.String(required=True)
name = fields.String(required=True)
config = fields.Dict(required=True, load_only=True)
class ChannelUpdateSchema(Schema):
name = fields.String()
config = fields.Dict(load_only=True)
is_active = fields.Boolean()
+23
View File
@@ -0,0 +1,23 @@
from marshmallow import Schema, fields
class ConversationSchema(Schema):
id = fields.Integer(dump_only=True)
workspace_id = fields.Integer()
agent_id = fields.Integer()
title = fields.String(allow_none=True)
channel = fields.String()
channel_user_id = fields.String(allow_none=True)
status = fields.String()
created_at = fields.DateTime(dump_only=True)
updated_at = fields.DateTime(dump_only=True)
class ConversationCreateSchema(Schema):
agent_id = fields.Integer(required=True)
title = fields.String(allow_none=True)
class ConversationUpdateSchema(Schema):
title = fields.String()
status = fields.String()
+27
View File
@@ -0,0 +1,27 @@
from marshmallow import Schema, fields
class CronJobSchema(Schema):
id = fields.Integer(dump_only=True)
agent_id = fields.Integer()
name = fields.String(required=True)
cron_expression = fields.String(required=True)
prompt = fields.String(required=True)
is_active = fields.Boolean()
last_run_at = fields.DateTime(allow_none=True)
next_run_at = fields.DateTime(allow_none=True)
created_at = fields.DateTime(dump_only=True)
updated_at = fields.DateTime(dump_only=True)
class CronJobCreateSchema(Schema):
name = fields.String(required=True)
cron_expression = fields.String(required=True)
prompt = fields.String(required=True)
class CronJobUpdateSchema(Schema):
name = fields.String()
cron_expression = fields.String()
prompt = fields.String()
is_active = fields.Boolean()
+26
View File
@@ -0,0 +1,26 @@
from marshmallow import Schema, fields
class MemorySchema(Schema):
id = fields.Integer(dump_only=True)
workspace_id = fields.Integer()
agent_id = fields.Integer(allow_none=True)
type = fields.String(required=True)
content = fields.String(required=True)
tags = fields.List(fields.String(), allow_none=True)
importance = fields.Integer()
created_at = fields.DateTime(dump_only=True)
updated_at = fields.DateTime(dump_only=True)
class MemoryCreateSchema(Schema):
type = fields.String(required=True)
content = fields.String(required=True)
tags = fields.List(fields.String(), allow_none=True)
importance = fields.Integer()
class MemoryUpdateSchema(Schema):
content = fields.String()
tags = fields.List(fields.String())
importance = fields.Integer()
+20
View File
@@ -0,0 +1,20 @@
from marshmallow import Schema, fields
class MessageSchema(Schema):
id = fields.Integer(dump_only=True)
conversation_id = fields.Integer()
role = fields.String(required=True)
content = fields.String(required=True)
tokens = fields.Integer(allow_none=True)
model = fields.String(allow_none=True)
tool_calls = fields.List(fields.Dict(), allow_none=True)
metadata = fields.Dict(allow_none=True)
created_at = fields.DateTime(dump_only=True)
class MessageCreateSchema(Schema):
role = fields.String(required=True)
content = fields.String(required=True)
tool_calls = fields.List(fields.Dict(), allow_none=True)
metadata = fields.Dict(allow_none=True)
+24
View File
@@ -0,0 +1,24 @@
from marshmallow import Schema, fields
class ModelSchema(Schema):
id = fields.Integer(dump_only=True)
provider = fields.String(required=True)
name = fields.String(required=True)
model_id = fields.String(required=True)
api_key = fields.String(allow_none=True, load_only=True)
base_url = fields.String(allow_none=True)
is_default = fields.Boolean()
is_active = fields.Boolean()
created_at = fields.DateTime(dump_only=True)
updated_at = fields.DateTime(dump_only=True)
class ModelCreateSchema(Schema):
provider = fields.String(required=True)
name = fields.String(required=True)
model_id = fields.String(required=True)
api_key = fields.String(allow_none=True, load_only=True)
base_url = fields.String(allow_none=True)
is_default = fields.Boolean()
is_active = fields.Boolean()
+15
View File
@@ -0,0 +1,15 @@
from marshmallow import Schema, fields
class SkillSchema(Schema):
id = fields.Integer(dump_only=True)
name = fields.String(required=True)
version = fields.String()
description = fields.String(allow_none=True)
author = fields.String(allow_none=True)
repository = fields.String(allow_none=True)
config = fields.Dict(allow_none=True)
is_installed = fields.Boolean()
is_active = fields.Boolean()
created_at = fields.DateTime(dump_only=True)
updated_at = fields.DateTime(dump_only=True)
+30
View File
@@ -0,0 +1,30 @@
from marshmallow import Schema, fields
class ToolSchema(Schema):
id = fields.Integer(dump_only=True)
name = fields.String(required=True)
type = fields.String(required=True)
description = fields.String(allow_none=True)
config = fields.Dict(allow_none=True)
is_active = fields.Boolean()
created_at = fields.DateTime(dump_only=True)
updated_at = fields.DateTime(dump_only=True)
class ToolCreateSchema(Schema):
name = fields.String(required=True)
type = fields.String(required=True)
description = fields.String(allow_none=True)
config = fields.Dict(allow_none=True)
class AgentToolSchema(Schema):
id = fields.Integer(dump_only=True)
agent_id = fields.Integer()
tool_id = fields.Integer()
created_at = fields.DateTime(dump_only=True)
class AgentToolCreateSchema(Schema):
tool_id = fields.Integer(required=True)
+23
View File
@@ -0,0 +1,23 @@
from marshmallow import Schema, fields
class UserSchema(Schema):
id = fields.Integer(dump_only=True)
username = fields.String(required=True)
email = fields.String(allow_none=True)
avatar = fields.String(allow_none=True)
is_active = fields.Boolean()
is_admin = fields.Boolean()
created_at = fields.DateTime(dump_only=True)
updated_at = fields.DateTime(dump_only=True)
class UserCreateSchema(Schema):
username = fields.String(required=True)
password = fields.String(required=True, load_only=True)
email = fields.String(allow_none=True)
class UserUpdateSchema(Schema):
email = fields.String(allow_none=True)
avatar = fields.String(allow_none=True)
+21
View File
@@ -0,0 +1,21 @@
from marshmallow import Schema, fields
class WorkspaceSchema(Schema):
id = fields.Integer(dump_only=True)
user_id = fields.Integer()
name = fields.String(required=True)
description = fields.String(allow_none=True)
is_default = fields.Boolean()
created_at = fields.DateTime(dump_only=True)
updated_at = fields.DateTime(dump_only=True)
class WorkspaceCreateSchema(Schema):
name = fields.String(required=True)
description = fields.String(allow_none=True)
class WorkspaceUpdateSchema(Schema):
name = fields.String()
description = fields.String()