fix: add field validation to API request models (top_k limit, file_name pattern)
This commit is contained in:
+4
-4
@@ -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)
|
||||||
|
|
||||||
|
|
||||||
# -- 懒加载单例 --
|
# -- 懒加载单例 --
|
||||||
|
|||||||
Reference in New Issue
Block a user