Co-authored-by: 刘江波 <jiangbo721@163.com>tags/0.14.2
| import json | import json | ||||
| from flask_login import UserMixin | from flask_login import UserMixin | ||||
| from sqlalchemy import func | |||||
| from .engine import db | from .engine import db | ||||
| from .types import StringUUID | from .types import StringUUID | ||||
| timezone = db.Column(db.String(255)) | timezone = db.Column(db.String(255)) | ||||
| last_login_at = db.Column(db.DateTime) | last_login_at = db.Column(db.DateTime) | ||||
| last_login_ip = db.Column(db.String(255)) | last_login_ip = db.Column(db.String(255)) | ||||
| last_active_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)")) | |||||
| last_active_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp()) | |||||
| status = db.Column(db.String(16), nullable=False, server_default=db.text("'active'::character varying")) | status = db.Column(db.String(16), nullable=False, server_default=db.text("'active'::character varying")) | ||||
| initialized_at = db.Column(db.DateTime) | initialized_at = db.Column(db.DateTime) | ||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)")) | |||||
| updated_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)")) | |||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp()) | |||||
| updated_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp()) | |||||
| @property | @property | ||||
| def is_password_set(self): | def is_password_set(self): | ||||
| plan = db.Column(db.String(255), nullable=False, server_default=db.text("'basic'::character varying")) | plan = db.Column(db.String(255), nullable=False, server_default=db.text("'basic'::character varying")) | ||||
| status = db.Column(db.String(255), nullable=False, server_default=db.text("'normal'::character varying")) | status = db.Column(db.String(255), nullable=False, server_default=db.text("'normal'::character varying")) | ||||
| custom_config = db.Column(db.Text) | custom_config = db.Column(db.Text) | ||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)")) | |||||
| updated_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)")) | |||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp()) | |||||
| updated_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp()) | |||||
| def get_accounts(self) -> list[Account]: | def get_accounts(self) -> list[Account]: | ||||
| return ( | return ( | ||||
| current = db.Column(db.Boolean, nullable=False, server_default=db.text("false")) | current = db.Column(db.Boolean, nullable=False, server_default=db.text("false")) | ||||
| role = db.Column(db.String(16), nullable=False, server_default="normal") | role = db.Column(db.String(16), nullable=False, server_default="normal") | ||||
| invited_by = db.Column(StringUUID, nullable=True) | invited_by = db.Column(StringUUID, nullable=True) | ||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)")) | |||||
| updated_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)")) | |||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp()) | |||||
| updated_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp()) | |||||
| class AccountIntegrate(db.Model): | class AccountIntegrate(db.Model): | ||||
| provider = db.Column(db.String(16), nullable=False) | provider = db.Column(db.String(16), nullable=False) | ||||
| open_id = db.Column(db.String(255), nullable=False) | open_id = db.Column(db.String(255), nullable=False) | ||||
| encrypted_token = db.Column(db.String(255), nullable=False) | encrypted_token = db.Column(db.String(255), nullable=False) | ||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)")) | |||||
| updated_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)")) | |||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp()) | |||||
| updated_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp()) | |||||
| class InvitationCode(db.Model): | class InvitationCode(db.Model): | ||||
| used_by_tenant_id = db.Column(StringUUID) | used_by_tenant_id = db.Column(StringUUID) | ||||
| used_by_account_id = db.Column(StringUUID) | used_by_account_id = db.Column(StringUUID) | ||||
| deprecated_at = db.Column(db.DateTime) | deprecated_at = db.Column(db.DateTime) | ||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)")) | |||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp()) |
| import enum | import enum | ||||
| from sqlalchemy import func | |||||
| from .engine import db | from .engine import db | ||||
| from .types import StringUUID | from .types import StringUUID | ||||
| name = db.Column(db.String(255), nullable=False) | name = db.Column(db.String(255), nullable=False) | ||||
| api_endpoint = db.Column(db.String(255), nullable=False) | api_endpoint = db.Column(db.String(255), nullable=False) | ||||
| api_key = db.Column(db.Text, nullable=False) | api_key = db.Column(db.Text, nullable=False) | ||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)")) | |||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp()) |
| indexing_technique = db.Column(db.String(255), nullable=True) | indexing_technique = db.Column(db.String(255), nullable=True) | ||||
| index_struct = db.Column(db.Text, nullable=True) | index_struct = db.Column(db.Text, nullable=True) | ||||
| created_by = db.Column(StringUUID, nullable=False) | created_by = db.Column(StringUUID, nullable=False) | ||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)")) | |||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp()) | |||||
| updated_by = db.Column(StringUUID, nullable=True) | updated_by = db.Column(StringUUID, nullable=True) | ||||
| updated_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)")) | |||||
| updated_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp()) | |||||
| embedding_model = db.Column(db.String(255), nullable=True) | embedding_model = db.Column(db.String(255), nullable=True) | ||||
| embedding_model_provider = db.Column(db.String(255), nullable=True) | embedding_model_provider = db.Column(db.String(255), nullable=True) | ||||
| collection_binding_id = db.Column(StringUUID, nullable=True) | collection_binding_id = db.Column(StringUUID, nullable=True) | ||||
| mode = db.Column(db.String(255), nullable=False, server_default=db.text("'automatic'::character varying")) | mode = db.Column(db.String(255), nullable=False, server_default=db.text("'automatic'::character varying")) | ||||
| rules = db.Column(db.Text, nullable=True) | rules = db.Column(db.Text, nullable=True) | ||||
| created_by = db.Column(StringUUID, nullable=False) | created_by = db.Column(StringUUID, nullable=False) | ||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)")) | |||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp()) | |||||
| MODES = ["automatic", "custom"] | MODES = ["automatic", "custom"] | ||||
| PRE_PROCESSING_RULES = ["remove_stopwords", "remove_extra_spaces", "remove_urls_emails"] | PRE_PROCESSING_RULES = ["remove_stopwords", "remove_extra_spaces", "remove_urls_emails"] | ||||
| created_from = db.Column(db.String(255), nullable=False) | created_from = db.Column(db.String(255), nullable=False) | ||||
| created_by = db.Column(StringUUID, nullable=False) | created_by = db.Column(StringUUID, nullable=False) | ||||
| created_api_request_id = db.Column(StringUUID, nullable=True) | created_api_request_id = db.Column(StringUUID, nullable=True) | ||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)")) | |||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp()) | |||||
| # start processing | # start processing | ||||
| processing_started_at = db.Column(db.DateTime, nullable=True) | processing_started_at = db.Column(db.DateTime, nullable=True) | ||||
| archived_reason = db.Column(db.String(255), nullable=True) | archived_reason = db.Column(db.String(255), nullable=True) | ||||
| archived_by = db.Column(StringUUID, nullable=True) | archived_by = db.Column(StringUUID, nullable=True) | ||||
| archived_at = db.Column(db.DateTime, nullable=True) | archived_at = db.Column(db.DateTime, nullable=True) | ||||
| updated_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)")) | |||||
| updated_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp()) | |||||
| doc_type = db.Column(db.String(40), nullable=True) | doc_type = db.Column(db.String(40), nullable=True) | ||||
| doc_metadata = db.Column(db.JSON, nullable=True) | doc_metadata = db.Column(db.JSON, nullable=True) | ||||
| doc_form = db.Column(db.String(255), nullable=False, server_default=db.text("'text_model'::character varying")) | doc_form = db.Column(db.String(255), nullable=False, server_default=db.text("'text_model'::character varying")) | ||||
| disabled_by = db.Column(StringUUID, nullable=True) | disabled_by = db.Column(StringUUID, nullable=True) | ||||
| status = db.Column(db.String(255), nullable=False, server_default=db.text("'waiting'::character varying")) | status = db.Column(db.String(255), nullable=False, server_default=db.text("'waiting'::character varying")) | ||||
| created_by = db.Column(StringUUID, nullable=False) | created_by = db.Column(StringUUID, nullable=False) | ||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)")) | |||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp()) | |||||
| updated_by = db.Column(StringUUID, nullable=True) | updated_by = db.Column(StringUUID, nullable=True) | ||||
| updated_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)")) | |||||
| updated_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp()) | |||||
| indexing_at = db.Column(db.DateTime, nullable=True) | indexing_at = db.Column(db.DateTime, nullable=True) | ||||
| completed_at = db.Column(db.DateTime, nullable=True) | completed_at = db.Column(db.DateTime, nullable=True) | ||||
| error = db.Column(db.Text, nullable=True) | error = db.Column(db.Text, nullable=True) | ||||
| ) | ) | ||||
| hash = db.Column(db.String(64), nullable=False) | hash = db.Column(db.String(64), nullable=False) | ||||
| embedding = db.Column(db.LargeBinary, nullable=False) | embedding = db.Column(db.LargeBinary, nullable=False) | ||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)")) | |||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp()) | |||||
| provider_name = db.Column(db.String(255), nullable=False, server_default=db.text("''::character varying")) | provider_name = db.Column(db.String(255), nullable=False, server_default=db.text("''::character varying")) | ||||
| def set_embedding(self, embedding_data: list[float]): | def set_embedding(self, embedding_data: list[float]): | ||||
| model_name = db.Column(db.String(255), nullable=False) | model_name = db.Column(db.String(255), nullable=False) | ||||
| type = db.Column(db.String(40), server_default=db.text("'dataset'::character varying"), nullable=False) | type = db.Column(db.String(40), server_default=db.text("'dataset'::character varying"), nullable=False) | ||||
| collection_name = db.Column(db.String(64), nullable=False) | collection_name = db.Column(db.String(64), nullable=False) | ||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)")) | |||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp()) | |||||
| class TidbAuthBinding(db.Model): | class TidbAuthBinding(db.Model): | ||||
| status = db.Column(db.String(255), nullable=False, server_default=db.text("CREATING")) | status = db.Column(db.String(255), nullable=False, server_default=db.text("CREATING")) | ||||
| account = db.Column(db.String(255), nullable=False) | account = db.Column(db.String(255), nullable=False) | ||||
| password = db.Column(db.String(255), nullable=False) | password = db.Column(db.String(255), nullable=False) | ||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)")) | |||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp()) | |||||
| class Whitelist(db.Model): | class Whitelist(db.Model): | ||||
| id = db.Column(StringUUID, primary_key=True, server_default=db.text("uuid_generate_v4()")) | id = db.Column(StringUUID, primary_key=True, server_default=db.text("uuid_generate_v4()")) | ||||
| tenant_id = db.Column(StringUUID, nullable=True) | tenant_id = db.Column(StringUUID, nullable=True) | ||||
| category = db.Column(db.String(255), nullable=False) | category = db.Column(db.String(255), nullable=False) | ||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)")) | |||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp()) | |||||
| class DatasetPermission(db.Model): | class DatasetPermission(db.Model): | ||||
| account_id = db.Column(StringUUID, nullable=False) | account_id = db.Column(StringUUID, nullable=False) | ||||
| tenant_id = db.Column(StringUUID, nullable=False) | tenant_id = db.Column(StringUUID, nullable=False) | ||||
| has_permission = db.Column(db.Boolean, nullable=False, server_default=db.text("true")) | has_permission = db.Column(db.Boolean, nullable=False, server_default=db.text("true")) | ||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)")) | |||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp()) | |||||
| class ExternalKnowledgeApis(db.Model): | class ExternalKnowledgeApis(db.Model): | ||||
| tenant_id = db.Column(StringUUID, nullable=False) | tenant_id = db.Column(StringUUID, nullable=False) | ||||
| settings = db.Column(db.Text, nullable=True) | settings = db.Column(db.Text, nullable=True) | ||||
| created_by = db.Column(StringUUID, nullable=False) | created_by = db.Column(StringUUID, nullable=False) | ||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)")) | |||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp()) | |||||
| updated_by = db.Column(StringUUID, nullable=True) | updated_by = db.Column(StringUUID, nullable=True) | ||||
| updated_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)")) | |||||
| updated_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp()) | |||||
| def to_dict(self): | def to_dict(self): | ||||
| return { | return { | ||||
| dataset_id = db.Column(StringUUID, nullable=False) | dataset_id = db.Column(StringUUID, nullable=False) | ||||
| external_knowledge_id = db.Column(db.Text, nullable=False) | external_knowledge_id = db.Column(db.Text, nullable=False) | ||||
| created_by = db.Column(StringUUID, nullable=False) | created_by = db.Column(StringUUID, nullable=False) | ||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)")) | |||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp()) | |||||
| updated_by = db.Column(StringUUID, nullable=True) | updated_by = db.Column(StringUUID, nullable=True) | ||||
| updated_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)")) | |||||
| updated_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp()) |
| __table_args__ = (db.PrimaryKeyConstraint("version", name="dify_setup_pkey"),) | __table_args__ = (db.PrimaryKeyConstraint("version", name="dify_setup_pkey"),) | ||||
| version = db.Column(db.String(255), nullable=False) | version = db.Column(db.String(255), nullable=False) | ||||
| setup_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)")) | |||||
| setup_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp()) | |||||
| class AppMode(StrEnum): | class AppMode(StrEnum): | ||||
| tracing = db.Column(db.Text, nullable=True) | tracing = db.Column(db.Text, nullable=True) | ||||
| max_active_requests = db.Column(db.Integer, nullable=True) | max_active_requests = db.Column(db.Integer, nullable=True) | ||||
| created_by = db.Column(StringUUID, nullable=True) | created_by = db.Column(StringUUID, nullable=True) | ||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)")) | |||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp()) | |||||
| updated_by = db.Column(StringUUID, nullable=True) | updated_by = db.Column(StringUUID, nullable=True) | ||||
| updated_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)")) | |||||
| updated_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp()) | |||||
| use_icon_as_answer_icon = db.Column(db.Boolean, nullable=False, server_default=db.text("false")) | use_icon_as_answer_icon = db.Column(db.Boolean, nullable=False, server_default=db.text("false")) | ||||
| @property | @property | ||||
| model_id = db.Column(db.String(255), nullable=True) | model_id = db.Column(db.String(255), nullable=True) | ||||
| configs = db.Column(db.JSON, nullable=True) | configs = db.Column(db.JSON, nullable=True) | ||||
| created_by = db.Column(StringUUID, nullable=True) | created_by = db.Column(StringUUID, nullable=True) | ||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)")) | |||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp()) | |||||
| updated_by = db.Column(StringUUID, nullable=True) | updated_by = db.Column(StringUUID, nullable=True) | ||||
| updated_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)")) | |||||
| updated_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp()) | |||||
| opening_statement = db.Column(db.Text) | opening_statement = db.Column(db.Text) | ||||
| suggested_questions = db.Column(db.Text) | suggested_questions = db.Column(db.Text) | ||||
| suggested_questions_after_answer = db.Column(db.Text) | suggested_questions_after_answer = db.Column(db.Text) | ||||
| is_listed = db.Column(db.Boolean, nullable=False, default=True) | is_listed = db.Column(db.Boolean, nullable=False, default=True) | ||||
| install_count = db.Column(db.Integer, nullable=False, default=0) | install_count = db.Column(db.Integer, nullable=False, default=0) | ||||
| language = db.Column(db.String(255), nullable=False, server_default=db.text("'en-US'::character varying")) | language = db.Column(db.String(255), nullable=False, server_default=db.text("'en-US'::character varying")) | ||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)")) | |||||
| updated_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)")) | |||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp()) | |||||
| updated_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp()) | |||||
| @property | @property | ||||
| def app(self): | def app(self): | ||||
| position = db.Column(db.Integer, nullable=False, default=0) | position = db.Column(db.Integer, nullable=False, default=0) | ||||
| is_pinned = db.Column(db.Boolean, nullable=False, server_default=db.text("false")) | is_pinned = db.Column(db.Boolean, nullable=False, server_default=db.text("false")) | ||||
| last_used_at = db.Column(db.DateTime, nullable=True) | last_used_at = db.Column(db.DateTime, nullable=True) | ||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)")) | |||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp()) | |||||
| @property | @property | ||||
| def app(self): | def app(self): | ||||
| read_at = db.Column(db.DateTime) | read_at = db.Column(db.DateTime) | ||||
| read_account_id = db.Column(StringUUID) | read_account_id = db.Column(StringUUID) | ||||
| dialogue_count: Mapped[int] = mapped_column(default=0) | dialogue_count: Mapped[int] = mapped_column(default=0) | ||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)")) | |||||
| updated_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)")) | |||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp()) | |||||
| updated_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp()) | |||||
| messages = db.relationship("Message", backref="conversation", lazy="select", passive_deletes="all") | messages = db.relationship("Message", backref="conversation", lazy="select", passive_deletes="all") | ||||
| message_annotations = db.relationship( | message_annotations = db.relationship( | ||||
| from_source = db.Column(db.String(255), nullable=False) | from_source = db.Column(db.String(255), nullable=False) | ||||
| from_end_user_id: Mapped[Optional[str]] = db.Column(StringUUID) | from_end_user_id: Mapped[Optional[str]] = db.Column(StringUUID) | ||||
| from_account_id: Mapped[Optional[str]] = db.Column(StringUUID) | from_account_id: Mapped[Optional[str]] = db.Column(StringUUID) | ||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)")) | |||||
| updated_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)")) | |||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp()) | |||||
| updated_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp()) | |||||
| agent_based = db.Column(db.Boolean, nullable=False, server_default=db.text("false")) | agent_based = db.Column(db.Boolean, nullable=False, server_default=db.text("false")) | ||||
| workflow_run_id = db.Column(StringUUID) | workflow_run_id = db.Column(StringUUID) | ||||
| from_source = db.Column(db.String(255), nullable=False) | from_source = db.Column(db.String(255), nullable=False) | ||||
| from_end_user_id = db.Column(StringUUID) | from_end_user_id = db.Column(StringUUID) | ||||
| from_account_id = db.Column(StringUUID) | from_account_id = db.Column(StringUUID) | ||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)")) | |||||
| updated_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)")) | |||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp()) | |||||
| updated_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp()) | |||||
| @property | @property | ||||
| def from_account(self): | def from_account(self): | ||||
| upload_file_id: Mapped[Optional[str]] = db.Column(StringUUID, nullable=True) | upload_file_id: Mapped[Optional[str]] = db.Column(StringUUID, nullable=True) | ||||
| created_by_role: Mapped[str] = db.Column(db.String(255), nullable=False) | created_by_role: Mapped[str] = db.Column(db.String(255), nullable=False) | ||||
| created_by: Mapped[str] = db.Column(StringUUID, nullable=False) | created_by: Mapped[str] = db.Column(StringUUID, nullable=False) | ||||
| created_at: Mapped[datetime] = db.Column( | |||||
| db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)") | |||||
| ) | |||||
| created_at: Mapped[datetime] = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp()) | |||||
| class MessageAnnotation(db.Model): | class MessageAnnotation(db.Model): | ||||
| content = db.Column(db.Text, nullable=False) | content = db.Column(db.Text, nullable=False) | ||||
| hit_count = db.Column(db.Integer, nullable=False, server_default=db.text("0")) | hit_count = db.Column(db.Integer, nullable=False, server_default=db.text("0")) | ||||
| account_id = db.Column(StringUUID, nullable=False) | account_id = db.Column(StringUUID, nullable=False) | ||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)")) | |||||
| updated_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)")) | |||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp()) | |||||
| updated_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp()) | |||||
| @property | @property | ||||
| def account(self): | def account(self): | ||||
| source = db.Column(db.Text, nullable=False) | source = db.Column(db.Text, nullable=False) | ||||
| question = db.Column(db.Text, nullable=False) | question = db.Column(db.Text, nullable=False) | ||||
| account_id = db.Column(StringUUID, nullable=False) | account_id = db.Column(StringUUID, nullable=False) | ||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)")) | |||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp()) | |||||
| score = db.Column(Float, nullable=False, server_default=db.text("0")) | score = db.Column(Float, nullable=False, server_default=db.text("0")) | ||||
| message_id = db.Column(StringUUID, nullable=False) | message_id = db.Column(StringUUID, nullable=False) | ||||
| annotation_question = db.Column(db.Text, nullable=False) | annotation_question = db.Column(db.Text, nullable=False) | ||||
| score_threshold = db.Column(Float, nullable=False, server_default=db.text("0")) | score_threshold = db.Column(Float, nullable=False, server_default=db.text("0")) | ||||
| collection_binding_id = db.Column(StringUUID, nullable=False) | collection_binding_id = db.Column(StringUUID, nullable=False) | ||||
| created_user_id = db.Column(StringUUID, nullable=False) | created_user_id = db.Column(StringUUID, nullable=False) | ||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)")) | |||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp()) | |||||
| updated_user_id = db.Column(StringUUID, nullable=False) | updated_user_id = db.Column(StringUUID, nullable=False) | ||||
| updated_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)")) | |||||
| updated_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp()) | |||||
| @property | @property | ||||
| def created_account(self): | def created_account(self): | ||||
| account_id = db.Column(StringUUID, nullable=False) | account_id = db.Column(StringUUID, nullable=False) | ||||
| action = db.Column(db.String(255), nullable=False) | action = db.Column(db.String(255), nullable=False) | ||||
| content = db.Column(db.JSON) | content = db.Column(db.JSON) | ||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)")) | |||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp()) | |||||
| created_ip = db.Column(db.String(255), nullable=False) | created_ip = db.Column(db.String(255), nullable=False) | ||||
| updated_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)")) | |||||
| updated_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp()) | |||||
| class EndUser(UserMixin, db.Model): | class EndUser(UserMixin, db.Model): | ||||
| name = db.Column(db.String(255)) | name = db.Column(db.String(255)) | ||||
| is_anonymous = db.Column(db.Boolean, nullable=False, server_default=db.text("true")) | is_anonymous = db.Column(db.Boolean, nullable=False, server_default=db.text("true")) | ||||
| session_id = db.Column(db.String(255), nullable=False) | session_id = db.Column(db.String(255), nullable=False) | ||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)")) | |||||
| updated_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)")) | |||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp()) | |||||
| updated_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp()) | |||||
| class Site(db.Model): | class Site(db.Model): | ||||
| prompt_public = db.Column(db.Boolean, nullable=False, server_default=db.text("false")) | prompt_public = db.Column(db.Boolean, nullable=False, server_default=db.text("false")) | ||||
| status = db.Column(db.String(255), nullable=False, server_default=db.text("'normal'::character varying")) | status = db.Column(db.String(255), nullable=False, server_default=db.text("'normal'::character varying")) | ||||
| created_by = db.Column(StringUUID, nullable=True) | created_by = db.Column(StringUUID, nullable=True) | ||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)")) | |||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp()) | |||||
| updated_by = db.Column(StringUUID, nullable=True) | updated_by = db.Column(StringUUID, nullable=True) | ||||
| updated_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)")) | |||||
| updated_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp()) | |||||
| code = db.Column(db.String(255)) | code = db.Column(db.String(255)) | ||||
| @property | @property | ||||
| type = db.Column(db.String(16), nullable=False) | type = db.Column(db.String(16), nullable=False) | ||||
| token = db.Column(db.String(255), nullable=False) | token = db.Column(db.String(255), nullable=False) | ||||
| last_used_at = db.Column(db.DateTime, nullable=True) | last_used_at = db.Column(db.DateTime, nullable=True) | ||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)")) | |||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp()) | |||||
| @staticmethod | @staticmethod | ||||
| def generate_api_key(prefix, n): | def generate_api_key(prefix, n): | ||||
| db.String(255), nullable=False, server_default=db.text("'account'::character varying") | db.String(255), nullable=False, server_default=db.text("'account'::character varying") | ||||
| ) | ) | ||||
| created_by: Mapped[str] = db.Column(StringUUID, nullable=False) | created_by: Mapped[str] = db.Column(StringUUID, nullable=False) | ||||
| created_at: Mapped[datetime] = db.Column( | |||||
| db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)") | |||||
| ) | |||||
| created_at: Mapped[datetime] = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp()) | |||||
| used: Mapped[bool] = db.Column(db.Boolean, nullable=False, server_default=db.text("false")) | used: Mapped[bool] = db.Column(db.Boolean, nullable=False, server_default=db.text("false")) | ||||
| used_by: Mapped[str | None] = db.Column(StringUUID, nullable=True) | used_by: Mapped[str | None] = db.Column(StringUUID, nullable=True) | ||||
| used_at: Mapped[datetime | None] = db.Column(db.DateTime, nullable=True) | used_at: Mapped[datetime | None] = db.Column(db.DateTime, nullable=True) | ||||
| request = db.Column(db.Text, nullable=True) | request = db.Column(db.Text, nullable=True) | ||||
| response = db.Column(db.Text, nullable=True) | response = db.Column(db.Text, nullable=True) | ||||
| ip = db.Column(db.String(255), nullable=False) | ip = db.Column(db.String(255), nullable=False) | ||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)")) | |||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp()) | |||||
| class MessageChain(db.Model): | class MessageChain(db.Model): | ||||
| type = db.Column(db.String(16), nullable=False) | type = db.Column(db.String(16), nullable=False) | ||||
| name = db.Column(db.String(255), nullable=False) | name = db.Column(db.String(255), nullable=False) | ||||
| created_by = db.Column(StringUUID, nullable=False) | created_by = db.Column(StringUUID, nullable=False) | ||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)")) | |||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp()) | |||||
| class TagBinding(db.Model): | class TagBinding(db.Model): | ||||
| tag_id = db.Column(StringUUID, nullable=True) | tag_id = db.Column(StringUUID, nullable=True) | ||||
| target_id = db.Column(StringUUID, nullable=True) | target_id = db.Column(StringUUID, nullable=True) | ||||
| created_by = db.Column(StringUUID, nullable=False) | created_by = db.Column(StringUUID, nullable=False) | ||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)")) | |||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp()) | |||||
| class TraceAppConfig(db.Model): | class TraceAppConfig(db.Model): | ||||
| app_id = db.Column(StringUUID, nullable=False) | app_id = db.Column(StringUUID, nullable=False) | ||||
| tracing_provider = db.Column(db.String(255), nullable=True) | tracing_provider = db.Column(db.String(255), nullable=True) | ||||
| tracing_config = db.Column(db.JSON, nullable=True) | tracing_config = db.Column(db.JSON, nullable=True) | ||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=func.now()) | |||||
| updated_at = db.Column(db.DateTime, nullable=False, server_default=func.now(), onupdate=func.now()) | |||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp()) | |||||
| updated_at = db.Column( | |||||
| db.DateTime, nullable=False, server_default=func.current_timestamp(), onupdate=func.current_timestamp() | |||||
| ) | |||||
| is_active = db.Column(db.Boolean, nullable=False, server_default=db.text("true")) | is_active = db.Column(db.Boolean, nullable=False, server_default=db.text("true")) | ||||
| @property | @property |
| from enum import Enum | from enum import Enum | ||||
| from sqlalchemy import func | |||||
| from .engine import db | from .engine import db | ||||
| from .types import StringUUID | from .types import StringUUID | ||||
| quota_limit = db.Column(db.BigInteger, nullable=True) | quota_limit = db.Column(db.BigInteger, nullable=True) | ||||
| quota_used = db.Column(db.BigInteger, default=0) | quota_used = db.Column(db.BigInteger, default=0) | ||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)")) | |||||
| updated_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)")) | |||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp()) | |||||
| updated_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp()) | |||||
| def __repr__(self): | def __repr__(self): | ||||
| return ( | return ( | ||||
| model_type = db.Column(db.String(40), nullable=False) | model_type = db.Column(db.String(40), nullable=False) | ||||
| encrypted_config = db.Column(db.Text, nullable=True) | encrypted_config = db.Column(db.Text, nullable=True) | ||||
| is_valid = db.Column(db.Boolean, nullable=False, server_default=db.text("false")) | is_valid = db.Column(db.Boolean, nullable=False, server_default=db.text("false")) | ||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)")) | |||||
| updated_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)")) | |||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp()) | |||||
| updated_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp()) | |||||
| class TenantDefaultModel(db.Model): | class TenantDefaultModel(db.Model): | ||||
| provider_name = db.Column(db.String(255), nullable=False) | provider_name = db.Column(db.String(255), nullable=False) | ||||
| model_name = db.Column(db.String(255), nullable=False) | model_name = db.Column(db.String(255), nullable=False) | ||||
| model_type = db.Column(db.String(40), nullable=False) | model_type = db.Column(db.String(40), nullable=False) | ||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)")) | |||||
| updated_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)")) | |||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp()) | |||||
| updated_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp()) | |||||
| class TenantPreferredModelProvider(db.Model): | class TenantPreferredModelProvider(db.Model): | ||||
| tenant_id = db.Column(StringUUID, nullable=False) | tenant_id = db.Column(StringUUID, nullable=False) | ||||
| provider_name = db.Column(db.String(255), nullable=False) | provider_name = db.Column(db.String(255), nullable=False) | ||||
| preferred_provider_type = db.Column(db.String(40), nullable=False) | preferred_provider_type = db.Column(db.String(40), nullable=False) | ||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)")) | |||||
| updated_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)")) | |||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp()) | |||||
| updated_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp()) | |||||
| class ProviderOrder(db.Model): | class ProviderOrder(db.Model): | ||||
| paid_at = db.Column(db.DateTime) | paid_at = db.Column(db.DateTime) | ||||
| pay_failed_at = db.Column(db.DateTime) | pay_failed_at = db.Column(db.DateTime) | ||||
| refunded_at = db.Column(db.DateTime) | refunded_at = db.Column(db.DateTime) | ||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)")) | |||||
| updated_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)")) | |||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp()) | |||||
| updated_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp()) | |||||
| class ProviderModelSetting(db.Model): | class ProviderModelSetting(db.Model): | ||||
| model_type = db.Column(db.String(40), nullable=False) | model_type = db.Column(db.String(40), nullable=False) | ||||
| enabled = db.Column(db.Boolean, nullable=False, server_default=db.text("true")) | enabled = db.Column(db.Boolean, nullable=False, server_default=db.text("true")) | ||||
| load_balancing_enabled = db.Column(db.Boolean, nullable=False, server_default=db.text("false")) | load_balancing_enabled = db.Column(db.Boolean, nullable=False, server_default=db.text("false")) | ||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)")) | |||||
| updated_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)")) | |||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp()) | |||||
| updated_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp()) | |||||
| class LoadBalancingModelConfig(db.Model): | class LoadBalancingModelConfig(db.Model): | ||||
| name = db.Column(db.String(255), nullable=False) | name = db.Column(db.String(255), nullable=False) | ||||
| encrypted_config = db.Column(db.Text, nullable=True) | encrypted_config = db.Column(db.Text, nullable=True) | ||||
| enabled = db.Column(db.Boolean, nullable=False, server_default=db.text("true")) | enabled = db.Column(db.Boolean, nullable=False, server_default=db.text("true")) | ||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)")) | |||||
| updated_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)")) | |||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp()) | |||||
| updated_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp()) |
| import json | import json | ||||
| from sqlalchemy import func | |||||
| from sqlalchemy.dialects.postgresql import JSONB | from sqlalchemy.dialects.postgresql import JSONB | ||||
| from .engine import db | from .engine import db | ||||
| access_token = db.Column(db.String(255), nullable=False) | access_token = db.Column(db.String(255), nullable=False) | ||||
| provider = db.Column(db.String(255), nullable=False) | provider = db.Column(db.String(255), nullable=False) | ||||
| source_info = db.Column(JSONB, nullable=False) | source_info = db.Column(JSONB, nullable=False) | ||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)")) | |||||
| updated_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)")) | |||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp()) | |||||
| updated_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp()) | |||||
| disabled = db.Column(db.Boolean, nullable=True, server_default=db.text("false")) | disabled = db.Column(db.Boolean, nullable=True, server_default=db.text("false")) | ||||
| category = db.Column(db.String(255), nullable=False) | category = db.Column(db.String(255), nullable=False) | ||||
| provider = db.Column(db.String(255), nullable=False) | provider = db.Column(db.String(255), nullable=False) | ||||
| credentials = db.Column(db.Text, nullable=True) # JSON | credentials = db.Column(db.Text, nullable=True) # JSON | ||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)")) | |||||
| updated_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)")) | |||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp()) | |||||
| updated_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp()) | |||||
| disabled = db.Column(db.Boolean, nullable=True, server_default=db.text("false")) | disabled = db.Column(db.Boolean, nullable=True, server_default=db.text("false")) | ||||
| def to_dict(self): | def to_dict(self): |
| from typing import Optional | from typing import Optional | ||||
| import sqlalchemy as sa | import sqlalchemy as sa | ||||
| from sqlalchemy import ForeignKey | |||||
| from sqlalchemy import ForeignKey, func | |||||
| from sqlalchemy.orm import Mapped, mapped_column | from sqlalchemy.orm import Mapped, mapped_column | ||||
| from core.tools.entities.common_entities import I18nObject | from core.tools.entities.common_entities import I18nObject | ||||
| provider = db.Column(db.String(40), nullable=False) | provider = db.Column(db.String(40), nullable=False) | ||||
| # credential of the tool provider | # credential of the tool provider | ||||
| encrypted_credentials = db.Column(db.Text, nullable=True) | encrypted_credentials = db.Column(db.Text, nullable=True) | ||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)")) | |||||
| updated_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)")) | |||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp()) | |||||
| updated_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp()) | |||||
| @property | @property | ||||
| def credentials(self) -> dict: | def credentials(self) -> dict: | ||||
| tool_name = db.Column(db.String(40), nullable=False) | tool_name = db.Column(db.String(40), nullable=False) | ||||
| # author | # author | ||||
| author = db.Column(db.String(40), nullable=False) | author = db.Column(db.String(40), nullable=False) | ||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)")) | |||||
| updated_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)")) | |||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp()) | |||||
| updated_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp()) | |||||
| @property | @property | ||||
| def description_i18n(self) -> I18nObject: | def description_i18n(self) -> I18nObject: | ||||
| # custom_disclaimer | # custom_disclaimer | ||||
| custom_disclaimer: Mapped[str] = mapped_column(sa.TEXT, default="") | custom_disclaimer: Mapped[str] = mapped_column(sa.TEXT, default="") | ||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)")) | |||||
| updated_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)")) | |||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp()) | |||||
| updated_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp()) | |||||
| @property | @property | ||||
| def schema_type(self) -> ApiProviderSchemaType: | def schema_type(self) -> ApiProviderSchemaType: | ||||
| # privacy policy | # privacy policy | ||||
| privacy_policy = db.Column(db.String(255), nullable=True, server_default="") | privacy_policy = db.Column(db.String(255), nullable=True, server_default="") | ||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)")) | |||||
| updated_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)")) | |||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp()) | |||||
| updated_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp()) | |||||
| @property | @property | ||||
| def user(self) -> Account | None: | def user(self) -> Account | None: | ||||
| provider_response_latency = db.Column(db.Float, nullable=False, server_default=db.text("0")) | provider_response_latency = db.Column(db.Float, nullable=False, server_default=db.text("0")) | ||||
| total_price = db.Column(db.Numeric(10, 7)) | total_price = db.Column(db.Numeric(10, 7)) | ||||
| currency = db.Column(db.String(255), nullable=False) | currency = db.Column(db.String(255), nullable=False) | ||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)")) | |||||
| updated_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)")) | |||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp()) | |||||
| updated_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp()) | |||||
| class ToolConversationVariables(db.Model): | class ToolConversationVariables(db.Model): | ||||
| # variables pool | # variables pool | ||||
| variables_str = db.Column(db.Text, nullable=False) | variables_str = db.Column(db.Text, nullable=False) | ||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)")) | |||||
| updated_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)")) | |||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp()) | |||||
| updated_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp()) | |||||
| @property | @property | ||||
| def variables(self) -> dict: | def variables(self) -> dict: |
| from sqlalchemy import func | |||||
| from .engine import db | from .engine import db | ||||
| from .model import Message | from .model import Message | ||||
| from .types import StringUUID | from .types import StringUUID | ||||
| message_id = db.Column(StringUUID, nullable=False) | message_id = db.Column(StringUUID, nullable=False) | ||||
| created_by_role = db.Column(db.String(255), nullable=False, server_default=db.text("'end_user'::character varying")) | created_by_role = db.Column(db.String(255), nullable=False, server_default=db.text("'end_user'::character varying")) | ||||
| created_by = db.Column(StringUUID, nullable=False) | created_by = db.Column(StringUUID, nullable=False) | ||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)")) | |||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp()) | |||||
| @property | @property | ||||
| def message(self): | def message(self): | ||||
| conversation_id = db.Column(StringUUID, nullable=False) | conversation_id = db.Column(StringUUID, nullable=False) | ||||
| created_by_role = db.Column(db.String(255), nullable=False, server_default=db.text("'end_user'::character varying")) | created_by_role = db.Column(db.String(255), nullable=False, server_default=db.text("'end_user'::character varying")) | ||||
| created_by = db.Column(StringUUID, nullable=False) | created_by = db.Column(StringUUID, nullable=False) | ||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)")) | |||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp()) |
| import json | import json | ||||
| from collections.abc import Mapping, Sequence | from collections.abc import Mapping, Sequence | ||||
| from datetime import UTC, datetime | |||||
| from datetime import datetime | |||||
| from enum import Enum, StrEnum | from enum import Enum, StrEnum | ||||
| from typing import Any, Optional, Union | from typing import Any, Optional, Union | ||||
| graph: Mapped[str] = mapped_column(sa.Text) | graph: Mapped[str] = mapped_column(sa.Text) | ||||
| _features: Mapped[str] = mapped_column("features", sa.TEXT) | _features: Mapped[str] = mapped_column("features", sa.TEXT) | ||||
| created_by: Mapped[str] = mapped_column(StringUUID, nullable=False) | created_by: Mapped[str] = mapped_column(StringUUID, nullable=False) | ||||
| created_at: Mapped[datetime] = mapped_column( | |||||
| db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)") | |||||
| ) | |||||
| created_at: Mapped[datetime] = mapped_column(db.DateTime, nullable=False, server_default=func.current_timestamp()) | |||||
| updated_by: Mapped[Optional[str]] = mapped_column(StringUUID) | updated_by: Mapped[Optional[str]] = mapped_column(StringUUID) | ||||
| updated_at: Mapped[datetime] = mapped_column( | updated_at: Mapped[datetime] = mapped_column( | ||||
| sa.DateTime, nullable=False, default=datetime.now(tz=UTC), server_onupdate=func.current_timestamp() | |||||
| db.DateTime, nullable=False, server_default=func.current_timestamp(), server_onupdate=func.current_timestamp() | |||||
| ) | ) | ||||
| _environment_variables: Mapped[str] = mapped_column( | _environment_variables: Mapped[str] = mapped_column( | ||||
| "environment_variables", db.Text, nullable=False, server_default="{}" | "environment_variables", db.Text, nullable=False, server_default="{}" | ||||
| total_steps = db.Column(db.Integer, server_default=db.text("0")) | total_steps = db.Column(db.Integer, server_default=db.text("0")) | ||||
| created_by_role = db.Column(db.String(255), nullable=False) # account, end_user | created_by_role = db.Column(db.String(255), nullable=False) # account, end_user | ||||
| created_by = db.Column(StringUUID, nullable=False) | created_by = db.Column(StringUUID, nullable=False) | ||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)")) | |||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp()) | |||||
| finished_at = db.Column(db.DateTime) | finished_at = db.Column(db.DateTime) | ||||
| exceptions_count = db.Column(db.Integer, server_default=db.text("0")) | exceptions_count = db.Column(db.Integer, server_default=db.text("0")) | ||||
| error = db.Column(db.Text) | error = db.Column(db.Text) | ||||
| elapsed_time = db.Column(db.Float, nullable=False, server_default=db.text("0")) | elapsed_time = db.Column(db.Float, nullable=False, server_default=db.text("0")) | ||||
| execution_metadata = db.Column(db.Text) | execution_metadata = db.Column(db.Text) | ||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)")) | |||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp()) | |||||
| created_by_role = db.Column(db.String(255), nullable=False) | created_by_role = db.Column(db.String(255), nullable=False) | ||||
| created_by = db.Column(StringUUID, nullable=False) | created_by = db.Column(StringUUID, nullable=False) | ||||
| finished_at = db.Column(db.DateTime) | finished_at = db.Column(db.DateTime) | ||||
| created_from = db.Column(db.String(255), nullable=False) | created_from = db.Column(db.String(255), nullable=False) | ||||
| created_by_role = db.Column(db.String(255), nullable=False) | created_by_role = db.Column(db.String(255), nullable=False) | ||||
| created_by = db.Column(StringUUID, nullable=False) | created_by = db.Column(StringUUID, nullable=False) | ||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)")) | |||||
| created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp()) | |||||
| @property | @property | ||||
| def workflow_run(self): | def workflow_run(self): | ||||
| conversation_id: Mapped[str] = db.Column(StringUUID, nullable=False, primary_key=True) | conversation_id: Mapped[str] = db.Column(StringUUID, nullable=False, primary_key=True) | ||||
| app_id: Mapped[str] = db.Column(StringUUID, nullable=False, index=True) | app_id: Mapped[str] = db.Column(StringUUID, nullable=False, index=True) | ||||
| data = db.Column(db.Text, nullable=False) | data = db.Column(db.Text, nullable=False) | ||||
| created_at = db.Column(db.DateTime, nullable=False, index=True, server_default=db.text("CURRENT_TIMESTAMP(0)")) | |||||
| created_at = db.Column(db.DateTime, nullable=False, index=True, server_default=func.current_timestamp()) | |||||
| updated_at = db.Column( | updated_at = db.Column( | ||||
| db.DateTime, nullable=False, server_default=func.current_timestamp(), onupdate=func.current_timestamp() | db.DateTime, nullable=False, server_default=func.current_timestamp(), onupdate=func.current_timestamp() | ||||
| ) | ) |