perf: Memory optimization (#4362)
parent
f3350980c7
commit
23147e5498
|
|
@ -94,6 +94,7 @@ class WorkFlowPostHandler:
|
||||||
application_public_access_client.access_num = application_public_access_client.access_num + 1
|
application_public_access_client.access_num = application_public_access_client.access_num + 1
|
||||||
application_public_access_client.intraday_access_num = application_public_access_client.intraday_access_num + 1
|
application_public_access_client.intraday_access_num = application_public_access_client.intraday_access_num + 1
|
||||||
application_public_access_client.save()
|
application_public_access_client.save()
|
||||||
|
self.chat_info = None
|
||||||
|
|
||||||
|
|
||||||
class NodeResult:
|
class NodeResult:
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@
|
||||||
@date:2025/6/9 13:42
|
@date:2025/6/9 13:42
|
||||||
@desc:
|
@desc:
|
||||||
"""
|
"""
|
||||||
|
import json
|
||||||
from typing import List
|
from typing import List
|
||||||
|
|
||||||
from django.core.cache import cache
|
from django.core.cache import cache
|
||||||
|
|
@ -19,6 +20,7 @@ from application.models import Application, ChatRecord, Chat, ApplicationVersion
|
||||||
from application.serializers.application_chat import ChatCountSerializer
|
from application.serializers.application_chat import ChatCountSerializer
|
||||||
from common.constants.cache_version import Cache_Version
|
from common.constants.cache_version import Cache_Version
|
||||||
from common.database_model_manage.database_model_manage import DatabaseModelManage
|
from common.database_model_manage.database_model_manage import DatabaseModelManage
|
||||||
|
from common.encoder.encoder import SystemEncoder
|
||||||
from common.exception.app_exception import ChatException
|
from common.exception.app_exception import ChatException
|
||||||
from knowledge.models import Document
|
from knowledge.models import Document
|
||||||
from models_provider.models import Model
|
from models_provider.models import Model
|
||||||
|
|
@ -234,7 +236,7 @@ class ChatInfo:
|
||||||
'knowledge_id_list': self.knowledge_id_list,
|
'knowledge_id_list': self.knowledge_id_list,
|
||||||
'exclude_document_id_list': self.exclude_document_id_list,
|
'exclude_document_id_list': self.exclude_document_id_list,
|
||||||
'application_id': self.application_id,
|
'application_id': self.application_id,
|
||||||
'chat_record_list': [self.chat_record_to_map(c) for c in self.chat_record_list],
|
'chat_record_list': [self.chat_record_to_map(c) for c in self.chat_record_list][-20:],
|
||||||
'debug': self.debug
|
'debug': self.debug
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -255,19 +257,19 @@ class ChatInfo:
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def map_to_chat_record(chat_record_dict):
|
def map_to_chat_record(chat_record_dict):
|
||||||
ChatRecord(id=chat_record_dict.get('id'),
|
return ChatRecord(id=chat_record_dict.get('id'),
|
||||||
chat_id=chat_record_dict.get('chat_id'),
|
chat_id=chat_record_dict.get('chat_id'),
|
||||||
vote_status=chat_record_dict.get('vote_status'),
|
vote_status=chat_record_dict.get('vote_status'),
|
||||||
problem_text=chat_record_dict.get('problem_text'),
|
problem_text=chat_record_dict.get('problem_text'),
|
||||||
answer_text=chat_record_dict.get('answer_text'),
|
answer_text=chat_record_dict.get('answer_text'),
|
||||||
answer_text_list=chat_record_dict.get('answer_text_list'),
|
answer_text_list=chat_record_dict.get('answer_text_list'),
|
||||||
message_tokens=chat_record_dict.get('message_tokens'),
|
message_tokens=chat_record_dict.get('message_tokens'),
|
||||||
answer_tokens=chat_record_dict.get('answer_tokens'),
|
answer_tokens=chat_record_dict.get('answer_tokens'),
|
||||||
const=chat_record_dict.get('const'),
|
const=chat_record_dict.get('const'),
|
||||||
details=chat_record_dict.get('details'),
|
details=chat_record_dict.get('details'),
|
||||||
improve_paragraph_id_list=chat_record_dict.get('improve_paragraph_id_list'),
|
improve_paragraph_id_list=chat_record_dict.get('improve_paragraph_id_list'),
|
||||||
run_time=chat_record_dict.get('run_time'),
|
run_time=chat_record_dict.get('run_time'),
|
||||||
index=chat_record_dict.get('index'), )
|
index=chat_record_dict.get('index'), )
|
||||||
|
|
||||||
def set_cache(self):
|
def set_cache(self):
|
||||||
cache.set(Cache_Version.CHAT.get_key(key=self.chat_id), self.to_dict(),
|
cache.set(Cache_Version.CHAT.get_key(key=self.chat_id), self.to_dict(),
|
||||||
|
|
@ -276,15 +278,18 @@ class ChatInfo:
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def map_to_chat_info(chat_info_dict):
|
def map_to_chat_info(chat_info_dict):
|
||||||
return ChatInfo(chat_info_dict.get('chat_id'), chat_info_dict.get('chat_user_id'),
|
c = ChatInfo(chat_info_dict.get('chat_id'), chat_info_dict.get('chat_user_id'),
|
||||||
chat_info_dict.get('chat_user_type'), chat_info_dict.get('knowledge_id_list'),
|
chat_info_dict.get('chat_user_type'), chat_info_dict.get('knowledge_id_list'),
|
||||||
chat_info_dict.get('exclude_document_id_list'),
|
chat_info_dict.get('exclude_document_id_list'),
|
||||||
chat_info_dict.get('application_id'),
|
chat_info_dict.get('application_id'),
|
||||||
[ChatInfo.map_to_chat_record(c_r) for c_r in chat_info_dict.get('chat_record_list')])
|
debug=chat_info_dict.get('debug'))
|
||||||
|
c.chat_record_list = [ChatInfo.map_to_chat_record(c_r) for c_r in chat_info_dict.get('chat_record_list')]
|
||||||
|
return c
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def get_cache(chat_id):
|
def get_cache(chat_id):
|
||||||
chat_info_dict = cache.get(Cache_Version.CHAT.get_key(key=chat_id), version=Cache_Version.CHAT_INFO.get_version())
|
chat_info_dict = cache.get(Cache_Version.CHAT.get_key(key=chat_id),
|
||||||
|
version=Cache_Version.CHAT_INFO.get_version())
|
||||||
if chat_info_dict:
|
if chat_info_dict:
|
||||||
return ChatInfo.map_to_chat_info(chat_info_dict)
|
return ChatInfo.map_to_chat_info(chat_info_dict)
|
||||||
return None
|
return None
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue