MaxKB/apps/application/migrations/0001_initial.py
2025-05-27 18:24:28 +08:00

178 lines
12 KiB
Python

# Generated by Django 5.2 on 2025-05-27 07:50
from django.db.models import QuerySet
import application.models.application
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
def insert_default_data(apps, schema_editor):
# 创建一个根模块(没有父节点)
QuerySet(application.models.application.ApplicationFolder).create(id='root', name='根目录',
user_id='f0dd8f71-e4ee-11ee-8c84-a8a1595801ab')
class Migration(migrations.Migration):
initial = True
dependencies = [
('knowledge', '0001_initial'),
('models_provider', '0001_initial'),
('users', '0002_alter_user_nick_name'),
]
operations = [
migrations.CreateModel(
name='Application',
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')),
('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='模型参数相关设置')),
('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='问题优化提示词')),
('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='文件上传相关设置')),
('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={
'db_table': 'application',
},
),
migrations.CreateModel(
name='ApplicationAccessToken',
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')),
('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='白名单列表')),
('show_source', models.BooleanField(default=False, verbose_name='是否显示知识来源')),
('language', models.CharField(default=None, max_length=10, null=True, verbose_name='语言')),
],
options={
'db_table': 'application_access_token',
},
),
migrations.CreateModel(
name='ApplicationApiKey',
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')),
('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')),
('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')),
],
options={
'db_table': 'application_api_key',
},
),
migrations.CreateModel(
name='ApplicationFolder',
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')),
('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')),
('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')),
],
options={
'db_table': 'application_folder',
},
),
migrations.AddField(
model_name='application',
name='folder',
field=models.ForeignKey(default='root', 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')),
],
options={
'db_table': 'application_knowledge_mapping',
},
),
migrations.RunPython(insert_default_data)
]