diff --git a/apps/application/migrations/0001_initial.py b/apps/application/migrations/0001_initial.py index 6cec518ad..d7b627a46 100644 --- a/apps/application/migrations/0001_initial.py +++ b/apps/application/migrations/0001_initial.py @@ -1,5 +1,6 @@ -# Generated by Django 4.1.10 on 2023-12-14 04:11 +# Generated by Django 4.1.10 on 2024-03-18 16:02 +import application.models.application import django.contrib.postgres.fields from django.db import migrations, models import django.db.models.deletion @@ -11,8 +12,8 @@ class Migration(migrations.Migration): initial = True dependencies = [ - ('setting', '0001_initial'), ('dataset', '0001_initial'), + ('setting', '0001_initial'), ('users', '0001_initial'), ] @@ -24,10 +25,12 @@ class Migration(migrations.Migration): ('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')), ('name', models.CharField(max_length=128, verbose_name='应用名称')), - ('desc', models.CharField(default='', max_length=128, verbose_name='引用描述')), + ('desc', models.CharField(default='', max_length=512, verbose_name='引用描述')), ('prologue', models.CharField(default='', max_length=1024, verbose_name='开场白')), - ('example', django.contrib.postgres.fields.ArrayField(base_field=models.CharField(blank=True, max_length=256), default=list, size=None, verbose_name='示例列表')), ('dialogue_number', models.IntegerField(default=0, verbose_name='会话数量')), + ('dataset_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='模型参数相关设置')), + ('problem_optimization', models.BooleanField(default=False, verbose_name='问题优化')), ('model', models.ForeignKey(blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.SET_NULL, to='setting.model')), ('user', models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, to='users.user')), ], @@ -56,6 +59,9 @@ class Migration(migrations.Migration): ('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='白名单列表')), ], options={ 'db_table': 'application_access_token', @@ -68,22 +74,35 @@ class Migration(migrations.Migration): ('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')), ('vote_status', models.CharField(choices=[('-1', '未投票'), ('0', '赞同'), ('1', '反对')], default='-1', max_length=10, verbose_name='投票')), - ('source_id', models.UUIDField(null=True, verbose_name='资源id 段落/问题 id ')), - ('source_type', models.CharField(blank=True, choices=[('0', '问题'), ('1', '段落')], default='0', max_length=2, null=True, verbose_name='资源类型')), + ('problem_text', models.CharField(max_length=1024, verbose_name='问题')), + ('answer_text', models.CharField(max_length=4096, verbose_name='答案')), ('message_tokens', models.IntegerField(default=0, verbose_name='请求token数量')), ('answer_tokens', models.IntegerField(default=0, verbose_name='响应token数量')), - ('problem_text', models.CharField(max_length=1024, verbose_name='问题')), - ('answer_text', models.CharField(max_length=1024, verbose_name='答案')), + ('const', models.IntegerField(default=0, verbose_name='总费用')), + ('details', models.JSONField(default=dict, 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')), - ('dataset', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='dataset.dataset', verbose_name='知识库')), - ('paragraph', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='dataset.paragraph', verbose_name='段落id')), ], options={ 'db_table': 'application_chat_record', }, ), + 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(primary_key=True, serialize=False, verbose_name='公共访问链接客户端id')), + ('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', + }, + ), migrations.CreateModel( name='ApplicationDatasetMapping', fields=[ diff --git a/apps/application/migrations/0002_alter_chatrecord_dataset.py b/apps/application/migrations/0002_alter_chatrecord_dataset.py deleted file mode 100644 index cd737e657..000000000 --- a/apps/application/migrations/0002_alter_chatrecord_dataset.py +++ /dev/null @@ -1,20 +0,0 @@ -# Generated by Django 4.1.10 on 2023-12-28 15:16 - -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - ('dataset', '0002_dataset_meta_dataset_type_document_meta_and_more'), - ('application', '0001_initial'), - ] - - operations = [ - migrations.AlterField( - model_name='chatrecord', - name='dataset', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='dataset.dataset', verbose_name='数据集'), - ), - ] diff --git a/apps/application/migrations/0003_remove_chatrecord_dataset_and_more.py b/apps/application/migrations/0003_remove_chatrecord_dataset_and_more.py deleted file mode 100644 index ec041426f..000000000 --- a/apps/application/migrations/0003_remove_chatrecord_dataset_and_more.py +++ /dev/null @@ -1,55 +0,0 @@ -# Generated by Django 4.1.10 on 2024-01-12 18:46 - -import django.contrib.postgres.fields -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('application', '0002_alter_chatrecord_dataset'), - ] - - operations = [ - migrations.RemoveField( - model_name='chatrecord', - name='dataset', - ), - migrations.RemoveField( - model_name='chatrecord', - name='paragraph', - ), - migrations.RemoveField( - model_name='chatrecord', - name='source_id', - ), - migrations.RemoveField( - model_name='chatrecord', - name='source_type', - ), - migrations.AddField( - model_name='chatrecord', - name='const', - field=models.IntegerField(default=0, verbose_name='总费用'), - ), - migrations.AddField( - model_name='chatrecord', - name='details', - field=models.JSONField(default=list, verbose_name='对话详情'), - ), - migrations.AddField( - model_name='chatrecord', - name='paragraph_id_list', - field=django.contrib.postgres.fields.ArrayField(base_field=models.UUIDField(blank=True), default=list, size=None, verbose_name='引用段落id列表'), - ), - migrations.AddField( - model_name='chatrecord', - name='run_time', - field=models.FloatField(default=0, verbose_name='运行时长'), - ), - migrations.AlterField( - model_name='chatrecord', - name='answer_text', - field=models.CharField(max_length=4096, verbose_name='答案'), - ), - ] diff --git a/apps/application/migrations/0004_remove_application_example_and_more.py b/apps/application/migrations/0004_remove_application_example_and_more.py deleted file mode 100644 index 02647f80e..000000000 --- a/apps/application/migrations/0004_remove_application_example_and_more.py +++ /dev/null @@ -1,38 +0,0 @@ -# Generated by Django 4.1.10 on 2024-01-15 16:07 - -import application.models.application -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('application', '0003_remove_chatrecord_dataset_and_more'), - ] - - operations = [ - migrations.RemoveField( - model_name='application', - name='example', - ), - migrations.AddField( - model_name='application', - name='dataset_setting', - field=models.JSONField(default=application.models.application.get_dataset_setting_dict, verbose_name='数据集参数设置'), - ), - migrations.AddField( - model_name='application', - name='model_setting', - field=models.JSONField(default=application.models.application.get_model_setting_dict, verbose_name='模型参数相关设置'), - ), - migrations.AddField( - model_name='application', - name='problem_optimization', - field=models.BooleanField(default=False, verbose_name='问题优化'), - ), - migrations.AlterField( - model_name='chatrecord', - name='details', - field=models.JSONField(default={}, verbose_name='对话详情'), - ), - ] diff --git a/apps/application/migrations/0005_alter_chatrecord_details.py b/apps/application/migrations/0005_alter_chatrecord_details.py deleted file mode 100644 index 5deb1e1a1..000000000 --- a/apps/application/migrations/0005_alter_chatrecord_details.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 4.1.10 on 2024-01-16 11:22 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('application', '0004_remove_application_example_and_more'), - ] - - operations = [ - migrations.AlterField( - model_name='chatrecord', - name='details', - field=models.JSONField(default=dict, verbose_name='对话详情'), - ), - ] diff --git a/apps/application/migrations/0006_remove_chatrecord_paragraph_id_list.py b/apps/application/migrations/0006_remove_chatrecord_paragraph_id_list.py deleted file mode 100644 index 86a785731..000000000 --- a/apps/application/migrations/0006_remove_chatrecord_paragraph_id_list.py +++ /dev/null @@ -1,17 +0,0 @@ -# Generated by Django 4.1.10 on 2024-01-19 14:02 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('application', '0005_alter_chatrecord_details'), - ] - - operations = [ - migrations.RemoveField( - model_name='chatrecord', - name='paragraph_id_list', - ), - ] diff --git a/apps/application/migrations/0007_alter_application_desc.py b/apps/application/migrations/0007_alter_application_desc.py deleted file mode 100644 index 65b7b668c..000000000 --- a/apps/application/migrations/0007_alter_application_desc.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 4.1.10 on 2024-03-06 18:13 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('application', '0006_remove_chatrecord_paragraph_id_list'), - ] - - operations = [ - migrations.AlterField( - model_name='application', - name='desc', - field=models.CharField(default='', max_length=512, verbose_name='引用描述'), - ), - ] diff --git a/apps/application/migrations/0008_applicationaccesstoken_access_num_and_more.py b/apps/application/migrations/0008_applicationaccesstoken_access_num_and_more.py deleted file mode 100644 index eb387a422..000000000 --- a/apps/application/migrations/0008_applicationaccesstoken_access_num_and_more.py +++ /dev/null @@ -1,29 +0,0 @@ -# Generated by Django 4.1.10 on 2024-03-12 17:11 - -import django.contrib.postgres.fields -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('application', '0007_alter_application_desc'), - ] - - operations = [ - migrations.AddField( - model_name='applicationaccesstoken', - name='access_num', - field=models.IntegerField(default=100, verbose_name='访问次数'), - ), - migrations.AddField( - model_name='applicationaccesstoken', - name='white_active', - field=models.BooleanField(default=False, verbose_name='是否开启白名单'), - ), - migrations.AddField( - model_name='applicationaccesstoken', - name='white_list', - field=django.contrib.postgres.fields.ArrayField(base_field=models.CharField(blank=True, max_length=128), default=list, size=None, verbose_name='白名单列表'), - ), - ] diff --git a/apps/application/migrations/0009_applicationpublicaccessclient.py b/apps/application/migrations/0009_applicationpublicaccessclient.py deleted file mode 100644 index 7c9553303..000000000 --- a/apps/application/migrations/0009_applicationpublicaccessclient.py +++ /dev/null @@ -1,28 +0,0 @@ -# Generated by Django 4.1.10 on 2024-03-14 05:03 - -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - ('application', '0008_applicationaccesstoken_access_num_and_more'), - ] - - operations = [ - 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(primary_key=True, serialize=False, verbose_name='公共访问链接客户端id')), - ('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', - }, - ), - ] diff --git a/apps/common/field/vector_field.py b/apps/common/field/vector_field.py index 5466659dc..591619839 100644 --- a/apps/common/field/vector_field.py +++ b/apps/common/field/vector_field.py @@ -5,3 +5,8 @@ class VectorField(models.Field): def db_type(self, connection): return 'vector' + + +class TsVectorField(models.Field): + def db_type(self, connection): + return 'tsvector' diff --git a/apps/dataset/migrations/0001_initial.py b/apps/dataset/migrations/0001_initial.py index 50b72f1dd..e19fc6b42 100644 --- a/apps/dataset/migrations/0001_initial.py +++ b/apps/dataset/migrations/0001_initial.py @@ -1,4 +1,4 @@ -# Generated by Django 4.1.10 on 2023-12-14 04:11 +# Generated by Django 4.1.10 on 2024-03-18 16:02 from django.db import migrations, models import django.db.models.deletion @@ -20,8 +20,10 @@ 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.uuid1, editable=False, primary_key=True, serialize=False, verbose_name='主键id')), - ('name', models.CharField(max_length=150, verbose_name='知识库名称')), + ('name', models.CharField(max_length=150, verbose_name='数据集名称')), ('desc', models.CharField(max_length=256, verbose_name='数据库描述')), + ('type', models.CharField(choices=[('0', '通用类型'), ('1', 'web站点类型')], default='0', max_length=1, verbose_name='类型')), + ('meta', models.JSONField(default=dict, verbose_name='元数据')), ('user', models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, to='users.user', verbose_name='所属用户')), ], options={ @@ -38,6 +40,8 @@ class Migration(migrations.Migration): ('char_length', models.IntegerField(verbose_name='文档字符数 冗余字段')), ('status', models.CharField(choices=[('0', '导入中'), ('1', '已完成'), ('2', '导入失败')], default='0', max_length=1, verbose_name='状态')), ('is_active', models.BooleanField(default=True)), + ('type', models.CharField(choices=[('0', '通用类型'), ('1', 'web站点类型')], default='0', max_length=1, verbose_name='类型')), + ('meta', models.JSONField(default=dict, verbose_name='元数据')), ('dataset', models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, to='dataset.dataset')), ], options={ @@ -50,12 +54,10 @@ 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.uuid1, editable=False, primary_key=True, serialize=False, verbose_name='主键id')), - ('content', models.CharField(max_length=1024, verbose_name='段落内容')), + ('content', models.CharField(max_length=4096, verbose_name='段落内容')), ('title', models.CharField(default='', max_length=256, verbose_name='标题')), - ('hit_num', models.IntegerField(default=0, verbose_name='命中数量')), - ('star_num', models.IntegerField(default=0, verbose_name='点赞数')), - ('trample_num', models.IntegerField(default=0, verbose_name='点踩数')), ('status', models.CharField(choices=[('0', '导入中'), ('1', '已完成'), ('2', '导入失败')], default='0', max_length=1, verbose_name='状态')), + ('hit_num', models.IntegerField(default=0, verbose_name='命中次数')), ('is_active', models.BooleanField(default=True)), ('dataset', models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, to='dataset.dataset')), ('document', models.ForeignKey(db_constraint=False, on_delete=django.db.models.deletion.DO_NOTHING, to='dataset.document')), @@ -71,15 +73,26 @@ class Migration(migrations.Migration): ('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')), ('content', models.CharField(max_length=256, verbose_name='问题内容')), - ('hit_num', models.IntegerField(default=0, verbose_name='命中数量')), - ('star_num', models.IntegerField(default=0, verbose_name='点赞数')), - ('trample_num', models.IntegerField(default=0, verbose_name='点踩数')), + ('hit_num', models.IntegerField(default=0, verbose_name='命中次数')), ('dataset', models.ForeignKey(db_constraint=False, on_delete=django.db.models.deletion.DO_NOTHING, to='dataset.dataset')), - ('document', models.ForeignKey(db_constraint=False, on_delete=django.db.models.deletion.DO_NOTHING, to='dataset.document')), - ('paragraph', models.ForeignKey(db_constraint=False, on_delete=django.db.models.deletion.DO_NOTHING, to='dataset.paragraph')), ], options={ 'db_table': 'problem', }, ), + migrations.CreateModel( + name='ProblemParagraphMapping', + 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')), + ('dataset', models.ForeignKey(db_constraint=False, on_delete=django.db.models.deletion.DO_NOTHING, to='dataset.dataset')), + ('document', models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, to='dataset.document')), + ('paragraph', models.ForeignKey(db_constraint=False, on_delete=django.db.models.deletion.DO_NOTHING, to='dataset.paragraph')), + ('problem', models.ForeignKey(db_constraint=False, on_delete=django.db.models.deletion.DO_NOTHING, to='dataset.problem')), + ], + options={ + 'db_table': 'problem_paragraph_mapping', + }, + ), ] diff --git a/apps/dataset/migrations/0002_dataset_meta_dataset_type_document_meta_and_more.py b/apps/dataset/migrations/0002_dataset_meta_dataset_type_document_meta_and_more.py deleted file mode 100644 index 10513a944..000000000 --- a/apps/dataset/migrations/0002_dataset_meta_dataset_type_document_meta_and_more.py +++ /dev/null @@ -1,38 +0,0 @@ -# Generated by Django 4.1.10 on 2023-12-28 15:16 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('dataset', '0001_initial'), - ] - - operations = [ - migrations.AddField( - model_name='dataset', - name='meta', - field=models.JSONField(default=dict, verbose_name='元数据'), - ), - migrations.AddField( - model_name='dataset', - name='type', - field=models.CharField(choices=[('0', '通用类型'), ('1', 'web站点类型')], default='0', max_length=1, verbose_name='类型'), - ), - migrations.AddField( - model_name='document', - name='meta', - field=models.JSONField(default=dict, verbose_name='元数据'), - ), - migrations.AddField( - model_name='document', - name='type', - field=models.CharField(choices=[('0', '通用类型'), ('1', 'web站点类型')], default='0', max_length=1, verbose_name='类型'), - ), - migrations.AlterField( - model_name='dataset', - name='name', - field=models.CharField(max_length=150, verbose_name='数据集名称'), - ), - ] diff --git a/apps/dataset/migrations/0003_alter_paragraph_content.py b/apps/dataset/migrations/0003_alter_paragraph_content.py deleted file mode 100644 index 4ab7aaaab..000000000 --- a/apps/dataset/migrations/0003_alter_paragraph_content.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 4.1.10 on 2023-12-29 17:49 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('dataset', '0002_dataset_meta_dataset_type_document_meta_and_more'), - ] - - operations = [ - migrations.AlterField( - model_name='paragraph', - name='content', - field=models.CharField(max_length=4096, verbose_name='段落内容'), - ), - ] diff --git a/apps/dataset/migrations/0004_remove_paragraph_hit_num_remove_paragraph_star_num_and_more.py b/apps/dataset/migrations/0004_remove_paragraph_hit_num_remove_paragraph_star_num_and_more.py deleted file mode 100644 index 3440fa39f..000000000 --- a/apps/dataset/migrations/0004_remove_paragraph_hit_num_remove_paragraph_star_num_and_more.py +++ /dev/null @@ -1,37 +0,0 @@ -# Generated by Django 4.1.10 on 2024-01-16 11:22 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('dataset', '0003_alter_paragraph_content'), - ] - - operations = [ - migrations.RemoveField( - model_name='paragraph', - name='hit_num', - ), - migrations.RemoveField( - model_name='paragraph', - name='star_num', - ), - migrations.RemoveField( - model_name='paragraph', - name='trample_num', - ), - migrations.RemoveField( - model_name='problem', - name='hit_num', - ), - migrations.RemoveField( - model_name='problem', - name='star_num', - ), - migrations.RemoveField( - model_name='problem', - name='trample_num', - ), - ] diff --git a/apps/dataset/migrations/0005_remove_problem_document_remove_problem_paragraph_and_more.py b/apps/dataset/migrations/0005_remove_problem_document_remove_problem_paragraph_and_more.py deleted file mode 100644 index 472e0a4ad..000000000 --- a/apps/dataset/migrations/0005_remove_problem_document_remove_problem_paragraph_and_more.py +++ /dev/null @@ -1,53 +0,0 @@ -# Generated by Django 4.1.10 on 2024-03-08 18:29 - -from django.db import migrations, models -import django.db.models.deletion -import uuid - -from embedding.models import SourceType - - -class Migration(migrations.Migration): - dependencies = [ - ('dataset', '0004_remove_paragraph_hit_num_remove_paragraph_star_num_and_more'), - ] - - operations = [ - migrations.RemoveField( - model_name='problem', - name='document', - ), - migrations.RemoveField( - model_name='problem', - name='paragraph', - ), - migrations.AddField( - model_name='paragraph', - name='hit_num', - field=models.IntegerField(default=0, verbose_name='命中次数'), - ), - migrations.AddField( - model_name='problem', - name='hit_num', - field=models.IntegerField(default=0, verbose_name='命中次数'), - ), - migrations.CreateModel( - name='ProblemParagraphMapping', - 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')), - ('dataset', models.ForeignKey(db_constraint=False, on_delete=django.db.models.deletion.DO_NOTHING, - to='dataset.dataset')), - ('document', models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, to='dataset.document')), - ('paragraph', models.ForeignKey(db_constraint=False, on_delete=django.db.models.deletion.DO_NOTHING, - to='dataset.paragraph')), - ('problem', models.ForeignKey(db_constraint=False, on_delete=django.db.models.deletion.DO_NOTHING, - to='dataset.problem')), - ], - options={ - 'db_table': 'problem_paragraph_mapping', - }, - ), - ] diff --git a/apps/embedding/migrations/0001_initial.py b/apps/embedding/migrations/0001_initial.py index 7c1dcce98..82e850e1f 100644 --- a/apps/embedding/migrations/0001_initial.py +++ b/apps/embedding/migrations/0001_initial.py @@ -1,4 +1,4 @@ -# Generated by Django 4.1.10 on 2023-12-14 04:11 +# Generated by Django 4.1.10 on 2024-03-18 17:48 import common.field.vector_field from django.db import migrations, models @@ -19,11 +19,10 @@ class Migration(migrations.Migration): fields=[ ('id', models.CharField(max_length=128, primary_key=True, serialize=False, verbose_name='主键id')), ('source_id', models.CharField(max_length=128, verbose_name='资源id')), - ('source_type', models.CharField(choices=[('0', '问题'), ('1', '段落')], default='0', max_length=5, verbose_name='资源类型')), + ('source_type', models.CharField(choices=[('0', '问题'), ('1', '段落'), ('2', '标题')], default='0', max_length=5, verbose_name='资源类型')), ('is_active', models.BooleanField(default=True, max_length=1, verbose_name='是否可用')), ('embedding', common.field.vector_field.VectorField(verbose_name='向量')), - ('star_num', models.IntegerField(default=0, verbose_name='点赞数量')), - ('trample_num', models.IntegerField(default=0, verbose_name='点踩数量')), + ('meta', models.JSONField(default=dict, verbose_name='元数据')), ('dataset', models.ForeignKey(db_constraint=False, on_delete=django.db.models.deletion.DO_NOTHING, to='dataset.dataset', verbose_name='文档关联')), ('document', models.ForeignKey(db_constraint=False, on_delete=django.db.models.deletion.DO_NOTHING, to='dataset.document', verbose_name='文档关联')), ('paragraph', models.ForeignKey(db_constraint=False, on_delete=django.db.models.deletion.DO_NOTHING, to='dataset.paragraph', verbose_name='段落关联')), diff --git a/apps/embedding/migrations/0002_remove_embedding_star_num_and_more.py b/apps/embedding/migrations/0002_remove_embedding_star_num_and_more.py deleted file mode 100644 index 5597c78b9..000000000 --- a/apps/embedding/migrations/0002_remove_embedding_star_num_and_more.py +++ /dev/null @@ -1,37 +0,0 @@ -# Generated by Django 4.1.10 on 2024-01-16 11:22 - -import django.contrib.postgres.fields -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('embedding', '0001_initial'), - ] - - operations = [ - migrations.RemoveField( - model_name='embedding', - name='star_num', - ), - migrations.RemoveField( - model_name='embedding', - name='trample_num', - ), - migrations.AddField( - model_name='embedding', - name='keywords', - field=django.contrib.postgres.fields.ArrayField(base_field=models.CharField(max_length=256), default=list, size=None, verbose_name='关键词列表'), - ), - migrations.AddField( - model_name='embedding', - name='meta', - field=models.JSONField(default=dict, verbose_name='元数据'), - ), - migrations.AlterField( - model_name='embedding', - name='source_type', - field=models.CharField(choices=[('0', '问题'), ('1', '段落'), ('2', '标题')], default='0', max_length=5, verbose_name='资源类型'), - ), - ] diff --git a/apps/embedding/models/embedding.py b/apps/embedding/models/embedding.py index caa6d7247..f7cc6bf31 100644 --- a/apps/embedding/models/embedding.py +++ b/apps/embedding/models/embedding.py @@ -6,7 +6,6 @@ @date:2023/9/21 15:46 @desc: """ -from django.contrib.postgres.fields import ArrayField from django.db import models from common.field.vector_field import VectorField @@ -38,9 +37,6 @@ class Embedding(models.Model): embedding = VectorField(verbose_name="向量") - keywords = ArrayField(verbose_name="关键词列表", - base_field=models.CharField(max_length=256), default=list) - meta = models.JSONField(verbose_name="元数据", default=dict) class Meta: diff --git a/apps/embedding/vector/pg_vector.py b/apps/embedding/vector/pg_vector.py index e2abe9509..09af84639 100644 --- a/apps/embedding/vector/pg_vector.py +++ b/apps/embedding/vector/pg_vector.py @@ -11,6 +11,7 @@ import os import uuid from typing import Dict, List +from django.contrib.postgres.search import SearchVector from django.db.models import QuerySet from langchain_community.embeddings import HuggingFaceEmbeddings diff --git a/apps/setting/migrations/0001_initial.py b/apps/setting/migrations/0001_initial.py index 87c4b1167..f6900dcc3 100644 --- a/apps/setting/migrations/0001_initial.py +++ b/apps/setting/migrations/0001_initial.py @@ -1,4 +1,4 @@ -# Generated by Django 4.1.10 on 2023-12-14 04:11 +# Generated by Django 4.1.10 on 2024-03-18 16:02 import django.contrib.postgres.fields from django.db import migrations, models @@ -6,8 +6,12 @@ import django.db.models.deletion import uuid -class Migration(migrations.Migration): +def insert_default_data(apps, schema_editor): + TeamModel = apps.get_model('setting', 'Team') + TeamModel.objects.create(user_id='f0dd8f71-e4ee-11ee-8c84-a8a1595801ab', name='admin的团队') + +class Migration(migrations.Migration): initial = True dependencies = [ @@ -20,21 +24,27 @@ class Migration(migrations.Migration): fields=[ ('create_time', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')), ('update_time', models.DateTimeField(auto_now=True, verbose_name='修改时间')), - ('user', models.OneToOneField(on_delete=django.db.models.deletion.DO_NOTHING, primary_key=True, serialize=False, to='users.user', verbose_name='团队所有者')), + ('user', + models.OneToOneField(on_delete=django.db.models.deletion.DO_NOTHING, primary_key=True, serialize=False, + to='users.user', verbose_name='团队所有者')), ('name', models.CharField(max_length=128, verbose_name='团队名称')), ], options={ 'db_table': 'team', }, ), + migrations.RunPython(insert_default_data), migrations.CreateModel( name='TeamMember', 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')), - ('team', models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, to='setting.team', verbose_name='团队id')), - ('user', models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, to='users.user', verbose_name='成员用户id')), + ('id', models.UUIDField(default=uuid.uuid1, editable=False, primary_key=True, serialize=False, + verbose_name='主键id')), + ('team', models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, to='setting.team', + verbose_name='团队id')), + ('user', models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, to='users.user', + verbose_name='成员用户id')), ], options={ 'db_table': 'team_member', @@ -45,11 +55,18 @@ 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')), - ('auth_target_type', models.CharField(choices=[('DATASET', '知识库'), ('APPLICATION', '应用')], default='DATASET', max_length=128, verbose_name='授权目标')), - ('target', models.UUIDField(verbose_name='知识库/应用id')), - ('operate', django.contrib.postgres.fields.ArrayField(base_field=models.CharField(blank=True, choices=[('MANAGE', '管理'), ('USE', '使用')], default='USE', max_length=256), size=None, verbose_name='权限操作列表')), - ('member', models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, to='setting.teammember', verbose_name='团队成员')), + ('id', models.UUIDField(default=uuid.uuid1, editable=False, primary_key=True, serialize=False, + verbose_name='主键id')), + ('auth_target_type', + models.CharField(choices=[('DATASET', '数据集'), ('APPLICATION', '应用')], default='DATASET', + max_length=128, verbose_name='授权目标')), + ('target', models.UUIDField(verbose_name='数据集/应用id')), + ('operate', django.contrib.postgres.fields.ArrayField( + base_field=models.CharField(blank=True, choices=[('MANAGE', '管理'), ('USE', '使用')], + default='USE', max_length=256), size=None, + verbose_name='权限操作列表')), + ('member', models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, to='setting.teammember', + verbose_name='团队成员')), ], options={ 'db_table': 'team_member_permission', @@ -60,13 +77,15 @@ 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')), ('name', models.CharField(max_length=128, 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=5120, verbose_name='模型认证信息')), - ('user', models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, to='users.user', verbose_name='成员用户id')), + ('user', models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, to='users.user', + verbose_name='成员用户id')), ], options={ 'db_table': 'model', diff --git a/apps/setting/migrations/0002_alter_teammemberpermission_auth_target_type_and_more.py b/apps/setting/migrations/0002_alter_teammemberpermission_auth_target_type_and_more.py deleted file mode 100644 index d11f5bdad..000000000 --- a/apps/setting/migrations/0002_alter_teammemberpermission_auth_target_type_and_more.py +++ /dev/null @@ -1,23 +0,0 @@ -# Generated by Django 4.1.10 on 2023-12-28 15:16 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('setting', '0001_initial'), - ] - - operations = [ - migrations.AlterField( - model_name='teammemberpermission', - name='auth_target_type', - field=models.CharField(choices=[('DATASET', '数据集'), ('APPLICATION', '应用')], default='DATASET', max_length=128, verbose_name='授权目标'), - ), - migrations.AlterField( - model_name='teammemberpermission', - name='target', - field=models.UUIDField(verbose_name='数据集/应用id'), - ), - ] diff --git a/apps/users/migrations/0001_initial.py b/apps/users/migrations/0001_initial.py index 6a89d97e6..9565efa7d 100644 --- a/apps/users/migrations/0001_initial.py +++ b/apps/users/migrations/0001_initial.py @@ -1,11 +1,22 @@ -# Generated by Django 4.1.10 on 2023-12-14 04:11 +# Generated by Django 4.1.10 on 2024-03-18 16:02 from django.db import migrations, models import uuid +from common.constants.permission_constants import RoleConstants +from users.models import password_encrypt + + +def insert_default_data(apps, schema_editor): + UserModel = apps.get_model('users', 'User') + UserModel.objects.create(id='f0dd8f71-e4ee-11ee-8c84-a8a1595801ab', email='', username='admin', + nick_name="系统管理员", + password=password_encrypt('MaxKB@123..'), + role=RoleConstants.ADMIN.name, + is_active=True) + class Migration(migrations.Migration): - initial = True dependencies = [ @@ -15,8 +26,11 @@ class Migration(migrations.Migration): migrations.CreateModel( name='User', fields=[ - ('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')), ('email', models.EmailField(max_length=254, unique=True, verbose_name='邮箱')), + ('phone', models.CharField(default='', max_length=20, verbose_name='电话')), + ('nick_name', models.CharField(default='', max_length=150, 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='角色')), @@ -26,4 +40,5 @@ class Migration(migrations.Migration): 'db_table': 'user', }, ), + migrations.RunPython(insert_default_data) ] diff --git a/apps/users/migrations/0002_user_nick_name_user_phone.py b/apps/users/migrations/0002_user_nick_name_user_phone.py deleted file mode 100644 index ae449fc3c..000000000 --- a/apps/users/migrations/0002_user_nick_name_user_phone.py +++ /dev/null @@ -1,35 +0,0 @@ -# Generated by Django 4.1.10 on 2024-03-18 13:55 -import uuid - -from django.db import migrations, models - -from common.constants.permission_constants import RoleConstants -from users.models import password_encrypt - - -def insert_default_data(apps, schema_editor): - UserModel = apps.get_model('users', 'User') - UserModel.objects.create(id='f0dd8f71-e4ee-11ee-8c84-a8a1595801ab', email='', username='admin', nick_name="管理员", - password=password_encrypt('MaxKB@123..'), - role=RoleConstants.ADMIN.name, - is_active=True) - - -class Migration(migrations.Migration): - dependencies = [ - ('users', '0001_initial'), - ] - - operations = [ - migrations.AddField( - model_name='user', - name='nick_name', - field=models.CharField(default='', max_length=150, verbose_name='昵称'), - ), - migrations.AddField( - model_name='user', - name='phone', - field=models.CharField(default='', max_length=20, verbose_name='电话'), - ), - migrations.RunPython(insert_default_data) - ]