better 更好的llm使用统计

This commit is contained in:
SengokuCola
2025-03-21 17:44:18 +08:00
parent 341ab99770
commit a47266abd2
7 changed files with 54 additions and 32 deletions

View File

@@ -56,7 +56,6 @@ class BotConfig:
llm_reasoning: Dict[str, str] = field(default_factory=lambda: {})
llm_reasoning_minor: Dict[str, str] = field(default_factory=lambda: {})
llm_normal: Dict[str, str] = field(default_factory=lambda: {})
llm_normal_minor: Dict[str, str] = field(default_factory=lambda: {})
llm_topic_judge: Dict[str, str] = field(default_factory=lambda: {})
llm_summary_by_topic: Dict[str, str] = field(default_factory=lambda: {})
llm_emotion_judge: Dict[str, str] = field(default_factory=lambda: {})
@@ -235,7 +234,6 @@ class BotConfig:
"llm_reasoning",
"llm_reasoning_minor",
"llm_normal",
"llm_normal_minor",
"llm_topic_judge",
"llm_summary_by_topic",
"llm_emotion_judge",

View File

@@ -38,9 +38,9 @@ class EmojiManager:
def __init__(self):
self._scan_task = None
self.vlm = LLM_request(model=global_config.vlm, temperature=0.3, max_tokens=1000, request_type="image")
self.vlm = LLM_request(model=global_config.vlm, temperature=0.3, max_tokens=1000, request_type="emoji")
self.llm_emotion_judge = LLM_request(
model=global_config.llm_emotion_judge, max_tokens=600, temperature=0.8, request_type="image"
model=global_config.llm_emotion_judge, max_tokens=600, temperature=0.8, request_type="emoji"
) # 更高的温度更少的token后续可以根据情绪来调整温度
def _ensure_emoji_dir(self):
@@ -111,7 +111,7 @@ class EmojiManager:
if not text_for_search:
logger.error("无法获取文本的情绪")
return None
text_embedding = await get_embedding(text_for_search)
text_embedding = await get_embedding(text_for_search, request_type="emoji")
if not text_embedding:
logger.error("无法获取文本的embedding")
return None
@@ -310,7 +310,7 @@ class EmojiManager:
logger.info(f"[检查] 表情包检查通过: {check}")
if description is not None:
embedding = await get_embedding(description)
embedding = await get_embedding(description, request_type="emoji")
# 准备数据库记录
emoji_record = {
"filename": filename,

View File

@@ -32,10 +32,17 @@ class ResponseGenerator:
temperature=0.7,
max_tokens=1000,
stream=True,
request_type="response",
)
self.model_v3 = LLM_request(
model=global_config.llm_normal, temperature=0.7, max_tokens=3000, request_type="response"
)
self.model_r1_distill = LLM_request(
model=global_config.llm_reasoning_minor, temperature=0.7, max_tokens=3000, request_type="response"
)
self.model_sum = LLM_request(
model=global_config.llm_summary_by_topic, temperature=0.7, max_tokens=3000, request_type="relation"
)
self.model_v3 = LLM_request(model=global_config.llm_normal, temperature=0.7, max_tokens=3000)
self.model_r1_distill = LLM_request(model=global_config.llm_reasoning_minor, temperature=0.7, max_tokens=3000)
self.model_v25 = LLM_request(model=global_config.llm_normal_minor, temperature=0.7, max_tokens=3000)
self.current_model_type = "r1" # 默认使用 R1
self.current_model_name = "unknown model"
@@ -175,7 +182,7 @@ class ResponseGenerator:
"""
# 调用模型生成结果
result, _, _ = await self.model_v25.generate_response(prompt)
result, _, _ = await self.model_sum.generate_response(prompt)
result = result.strip()
# 解析模型输出的结果

View File

@@ -55,9 +55,9 @@ def is_mentioned_bot_in_message(message: MessageRecv) -> bool:
return False
async def get_embedding(text):
async def get_embedding(text, request_type="embedding"):
"""获取文本的embedding向量"""
llm = LLM_request(model=global_config.embedding, request_type="embedding")
llm = LLM_request(model=global_config.embedding, request_type=request_type)
# return llm.get_embedding_sync(text)
return await llm.get_embedding(text)

View File

@@ -174,9 +174,9 @@ class Memory_graph:
class Hippocampus:
def __init__(self, memory_graph: Memory_graph):
self.memory_graph = memory_graph
self.llm_topic_judge = LLM_request(model=global_config.llm_topic_judge, temperature=0.5, request_type="topic")
self.llm_topic_judge = LLM_request(model=global_config.llm_topic_judge, temperature=0.5, request_type="memory")
self.llm_summary_by_topic = LLM_request(
model=global_config.llm_summary_by_topic, temperature=0.5, request_type="topic"
model=global_config.llm_summary_by_topic, temperature=0.5, request_type="memory"
)
def get_all_node_names(self) -> list:
@@ -375,6 +375,8 @@ class Hippocampus:
return topic_num
async def operation_build_memory(self):
logger.debug("------------------------------------开始构建记忆--------------------------------------")
start_time = time.time()
memory_samples = self.get_memory_sample()
all_added_nodes = []
all_added_edges = []
@@ -426,6 +428,12 @@ class Hippocampus:
logger.success(f"强化连接: {', '.join(all_added_edges)}")
# logger.success(f"强化连接: {', '.join(all_added_edges)}")
self.sync_memory_to_db()
end_time = time.time()
logger.success(
f"--------------------------记忆构建完成:耗时: {end_time - start_time:.2f} "
"秒--------------------------"
)
def sync_memory_to_db(self):
"""检查并同步内存中的图结构与数据库"""

View File

@@ -581,7 +581,8 @@ class LLM_request:
completion_tokens=completion_tokens,
total_tokens=total_tokens,
user_id="system", # 可以根据需要修改 user_id
request_type="embedding", # 请求类型为 embedding
# request_type="embedding", # 请求类型为 embedding
request_type=self.request_type, # 请求类型为 text
endpoint="/embeddings", # API 端点
)
return result["data"][0].get("embedding", None)