Feat: v0.27.0 model provider (#16604)

This commit is contained in:
Lynn
2026-07-08 09:47:29 +08:00
committed by GitHub
parent cb93883f3f
commit 0ae5961e1c
94 changed files with 7539 additions and 3044 deletions

View File

@@ -725,18 +725,19 @@ class Tenant(DataBaseModel):
name = CharField(max_length=100, null=True, help_text="Tenant name", index=True)
public_key = CharField(max_length=255, null=True, index=True)
llm_id = CharField(max_length=128, null=False, help_text="default llm ID", index=True)
tenant_llm_id = IntegerField(null=True, help_text="id in tenant_llm", index=True)
tenant_llm_id = CharField(max_length=32, null=True, help_text="id in tenant_model", index=True)
embd_id = CharField(max_length=128, null=False, help_text="default embedding model ID", index=True)
tenant_embd_id = IntegerField(null=True, help_text="id in tenant_llm", index=True)
tenant_embd_id = CharField(max_length=32, null=True, help_text="id in tenant_model", index=True)
asr_id = CharField(max_length=128, null=False, help_text="default ASR model ID", index=True)
tenant_asr_id = IntegerField(null=True, help_text="id in tenant_llm", index=True)
tenant_asr_id = CharField(max_length=32, null=True, help_text="id in tenant_model", index=True)
img2txt_id = CharField(max_length=128, null=False, help_text="default image to text model ID", index=True)
tenant_img2txt_id = IntegerField(null=True, help_text="id in tenant_llm", index=True)
tenant_img2txt_id = CharField(max_length=32, null=True, help_text="id in tenant_model", index=True)
rerank_id = CharField(max_length=128, null=False, help_text="default rerank model ID", index=True)
tenant_rerank_id = IntegerField(null=True, help_text="id in tenant_llm", index=True)
tenant_rerank_id = CharField(max_length=32, null=True, help_text="id in tenant_model", index=True)
tts_id = CharField(max_length=256, null=True, help_text="default tts model ID", index=True)
tenant_tts_id = IntegerField(null=True, help_text="id in tenant_llm", index=True)
tenant_tts_id = CharField(max_length=32, null=True, help_text="id in tenant_model", index=True)
ocr_id = CharField(max_length=256, null=True, help_text="default OCR model ID", index=True)
tenant_ocr_id = CharField(max_length=32, null=True, help_text="id in tenant_model", index=True)
parser_ids = CharField(max_length=256, null=False, help_text="document processors", index=True)
credit = IntegerField(default=512, index=True)
status = CharField(max_length=1, null=True, help_text="is it validate(0: wasted, 1: validate)", default="1", index=True)
@@ -803,7 +804,6 @@ class LLM(DataBaseModel):
class TenantLLM(DataBaseModel):
id = PrimaryKeyField()
tenant_id = CharField(max_length=32, null=False, index=True)
llm_factory = CharField(max_length=128, null=False, help_text="LLM factory name", index=True)
model_type = CharField(max_length=128, null=True, help_text="LLM, Text Embedding, Image2Text, ASR", index=True)
@@ -843,7 +843,7 @@ class Knowledgebase(DataBaseModel):
language = CharField(max_length=32, null=True, default="Chinese" if "zh_CN" in os.getenv("LANG", "") else "English", help_text="English|Chinese", index=True)
description = TextField(null=True, help_text="KB description")
embd_id = CharField(max_length=128, null=False, help_text="default embedding model ID", index=True)
tenant_embd_id = IntegerField(null=True, help_text="id in tenant_llm", index=True)
tenant_embd_id = CharField(max_length=32, null=True, help_text="id in tenant_model", index=True)
permission = CharField(max_length=16, null=False, help_text="me|team", default="me", index=True)
created_by = CharField(max_length=32, null=False, index=True)
doc_num = IntegerField(default=0, index=True)
@@ -1011,7 +1011,7 @@ class Dialog(DataBaseModel):
icon = TextField(null=True, help_text="icon base64 string")
language = CharField(max_length=32, null=True, default="Chinese" if "zh_CN" in os.getenv("LANG", "") else "English", help_text="English|Chinese", index=True)
llm_id = CharField(max_length=128, null=False, help_text="default llm ID")
tenant_llm_id = IntegerField(null=True, help_text="id in tenant_llm", index=True)
tenant_llm_id = CharField(max_length=32, null=True, help_text="id in tenant_model", index=True)
llm_setting = JSONField(null=False, default={"temperature": 0.1, "top_p": 0.3, "frequency_penalty": 0.7, "presence_penalty": 0.4, "max_tokens": 512})
prompt_type = CharField(max_length=16, null=False, default="simple", help_text="simple|advanced", index=True)
@@ -1031,7 +1031,7 @@ class Dialog(DataBaseModel):
do_refer = CharField(max_length=1, null=False, default="1", help_text="it needs to insert reference index into answer or not")
rerank_id = CharField(max_length=128, null=False, help_text="default rerank model ID")
tenant_rerank_id = IntegerField(null=True, help_text="id in tenant_llm", index=True)
tenant_rerank_id = CharField(max_length=32, null=True, help_text="id in tenant_model", index=True)
kb_ids = JSONField(null=False, default=[])
status = CharField(max_length=1, null=True, help_text="is it validate(0: wasted, 1: validate)", default="1", index=True)
@@ -1408,9 +1408,9 @@ class Memory(DataBaseModel):
memory_type = IntegerField(null=False, default=1, index=True, help_text="Bit flags (LSB->MSB): 1=raw, 2=semantic, 4=episodic, 8=procedural. E.g., 5 enables raw + episodic.")
storage_type = CharField(max_length=32, default="table", null=False, index=True, help_text="table|graph")
embd_id = CharField(max_length=128, null=False, index=False, help_text="embedding model ID")
tenant_embd_id = IntegerField(null=True, help_text="id in tenant_llm", index=True)
tenant_embd_id = CharField(max_length=32, null=True, help_text="id in tenant_model", index=True)
llm_id = CharField(max_length=128, null=False, index=False, help_text="chat model ID")
tenant_llm_id = IntegerField(null=True, help_text="id in tenant_llm", index=True)
tenant_llm_id = CharField(max_length=32, null=True, help_text="id in tenant_model", index=True)
permissions = CharField(max_length=16, null=False, index=True, help_text="me|team", default="me")
description = TextField(null=True, help_text="description")
memory_size = IntegerField(default=5242880, null=False, index=False)
@@ -1460,7 +1460,7 @@ class TenantModel(DataBaseModel):
model_name = CharField(max_length=128, null=True, index=False, help_text="Model name")
provider_id = CharField(max_length=32, null=False, index=False)
instance_id = CharField(max_length=32, null=False, index=True)
model_type = CharField(max_length=32, null=False, index=False, help_text="Model type")
model_type = IntegerField(null=False, default=1, index=True, help_text="Bit flags (LSB->MSB): 1=chat, 2=embedding, 4=speech2text, 8=image2text, 16=rerank, 32=tts, 64=ocr")
status = CharField(max_length=32, default="active", index=False)
extra = CharField(max_length=1024, default="{}", index=False)
@@ -1790,18 +1790,6 @@ def migrate_db():
# Migrate system_settings.value from CharField to TextField for longer sandbox configs
alter_db_column_type(migrator, "system_settings", "value", TextField(null=False, help_text="Configuration value (JSON, string, etc.)"))
alter_db_add_column(migrator, "document", "content_hash", CharField(max_length=32, null=True, help_text="xxhash128 of document content for change detection", default="", index=True))
update_tenant_llm_to_id_primary_key()
alter_db_add_column(migrator, "tenant", "tenant_llm_id", IntegerField(null=True, help_text="id in tenant_llm", index=True))
alter_db_add_column(migrator, "tenant", "tenant_embd_id", IntegerField(null=True, help_text="id in tenant_llm", index=True))
alter_db_add_column(migrator, "tenant", "tenant_asr_id", IntegerField(null=True, help_text="id in tenant_llm", index=True))
alter_db_add_column(migrator, "tenant", "tenant_img2txt_id", IntegerField(null=True, help_text="id in tenant_llm", index=True))
alter_db_add_column(migrator, "tenant", "tenant_rerank_id", IntegerField(null=True, help_text="id in tenant_llm", index=True))
alter_db_add_column(migrator, "tenant", "tenant_tts_id", IntegerField(null=True, help_text="id in tenant_llm", index=True))
alter_db_add_column(migrator, "knowledgebase", "tenant_embd_id", IntegerField(null=True, help_text="id in tenant_llm", index=True))
alter_db_add_column(migrator, "dialog", "tenant_llm_id", IntegerField(null=True, help_text="id in tenant_llm", index=True))
alter_db_add_column(migrator, "dialog", "tenant_rerank_id", IntegerField(null=True, help_text="id in tenant_llm", index=True))
alter_db_add_column(migrator, "memory", "tenant_embd_id", IntegerField(null=True, help_text="id in tenant_llm", index=True))
alter_db_add_column(migrator, "memory", "tenant_llm_id", IntegerField(null=True, help_text="id in tenant_llm", index=True))
alter_db_add_column(migrator, "user_canvas_version", "release", BooleanField(null=False, help_text="is released", default=False, index=True))
alter_db_add_column(migrator, "user_canvas", "tags", CharField(max_length=512, null=False, default="", help_text="Comma-separated tags for organizing agents", index=True))
alter_db_add_column(migrator, "api_4_conversation", "version_title", CharField(max_length=255, null=True, help_text="canvas version title when session created", index=False))