UnisKB/apps/common/handle/impl/response/system_to_response.py

42 lines
1.8 KiB
Python
Raw Normal View History

2024-09-09 06:47:25 +00:00
# coding=utf-8
"""
@project: MaxKB
@Author
@file system_to_response.py
@date2024/9/6 18:03
@desc:
"""
import json
from rest_framework import status
from common.handle.base_to_response import BaseToResponse
from common.response import result
class SystemToResponse(BaseToResponse):
def to_block_response(self, chat_id, chat_record_id, content, is_end, completion_tokens,
prompt_tokens, other_params: dict = None,
2024-09-09 06:47:25 +00:00
_status=status.HTTP_200_OK):
if other_params is None:
other_params = {}
2024-09-09 06:47:25 +00:00
return result.success({'chat_id': str(chat_id), 'id': str(chat_record_id), 'operate': True,
'content': content, 'is_end': is_end, **other_params,
'completion_tokens': completion_tokens, 'prompt_tokens': prompt_tokens},
response_status=_status,
code=_status)
2024-09-09 06:47:25 +00:00
def to_stream_chunk_response(self, chat_id, chat_record_id, node_id, up_node_id_list, content, is_end,
completion_tokens,
prompt_tokens, other_params: dict = None):
if other_params is None:
other_params = {}
chunk = json.dumps({'chat_id': str(chat_id), 'chat_record_id': str(chat_record_id), 'operate': True,
'content': content, 'node_id': node_id, 'up_node_id_list': up_node_id_list,
'is_end': is_end,
'usage': {'completion_tokens': completion_tokens,
'prompt_tokens': prompt_tokens,
'total_tokens': completion_tokens + prompt_tokens},
**other_params})
2024-09-09 06:47:25 +00:00
return super().format_stream_chunk(chunk)