fix: add field validation to API request models (top_k limit, file_name pattern)

This commit is contained in:
2026-07-05 01:33:42 +08:00
parent 157155c0d2
commit 10eda446ea
+4 -4
View File
@@ -5,7 +5,7 @@ from pathlib import Path
from fastapi import FastAPI, HTTPException, Depends, Request from fastapi import FastAPI, HTTPException, Depends, Request
from fastapi.responses import RedirectResponse from fastapi.responses import RedirectResponse
from pydantic import BaseModel from pydantic import BaseModel, Field
from src.core.config import load_config, EmbedConfig, DEFAULT_CONFIG_PATH from src.core.config import load_config, EmbedConfig, DEFAULT_CONFIG_PATH
from src.core.db import VectorDB from src.core.db import VectorDB
@@ -31,12 +31,12 @@ def _is_safe_path(path_str: str) -> bool:
class IngestRequest(BaseModel): class IngestRequest(BaseModel):
file_path: str | None = None file_path: str | None = None
content: str | None = None content: str | None = None
file_name: str | None = None file_name: str | None = Field(default=None, max_length=255, pattern=r"^[^\\/:*?\"<>|]+\.md$")
class SearchRequest(BaseModel): class SearchRequest(BaseModel):
query: str query: str = Field(..., min_length=1, max_length=2000)
top_k: int = 10 top_k: int = Field(default=10, ge=1, le=100)
# -- 懒加载单例 -- # -- 懒加载单例 --