ChatSession(原ChatStream)与ChatManager;由于功能简单,测试略
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
from datetime import datetime
|
||||
from typing import Optional
|
||||
|
||||
from src.common.database.database_model import ChatSession
|
||||
@@ -6,11 +7,22 @@ from . import BaseDatabaseDataModel
|
||||
|
||||
|
||||
class MaiChatSession(BaseDatabaseDataModel[ChatSession]):
|
||||
def __init__(self, session_id: str, platform: str, user_id: Optional[str] = None, group_id: Optional[str] = None):
|
||||
self.session_id = session_id
|
||||
self.platform = platform
|
||||
self.user_id = user_id
|
||||
self.group_id = group_id
|
||||
def __init__(
|
||||
self,
|
||||
session_id: str,
|
||||
platform: str,
|
||||
user_id: Optional[str] = None,
|
||||
group_id: Optional[str] = None,
|
||||
created_timestamp: Optional[datetime] = None,
|
||||
last_active_timestamp: Optional[datetime] = None,
|
||||
):
|
||||
self.session_id: str = session_id
|
||||
self.platform: str = platform
|
||||
self.user_id: Optional[str] = user_id
|
||||
self.group_id: Optional[str] = group_id
|
||||
self.created_timestamp: datetime = created_timestamp or datetime.now()
|
||||
"""会话创建时间,默认为当前时间"""
|
||||
self.last_active_timestamp: Optional[datetime] = last_active_timestamp
|
||||
|
||||
# 验证字段
|
||||
assert self.platform, "Platform must be provided"
|
||||
@@ -26,6 +38,8 @@ class MaiChatSession(BaseDatabaseDataModel[ChatSession]):
|
||||
platform=db_record.platform,
|
||||
user_id=db_record.user_id,
|
||||
group_id=db_record.group_id,
|
||||
created_timestamp=db_record.created_timestamp,
|
||||
last_active_timestamp=db_record.last_active_timestamp,
|
||||
)
|
||||
|
||||
def to_db_instance(self) -> ChatSession:
|
||||
@@ -34,4 +48,6 @@ class MaiChatSession(BaseDatabaseDataModel[ChatSession]):
|
||||
platform=self.platform,
|
||||
user_id=self.user_id,
|
||||
group_id=self.group_id,
|
||||
created_timestamp=self.created_timestamp,
|
||||
last_active_timestamp=self.last_active_timestamp,
|
||||
)
|
||||
|
||||
@@ -78,6 +78,9 @@ class MaiPersonInfo(BaseDatabaseDataModel[PersonInfo]):
|
||||
)
|
||||
|
||||
def to_db_instance(self) -> "PersonInfo":
|
||||
group_cardname = (
|
||||
json.dumps([gc.__dict__ for gc in self.group_cardname_list]) if self.group_cardname_list else None
|
||||
)
|
||||
return PersonInfo(
|
||||
is_known=self.is_known,
|
||||
person_id=self.person_id,
|
||||
@@ -86,7 +89,7 @@ class MaiPersonInfo(BaseDatabaseDataModel[PersonInfo]):
|
||||
platform=self.platform,
|
||||
user_id=self.user_id,
|
||||
user_nickname=self.user_nickname,
|
||||
group_cardname=json.dumps([gn.__dict__ for gn in self.group_cardname_list]) if self.group_cardname_list else None,
|
||||
group_cardname=group_cardname,
|
||||
memory_points=json.dumps(self.memory_points) if self.memory_points else None,
|
||||
know_counts=self.know_counts,
|
||||
first_known_time=self.first_known_time,
|
||||
|
||||
Reference in New Issue
Block a user