feat:修复一些bug

This commit is contained in:
SengokuCola
2026-03-29 18:28:56 +08:00
parent 82bbf0fd52
commit 96844a9bf5
8 changed files with 898 additions and 444 deletions

View File

@@ -2,7 +2,7 @@ from datetime import datetime
from enum import Enum
from typing import Optional
from sqlalchemy import Column, DateTime, Enum as SQLEnum, Float
from sqlalchemy import Column, DateTime, Enum as SQLEnum, Float, Text
from sqlmodel import Field, LargeBinary, SQLModel
@@ -17,8 +17,8 @@ class ImageType(str, Enum):
class ModifiedBy(str, Enum):
AI = "ai"
USER = "user"
AI = "AI"
USER = "USER"
class Messages(SQLModel, table=True):
@@ -223,18 +223,40 @@ class Jargon(SQLModel, table=True):
id: Optional[int] = Field(default=None, primary_key=True) # 自增主键
content: str = Field(index=True, max_length=255) # 黑话内容
raw_content: Optional[str] = Field(default=None, nullable=True) # 原始内容未处理的黑话内容为List[str]
raw_content: Optional[str] = Field(
default=None, sa_column=Column(Text, nullable=True)
) # 原始内容未处理的黑话内容为List[str]
meaning: str # 黑话含义
session_id_dict: str = Field(default=r"{}") # 会话ID列表格式为{"session_id": session_count, ...}
meaning: str = Field(sa_column=Column(Text, nullable=False)) # 黑话含义
session_id_dict: str = Field(
default=r"{}", sa_column=Column(Text, nullable=False)
) # 会话ID列表格式为{"session_id": session_count, ...}
count: int = Field(default=0) # 使用次数
is_jargon: Optional[bool] = Field(default=True) # 是否为黑话False表示为白话
is_complete: bool = Field(default=False) # 是否为已经完成全部推断count > 100后不再推断
is_global: bool = Field(default=False) # 是否为全局黑话独立于session_id_dict
last_inference_count: int = Field(default=0) # 上一次进行推断时的count值用于判断是否需要重新推断
inference_with_context: Optional[str] = Field(default=None, nullable=True) # 带上下文的推断结果JSON格式
inference_with_content_only: Optional[str] = Field(default=None, nullable=True) # 只基于词条的推断结果JSON格式
inference_with_context: Optional[str] = Field(
default=None, sa_column=Column(Text, nullable=True)
) # 带上下文的推断结果JSON格式
inference_with_content_only: Optional[str] = Field(
default=None, sa_column=Column(Text, nullable=True)
) # 只基于词条的推断结果JSON格式
class MaiKnowledge(SQLModel, table=True):
"""存储 Maisaka 的用户画像知识。"""
__tablename__ = "mai_knowledge" # type: ignore
id: Optional[int] = Field(default=None, primary_key=True)
knowledge_id: str = Field(index=True, max_length=255)
category_id: str = Field(index=True, max_length=32)
content: str
normalized_content: str = Field(index=True)
metadata_json: Optional[str] = Field(default=None, nullable=True)
created_at: datetime = Field(default_factory=datetime.now, sa_column=Column(DateTime, index=True))
class ChatHistory(SQLModel, table=True):