mirror of
https://github.com/1Panel-dev/MaxKB.git
synced 2025-12-26 10:12:51 +00:00
feat: update migration files and add new models for application settings and chat functionality
This commit is contained in:
parent
47a3489a0a
commit
b496a2b2c5
|
|
@ -1,7 +1,8 @@
|
|||
# Generated by Django 5.2 on 2025-05-27 07:50
|
||||
# Generated by Django 5.2.3 on 2025-06-23 02:14
|
||||
from django.db.models import QuerySet
|
||||
|
||||
import application.models.application
|
||||
import common.encoder.encoder
|
||||
import django.contrib.postgres.fields
|
||||
import django.db.models.deletion
|
||||
import mptt.fields
|
||||
|
|
@ -17,12 +18,13 @@ def insert_default_data(apps, schema_editor):
|
|||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
initial = True
|
||||
|
||||
dependencies = [
|
||||
('knowledge', '0001_initial'),
|
||||
('models_provider', '0001_initial'),
|
||||
('users', '0002_alter_user_nick_name'),
|
||||
('users', '0001_initial'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
|
|
@ -31,31 +33,22 @@ class Migration(migrations.Migration):
|
|||
fields=[
|
||||
('create_time', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
|
||||
('update_time', models.DateTimeField(auto_now=True, verbose_name='修改时间')),
|
||||
('id',
|
||||
models.UUIDField(default=uuid_utils.compat.uuid7, editable=False, primary_key=True, serialize=False,
|
||||
verbose_name='主键id')),
|
||||
('workspace_id',
|
||||
models.CharField(db_index=True, default='default', max_length=64, verbose_name='工作空间id')),
|
||||
('id', models.UUIDField(default=uuid_utils.compat.uuid7, editable=False, primary_key=True, serialize=False, verbose_name='主键id')),
|
||||
('workspace_id', models.CharField(db_index=True, default='default', max_length=64, verbose_name='工作空间id')),
|
||||
('is_publish', models.BooleanField(default=False, verbose_name='是否发布')),
|
||||
('name', models.CharField(max_length=128, verbose_name='应用名称')),
|
||||
('desc', models.CharField(default='', max_length=512, verbose_name='引用描述')),
|
||||
('prologue', models.CharField(default='', max_length=40960, verbose_name='开场白')),
|
||||
('dialogue_number', models.IntegerField(default=0, verbose_name='会话数量')),
|
||||
('knowledge_setting', models.JSONField(default=application.models.application.get_dataset_setting_dict,
|
||||
verbose_name='数据集参数设置')),
|
||||
('model_setting', models.JSONField(default=application.models.application.get_model_setting_dict,
|
||||
verbose_name='模型参数相关设置')),
|
||||
('knowledge_setting', models.JSONField(default=application.models.application.get_dataset_setting_dict, verbose_name='数据集参数设置')),
|
||||
('model_setting', models.JSONField(default=application.models.application.get_model_setting_dict, verbose_name='模型参数相关设置')),
|
||||
('model_params_setting', models.JSONField(default=dict, verbose_name='模型参数相关设置')),
|
||||
('tts_model_params_setting', models.JSONField(default=dict, verbose_name='模型参数相关设置')),
|
||||
('problem_optimization', models.BooleanField(default=False, verbose_name='问题优化')),
|
||||
('icon', models.CharField(default='/ui/favicon.ico', max_length=256, verbose_name='应用icon')),
|
||||
('work_flow', models.JSONField(default=dict, verbose_name='工作流数据')),
|
||||
('type', models.CharField(choices=[('SIMPLE', '简易'), ('WORK_FLOW', '工作流')], default='SIMPLE',
|
||||
max_length=256, verbose_name='应用类型')),
|
||||
('problem_optimization_prompt', models.CharField(blank=True,
|
||||
default='()里面是用户问题,根据上下文回答揣测用户问题({question}) 要求: 输出一个补全问题,并且放在<data></data>标签中',
|
||||
max_length=102400, null=True,
|
||||
verbose_name='问题优化提示词')),
|
||||
('type', models.CharField(choices=[('SIMPLE', '简易'), ('WORK_FLOW', '工作流')], default='SIMPLE', max_length=256, verbose_name='应用类型')),
|
||||
('problem_optimization_prompt', models.CharField(blank=True, default='()里面是用户问题,根据上下文回答揣测用户问题({question}) 要求: 输出一个补全问题,并且放在<data></data>标签中', max_length=102400, null=True, verbose_name='问题优化提示词')),
|
||||
('tts_model_enable', models.BooleanField(default=False, verbose_name='语音合成模型是否启用')),
|
||||
('stt_model_enable', models.BooleanField(default=False, verbose_name='语音识别模型是否启用')),
|
||||
('tts_type', models.CharField(default='BROWSER', max_length=20, verbose_name='语音播放类型')),
|
||||
|
|
@ -64,14 +57,9 @@ class Migration(migrations.Migration):
|
|||
('clean_time', models.IntegerField(default=180, verbose_name='清理时间')),
|
||||
('file_upload_enable', models.BooleanField(default=False, verbose_name='文件上传是否启用')),
|
||||
('file_upload_setting', models.JSONField(default=dict, verbose_name='文件上传相关设置')),
|
||||
('model', models.ForeignKey(blank=True, db_constraint=False, null=True,
|
||||
on_delete=django.db.models.deletion.SET_NULL, to='models_provider.model')),
|
||||
('stt_model', models.ForeignKey(blank=True, db_constraint=False, null=True,
|
||||
on_delete=django.db.models.deletion.SET_NULL,
|
||||
related_name='stt_model_id', to='models_provider.model')),
|
||||
('tts_model', models.ForeignKey(blank=True, db_constraint=False, null=True,
|
||||
on_delete=django.db.models.deletion.SET_NULL,
|
||||
related_name='tts_model_id', to='models_provider.model')),
|
||||
('model', models.ForeignKey(blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.SET_NULL, to='models_provider.model')),
|
||||
('stt_model', models.ForeignKey(blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='stt_model_id', to='models_provider.model')),
|
||||
('tts_model', models.ForeignKey(blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='tts_model_id', to='models_provider.model')),
|
||||
('user', models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, to='users.user')),
|
||||
],
|
||||
options={
|
||||
|
|
@ -83,17 +71,14 @@ class Migration(migrations.Migration):
|
|||
fields=[
|
||||
('create_time', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
|
||||
('update_time', models.DateTimeField(auto_now=True, verbose_name='修改时间')),
|
||||
('application',
|
||||
models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, primary_key=True, serialize=False,
|
||||
to='application.application', verbose_name='应用id')),
|
||||
('application', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, primary_key=True, serialize=False, to='application.application', verbose_name='应用id')),
|
||||
('access_token', models.CharField(max_length=128, unique=True, verbose_name='用户公开访问 认证token')),
|
||||
('is_active', models.BooleanField(default=True, verbose_name='是否开启公开访问')),
|
||||
('access_num', models.IntegerField(default=100, verbose_name='访问次数')),
|
||||
('white_active', models.BooleanField(default=False, verbose_name='是否开启白名单')),
|
||||
('white_list',
|
||||
django.contrib.postgres.fields.ArrayField(base_field=models.CharField(blank=True, max_length=128),
|
||||
default=list, size=None, verbose_name='白名单列表')),
|
||||
('white_list', django.contrib.postgres.fields.ArrayField(base_field=models.CharField(blank=True, max_length=128), default=list, size=None, verbose_name='白名单列表')),
|
||||
('show_source', models.BooleanField(default=False, verbose_name='是否显示知识来源')),
|
||||
('show_exec', models.BooleanField(default=False, verbose_name='是否显示执行详情')),
|
||||
('language', models.CharField(default=None, max_length=10, null=True, verbose_name='语言')),
|
||||
],
|
||||
options={
|
||||
|
|
@ -105,21 +90,14 @@ class Migration(migrations.Migration):
|
|||
fields=[
|
||||
('create_time', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
|
||||
('update_time', models.DateTimeField(auto_now=True, verbose_name='修改时间')),
|
||||
('id', models.UUIDField(default=uuid.uuid1, editable=False, primary_key=True, serialize=False,
|
||||
verbose_name='主键id')),
|
||||
('id', models.UUIDField(default=uuid.uuid1, editable=False, primary_key=True, serialize=False, verbose_name='主键id')),
|
||||
('secret_key', models.CharField(max_length=1024, unique=True, verbose_name='秘钥')),
|
||||
('workspace_id',
|
||||
models.CharField(db_index=True, default='default', max_length=64, verbose_name='工作空间id')),
|
||||
('workspace_id', models.CharField(db_index=True, default='default', max_length=64, verbose_name='工作空间id')),
|
||||
('is_active', models.BooleanField(default=True, verbose_name='是否开启')),
|
||||
('allow_cross_domain', models.BooleanField(default=False, verbose_name='是否允许跨域')),
|
||||
('cross_domain_list',
|
||||
django.contrib.postgres.fields.ArrayField(base_field=models.CharField(blank=True, max_length=128),
|
||||
default=list, size=None, verbose_name='跨域列表')),
|
||||
('application',
|
||||
models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='application.application',
|
||||
verbose_name='应用id')),
|
||||
('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='users.user',
|
||||
verbose_name='用户id')),
|
||||
('cross_domain_list', django.contrib.postgres.fields.ArrayField(base_field=models.CharField(blank=True, max_length=128), default=list, size=None, verbose_name='跨域列表')),
|
||||
('application', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='application.application', verbose_name='应用id')),
|
||||
('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='users.user', verbose_name='用户id')),
|
||||
],
|
||||
options={
|
||||
'db_table': 'application_api_key',
|
||||
|
|
@ -130,21 +108,16 @@ class Migration(migrations.Migration):
|
|||
fields=[
|
||||
('create_time', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
|
||||
('update_time', models.DateTimeField(auto_now=True, verbose_name='修改时间')),
|
||||
('id', models.CharField(editable=False, max_length=64, primary_key=True, serialize=False,
|
||||
verbose_name='主键id')),
|
||||
('id', models.CharField(editable=False, max_length=64, primary_key=True, serialize=False, verbose_name='主键id')),
|
||||
('name', models.CharField(max_length=64, verbose_name='文件夹名称')),
|
||||
('desc', models.CharField(blank=True, max_length=200, null=True, verbose_name='描述')),
|
||||
('workspace_id',
|
||||
models.CharField(db_index=True, default='default', max_length=64, verbose_name='工作空间id')),
|
||||
('workspace_id', models.CharField(db_index=True, default='default', max_length=64, verbose_name='工作空间id')),
|
||||
('lft', models.PositiveIntegerField(editable=False)),
|
||||
('rght', models.PositiveIntegerField(editable=False)),
|
||||
('tree_id', models.PositiveIntegerField(db_index=True, editable=False)),
|
||||
('level', models.PositiveIntegerField(editable=False)),
|
||||
('parent',
|
||||
mptt.fields.TreeForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.DO_NOTHING,
|
||||
related_name='children', to='application.applicationfolder')),
|
||||
('user', models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, to='users.user',
|
||||
verbose_name='用户id')),
|
||||
('parent', mptt.fields.TreeForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name='children', to='application.applicationfolder')),
|
||||
('user', models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, to='users.user', verbose_name='用户id')),
|
||||
],
|
||||
options={
|
||||
'db_table': 'application_folder',
|
||||
|
|
@ -153,25 +126,93 @@ class Migration(migrations.Migration):
|
|||
migrations.AddField(
|
||||
model_name='application',
|
||||
name='folder',
|
||||
field=models.ForeignKey(default='default', on_delete=django.db.models.deletion.DO_NOTHING,
|
||||
to='application.applicationfolder', verbose_name='文件夹id'),
|
||||
field=models.ForeignKey(default='default', on_delete=django.db.models.deletion.DO_NOTHING, to='application.applicationfolder', verbose_name='文件夹id'),
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='ApplicationKnowledgeMapping',
|
||||
fields=[
|
||||
('create_time', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
|
||||
('update_time', models.DateTimeField(auto_now=True, verbose_name='修改时间')),
|
||||
('id',
|
||||
models.UUIDField(default=uuid_utils.compat.uuid7, editable=False, primary_key=True, serialize=False,
|
||||
verbose_name='主键id')),
|
||||
('application',
|
||||
models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, to='application.application')),
|
||||
('knowledge',
|
||||
models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, to='knowledge.knowledge')),
|
||||
('id', models.UUIDField(default=uuid_utils.compat.uuid7, editable=False, primary_key=True, serialize=False, verbose_name='主键id')),
|
||||
('application', models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, to='application.application')),
|
||||
('knowledge', models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, to='knowledge.knowledge')),
|
||||
],
|
||||
options={
|
||||
'db_table': 'application_knowledge_mapping',
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='Chat',
|
||||
fields=[
|
||||
('create_time', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
|
||||
('update_time', models.DateTimeField(auto_now=True, verbose_name='修改时间')),
|
||||
('id', models.UUIDField(default=uuid.UUID('01979a90-ea1d-7033-94d5-38f2e12c6627'), editable=False, primary_key=True, serialize=False, verbose_name='主键id')),
|
||||
('abstract', models.CharField(max_length=1024, verbose_name='摘要')),
|
||||
('chat_user_id', models.UUIDField(default=None, null=True, verbose_name='客户端id')),
|
||||
('chat_user_type', models.CharField(choices=[('ANONYMOUS_USER', '匿名用户'), ('CHAT_USER', '对话用户'), ('SYSTEM_API_KEY', '系统API_KEY'), ('APPLICATION_API_KEY', '应用API_KEY')], default='ANONYMOUS_USER', max_length=64, verbose_name='客户端类型')),
|
||||
('is_deleted', models.BooleanField(default=False, verbose_name='逻辑删除')),
|
||||
('application', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='application.application')),
|
||||
],
|
||||
options={
|
||||
'db_table': 'application_chat',
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='ChatRecord',
|
||||
fields=[
|
||||
('create_time', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
|
||||
('update_time', models.DateTimeField(auto_now=True, verbose_name='修改时间')),
|
||||
('id', models.UUIDField(default=uuid_utils.compat.uuid1, editable=False, primary_key=True, serialize=False, verbose_name='主键id')),
|
||||
('vote_status', models.CharField(choices=[('-1', '未投票'), ('0', '赞同'), ('1', '反对')], default='-1', max_length=10, verbose_name='投票')),
|
||||
('problem_text', models.CharField(max_length=10240, verbose_name='问题')),
|
||||
('answer_text', models.CharField(max_length=40960, verbose_name='答案')),
|
||||
('answer_text_list', django.contrib.postgres.fields.ArrayField(base_field=models.JSONField(), default=list, size=None, verbose_name='改进标注列表')),
|
||||
('message_tokens', models.IntegerField(default=0, verbose_name='请求token数量')),
|
||||
('answer_tokens', models.IntegerField(default=0, verbose_name='响应token数量')),
|
||||
('const', models.IntegerField(default=0, verbose_name='总费用')),
|
||||
('details', models.JSONField(default=dict, encoder=common.encoder.encoder.SystemEncoder, verbose_name='对话详情')),
|
||||
('improve_paragraph_id_list', django.contrib.postgres.fields.ArrayField(base_field=models.UUIDField(blank=True), default=list, size=None, verbose_name='改进标注列表')),
|
||||
('run_time', models.FloatField(default=0, verbose_name='运行时长')),
|
||||
('index', models.IntegerField(verbose_name='对话下标')),
|
||||
('chat', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='application.chat')),
|
||||
],
|
||||
options={
|
||||
'db_table': 'application_chat_record',
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='WorkFlowVersion',
|
||||
fields=[
|
||||
('create_time', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
|
||||
('update_time', models.DateTimeField(auto_now=True, verbose_name='修改时间')),
|
||||
('id', models.UUIDField(default=uuid_utils.compat.uuid1, editable=False, primary_key=True, serialize=False, verbose_name='主键id')),
|
||||
('workspace_id', models.CharField(db_index=True, default='default', max_length=64, verbose_name='工作空间id')),
|
||||
('name', models.CharField(default='', max_length=128, verbose_name='版本名称')),
|
||||
('publish_user_id', models.UUIDField(default=None, null=True, verbose_name='发布者id')),
|
||||
('publish_user_name', models.CharField(default='', max_length=128, verbose_name='发布者名称')),
|
||||
('work_flow', models.JSONField(default=dict, verbose_name='工作流数据')),
|
||||
('application', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='application.application')),
|
||||
],
|
||||
options={
|
||||
'db_table': 'application_work_flow_version',
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='ApplicationChatUserStats',
|
||||
fields=[
|
||||
('create_time', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
|
||||
('update_time', models.DateTimeField(auto_now=True, verbose_name='修改时间')),
|
||||
('id', models.UUIDField(default=uuid_utils.compat.uuid7, editable=False, primary_key=True, serialize=False, verbose_name='主键id')),
|
||||
('chat_user_id', models.UUIDField(default=uuid_utils.compat.uuid7, verbose_name='对话用户id')),
|
||||
('chat_user_type', models.CharField(choices=[('ANONYMOUS_USER', '匿名用户'), ('CHAT_USER', '对话用户'), ('SYSTEM_API_KEY', '系统API_KEY'), ('APPLICATION_API_KEY', '应用API_KEY')], default='ANONYMOUS_USER', max_length=64, verbose_name='对话用户类型')),
|
||||
('access_num', models.IntegerField(default=0, verbose_name='访问总次数次数')),
|
||||
('intraday_access_num', models.IntegerField(default=0, verbose_name='当日访问次数')),
|
||||
('application', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='application.application', verbose_name='应用id')),
|
||||
],
|
||||
options={
|
||||
'db_table': 'application_chat_user_stats',
|
||||
'indexes': [models.Index(fields=['application_id', 'chat_user_id'], name='application_applica_1652ba_idx')],
|
||||
},
|
||||
),
|
||||
migrations.RunPython(insert_default_data)
|
||||
]
|
||||
|
|
|
|||
|
|
@ -1,110 +0,0 @@
|
|||
# Generated by Django 5.2 on 2025-06-04 11:57
|
||||
|
||||
import uuid
|
||||
|
||||
import django.contrib.postgres.fields
|
||||
import django.db.models.deletion
|
||||
import uuid_utils.compat
|
||||
from django.db import migrations, models
|
||||
|
||||
import common.encoder.encoder
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
dependencies = [
|
||||
('application', '0001_initial'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='Chat',
|
||||
fields=[
|
||||
('create_time', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
|
||||
('update_time', models.DateTimeField(auto_now=True, verbose_name='修改时间')),
|
||||
('id', models.UUIDField(default=uuid.UUID('01973acd-fe4c-7fd1-94a8-f7cd668de562'), editable=False,
|
||||
primary_key=True, serialize=False, verbose_name='主键id')),
|
||||
('abstract', models.CharField(max_length=1024, verbose_name='摘要')),
|
||||
('client_id', models.UUIDField(default=None, null=True, verbose_name='客户端id')),
|
||||
('is_deleted', models.BooleanField(default=False, verbose_name='')),
|
||||
('application',
|
||||
models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='application.application')),
|
||||
],
|
||||
options={
|
||||
'db_table': 'application_chat',
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='ChatRecord',
|
||||
fields=[
|
||||
('create_time', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
|
||||
('update_time', models.DateTimeField(auto_now=True, verbose_name='修改时间')),
|
||||
('id',
|
||||
models.UUIDField(default=uuid_utils.compat.uuid1, editable=False, primary_key=True, serialize=False,
|
||||
verbose_name='主键id')),
|
||||
('vote_status',
|
||||
models.CharField(choices=[('-1', '未投票'), ('0', '赞同'), ('1', '反对')], default='-1', max_length=10,
|
||||
verbose_name='投票')),
|
||||
('problem_text', models.CharField(max_length=10240, verbose_name='问题')),
|
||||
('answer_text', models.CharField(max_length=40960, verbose_name='答案')),
|
||||
('answer_text_list',
|
||||
django.contrib.postgres.fields.ArrayField(base_field=models.JSONField(), default=list, size=None,
|
||||
verbose_name='改进标注列表')),
|
||||
('message_tokens', models.IntegerField(default=0, verbose_name='请求token数量')),
|
||||
('answer_tokens', models.IntegerField(default=0, verbose_name='响应token数量')),
|
||||
('const', models.IntegerField(default=0, verbose_name='总费用')),
|
||||
('details',
|
||||
models.JSONField(default=dict, encoder=common.encoder.encoder.SystemEncoder, verbose_name='对话详情')),
|
||||
('improve_paragraph_id_list',
|
||||
django.contrib.postgres.fields.ArrayField(base_field=models.UUIDField(blank=True), default=list,
|
||||
size=None, verbose_name='改进标注列表')),
|
||||
('run_time', models.FloatField(default=0, verbose_name='运行时长')),
|
||||
('index', models.IntegerField(verbose_name='对话下标')),
|
||||
('chat', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='application.chat')),
|
||||
],
|
||||
options={
|
||||
'db_table': 'application_chat_record',
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='WorkFlowVersion',
|
||||
fields=[
|
||||
('create_time', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
|
||||
('update_time', models.DateTimeField(auto_now=True, verbose_name='修改时间')),
|
||||
('id',
|
||||
models.UUIDField(default=uuid_utils.compat.uuid1, editable=False, primary_key=True, serialize=False,
|
||||
verbose_name='主键id')),
|
||||
('workspace_id',
|
||||
models.CharField(db_index=True, default='default', max_length=64, verbose_name='工作空间id')),
|
||||
('name', models.CharField(default='', max_length=128, verbose_name='版本名称')),
|
||||
('publish_user_id', models.UUIDField(default=None, null=True, verbose_name='发布者id')),
|
||||
('publish_user_name', models.CharField(default='', max_length=128, verbose_name='发布者名称')),
|
||||
('work_flow', models.JSONField(default=dict, verbose_name='工作流数据')),
|
||||
('application',
|
||||
models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='application.application')),
|
||||
],
|
||||
options={
|
||||
'db_table': 'application_work_flow_version',
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='ApplicationPublicAccessClient',
|
||||
fields=[
|
||||
('create_time', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
|
||||
('update_time', models.DateTimeField(auto_now=True, verbose_name='修改时间')),
|
||||
('id', models.UUIDField(default=uuid.uuid1, editable=False, primary_key=True, serialize=False,
|
||||
verbose_name='主键id')),
|
||||
('client_id', models.UUIDField(default=uuid.uuid1, verbose_name='公共访问链接客户端id')),
|
||||
('client_type', models.CharField(max_length=64, verbose_name='客户端类型')),
|
||||
('access_num', models.IntegerField(default=0, verbose_name='访问总次数次数')),
|
||||
('intraday_access_num', models.IntegerField(default=0, verbose_name='当日访问次数')),
|
||||
('application',
|
||||
models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='application.application',
|
||||
verbose_name='应用id')),
|
||||
],
|
||||
options={
|
||||
'db_table': 'application_public_access_client',
|
||||
'indexes': [
|
||||
models.Index(fields=['application_id', 'client_id'], name='application_applica_8aaf45_idx')],
|
||||
},
|
||||
),
|
||||
]
|
||||
|
|
@ -1,59 +0,0 @@
|
|||
# Generated by Django 5.2 on 2025-06-06 14:56
|
||||
|
||||
import django.db.models.deletion
|
||||
import uuid
|
||||
import uuid_utils.compat
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('application', '0002_chat_chatrecord_workflowversion_and_more'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='applicationaccesstoken',
|
||||
name='show_exec',
|
||||
field=models.BooleanField(default=False, verbose_name='是否显示执行详情'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='chat',
|
||||
name='client_type',
|
||||
field=models.CharField(choices=[('ANONYMOUS_USER', '匿名用户'), ('CHAT_USER', '对话用户'), ('SYSTEM_API_KEY', '系统API_KEY'), ('APPLICATION_API_KEY', '应用API_KEY')], default='ANONYMOUS_USER', max_length=64, verbose_name='客户端类型'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='chat',
|
||||
name='id',
|
||||
field=models.UUIDField(default=uuid.UUID('019745bd-c430-7760-b886-638356133c4b'), editable=False, primary_key=True, serialize=False, verbose_name='主键id'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='chat',
|
||||
name='is_deleted',
|
||||
field=models.BooleanField(default=False, verbose_name='逻辑删除'),
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='ApplicationChatClientStats',
|
||||
fields=[
|
||||
('create_time', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
|
||||
('update_time', models.DateTimeField(auto_now=True, verbose_name='修改时间')),
|
||||
('id', models.UUIDField(default=uuid_utils.compat.uuid7, editable=False, primary_key=True, serialize=False, verbose_name='主键id')),
|
||||
('client_id', models.UUIDField(default=uuid_utils.compat.uuid7, verbose_name='公共访问链接客户端id')),
|
||||
('client_type', models.CharField(choices=[('ANONYMOUS_USER', '匿名用户'), ('CHAT_USER', '对话用户'), ('SYSTEM_API_KEY', '系统API_KEY'), ('APPLICATION_API_KEY', '应用API_KEY')], default='ANONYMOUS_USER', max_length=64, verbose_name='客户端类型')),
|
||||
('access_num', models.IntegerField(default=0, verbose_name='访问总次数次数')),
|
||||
('intraday_access_num', models.IntegerField(default=0, verbose_name='当日访问次数')),
|
||||
('application', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='application.application', verbose_name='应用id')),
|
||||
],
|
||||
options={
|
||||
'db_table': 'application_chat_client_stats',
|
||||
},
|
||||
),
|
||||
migrations.DeleteModel(
|
||||
name='ApplicationPublicAccessClient',
|
||||
),
|
||||
migrations.AddIndex(
|
||||
model_name='applicationchatclientstats',
|
||||
index=models.Index(fields=['application_id', 'client_id'], name='application_applica_f89647_idx'),
|
||||
),
|
||||
]
|
||||
|
|
@ -1,56 +0,0 @@
|
|||
# Generated by Django 5.2 on 2025-06-09 05:55
|
||||
|
||||
import uuid
|
||||
import uuid_utils.compat
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('application', '0003_applicationaccesstoken_show_exec_chat_client_type_and_more'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RemoveIndex(
|
||||
model_name='applicationchatclientstats',
|
||||
name='application_applica_f89647_idx',
|
||||
),
|
||||
migrations.RenameField(
|
||||
model_name='chat',
|
||||
old_name='client_id',
|
||||
new_name='chat_user_id',
|
||||
),
|
||||
migrations.RenameField(
|
||||
model_name='chat',
|
||||
old_name='client_type',
|
||||
new_name='chat_user_type',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='applicationchatclientstats',
|
||||
name='client_id',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='applicationchatclientstats',
|
||||
name='client_type',
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='applicationchatclientstats',
|
||||
name='chat_user_id',
|
||||
field=models.UUIDField(default=uuid_utils.compat.uuid7, verbose_name='对话用户id'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='applicationchatclientstats',
|
||||
name='chat_user_type',
|
||||
field=models.CharField(choices=[('ANONYMOUS_USER', '匿名用户'), ('CHAT_USER', '对话用户'), ('SYSTEM_API_KEY', '系统API_KEY'), ('APPLICATION_API_KEY', '应用API_KEY')], default='ANONYMOUS_USER', max_length=64, verbose_name='对话用户类型'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='chat',
|
||||
name='id',
|
||||
field=models.UUIDField(default=uuid.UUID('01975341-b4e8-7d52-913b-1bb67d7d8107'), editable=False, primary_key=True, serialize=False, verbose_name='主键id'),
|
||||
),
|
||||
migrations.AddIndex(
|
||||
model_name='applicationchatclientstats',
|
||||
index=models.Index(fields=['application_id', 'chat_user_id'], name='application_applica_23b4d2_idx'),
|
||||
),
|
||||
]
|
||||
|
|
@ -1,32 +0,0 @@
|
|||
# Generated by Django 5.2 on 2025-06-09 07:31
|
||||
|
||||
import uuid
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('application', '0004_remove_applicationchatclientstats_application_applica_f89647_idx_and_more'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RenameModel(
|
||||
old_name='ApplicationChatClientStats',
|
||||
new_name='ApplicationChatUserStats',
|
||||
),
|
||||
migrations.RenameIndex(
|
||||
model_name='applicationchatuserstats',
|
||||
new_name='application_applica_1652ba_idx',
|
||||
old_name='application_applica_23b4d2_idx',
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='chat',
|
||||
name='id',
|
||||
field=models.UUIDField(default=uuid.UUID('01975399-efa5-7dc3-8f97-edc67332ed24'), editable=False, primary_key=True, serialize=False, verbose_name='主键id'),
|
||||
),
|
||||
migrations.AlterModelTable(
|
||||
name='applicationchatuserstats',
|
||||
table='application_chat_user_stats',
|
||||
),
|
||||
]
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
# Generated by Django 5.2.1 on 2025-05-27 06:42
|
||||
# Generated by Django 5.2.3 on 2025-06-23 02:14
|
||||
|
||||
import django.contrib.postgres.search
|
||||
import django.db.models.deletion
|
||||
|
|
@ -21,7 +21,7 @@ class Migration(migrations.Migration):
|
|||
|
||||
dependencies = [
|
||||
('models_provider', '0001_initial'),
|
||||
('users', '0002_alter_user_nick_name'),
|
||||
('users', '0001_initial'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
|
|
@ -34,7 +34,7 @@ class Migration(migrations.Migration):
|
|||
('file_name', models.CharField(default='', max_length=256, verbose_name='文件名称')),
|
||||
('file_size', models.IntegerField(default=0, verbose_name='文件大小')),
|
||||
('sha256_hash', models.CharField(default='', verbose_name='文件sha256_hash标识')),
|
||||
('source_type', models.CharField(choices=[('KNOWLEDGE', 'Knowledge'), ('APPLICATION', 'Application'), ('TEMPORARY_30_MINUTE', 'Temporary 30 Minute'), ('TEMPORARY_100_MINUTE', 'Temporary 120 Minute'), ('TEMPORARY_1_DAY', 'Temporary 1 Day')], default='TEMPORARY_100_MINUTE', verbose_name='资源类型')),
|
||||
('source_type', models.CharField(choices=[('KNOWLEDGE', 'Knowledge'), ('APPLICATION', 'Application'), ('TOOL', 'Tool'), ('DOCUMENT', 'Document'), ('TEMPORARY_30_MINUTE', 'Temporary 30 Minute'), ('TEMPORARY_100_MINUTE', 'Temporary 120 Minute'), ('TEMPORARY_1_DAY', 'Temporary 1 Day')], default='TEMPORARY_100_MINUTE', verbose_name='资源类型')),
|
||||
('source_id', models.CharField(default='TEMPORARY_100_MINUTE', verbose_name='资源id')),
|
||||
('loid', models.IntegerField(verbose_name='loid')),
|
||||
('meta', models.JSONField(default=dict, verbose_name='文件关联数据')),
|
||||
|
|
@ -55,6 +55,7 @@ class Migration(migrations.Migration):
|
|||
('type', models.IntegerField(choices=[(0, '通用类型'), (1, 'web站点类型'), (2, '飞书类型'), (3, '语雀类型')], default=0, verbose_name='类型')),
|
||||
('scope', models.CharField(choices=[('SHARED', '共享'), ('WORKSPACE', '工作空间可用')], default='WORKSPACE', max_length=20, verbose_name='可用范围')),
|
||||
('file_size_limit', models.IntegerField(default=100, verbose_name='文件大小限制')),
|
||||
('file_count_limit', models.IntegerField(default=50, verbose_name='文件数量限制')),
|
||||
('meta', models.JSONField(default=dict, verbose_name='元数据')),
|
||||
('embedding_model', models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, to='models_provider.model', verbose_name='向量模型')),
|
||||
('user', models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, to='users.user', verbose_name='所属用户')),
|
||||
|
|
@ -121,6 +122,7 @@ class Migration(migrations.Migration):
|
|||
('status_meta', models.JSONField(default=knowledge.models.knowledge.default_status_meta, verbose_name='状态数据')),
|
||||
('hit_num', models.IntegerField(default=0, verbose_name='命中次数')),
|
||||
('is_active', models.BooleanField(default=True)),
|
||||
('position', models.IntegerField(db_index=True, default=0, verbose_name='段落顺序')),
|
||||
('document', models.ForeignKey(db_constraint=False, on_delete=django.db.models.deletion.DO_NOTHING, to='knowledge.document')),
|
||||
('knowledge', models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, to='knowledge.knowledge')),
|
||||
],
|
||||
|
|
@ -166,7 +168,7 @@ class Migration(migrations.Migration):
|
|||
('create_time', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
|
||||
('update_time', models.DateTimeField(auto_now=True, verbose_name='修改时间')),
|
||||
('id', models.UUIDField(default=uuid_utils.compat.uuid7, editable=False, primary_key=True, serialize=False, verbose_name='主键id')),
|
||||
('document', models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, to='knowledge.document')),
|
||||
('document', models.ForeignKey(db_constraint=False, on_delete=django.db.models.deletion.DO_NOTHING, to='knowledge.document')),
|
||||
('knowledge', models.ForeignKey(db_constraint=False, on_delete=django.db.models.deletion.DO_NOTHING, to='knowledge.knowledge')),
|
||||
('paragraph', models.ForeignKey(db_constraint=False, on_delete=django.db.models.deletion.DO_NOTHING, to='knowledge.paragraph')),
|
||||
('problem', models.ForeignKey(db_constraint=False, on_delete=django.db.models.deletion.DO_NOTHING, to='knowledge.problem')),
|
||||
|
|
|
|||
|
|
@ -1,29 +0,0 @@
|
|||
# Generated by Django 5.2 on 2025-06-04 11:57
|
||||
|
||||
import knowledge.models.knowledge
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('knowledge', '0001_initial'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='document',
|
||||
name='status',
|
||||
field=models.CharField(default=knowledge.models.knowledge.Status.__str__, max_length=20, verbose_name='状态'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='file',
|
||||
name='source_type',
|
||||
field=models.CharField(choices=[('KNOWLEDGE', 'Knowledge'), ('APPLICATION', 'Application'), ('TOOL', 'Tool'), ('DOCUMENT', 'Document'), ('TEMPORARY_30_MINUTE', 'Temporary 30 Minute'), ('TEMPORARY_100_MINUTE', 'Temporary 120 Minute'), ('TEMPORARY_1_DAY', 'Temporary 1 Day')], default='TEMPORARY_100_MINUTE', verbose_name='资源类型'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='paragraph',
|
||||
name='status',
|
||||
field=models.CharField(default=knowledge.models.knowledge.Status.__str__, max_length=20, verbose_name='状态'),
|
||||
),
|
||||
]
|
||||
|
|
@ -1,29 +0,0 @@
|
|||
# Generated by Django 5.2.1 on 2025-06-06 03:59
|
||||
|
||||
import knowledge.models.knowledge
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('knowledge', '0002_alter_document_status_alter_file_source_type_and_more'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='knowledge',
|
||||
name='file_count_limit',
|
||||
field=models.IntegerField(default=50, verbose_name='文件数量限制'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='document',
|
||||
name='status',
|
||||
field=models.CharField(default=knowledge.models.knowledge.Status.__str__, max_length=20, verbose_name='状态'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='paragraph',
|
||||
name='status',
|
||||
field=models.CharField(default=knowledge.models.knowledge.Status.__str__, max_length=20, verbose_name='状态'),
|
||||
),
|
||||
]
|
||||
|
|
@ -1,30 +0,0 @@
|
|||
# Generated by Django 5.2.1 on 2025-06-09 11:09
|
||||
|
||||
import django.db.models.deletion
|
||||
import knowledge.models.knowledge
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('knowledge', '0003_knowledge_file_count_limit_alter_document_status_and_more'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='document',
|
||||
name='status',
|
||||
field=models.CharField(default=knowledge.models.knowledge.Status.__str__, max_length=20, verbose_name='状态'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='paragraph',
|
||||
name='status',
|
||||
field=models.CharField(default=knowledge.models.knowledge.Status.__str__, max_length=20, verbose_name='状态'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='problemparagraphmapping',
|
||||
name='document',
|
||||
field=models.ForeignKey(db_constraint=False, on_delete=django.db.models.deletion.DO_NOTHING, to='knowledge.document'),
|
||||
),
|
||||
]
|
||||
|
|
@ -1,29 +0,0 @@
|
|||
# Generated by Django 5.2.3 on 2025-06-17 03:11
|
||||
|
||||
import knowledge.models.knowledge
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('knowledge', '0004_alter_document_status_alter_paragraph_status_and_more'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='paragraph',
|
||||
name='position',
|
||||
field=models.IntegerField(db_index=True, default=0, verbose_name='段落顺序'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='document',
|
||||
name='status',
|
||||
field=models.CharField(default=knowledge.models.knowledge.Status.__str__, max_length=20, verbose_name='状态'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='paragraph',
|
||||
name='status',
|
||||
field=models.CharField(default=knowledge.models.knowledge.Status.__str__, max_length=20, verbose_name='状态'),
|
||||
),
|
||||
]
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
# Generated by Django 5.2 on 2025-04-17 03:32
|
||||
# Generated by Django 5.2.3 on 2025-06-23 02:14
|
||||
|
||||
import django.db.models.deletion
|
||||
import uuid_utils.compat
|
||||
|
|
@ -28,7 +28,7 @@ class Migration(migrations.Migration):
|
|||
('credential', models.CharField(max_length=102400, verbose_name='模型认证信息')),
|
||||
('meta', models.JSONField(default=dict, verbose_name='模型元数据,用于存储下载,或者错误信息')),
|
||||
('model_params_form', models.JSONField(default=list, verbose_name='模型参数配置')),
|
||||
('workspace_id', models.CharField(blank=True, max_length=128, null=True, verbose_name='工作空间id')),
|
||||
('workspace_id', models.CharField(db_index=True, default='default', max_length=64, verbose_name='工作空间id')),
|
||||
('user', models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, to='users.user', verbose_name='成员用户id')),
|
||||
],
|
||||
options={
|
||||
|
|
|
|||
|
|
@ -1,18 +0,0 @@
|
|||
# Generated by Django 5.2.1 on 2025-06-12 08:30
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('models_provider', '0001_initial'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='model',
|
||||
name='workspace_id',
|
||||
field=models.CharField(db_index=True, default='default', max_length=64, verbose_name='工作空间id'),
|
||||
),
|
||||
]
|
||||
|
|
@ -1,6 +1,9 @@
|
|||
# Generated by Django 5.2 on 2025-04-16 11:12
|
||||
# Generated by Django 5.2.3 on 2025-06-23 02:14
|
||||
|
||||
import common.encoder.encoder
|
||||
import django.contrib.postgres.fields
|
||||
import django.db.models.deletion
|
||||
import uuid
|
||||
import uuid_utils.compat
|
||||
from django.db import migrations, models
|
||||
|
||||
|
|
@ -15,19 +18,51 @@ class Migration(migrations.Migration):
|
|||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='WorkspaceUserPermission',
|
||||
name='Log',
|
||||
fields=[
|
||||
('create_time', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
|
||||
('update_time', models.DateTimeField(auto_now=True, verbose_name='修改时间')),
|
||||
('id', models.UUIDField(default=uuid.uuid1, editable=False, primary_key=True, serialize=False, verbose_name='主键id')),
|
||||
('menu', models.CharField(max_length=128, verbose_name='操作菜单')),
|
||||
('operate', models.CharField(max_length=128, verbose_name='操作')),
|
||||
('operation_object', models.JSONField(default=dict, encoder=common.encoder.encoder.SystemEncoder, verbose_name='操作对象')),
|
||||
('user', models.JSONField(default=dict, verbose_name='用户信息')),
|
||||
('status', models.IntegerField(verbose_name='状态')),
|
||||
('ip_address', models.CharField(max_length=128, verbose_name='ip地址')),
|
||||
('details', models.JSONField(default=dict, encoder=common.encoder.encoder.SystemEncoder, verbose_name='详情')),
|
||||
('workspace_id', models.CharField(db_index=True, default='default', max_length=64, verbose_name='工作空间id')),
|
||||
],
|
||||
options={
|
||||
'db_table': 'log',
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='SystemSetting',
|
||||
fields=[
|
||||
('create_time', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
|
||||
('update_time', models.DateTimeField(auto_now=True, verbose_name='修改时间')),
|
||||
('type', models.IntegerField(choices=[(0, '邮箱'), (1, '私钥秘钥')], default=0, primary_key=True, serialize=False, verbose_name='设置类型')),
|
||||
('meta', models.JSONField(default=dict, verbose_name='配置数据')),
|
||||
],
|
||||
options={
|
||||
'db_table': 'system_setting',
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='WorkspaceUserResourcePermission',
|
||||
fields=[
|
||||
('id', models.UUIDField(default=uuid_utils.compat.uuid7, editable=False, primary_key=True, serialize=False, verbose_name='主键id')),
|
||||
('workspace_id', models.CharField(default='default', max_length=128, verbose_name='工作空间id')),
|
||||
('auth_target_type', models.CharField(choices=[('KNOWLEDGE', '知识库'), ('APPLICATION', '应用')], default='KNOWLEDGE', max_length=128, verbose_name='授权目标')),
|
||||
('target', models.UUIDField(verbose_name='知识库/应用id')),
|
||||
('is_auth', models.BooleanField(default=False, verbose_name='是否授权')),
|
||||
('auth_type', models.CharField(choices=[('ROLE', 'Role'), ('RESOURCE_PERMISSION_GROUP', 'Resource Permission Group')], db_default='ROLE', default=False, verbose_name='授权类型')),
|
||||
('permission_list', django.contrib.postgres.fields.ArrayField(base_field=models.CharField(blank=True, choices=[('VIEW', 'View'), ('MANAGE', 'Manage'), ('ROLE', 'Role')], default='VIEW', max_length=256), default=list, size=None, verbose_name='权限列表')),
|
||||
('create_time', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
|
||||
('update_time', models.DateTimeField(auto_now=True, verbose_name='修改时间')),
|
||||
('user', models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, to='users.user', verbose_name='工作空间下的用户')),
|
||||
],
|
||||
options={
|
||||
'db_table': 'workspace_user_permission',
|
||||
'db_table': 'workspace_user_resource_permission',
|
||||
},
|
||||
),
|
||||
]
|
||||
|
|
|
|||
|
|
@ -1,25 +0,0 @@
|
|||
# Generated by Django 5.2 on 2025-04-17 03:14
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('system_manage', '0001_initial'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='SystemSetting',
|
||||
fields=[
|
||||
('create_time', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
|
||||
('update_time', models.DateTimeField(auto_now=True, verbose_name='修改时间')),
|
||||
('type', models.IntegerField(choices=[(0, '邮箱'), (1, '私钥秘钥')], default=0, primary_key=True, serialize=False, verbose_name='设置类型')),
|
||||
('meta', models.JSONField(default=dict, verbose_name='配置数据')),
|
||||
],
|
||||
options={
|
||||
'db_table': 'system_setting',
|
||||
},
|
||||
),
|
||||
]
|
||||
|
|
@ -1,37 +0,0 @@
|
|||
# Generated by Django 5.2 on 2025-04-27 10:09
|
||||
|
||||
import django.contrib.postgres.fields
|
||||
import django.db.models.deletion
|
||||
import uuid_utils.compat
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('system_manage', '0002_systemsetting'),
|
||||
('users', '0001_initial'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='WorkspaceUserResourcePermission',
|
||||
fields=[
|
||||
('id', models.UUIDField(default=uuid_utils.compat.uuid7, editable=False, primary_key=True, serialize=False, verbose_name='主键id')),
|
||||
('workspace_id', models.CharField(default='default', max_length=128, verbose_name='工作空间id')),
|
||||
('auth_target_type', models.CharField(choices=[('KNOWLEDGE', '知识库'), ('APPLICATION', '应用')], default='KNOWLEDGE', max_length=128, verbose_name='授权目标')),
|
||||
('target', models.UUIDField(verbose_name='知识库/应用id')),
|
||||
('auth_type', models.CharField(choices=[('ROLE', 'Role'), ('RESOURCE_PERMISSION_GROUP', 'Resource Permission Group')], db_default='ROLE', default=False, verbose_name='授权类型')),
|
||||
('permission_list', django.contrib.postgres.fields.ArrayField(base_field=models.CharField(blank=True, choices=[('VIEW', 'View'), ('MANAGE', 'Manage'), ('ROLE', 'Role')], default='VIEW', max_length=256), default=list, size=None, verbose_name='权限列表')),
|
||||
('create_time', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
|
||||
('update_time', models.DateTimeField(auto_now=True, verbose_name='修改时间')),
|
||||
('user', models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, to='users.user', verbose_name='工作空间下的用户')),
|
||||
],
|
||||
options={
|
||||
'db_table': 'workspace_user_resource_permission',
|
||||
},
|
||||
),
|
||||
migrations.DeleteModel(
|
||||
name='WorkspaceUserPermission',
|
||||
),
|
||||
]
|
||||
|
|
@ -1,33 +0,0 @@
|
|||
# Generated by Django 5.2 on 2025-06-04 06:17
|
||||
|
||||
import common.encoder.encoder
|
||||
import uuid
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('system_manage', '0003_workspaceuserresourcepermission_and_more'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='Log',
|
||||
fields=[
|
||||
('create_time', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
|
||||
('update_time', models.DateTimeField(auto_now=True, verbose_name='修改时间')),
|
||||
('id', models.UUIDField(default=uuid.uuid1, editable=False, primary_key=True, serialize=False, verbose_name='主键id')),
|
||||
('menu', models.CharField(max_length=128, verbose_name='操作菜单')),
|
||||
('operate', models.CharField(max_length=128, verbose_name='操作')),
|
||||
('operation_object', models.JSONField(default=dict, encoder=common.encoder.encoder.SystemEncoder, verbose_name='操作对象')),
|
||||
('user', models.JSONField(default=dict, verbose_name='用户信息')),
|
||||
('status', models.IntegerField(verbose_name='状态')),
|
||||
('ip_address', models.CharField(max_length=128, verbose_name='ip地址')),
|
||||
('details', models.JSONField(default=dict, encoder=common.encoder.encoder.SystemEncoder, verbose_name='详情')),
|
||||
],
|
||||
options={
|
||||
'db_table': 'log',
|
||||
},
|
||||
),
|
||||
]
|
||||
|
|
@ -1,11 +1,13 @@
|
|||
# Generated by Django 5.2 on 2025-05-15 04:04
|
||||
# Generated by Django 5.2.3 on 2025-06-23 02:14
|
||||
import os
|
||||
|
||||
import django.db.models.deletion
|
||||
import mptt.fields
|
||||
import uuid_utils.compat
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
from common.utils.common import get_file_content
|
||||
from maxkb.const import PROJECT_DIR
|
||||
from tools.models import ToolFolder
|
||||
|
||||
|
||||
|
|
@ -62,6 +64,7 @@ class Migration(migrations.Migration):
|
|||
('template_id', models.UUIDField(default=None, null=True, verbose_name='模版id')),
|
||||
('workspace_id', models.CharField(db_index=True, default='default', max_length=64, verbose_name='工作空间id')),
|
||||
('init_params', models.CharField(max_length=102400, null=True, verbose_name='初始化参数')),
|
||||
('label', models.CharField(max_length=128, null=True, verbose_name='标签')),
|
||||
('user', models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, to='users.user', verbose_name='用户id')),
|
||||
('folder', models.ForeignKey(default='default', on_delete=django.db.models.deletion.DO_NOTHING, to='tools.toolfolder', verbose_name='文件夹id')),
|
||||
],
|
||||
|
|
@ -69,4 +72,5 @@ class Migration(migrations.Migration):
|
|||
'db_table': 'tool',
|
||||
},
|
||||
),
|
||||
migrations.RunSQL(get_file_content(os.path.join(PROJECT_DIR, "apps", "tools", 'migrations', 'internal_tool.sql')))
|
||||
]
|
||||
|
|
|
|||
|
|
@ -1,21 +0,0 @@
|
|||
# Generated by Django 5.2.3 on 2025-06-20 03:43
|
||||
import os
|
||||
|
||||
from django.db import migrations, models
|
||||
from common.utils.common import get_file_content
|
||||
from maxkb.conf import PROJECT_DIR
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('tools', '0001_initial'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='tool',
|
||||
name='label',
|
||||
field=models.CharField(max_length=128, null=True, verbose_name='标签'),
|
||||
),
|
||||
# migrations.RunSQL(get_file_content(os.path.join(PROJECT_DIR, "apps", "tools", 'migrations', 'internal_tool.sql')))
|
||||
]
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
# Generated by Django 5.2 on 2025-04-14 02:22
|
||||
# Generated by Django 5.2.3 on 2025-06-23 02:14
|
||||
|
||||
import uuid_utils.compat
|
||||
from django.db import migrations, models
|
||||
|
|
@ -28,11 +28,10 @@ class Migration(migrations.Migration):
|
|||
migrations.CreateModel(
|
||||
name='User',
|
||||
fields=[
|
||||
('id', models.UUIDField(default=uuid_utils.compat.uuid7, editable=False, primary_key=True, serialize=False,
|
||||
verbose_name='主键id')),
|
||||
('id', models.UUIDField(default=uuid_utils.compat.uuid7, editable=False, primary_key=True, serialize=False, verbose_name='主键id')),
|
||||
('email', models.EmailField(blank=True, max_length=254, null=True, unique=True, verbose_name='邮箱')),
|
||||
('phone', models.CharField(default='', max_length=20, verbose_name='电话')),
|
||||
('nick_name', models.CharField(default='', max_length=150, verbose_name='昵称')),
|
||||
('nick_name', models.CharField(max_length=150, unique=True, verbose_name='昵称')),
|
||||
('username', models.CharField(max_length=150, unique=True, verbose_name='用户名')),
|
||||
('password', models.CharField(max_length=150, verbose_name='密码')),
|
||||
('role', models.CharField(max_length=150, verbose_name='角色')),
|
||||
|
|
|
|||
|
|
@ -1,18 +0,0 @@
|
|||
# Generated by Django 5.2 on 2025-05-27 02:15
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('users', '0001_initial'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='user',
|
||||
name='nick_name',
|
||||
field=models.CharField(max_length=150, unique=True, verbose_name='昵称'),
|
||||
),
|
||||
]
|
||||
Loading…
Reference in New Issue