docker build 构建修改

This commit is contained in:
2025-11-06 17:15:46 +08:00
parent 33e09afc54
commit ecdb4321e8
58 changed files with 72216 additions and 237 deletions

View File

@@ -14,8 +14,17 @@
# limitations under the License.
#
from flask import request
from flask_login import login_required, current_user
from typing import Optional
from fastapi import APIRouter, Depends, Query
from api.apps.models.auth_dependencies import get_current_user
from api.apps.models.dialog_models import (
SetDialogRequest,
ListDialogsNextQuery,
ListDialogsNextBody,
DeleteDialogRequest,
)
from api.db.services import duplicate_name
from api.db.services.dialog_service import DialogService
from api.db import StatusEnum
@@ -23,16 +32,21 @@ from api.db.services.tenant_llm_service import TenantLLMService
from api.db.services.knowledgebase_service import KnowledgebaseService
from api.db.services.user_service import TenantService, UserTenantService
from api import settings
from api.utils.api_utils import server_error_response, get_data_error_result, validate_request
from api.utils.api_utils import server_error_response, get_data_error_result
from api.utils import get_uuid
from api.utils.api_utils import get_json_result
# 创建路由器
router = APIRouter()
@manager.route('/set', methods=['POST']) # noqa: F821
@validate_request("prompt_config")
@login_required
def set_dialog():
req = request.json
@router.post('/set')
async def set_dialog(
request: SetDialogRequest,
current_user = Depends(get_current_user)
):
"""设置/创建对话框"""
req = request.model_dump(exclude_unset=True)
dialog_id = req.get("dialog_id", "")
is_create = not dialog_id
name = req.get("name", "New Dialog")
@@ -124,10 +138,12 @@ def set_dialog():
return server_error_response(e)
@manager.route('/get', methods=['GET']) # noqa: F821
@login_required
def get():
dialog_id = request.args["dialog_id"]
@router.get('/get')
async def get(
dialog_id: str = Query(..., description="对话框ID"),
current_user = Depends(get_current_user)
):
"""获取对话框详情"""
try:
e, dia = DialogService.get_by_id(dialog_id)
if not e:
@@ -150,9 +166,11 @@ def get_kb_names(kb_ids):
return ids, nms
@manager.route('/list', methods=['GET']) # noqa: F821
@login_required
def list_dialogs():
@router.get('/list')
async def list_dialogs(
current_user = Depends(get_current_user)
):
"""列出对话框"""
try:
diags = DialogService.query(
tenant_id=current_user.id,
@@ -167,21 +185,24 @@ def list_dialogs():
return server_error_response(e)
@manager.route('/next', methods=['POST']) # noqa: F821
@login_required
def list_dialogs_next():
keywords = request.args.get("keywords", "")
page_number = int(request.args.get("page", 0))
items_per_page = int(request.args.get("page_size", 0))
parser_id = request.args.get("parser_id")
orderby = request.args.get("orderby", "create_time")
if request.args.get("desc", "true").lower() == "false":
desc = False
else:
desc = True
@router.post('/next')
async def list_dialogs_next(
query: ListDialogsNextQuery = Depends(),
body: Optional[ListDialogsNextBody] = None,
current_user = Depends(get_current_user)
):
"""列出对话框(分页)"""
if body is None:
body = ListDialogsNextBody()
keywords = query.keywords or ""
page_number = int(query.page or 0)
items_per_page = int(query.page_size or 0)
parser_id = query.parser_id
orderby = query.orderby or "create_time"
desc = query.desc.lower() == "true" if query.desc else True
req = request.get_json()
owner_ids = req.get("owner_ids", [])
owner_ids = body.owner_ids or []
try:
if not owner_ids:
# tenants = TenantService.get_joined_tenants_by_user_id(current_user.id)
@@ -204,15 +225,16 @@ def list_dialogs_next():
return server_error_response(e)
@manager.route('/rm', methods=['POST']) # noqa: F821
@login_required
@validate_request("dialog_ids")
def rm():
req = request.json
dialog_list=[]
@router.post('/rm')
async def rm(
request: DeleteDialogRequest,
current_user = Depends(get_current_user)
):
"""删除对话框"""
dialog_list = []
tenants = UserTenantService.query(user_id=current_user.id)
try:
for id in req["dialog_ids"]:
for id in request.dialog_ids:
for tenant in tenants:
if DialogService.query(tenant_id=tenant.tenant_id, id=id):
break
@@ -220,7 +242,7 @@ def rm():
return get_json_result(
data=False, message='Only owner of dialog authorized for this operation.',
code=settings.RetCode.OPERATING_ERROR)
dialog_list.append({"id": id,"status":StatusEnum.INVALID.value})
dialog_list.append({"id": id, "status": StatusEnum.INVALID.value})
DialogService.update_many_by_id(dialog_list)
return get_json_result(data=True)
except Exception as e: