0001_initial.py 3.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. # Generated by Django 5.2.3 on 2025-06-23 02:14
  2. import json
  3. import django.db.models.deletion
  4. import uuid_utils.compat
  5. from django.db import migrations, models
  6. from common.utils.rsa_util import rsa_long_encrypt
  7. from maxkb.const import CONFIG
  8. from models_provider.models import Status
  9. default_embedding_model_id = '42f63a3d-427e-11ef-b3ec-a8a1595801ab'
  10. def save_default_embedding_model(apps, schema_editor):
  11. ModelModel = apps.get_model('models_provider', 'Model')
  12. cache_folder = CONFIG.get('EMBEDDING_MODEL_PATH')
  13. model_name = CONFIG.get('EMBEDDING_MODEL_NAME', 'text2vec')
  14. credential = {'cache_folder': cache_folder}
  15. model_credential_str = json.dumps(credential)
  16. model = ModelModel(id=default_embedding_model_id, name='maxkb-embedding', status=Status.SUCCESS,
  17. model_type="EMBEDDING", model_name=model_name, user_id='f0dd8f71-e4ee-11ee-8c84-a8a1595801ab',
  18. provider='model_local_provider',
  19. credential=rsa_long_encrypt(model_credential_str), meta={},
  20. workspace_id='default')
  21. model.save()
  22. class Migration(migrations.Migration):
  23. initial = True
  24. dependencies = [
  25. ('users', '0001_initial'),
  26. ('system_manage', '0001_initial'),
  27. ]
  28. operations = [
  29. migrations.CreateModel(
  30. name='Model',
  31. fields=[
  32. ('create_time', models.DateTimeField(auto_now_add=True, db_index=True, verbose_name='创建时间')),
  33. ('update_time', models.DateTimeField(auto_now=True, db_index=True, verbose_name='修改时间')),
  34. ('id', models.UUIDField(default=uuid_utils.compat.uuid7, editable=False, primary_key=True, serialize=False, verbose_name='主键id')),
  35. ('name', models.CharField(db_index=True, max_length=128, verbose_name='名称')),
  36. ('status', models.CharField(choices=[('SUCCESS', '成功'), ('ERROR', '失败'), ('DOWNLOAD', '下载中'), ('PAUSE_DOWNLOAD', '暂停下载')], db_index=True, default='SUCCESS', max_length=20, verbose_name='设置类型')),
  37. ('model_type', models.CharField(db_index=True, max_length=128, verbose_name='模型类型')),
  38. ('model_name', models.CharField(db_index=True, max_length=128, verbose_name='模型名称')),
  39. ('provider', models.CharField(db_index=True, max_length=128, verbose_name='供应商')),
  40. ('credential', models.CharField(max_length=102400, verbose_name='模型认证信息')),
  41. ('meta', models.JSONField(default=dict, verbose_name='模型元数据,用于存储下载,或者错误信息')),
  42. ('model_params_form', models.JSONField(default=list, verbose_name='模型参数配置')),
  43. ('workspace_id', models.CharField(db_index=True, default='default', max_length=64, verbose_name='工作空间id')),
  44. ('user', models.ForeignKey(blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.SET_NULL, to='users.user')),
  45. ],
  46. options={
  47. 'db_table': 'model',
  48. 'unique_together': {('name', 'workspace_id')},
  49. },
  50. ),
  51. migrations.RunPython(save_default_embedding_model),
  52. ]