#!/usr/bin/env python3 # -*- coding: utf-8 -*- from datetime import datetime import sqlalchemy as sa from pymysql.protocol import NULL_COLUMN from sqlalchemy import TIMESTAMP, text from common.model import Base, id_key_str from sqlalchemy.dialects import mysql from sqlalchemy.orm import Mapped, mapped_column class MismatchRecords(Base): """call record""" __tablename__ = 'mismatch_records' id: Mapped[id_key_str] = mapped_column() created_at: Mapped[datetime | None] = mapped_column(TIMESTAMP, nullable=False, server_default=text('CURRENT_TIMESTAMP'), comment='Create Time | 创建日期') updated_at: Mapped[datetime | None] = mapped_column(TIMESTAMP, nullable=False, server_default=text('CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP'), comment='Update Time | 修改日期') external_id: Mapped[str] = mapped_column(sa.String(255), default='', sort_order=2, comment='外部id') industry_type: Mapped[int] = mapped_column(sa.Integer(), default=0, sort_order=3, comment='评分规则代码 0 通用 1 教育') chat_history: Mapped[str] = mapped_column(sa.TEXT(), default='', sort_order=4, comment='通话记录') missed: Mapped[str] = mapped_column(sa.TEXT(), default='', sort_order=5, comment='未匹配内容') ignore: Mapped[int] = mapped_column(mysql.TINYINT(), default=0, sort_order=6, comment='0 自动过滤(默认) 1 手动标记忽略 2 不忽略强制分析') llm_ignore: Mapped[int] = mapped_column(mysql.TINYINT(), default=0, sort_order=7, comment='0 未过滤 1被忽略 2未被忽略') org_id: Mapped[int] = mapped_column(sa.BIGINT(), default=0, sort_order=8, comment='机构 ID') status: Mapped[int] = mapped_column(mysql.TINYINT(), default=0, sort_order=9, comment='状态 0 入库 1 已判断 2 已回调') ignore_response_data: Mapped[dict | None] = mapped_column(sa.JSON(), default=None, sort_order=10, comment='') request_data: Mapped[dict | None] = mapped_column(sa.JSON(), default=None, sort_order=11, comment='') response_data: Mapped[dict | None] = mapped_column(sa.JSON(), default=None, sort_order=12, comment='') user_intent: Mapped[str] = mapped_column(sa.TEXT(), default=None, sort_order=13, comment='针对未匹配内容,推理用户的真实目的') similar_reply: Mapped[list[str] | None] = mapped_column(sa.JSON(), default=None, sort_order=14, comment='针对未匹配内容,生成类似的回复') keywords: Mapped[list[str] | None] = mapped_column(sa.JSON(), default=None, sort_order=15, comment='生成辅助关键词') regular: Mapped[list[str] | None] = mapped_column(sa.JSON(), default=None, sort_order=16, comment='生成辅助正则表达式')