docker build 构建修改
This commit is contained in:
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user