diff --git a/apps/application/migrations/0001_initial.py b/apps/application/migrations/0001_initial.py
index 509a4108f..d1a61e29a 100644
--- a/apps/application/migrations/0001_initial.py
+++ b/apps/application/migrations/0001_initial.py
@@ -6,7 +6,6 @@ import common.encoder.encoder
import django.contrib.postgres.fields
import django.db.models.deletion
import mptt.fields
-import uuid
import uuid_utils.compat
from django.db import migrations, models
@@ -55,12 +54,13 @@ class Migration(migrations.Migration):
('tts_autoplay', models.BooleanField(default=False, verbose_name='自动播放')),
('stt_autosend', models.BooleanField(default=False, verbose_name='自动发送')),
('clean_time', models.IntegerField(default=180, verbose_name='清理时间')),
+ ('publish_time', models.DateTimeField(blank=True, default=None, null=True, 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')),
- ('user', models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, to='users.user')),
+ ('user', models.ForeignKey(blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.SET_NULL, to='users.user')),
],
options={
'db_table': 'application',
@@ -117,7 +117,7 @@ class Migration(migrations.Migration):
('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')),
+ ('user', models.ForeignKey(blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.SET_NULL, to='users.user')),
],
options={
'db_table': 'application_folder',
@@ -141,16 +141,63 @@ class Migration(migrations.Migration):
'db_table': 'application_knowledge_mapping',
},
),
+ migrations.CreateModel(
+ name='ApplicationVersion',
+ 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')),
+ ('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='发布者名称')),
+ ('workspace_id', models.CharField(db_index=True, default='default', max_length=64, verbose_name='工作空间id')),
+ ('application_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='会话数量')),
+ ('model_id', models.UUIDField(blank=True, null=True, 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='./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}) 要求: 输出一个补全问题,并且放在标签中', max_length=102400, null=True, verbose_name='问题优化提示词')),
+ ('tts_model_id', models.UUIDField(blank=True, null=True, verbose_name='文本转语音模型id')),
+ ('stt_model_id', models.UUIDField(blank=True, null=True, verbose_name='语音转文本模型id')),
+ ('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='语音播放类型')),
+ ('tts_autoplay', models.BooleanField(default=False, verbose_name='自动播放')),
+ ('stt_autosend', models.BooleanField(default=False, verbose_name='自动发送')),
+ ('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='文件上传相关设置')),
+ ('application', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='application.application')),
+ ('user', models.ForeignKey(blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.SET_NULL, to='users.user')),
+ ],
+ options={
+ 'db_table': 'application_version',
+ },
+ ),
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')),
+ ('id', models.UUIDField(default=uuid_utils.compat.uuid7, 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='客户端类型')),
+ ('chat_user_id', models.CharField(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'), ('PLATFORM_USER', '平台用户')], default='ANONYMOUS_USER', max_length=64, verbose_name='客户端类型')),
('is_deleted', models.BooleanField(default=False, verbose_name='逻辑删除')),
+ ('asker', models.JSONField(default=application.models.application_chat.default_asker, encoder=common.encoder.encoder.SystemEncoder, verbose_name='访问者')),
+ ('meta', models.JSONField(default=dict, verbose_name='元数据')),
+ ('star_num', models.IntegerField(default=0, verbose_name='点赞数量')),
+ ('trample_num', models.IntegerField(default=0, verbose_name='点踩数量')),
+ ('chat_record_count', models.IntegerField(default=0, verbose_name='对话次数')),
+ ('mark_sum', models.IntegerField(default=0, verbose_name='标记数量')),
('application', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='application.application')),
],
options={
@@ -180,23 +227,6 @@ class Migration(migrations.Migration):
'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.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')),
- ('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=[
@@ -204,7 +234,7 @@ class Migration(migrations.Migration):
('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='对话用户类型')),
+ ('chat_user_type', 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='对话用户类型')),
('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')),
diff --git a/apps/application/migrations/0002_alter_application_user_alter_chat_id.py b/apps/application/migrations/0002_alter_application_user_alter_chat_id.py
deleted file mode 100644
index a57411465..000000000
--- a/apps/application/migrations/0002_alter_application_user_alter_chat_id.py
+++ /dev/null
@@ -1,26 +0,0 @@
-# Generated by Django 5.2.1 on 2025-06-24 09:53
-
-import django.db.models.deletion
-import uuid_utils.compat
-from django.db import migrations, models
-
-
-class Migration(migrations.Migration):
-
- dependencies = [
- ('application', '0001_initial'),
- ('users', '0001_initial'),
- ]
-
- operations = [
- migrations.AlterField(
- model_name='application',
- name='user',
- field=models.ForeignKey(blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.SET_NULL, to='users.user'),
- ),
- migrations.AlterField(
- model_name='chat',
- name='id',
- field=models.UUIDField(default=uuid_utils.compat.uuid7, editable=False, primary_key=True, serialize=False, verbose_name='主键id'),
- ),
- ]
diff --git a/apps/application/migrations/0003_chat_asker_chat_meta_and_more.py b/apps/application/migrations/0003_chat_asker_chat_meta_and_more.py
deleted file mode 100644
index 42a860df3..000000000
--- a/apps/application/migrations/0003_chat_asker_chat_meta_and_more.py
+++ /dev/null
@@ -1,40 +0,0 @@
-# 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='客户端类型'),
- ),
- ]
diff --git a/apps/application/migrations/0004_application_publish_time_applicationversion_and_more.py b/apps/application/migrations/0004_application_publish_time_applicationversion_and_more.py
deleted file mode 100644
index 778b097e2..000000000
--- a/apps/application/migrations/0004_application_publish_time_applicationversion_and_more.py
+++ /dev/null
@@ -1,66 +0,0 @@
-# Generated by Django 5.2.3 on 2025-07-04 03:18
-
-import application.models.application
-import django.db.models.deletion
-import uuid_utils.compat
-from django.db import migrations, models
-
-
-class Migration(migrations.Migration):
-
- dependencies = [
- ('application', '0003_chat_asker_chat_meta_and_more'),
- ('users', '0001_initial'),
- ]
-
- operations = [
- migrations.AddField(
- model_name='application',
- name='publish_time',
- field=models.DateTimeField(blank=True, default=None, null=True, verbose_name='发布时间'),
- ),
- migrations.CreateModel(
- name='ApplicationVersion',
- 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')),
- ('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='发布者名称')),
- ('workspace_id', models.CharField(db_index=True, default='default', max_length=64, verbose_name='工作空间id')),
- ('application_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='会话数量')),
- ('model_id', models.UUIDField(blank=True, null=True, 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='./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}) 要求: 输出一个补全问题,并且放在标签中', max_length=102400, null=True, verbose_name='问题优化提示词')),
- ('tts_model_id', models.UUIDField(blank=True, null=True, verbose_name='文本转语音模型id')),
- ('stt_model_id', models.UUIDField(blank=True, null=True, verbose_name='语音转文本模型id')),
- ('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='语音播放类型')),
- ('tts_autoplay', models.BooleanField(default=False, verbose_name='自动播放')),
- ('stt_autosend', models.BooleanField(default=False, verbose_name='自动发送')),
- ('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='文件上传相关设置')),
- ('application', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='application.application')),
- ('user', models.ForeignKey(blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.SET_NULL, to='users.user')),
- ],
- options={
- 'db_table': 'application_version',
- },
- ),
- migrations.DeleteModel(
- name='WorkFlowVersion',
- ),
- ]
diff --git a/apps/application/migrations/0005_chat_chat_record_count_chat_mark_sum_chat_star_num_and_more.py b/apps/application/migrations/0005_chat_chat_record_count_chat_mark_sum_chat_star_num_and_more.py
deleted file mode 100644
index fcb788af6..000000000
--- a/apps/application/migrations/0005_chat_chat_record_count_chat_mark_sum_chat_star_num_and_more.py
+++ /dev/null
@@ -1,33 +0,0 @@
-# Generated by Django 5.2.3 on 2025-07-07 02:59
-
-from django.db import migrations, models
-
-
-class Migration(migrations.Migration):
-
- dependencies = [
- ('application', '0004_application_publish_time_applicationversion_and_more'),
- ]
-
- operations = [
- migrations.AddField(
- model_name='chat',
- name='chat_record_count',
- field=models.IntegerField(default=0, verbose_name='对话次数'),
- ),
- migrations.AddField(
- model_name='chat',
- name='mark_sum',
- field=models.IntegerField(default=0, verbose_name='标记数量'),
- ),
- migrations.AddField(
- model_name='chat',
- name='star_num',
- field=models.IntegerField(default=0, verbose_name='点赞数量'),
- ),
- migrations.AddField(
- model_name='chat',
- name='trample_num',
- field=models.IntegerField(default=0, verbose_name='点踩数量'),
- ),
- ]
diff --git a/apps/application/migrations/0006_alter_applicationfolder_user.py b/apps/application/migrations/0006_alter_applicationfolder_user.py
deleted file mode 100644
index ef87d9870..000000000
--- a/apps/application/migrations/0006_alter_applicationfolder_user.py
+++ /dev/null
@@ -1,20 +0,0 @@
-# Generated by Django 5.2.4 on 2025-07-10 06:48
-
-import django.db.models.deletion
-from django.db import migrations, models
-
-
-class Migration(migrations.Migration):
-
- dependencies = [
- ('application', '0005_chat_chat_record_count_chat_mark_sum_chat_star_num_and_more'),
- ('users', '0001_initial'),
- ]
-
- operations = [
- migrations.AlterField(
- model_name='applicationfolder',
- name='user',
- field=models.ForeignKey(blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.SET_NULL, to='users.user'),
- ),
- ]
diff --git a/apps/knowledge/migrations/0001_initial.py b/apps/knowledge/migrations/0001_initial.py
index 75a36f9b6..7a92a0c8d 100644
--- a/apps/knowledge/migrations/0001_initial.py
+++ b/apps/knowledge/migrations/0001_initial.py
@@ -1,4 +1,4 @@
-# Generated by Django 5.2.3 on 2025-06-23 02:14
+# Generated by Django 5.2.4 on 2025-07-13 06:33
import django.contrib.postgres.search
import django.db.models.deletion
@@ -57,8 +57,8 @@ class Migration(migrations.Migration):
('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='所属用户')),
+ ('embedding_model', models.ForeignKey(blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.SET_NULL, to='models_provider.model')),
+ ('user', models.ForeignKey(blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.SET_NULL, to='users.user')),
],
options={
'db_table': 'knowledge',
@@ -72,7 +72,7 @@ class Migration(migrations.Migration):
('id', models.UUIDField(default=uuid_utils.compat.uuid7, editable=False, primary_key=True, serialize=False, verbose_name='主键id')),
('name', models.CharField(max_length=150, verbose_name='文档名称')),
('char_length', models.IntegerField(verbose_name='文档字符数 冗余字段')),
- ('status', models.CharField(default=knowledge.models.knowledge.Status.__str__, max_length=20, verbose_name='状态')),
+ ('status', models.CharField(default=knowledge.models.knowledge.get_default_status, max_length=20, verbose_name='状态')),
('status_meta', models.JSONField(default=knowledge.models.knowledge.default_status_meta, verbose_name='状态统计数据')),
('is_active', models.BooleanField(default=True)),
('type', models.IntegerField(choices=[(0, '通用类型'), (1, 'web站点类型'), (2, '飞书类型'), (3, '语雀类型')], default=0, verbose_name='类型')),
@@ -99,7 +99,7 @@ class Migration(migrations.Migration):
('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='knowledge.knowledgefolder')),
- ('user', models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, to='users.user', verbose_name='用户id')),
+ ('user', models.ForeignKey(blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.SET_NULL, to='users.user')),
],
options={
'db_table': 'knowledge_folder',
@@ -118,7 +118,7 @@ class Migration(migrations.Migration):
('id', models.UUIDField(default=uuid_utils.compat.uuid7, editable=False, primary_key=True, serialize=False, verbose_name='主键id')),
('content', models.CharField(max_length=102400, verbose_name='段落内容')),
('title', models.CharField(default='', max_length=256, verbose_name='标题')),
- ('status', models.CharField(default=knowledge.models.knowledge.Status.__str__, max_length=20, verbose_name='状态')),
+ ('status', models.CharField(default=knowledge.models.knowledge.get_default_status, max_length=20, verbose_name='状态')),
('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)),
diff --git a/apps/knowledge/migrations/0002_alter_document_status_and_more.py b/apps/knowledge/migrations/0002_alter_document_status_and_more.py
deleted file mode 100644
index b7dca7d0a..000000000
--- a/apps/knowledge/migrations/0002_alter_document_status_and_more.py
+++ /dev/null
@@ -1,37 +0,0 @@
-# Generated by Django 5.2.3 on 2025-06-26 03:39
-
-import django.db.models.deletion
-import knowledge.models.knowledge
-from django.db import migrations, models
-
-
-class Migration(migrations.Migration):
-
- dependencies = [
- ('knowledge', '0001_initial'),
- ('models_provider', '0001_initial'),
- ('users', '0001_initial'),
- ]
-
- operations = [
- migrations.AlterField(
- model_name='document',
- name='status',
- field=models.CharField(default=knowledge.models.knowledge.get_default_status, max_length=20, verbose_name='状态'),
- ),
- migrations.AlterField(
- model_name='knowledge',
- name='embedding_model',
- field=models.ForeignKey(blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.SET_NULL, to='models_provider.model'),
- ),
- migrations.AlterField(
- model_name='knowledge',
- name='user',
- field=models.ForeignKey(blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.SET_NULL, to='users.user'),
- ),
- migrations.AlterField(
- model_name='paragraph',
- name='status',
- field=models.CharField(default=knowledge.models.knowledge.get_default_status, max_length=20, verbose_name='状态'),
- ),
- ]
diff --git a/apps/knowledge/migrations/0003_alter_file_source_id_alter_file_source_type.py b/apps/knowledge/migrations/0003_alter_file_source_id_alter_file_source_type.py
deleted file mode 100644
index 19288938f..000000000
--- a/apps/knowledge/migrations/0003_alter_file_source_id_alter_file_source_type.py
+++ /dev/null
@@ -1,23 +0,0 @@
-# Generated by Django 5.2.3 on 2025-07-07 02:59
-
-from django.db import migrations, models
-
-
-class Migration(migrations.Migration):
-
- dependencies = [
- ('knowledge', '0002_alter_document_status_and_more'),
- ]
-
- operations = [
- migrations.AlterField(
- model_name='file',
- name='source_id',
- field=models.CharField(default='TEMPORARY_120_MINUTE', verbose_name='资源id'),
- ),
- migrations.AlterField(
- model_name='file',
- name='source_type',
- field=models.CharField(choices=[('KNOWLEDGE', 'Knowledge'), ('APPLICATION', 'Application'), ('TOOL', 'Tool'), ('DOCUMENT', 'Document'), ('CHAT', 'Chat'), ('TEMPORARY_30_MINUTE', 'Temporary 30 Minute'), ('TEMPORARY_120_MINUTE', 'Temporary 120 Minute'), ('TEMPORARY_1_DAY', 'Temporary 1 Day')], default='TEMPORARY_120_MINUTE', verbose_name='资源类型'),
- ),
- ]
diff --git a/apps/knowledge/migrations/0004_alter_knowledgefolder_user.py b/apps/knowledge/migrations/0004_alter_knowledgefolder_user.py
deleted file mode 100644
index a8d9259e7..000000000
--- a/apps/knowledge/migrations/0004_alter_knowledgefolder_user.py
+++ /dev/null
@@ -1,20 +0,0 @@
-# Generated by Django 5.2.4 on 2025-07-10 06:48
-
-import django.db.models.deletion
-from django.db import migrations, models
-
-
-class Migration(migrations.Migration):
-
- dependencies = [
- ('knowledge', '0003_alter_file_source_id_alter_file_source_type'),
- ('users', '0001_initial'),
- ]
-
- operations = [
- migrations.AlterField(
- model_name='knowledgefolder',
- name='user',
- field=models.ForeignKey(blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.SET_NULL, to='users.user'),
- ),
- ]
diff --git a/apps/models_provider/migrations/0001_initial.py b/apps/models_provider/migrations/0001_initial.py
index 0494f8132..f53ae095b 100644
--- a/apps/models_provider/migrations/0001_initial.py
+++ b/apps/models_provider/migrations/0001_initial.py
@@ -27,6 +27,7 @@ def save_default_embedding_model(apps, schema_editor):
class Migration(migrations.Migration):
+
initial = True
dependencies = [
@@ -40,27 +41,21 @@ 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')),
+ ('id', models.UUIDField(default=uuid_utils.compat.uuid7, editable=False, primary_key=True, serialize=False, verbose_name='主键id')),
('name', models.CharField(max_length=128, verbose_name='名称')),
- ('status', models.CharField(choices=[('SUCCESS', '成功'), ('ERROR', '失败'), ('DOWNLOAD', '下载中'),
- ('PAUSE_DOWNLOAD', '暂停下载')], default='SUCCESS', max_length=20,
- verbose_name='设置类型')),
+ ('status', models.CharField(choices=[('SUCCESS', '成功'), ('ERROR', '失败'), ('DOWNLOAD', '下载中'), ('PAUSE_DOWNLOAD', '暂停下载')], default='SUCCESS', max_length=20, verbose_name='设置类型')),
('model_type', models.CharField(max_length=128, verbose_name='模型类型')),
('model_name', models.CharField(max_length=128, verbose_name='模型名称')),
('provider', models.CharField(max_length=128, verbose_name='供应商')),
('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(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')),
+ ('workspace_id', models.CharField(db_index=True, default='default', max_length=64, verbose_name='工作空间id')),
+ ('user', models.ForeignKey(blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.SET_NULL, to='users.user')),
],
options={
'db_table': 'model',
- 'unique_together': {('name', 'user_id')},
+ 'unique_together': {('name', 'workspace_id')},
},
),
migrations.RunPython(save_default_embedding_model),
diff --git a/apps/models_provider/migrations/0002_alter_model_unique_together_alter_model_user.py b/apps/models_provider/migrations/0002_alter_model_unique_together_alter_model_user.py
deleted file mode 100644
index 7eeb4e73c..000000000
--- a/apps/models_provider/migrations/0002_alter_model_unique_together_alter_model_user.py
+++ /dev/null
@@ -1,24 +0,0 @@
-# Generated by Django 5.2.3 on 2025-06-26 03:39
-
-import django.db.models.deletion
-from django.db import migrations, models
-
-
-class Migration(migrations.Migration):
-
- dependencies = [
- ('models_provider', '0001_initial'),
- ('users', '0001_initial'),
- ]
-
- operations = [
- migrations.AlterUniqueTogether(
- name='model',
- unique_together={('name', 'workspace_id')},
- ),
- migrations.AlterField(
- model_name='model',
- name='user',
- field=models.ForeignKey(blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.SET_NULL, to='users.user'),
- ),
- ]
diff --git a/apps/system_manage/migrations/0001_initial.py b/apps/system_manage/migrations/0001_initial.py
index 1b4296ed5..5078e3ff4 100644
--- a/apps/system_manage/migrations/0001_initial.py
+++ b/apps/system_manage/migrations/0001_initial.py
@@ -1,9 +1,8 @@
-# Generated by Django 5.2.3 on 2025-06-23 02:14
+# Generated by Django 5.2.4 on 2025-07-13 06:33
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
@@ -53,13 +52,13 @@ class Migration(migrations.Migration):
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='授权目标')),
+ ('auth_target_type', models.CharField(choices=[('KNOWLEDGE', '知识库'), ('APPLICATION', '应用'), ('TOOL', '工具'), ('MODEL', '模型')], 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='工作空间下的用户')),
+ ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='users.user', verbose_name='工作空间下的用户')),
],
options={
'db_table': 'workspace_user_resource_permission',
diff --git a/apps/system_manage/migrations/0002_alter_workspaceuserresourcepermission_user.py b/apps/system_manage/migrations/0002_alter_workspaceuserresourcepermission_user.py
deleted file mode 100644
index 08a252c6b..000000000
--- a/apps/system_manage/migrations/0002_alter_workspaceuserresourcepermission_user.py
+++ /dev/null
@@ -1,20 +0,0 @@
-# Generated by Django 5.2.1 on 2025-06-24 10:02
-
-import django.db.models.deletion
-from django.db import migrations, models
-
-
-class Migration(migrations.Migration):
-
- dependencies = [
- ('system_manage', '0001_initial'),
- ('users', '0001_initial'),
- ]
-
- operations = [
- migrations.AlterField(
- model_name='workspaceuserresourcepermission',
- name='user',
- field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='users.user', verbose_name='工作空间下的用户'),
- ),
- ]
diff --git a/apps/system_manage/migrations/0003_alter_workspaceuserresourcepermission_auth_target_type.py b/apps/system_manage/migrations/0003_alter_workspaceuserresourcepermission_auth_target_type.py
deleted file mode 100644
index 8673e5a51..000000000
--- a/apps/system_manage/migrations/0003_alter_workspaceuserresourcepermission_auth_target_type.py
+++ /dev/null
@@ -1,18 +0,0 @@
-# Generated by Django 5.2.3 on 2025-06-26 09:44
-
-from django.db import migrations, models
-
-
-class Migration(migrations.Migration):
-
- dependencies = [
- ('system_manage', '0002_alter_workspaceuserresourcepermission_user'),
- ]
-
- operations = [
- migrations.AlterField(
- model_name='workspaceuserresourcepermission',
- name='auth_target_type',
- field=models.CharField(choices=[('KNOWLEDGE', '知识库'), ('APPLICATION', '应用'), ('TOOL', '工具'), ('MODEL', '模型')], default='KNOWLEDGE', max_length=128, verbose_name='授权目标'),
- ),
- ]
diff --git a/apps/tools/migrations/0001_initial.py b/apps/tools/migrations/0001_initial.py
index 67b2b2cd0..883847d74 100644
--- a/apps/tools/migrations/0001_initial.py
+++ b/apps/tools/migrations/0001_initial.py
@@ -39,7 +39,7 @@ class Migration(migrations.Migration):
('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='tools.toolfolder')),
- ('user', models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, to='users.user', verbose_name='用户id')),
+ ('user', models.ForeignKey(blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.SET_NULL, to='users.user')),
],
options={
'db_table': 'tool_folder',
@@ -65,7 +65,7 @@ class Migration(migrations.Migration):
('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')),
+ ('user', models.ForeignKey(blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.SET_NULL, to='users.user')),
('folder', models.ForeignKey(default='default', on_delete=django.db.models.deletion.DO_NOTHING, to='tools.toolfolder', verbose_name='文件夹id')),
],
options={
diff --git a/apps/tools/migrations/0002_alter_tool_user_alter_toolfolder_user.py b/apps/tools/migrations/0002_alter_tool_user_alter_toolfolder_user.py
deleted file mode 100644
index c7bd1db8b..000000000
--- a/apps/tools/migrations/0002_alter_tool_user_alter_toolfolder_user.py
+++ /dev/null
@@ -1,25 +0,0 @@
-# Generated by Django 5.2.3 on 2025-07-04 07:03
-
-import django.db.models.deletion
-from django.db import migrations, models
-
-
-class Migration(migrations.Migration):
-
- dependencies = [
- ('tools', '0001_initial'),
- ('users', '0001_initial'),
- ]
-
- operations = [
- migrations.AlterField(
- model_name='tool',
- name='user',
- field=models.ForeignKey(blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.SET_NULL, to='users.user'),
- ),
- migrations.AlterField(
- model_name='toolfolder',
- name='user',
- field=models.ForeignKey(blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.SET_NULL, to='users.user'),
- ),
- ]
diff --git a/apps/users/migrations/0001_initial.py b/apps/users/migrations/0001_initial.py
index fb7ee6815..0d389d99f 100644
--- a/apps/users/migrations/0001_initial.py
+++ b/apps/users/migrations/0001_initial.py
@@ -1,4 +1,4 @@
-# Generated by Django 5.2.3 on 2025-06-23 02:14
+# Generated by Django 5.2.4 on 2025-07-13 06:33
import uuid_utils.compat
from django.db import migrations, models
@@ -20,6 +20,7 @@ def insert_default_data(apps, schema_editor):
class Migration(migrations.Migration):
+
initial = True
dependencies = [
@@ -29,9 +30,7 @@ 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(max_length=150, unique=True, verbose_name='昵称')),