Check model id when set dialog. Close #849 (#3655)
Browse files### What problem does this PR solve?
Check model id when set dialog. Close #849
### Type of change
- [x] Bug Fix (non-breaking change which fixes an issue)
- api/apps/dialog_app.py +6 -0
api/apps/dialog_app.py
CHANGED
|
@@ -74,11 +74,17 @@ def set_dialog():
|
|
| 74 |
e, tenant = TenantService.get_by_id(current_user.id)
|
| 75 |
if not e:
|
| 76 |
return get_data_error_result(message="Tenant not found!")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 77 |
llm_id = req.get("llm_id", tenant.llm_id)
|
| 78 |
if not dialog_id:
|
| 79 |
if not req.get("kb_ids"):
|
| 80 |
return get_data_error_result(
|
| 81 |
message="Fail! Please select knowledgebase!")
|
|
|
|
| 82 |
dia = {
|
| 83 |
"id": get_uuid(),
|
| 84 |
"tenant_id": current_user.id,
|
|
|
|
| 74 |
e, tenant = TenantService.get_by_id(current_user.id)
|
| 75 |
if not e:
|
| 76 |
return get_data_error_result(message="Tenant not found!")
|
| 77 |
+
kbs = KnowledgebaseService.get_by_ids(req.get("kb_ids"))
|
| 78 |
+
embd_count = len(set([kb.embd_id for kb in kbs]))
|
| 79 |
+
if embd_count != 1:
|
| 80 |
+
return get_data_error_result(message=f'Datasets use different embedding models: {[kb.embd_id for kb in kbs]}"')
|
| 81 |
+
|
| 82 |
llm_id = req.get("llm_id", tenant.llm_id)
|
| 83 |
if not dialog_id:
|
| 84 |
if not req.get("kb_ids"):
|
| 85 |
return get_data_error_result(
|
| 86 |
message="Fail! Please select knowledgebase!")
|
| 87 |
+
|
| 88 |
dia = {
|
| 89 |
"id": get_uuid(),
|
| 90 |
"tenant_id": current_user.id,
|