refactor: chat

This commit is contained in:
wxg0103 2025-07-01 11:14:28 +08:00
parent 2cf01dd12c
commit 5dc51836ef
4 changed files with 52 additions and 9 deletions

View File

@ -309,9 +309,8 @@ class BaseChatStep(IChatStep):
'reasoning_content')
asker = manage.context.get('form_data', {}).get('asker', None)
post_response_handler.handler(chat_id, chat_record_id, paragraph_list, problem_text,
content, manage, self, padding_problem_text, client_id,
reasoning_content=reasoning_content if reasoning_content_enable else '',
asker=asker)
chat_id, manage, self, padding_problem_text,
reasoning_content=reasoning_content if reasoning_content_enable else '')
add_access_num(client_id, client_type, manage.context.get('application_id'))
return manage.get_base_to_response().to_block_response(str(chat_id), str(chat_record_id),
content, True,
@ -327,8 +326,8 @@ class BaseChatStep(IChatStep):
write_context(self, manage, 0, 0, all_text)
asker = manage.context.get('form_data', {}).get('asker', None)
post_response_handler.handler(chat_id, chat_record_id, paragraph_list, problem_text,
all_text, manage, self, padding_problem_text, client_id, reasoning_content='',
asker=asker)
chat_id, manage, self, padding_problem_text,
reasoning_content='')
add_access_num(client_id, client_type, manage.context.get('application_id'))
return manage.get_base_to_response().to_block_response(str(chat_id), str(chat_record_id), all_text, True, 0,
0, _status=status.HTTP_500_INTERNAL_SERVER_ERROR)

View File

@ -0,0 +1,40 @@
# Generated by Django 5.2.3 on 2025-07-01 02:46
import application.models.application_chat
import common.encoder.encoder
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('application', '0002_alter_application_user_alter_chat_id'),
]
operations = [
migrations.AddField(
model_name='chat',
name='asker',
field=models.JSONField(default=application.models.application_chat.default_asker, encoder=common.encoder.encoder.SystemEncoder, verbose_name='访问者'),
),
migrations.AddField(
model_name='chat',
name='meta',
field=models.JSONField(default=dict, verbose_name='元数据'),
),
migrations.AlterField(
model_name='applicationchatuserstats',
name='chat_user_type',
field=models.CharField(choices=[('ANONYMOUS_USER', '匿名用户'), ('CHAT_USER', '对话用户'), ('SYSTEM_API_KEY', '系统API_KEY'), ('APPLICATION_API_KEY', '应用API_KEY'), ('PLATFORM_USER', '平台用户')], default='ANONYMOUS_USER', max_length=64, verbose_name='对话用户类型'),
),
migrations.AlterField(
model_name='chat',
name='chat_user_id',
field=models.CharField(default=None, null=True, verbose_name='对话用户id'),
),
migrations.AlterField(
model_name='chat',
name='chat_user_type',
field=models.CharField(choices=[('ANONYMOUS_USER', '匿名用户'), ('CHAT_USER', '对话用户'), ('SYSTEM_API_KEY', '系统API_KEY'), ('APPLICATION_API_KEY', '应用API_KEY'), ('PLATFORM_USER', '平台用户')], default='ANONYMOUS_USER', max_length=64, verbose_name='客户端类型'),
),
]

View File

@ -22,16 +22,23 @@ class ChatUserType(models.TextChoices):
CHAT_USER = "CHAT_USER", "对话用户"
SYSTEM_API_KEY = "SYSTEM_API_KEY", "系统API_KEY"
APPLICATION_API_KEY = "APPLICATION_API_KEY", "应用API_KEY"
PLATFORM_USER = "PLATFORM_USER", "平台用户"
def default_asker():
return {'user_name': '游客'}
class Chat(AppModelMixin):
id = models.UUIDField(primary_key=True, max_length=128, default=uuid.uuid7, editable=False, verbose_name="主键id")
application = models.ForeignKey(Application, on_delete=models.CASCADE)
abstract = models.CharField(max_length=1024, verbose_name="摘要")
chat_user_id = models.UUIDField(verbose_name="客户端id", default=None, null=True)
chat_user_id = models.CharField(verbose_name="对话用户id", default=None, null=True)
chat_user_type = models.CharField(max_length=64, verbose_name="客户端类型", choices=ChatUserType.choices,
default=ChatUserType.ANONYMOUS_USER)
is_deleted = models.BooleanField(verbose_name="逻辑删除", default=False)
asker = models.JSONField(verbose_name="访问者", default=default_asker, encoder=SystemEncoder)
meta = models.JSONField(verbose_name="元数据", default=dict)
class Meta:
db_table = "application_chat"

View File

@ -270,9 +270,6 @@ class UserManageSerializer(serializers.Serializer):
user['role_setting'] = user_role_setting_mapping.get(user_id, [])
return result
@valid_license(model=User, count=2,
message=_(
'The community version supports up to 2 users. If you need more users, please contact us (https://fit2cloud.com/).'))
@transaction.atomic
def save(self, instance, with_valid=True):
if with_valid: