82 lines
1.4 KiB
Python
82 lines
1.4 KiB
Python
"""指标数据"""
|
|
|
|
from dataclasses import dataclass, field
|
|
from typing import List
|
|
|
|
|
|
@dataclass
|
|
class Platform:
|
|
name: str
|
|
count: int
|
|
timestamp: int
|
|
|
|
|
|
@dataclass
|
|
class Provider:
|
|
name: str
|
|
count: int
|
|
timestamp: int
|
|
|
|
|
|
@dataclass
|
|
class Plugin:
|
|
name: str
|
|
count: int
|
|
timestamp: int
|
|
|
|
|
|
@dataclass
|
|
class Command:
|
|
name: str
|
|
count: int
|
|
timestamp: int
|
|
|
|
|
|
@dataclass
|
|
class Stats:
|
|
platform: List[Platform] = field(default_factory=list)
|
|
command: List[Command] = field(default_factory=list)
|
|
llm: List[Provider] = field(default_factory=list)
|
|
|
|
|
|
@dataclass
|
|
class LLMHistory:
|
|
"""LLM 聊天时持久化的信息"""
|
|
|
|
provider_type: str
|
|
session_id: str
|
|
content: str
|
|
|
|
|
|
@dataclass
|
|
class ATRIVision:
|
|
"""Deprecated"""
|
|
|
|
id: str
|
|
url_or_path: str
|
|
caption: str
|
|
is_meme: bool
|
|
keywords: List[str]
|
|
platform_name: str
|
|
session_id: str
|
|
sender_nickname: str
|
|
timestamp: int = -1
|
|
|
|
|
|
@dataclass
|
|
class Conversation:
|
|
"""LLM 对话存储
|
|
|
|
对于网页聊天,history 存储了包括指令、回复、图片等在内的所有消息。
|
|
对于其他平台的聊天,不存储非 LLM 的回复(因为考虑到已经存储在各自的平台上)。
|
|
"""
|
|
|
|
user_id: str
|
|
cid: str
|
|
history: str = ""
|
|
"""字符串格式的列表。"""
|
|
created_at: int = 0
|
|
updated_at: int = 0
|
|
title: str = ""
|
|
persona_id: str = ""
|