Download apps/core/migrations/0001_initial.py from jun2024/fc: direct link, hf CLI and curl.
- Browser
- Download file 13.8 kB
-
https://huggingface.co/spaces/jun2024/fc/resolve/main/apps/core/migrations/0001_initial.py
- Command line
-
hf download hf://spaces/jun2024/fc/apps/core/migrations/0001_initial.py
-
curl -L -o 0001_initial.py https://huggingface.co/spaces/jun2024/fc/resolve/main/apps/core/migrations/0001_initial.py
13.8 kB
| # Generated by Django 6.0.2 on 2026-02-28 17:10 | |
| import django.db.models.deletion | |
| from django.db import migrations, models | |
| class Migration(migrations.Migration): | |
| initial = True | |
| dependencies = [ | |
| ("litigation_ai", "0003_rename_documents_li_session_8e1f3a_idx_documents_l_session_07fff0_idx"), | |
| ] | |
| operations = [ | |
| migrations.CreateModel( | |
| name="PromptTemplate", | |
| fields=[ | |
| ("id", models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name="ID")), | |
| ("name", models.CharField(max_length=100, unique=True, verbose_name="模板名称")), | |
| ("title", models.CharField(max_length=200, verbose_name="显示标题")), | |
| ("template", models.TextField(verbose_name="模板内容")), | |
| ("description", models.TextField(blank=True, verbose_name="模板描述")), | |
| ("variables", models.JSONField(default=list, verbose_name="变量列表")), | |
| ("category", models.CharField(default="general", max_length=50, verbose_name="分类")), | |
| ("is_active", models.BooleanField(default=True, verbose_name="启用")), | |
| ("version", models.CharField(default="1.0", max_length=20, verbose_name="版本")), | |
| ("created_at", models.DateTimeField(auto_now_add=True, verbose_name="创建时间")), | |
| ("updated_at", models.DateTimeField(auto_now=True, verbose_name="更新时间")), | |
| ], | |
| options={ | |
| "verbose_name": "Prompt 模板", | |
| "verbose_name_plural": "Prompt 模板", | |
| "db_table": "core_prompt_template", | |
| "ordering": ["category", "name"], | |
| }, | |
| ), | |
| migrations.CreateModel( | |
| name="LLMCallRecord", | |
| fields=[ | |
| ("id", models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name="ID")), | |
| ("model", models.CharField(max_length=100, verbose_name="模型")), | |
| ("prompt_tokens", models.IntegerField(verbose_name="输入 Token")), | |
| ("completion_tokens", models.IntegerField(verbose_name="输出 Token")), | |
| ("total_tokens", models.IntegerField(verbose_name="总 Token")), | |
| ("duration_ms", models.FloatField(verbose_name="耗时(ms)")), | |
| ("created_at", models.DateTimeField(auto_now_add=True, verbose_name="调用时间")), | |
| ], | |
| options={ | |
| "verbose_name": "LLM 调用记录", | |
| "verbose_name_plural": "LLM 调用记录", | |
| "indexes": [ | |
| models.Index(fields=["created_at"], name="core_llmcal_created_830747_idx"), | |
| models.Index(fields=["model"], name="core_llmcal_model_df0279_idx"), | |
| ], | |
| }, | |
| ), | |
| migrations.CreateModel( | |
| name="SystemConfig", | |
| fields=[ | |
| ("id", models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name="ID")), | |
| ( | |
| "key", | |
| models.CharField( | |
| help_text="配置项的唯一标识符,如 FEISHU_APP_ID", | |
| max_length=100, | |
| unique=True, | |
| verbose_name="配置键", | |
| ), | |
| ), | |
| ("value", models.TextField(blank=True, default="", help_text="配置项的值", verbose_name="配置值")), | |
| ( | |
| "category", | |
| models.CharField( | |
| choices=[ | |
| ("feishu", "飞书配置"), | |
| ("dingtalk", "钉钉配置"), | |
| ("wechat_work", "企业微信配置"), | |
| ("court_sms", "法院短信配置"), | |
| ("ai", "AI 服务配置"), | |
| ("llm", "LLM 大模型配置"), | |
| ("scraper", "爬虫配置"), | |
| ("general", "通用配置"), | |
| ], | |
| default="general", | |
| help_text="配置项所属分类", | |
| max_length=50, | |
| verbose_name="分类", | |
| ), | |
| ), | |
| ( | |
| "description", | |
| models.CharField( | |
| blank=True, default="", help_text="配置项的说明", max_length=255, verbose_name="描述" | |
| ), | |
| ), | |
| ( | |
| "is_secret", | |
| models.BooleanField( | |
| default=False, help_text="是否为敏感信息(如密钥、密码等)", verbose_name="敏感信息" | |
| ), | |
| ), | |
| ("is_active", models.BooleanField(default=True, help_text="是否启用此配置项", verbose_name="启用")), | |
| ("created_at", models.DateTimeField(auto_now_add=True, verbose_name="创建时间")), | |
| ("updated_at", models.DateTimeField(auto_now=True, verbose_name="更新时间")), | |
| ], | |
| options={ | |
| "verbose_name": "系统配置", | |
| "verbose_name_plural": "系统配置", | |
| "ordering": ["category", "key"], | |
| "indexes": [ | |
| models.Index(fields=["category"], name="core_system_categor_aa7ba2_idx"), | |
| models.Index(fields=["key"], name="core_system_key_07f5b4_idx"), | |
| ], | |
| }, | |
| ), | |
| migrations.CreateModel( | |
| name="CauseOfAction", | |
| fields=[ | |
| ("id", models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name="ID")), | |
| ( | |
| "code", | |
| models.CharField( | |
| help_text="案由的唯一编码标识", max_length=50, unique=True, verbose_name="案由编码" | |
| ), | |
| ), | |
| ("name", models.CharField(help_text="案由的中文名称", max_length=255, verbose_name="案由名称")), | |
| ( | |
| "case_type", | |
| models.CharField( | |
| choices=[("civil", "民事"), ("criminal", "刑事"), ("administrative", "行政")], | |
| help_text="案由所属的案件类型", | |
| max_length=32, | |
| verbose_name="案件类型", | |
| ), | |
| ), | |
| ( | |
| "level", | |
| models.IntegerField(default=1, help_text="案由在层级结构中的深度,从1开始", verbose_name="层级"), | |
| ), | |
| ( | |
| "is_active", | |
| models.BooleanField(default=True, help_text="是否在系统中启用此案由", verbose_name="是否启用"), | |
| ), | |
| ( | |
| "is_deprecated", | |
| models.BooleanField(default=False, help_text="案由是否已被法院系统废弃", verbose_name="是否已废弃"), | |
| ), | |
| ( | |
| "deprecated_at", | |
| models.DateTimeField( | |
| blank=True, help_text="案由被标记为废弃的时间", null=True, verbose_name="废弃时间" | |
| ), | |
| ), | |
| ( | |
| "deprecated_reason", | |
| models.CharField( | |
| blank=True, | |
| default="", | |
| help_text="案由被废弃的原因说明", | |
| max_length=255, | |
| verbose_name="废弃原因", | |
| ), | |
| ), | |
| ("created_at", models.DateTimeField(auto_now_add=True, verbose_name="创建时间")), | |
| ("updated_at", models.DateTimeField(auto_now=True, verbose_name="更新时间")), | |
| ( | |
| "parent", | |
| models.ForeignKey( | |
| blank=True, | |
| help_text="父级案由,用于构建层级结构", | |
| null=True, | |
| on_delete=django.db.models.deletion.CASCADE, | |
| related_name="children", | |
| to="core.causeofaction", | |
| verbose_name="上级案由", | |
| ), | |
| ), | |
| ], | |
| options={ | |
| "verbose_name": "案由", | |
| "verbose_name_plural": "案由", | |
| "ordering": ["case_type", "code"], | |
| "indexes": [ | |
| models.Index(fields=["case_type"], name="core_causeo_case_ty_0bbdcd_idx"), | |
| models.Index(fields=["name"], name="core_causeo_name_742c92_idx"), | |
| models.Index(fields=["is_active"], name="core_causeo_is_acti_fc1798_idx"), | |
| models.Index(fields=["is_deprecated"], name="core_causeo_is_depr_7ecc77_idx"), | |
| ], | |
| }, | |
| ), | |
| migrations.CreateModel( | |
| name="ConversationHistory", | |
| fields=[ | |
| ("id", models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name="ID")), | |
| ("session_id", models.CharField(max_length=100, verbose_name="会话ID")), | |
| ("user_id", models.CharField(blank=True, max_length=100, verbose_name="用户ID")), | |
| ( | |
| "role", | |
| models.CharField( | |
| choices=[("system", "系统"), ("user", "用户"), ("assistant", "助手")], | |
| max_length=20, | |
| verbose_name="角色", | |
| ), | |
| ), | |
| ("content", models.TextField(verbose_name="消息内容")), | |
| ("metadata", models.JSONField(blank=True, default=dict, verbose_name="元数据")), | |
| ( | |
| "step", | |
| models.CharField( | |
| blank=True, | |
| help_text="document_type/litigation_goal/evidence_selection/generation", | |
| max_length=50, | |
| verbose_name="对话步骤", | |
| ), | |
| ), | |
| ("created_at", models.DateTimeField(auto_now_add=True, verbose_name="创建时间")), | |
| ( | |
| "litigation_session", | |
| models.ForeignKey( | |
| blank=True, | |
| help_text="关联到 AI 文书生成会话(如果适用)", | |
| null=True, | |
| on_delete=django.db.models.deletion.CASCADE, | |
| related_name="conversation_histories", | |
| to="litigation_ai.litigationsession", | |
| verbose_name="AI文书生成会话", | |
| ), | |
| ), | |
| ], | |
| options={ | |
| "verbose_name": "对话历史", | |
| "verbose_name_plural": "对话历史", | |
| "db_table": "core_conversation_history", | |
| "ordering": ["session_id", "created_at"], | |
| "indexes": [ | |
| models.Index(fields=["session_id", "created_at"], name="core_conver_session_f8b2e5_idx"), | |
| models.Index(fields=["user_id", "created_at"], name="core_conver_user_id_8a9c4d_idx"), | |
| models.Index(fields=["litigation_session", "created_at"], name="core_conver_litigat_77db61_idx"), | |
| models.Index(fields=["step"], name="core_conver_step_f2985c_idx"), | |
| ], | |
| }, | |
| ), | |
| migrations.CreateModel( | |
| name="Court", | |
| fields=[ | |
| ("id", models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name="ID")), | |
| ("code", models.CharField(max_length=50, unique=True, verbose_name="法院编码")), | |
| ("name", models.CharField(max_length=200, verbose_name="法院名称")), | |
| ("level", models.IntegerField(default=1, verbose_name="层级")), | |
| ("province", models.CharField(blank=True, max_length=50, verbose_name="省份")), | |
| ("is_active", models.BooleanField(default=True, verbose_name="是否启用")), | |
| ("created_at", models.DateTimeField(auto_now_add=True, verbose_name="创建时间")), | |
| ("updated_at", models.DateTimeField(auto_now=True, verbose_name="更新时间")), | |
| ( | |
| "parent", | |
| models.ForeignKey( | |
| blank=True, | |
| null=True, | |
| on_delete=django.db.models.deletion.CASCADE, | |
| related_name="children", | |
| to="core.court", | |
| verbose_name="上级法院", | |
| ), | |
| ), | |
| ], | |
| options={ | |
| "verbose_name": "法院", | |
| "verbose_name_plural": "法院", | |
| "ordering": ["province", "level", "name"], | |
| "indexes": [ | |
| models.Index(fields=["province"], name="core_court_provinc_9fe4bb_idx"), | |
| models.Index(fields=["level"], name="core_court_level_dc4c2b_idx"), | |
| models.Index(fields=["name"], name="core_court_name_6afac9_idx"), | |
| models.Index(fields=["is_active"], name="core_court_is_acti_16a9bd_idx"), | |
| ], | |
| }, | |
| ), | |
| ] | |