2024-09-09 06:47:25 +00:00
|
|
|
|
# coding=utf-8
|
|
|
|
|
|
"""
|
|
|
|
|
|
@project: MaxKB
|
|
|
|
|
|
@Author:虎
|
|
|
|
|
|
@file: system_to_response.py
|
|
|
|
|
|
@date:2024/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):
|
2024-11-29 11:26:16 +00:00
|
|
|
|
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):
|
2024-11-29 11:26:16 +00:00
|
|
|
|
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,
|
2024-12-04 06:19:37 +00:00
|
|
|
|
'content': content, 'is_end': is_end, **other_params,
|
|
|
|
|
|
'completion_tokens': completion_tokens, 'prompt_tokens': prompt_tokens},
|
|
|
|
|
|
response_status=_status,
|
2024-11-29 11:26:16 +00:00
|
|
|
|
code=_status)
|
2024-09-09 06:47:25 +00:00
|
|
|
|
|
2024-12-04 06:19:37 +00:00
|
|
|
|
def to_stream_chunk_response(self, chat_id, chat_record_id, node_id, up_node_id_list, content, is_end,
|
|
|
|
|
|
completion_tokens,
|
2024-11-29 11:26:16 +00:00
|
|
|
|
prompt_tokens, other_params: dict = None):
|
|
|
|
|
|
if other_params is None:
|
|
|
|
|
|
other_params = {}
|
2024-12-03 07:23:53 +00:00
|
|
|
|
chunk = json.dumps({'chat_id': str(chat_id), 'chat_record_id': str(chat_record_id), 'operate': True,
|
2024-12-04 06:19:37 +00:00
|
|
|
|
'content': content, 'node_id': node_id, 'up_node_id_list': up_node_id_list,
|
|
|
|
|
|
'is_end': is_end,
|
2024-11-29 11:26:16 +00:00
|
|
|
|
'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)
|