mismatch_records.py 2.6 KB

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