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

@@ -17,7 +17,8 @@ import logging
from datetime import datetime
import json
from flask_login import login_required, current_user
from fastapi import APIRouter, Depends
from fastapi.responses import JSONResponse
from api.db.db_models import APIToken
from api.db.services.api_service import APITokenService
@@ -36,67 +37,26 @@ from rag.utils.storage_factory import STORAGE_IMPL, STORAGE_IMPL_TYPE
from timeit import default_timer as timer
from rag.utils.redis_conn import REDIS_CONN
from flask import jsonify
from api.utils.health_utils import run_health_checks
from api.apps.models.auth_dependencies import get_current_user
# 创建路由器
router = APIRouter()
@manager.route("/version", methods=["GET"]) # noqa: F821
@login_required
def version():
"""
Get the current version of the application.
---
tags:
- System
security:
- ApiKeyAuth: []
responses:
200:
description: Version retrieved successfully.
schema:
type: object
properties:
version:
type: string
description: Version number.
"""
@router.get("/version")
async def version(
current_user = Depends(get_current_user)
):
"""获取应用程序当前版本"""
return get_json_result(data=get_ragflow_version())
@manager.route("/status", methods=["GET"]) # noqa: F821
@login_required
def status():
"""
Get the system status.
---
tags:
- System
security:
- ApiKeyAuth: []
responses:
200:
description: System is operational.
schema:
type: object
properties:
es:
type: object
description: Elasticsearch status.
storage:
type: object
description: Storage status.
database:
type: object
description: Database status.
503:
description: Service unavailable.
schema:
type: object
properties:
error:
type: string
description: Error message.
"""
@router.get("/status")
async def status(
current_user = Depends(get_current_user)
):
"""获取系统状态"""
res = {}
st = timer()
try:
@@ -172,43 +132,24 @@ def status():
return get_json_result(data=res)
@manager.route("/healthz", methods=["GET"]) # noqa: F821
def healthz():
@router.get("/healthz")
async def healthz():
"""健康检查"""
result, all_ok = run_health_checks()
return jsonify(result), (200 if all_ok else 500)
return JSONResponse(content=result, status_code=200 if all_ok else 500)
@manager.route("/ping", methods=["GET"]) # noqa: F821
def ping():
return "pong", 200
@router.get("/ping")
async def ping():
"""心跳检测"""
return "pong"
@manager.route("/new_token", methods=["POST"]) # noqa: F821
@login_required
def new_token():
"""
Generate a new API token.
---
tags:
- API Tokens
security:
- ApiKeyAuth: []
parameters:
- in: query
name: name
type: string
required: false
description: Name of the token.
responses:
200:
description: Token generated successfully.
schema:
type: object
properties:
token:
type: string
description: The generated API token.
"""
@router.post("/new_token")
async def new_token(
current_user = Depends(get_current_user)
):
"""生成新的 API 令牌"""
try:
tenants = UserTenantService.query(user_id=current_user.id)
if not tenants:
@@ -233,37 +174,11 @@ def new_token():
return server_error_response(e)
@manager.route("/token_list", methods=["GET"]) # noqa: F821
@login_required
def token_list():
"""
List all API tokens for the current user.
---
tags:
- API Tokens
security:
- ApiKeyAuth: []
responses:
200:
description: List of API tokens.
schema:
type: object
properties:
tokens:
type: array
items:
type: object
properties:
token:
type: string
description: The API token.
name:
type: string
description: Name of the token.
create_time:
type: string
description: Token creation time.
"""
@router.get("/token_list")
async def token_list(
current_user = Depends(get_current_user)
):
"""列出当前用户的所有 API 令牌"""
try:
tenants = UserTenantService.query(user_id=current_user.id)
if not tenants:
@@ -282,55 +197,21 @@ def token_list():
return server_error_response(e)
@manager.route("/token/<token>", methods=["DELETE"]) # noqa: F821
@login_required
def rm(token):
"""
Remove an API token.
---
tags:
- API Tokens
security:
- ApiKeyAuth: []
parameters:
- in: path
name: token
type: string
required: true
description: The API token to remove.
responses:
200:
description: Token removed successfully.
schema:
type: object
properties:
success:
type: boolean
description: Deletion status.
"""
@router.delete("/token/{token}")
async def rm(
token: str,
current_user = Depends(get_current_user)
):
"""删除 API 令牌"""
APITokenService.filter_delete(
[APIToken.tenant_id == current_user.id, APIToken.token == token]
)
return get_json_result(data=True)
@manager.route('/config', methods=['GET']) # noqa: F821
def get_config():
"""
Get system configuration.
---
tags:
- System
responses:
200:
description: Return system configuration
schema:
type: object
properties:
registerEnable:
type: integer 0 means disabled, 1 means enabled
description: Whether user registration is enabled
"""
@router.get('/config')
async def get_config():
"""获取系统配置"""
return get_json_result(data={
"registerEnabled": settings.REGISTER_ENABLED
})