/
man4j
/
agent-server
Обзор
Документация
Войти
/
man4j
/
agent-server
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/agent_server/thread_store.py
57 строк
2 KB
Vladimir
fixes
10 июл 2026, 21:08
10 июл 2026, 21:08
6e6ce5e
Код
Авторство
О чём код?
import chainlit as cl import chainlit.data as cl_data from agent_server.chat.session import ( get_agent_id, get_llm_profile_id, get_messages, get_system_prompt, get_thread_metadata_session, set_thread_metadata_session, set_thread_metadata_synced, ) from agent_server.chat.prompt_cache import cache_system_prompt_for_thread from agent_server.chat.summary import extract_chat_summary from agent_server.chat.threads import serialize_messages_for_thread async def persist_current_thread_metadata() -> None: data_layer = getattr(cl_data, "_data_layer", None) session = getattr(cl, "context", None) session_obj = getattr(session, "session", None) thread_id = getattr(session_obj, "thread_id", None) system_prompt = get_system_prompt() llm_profile_id = get_llm_profile_id() agent_id = get_agent_id() messages = get_messages() metadata = dict(get_thread_metadata_session()) if not data_layer or not thread_id or not system_prompt: return metadata["system_prompt"] = system_prompt if isinstance(llm_profile_id, str) and llm_profile_id: metadata["llm_profile_id"] = llm_profile_id metadata["chat_profile"] = llm_profile_id if isinstance(agent_id, str) and agent_id: metadata["agent_id"] = agent_id chat_summary = extract_chat_summary(messages) if chat_summary: metadata["chat_summary"] = chat_summary else: metadata.pop("chat_summary", None) metadata["messages_v2"] = serialize_messages_for_thread(messages) await data_layer.update_thread( thread_id=thread_id, metadata=metadata, ) set_thread_metadata_session(metadata) set_thread_metadata_synced(True) cache_system_prompt_for_thread(str(thread_id), system_prompt)