Добавлены endpoints для управления параметрами формулы, удалены ненужные методы, исправлена документация
This commit is contained in:
116
app/schemas.py
116
app/schemas.py
@@ -99,7 +99,6 @@ class VectorStoreStats(BaseModel):
|
||||
total_count: int = Field(..., description="Общее количество примеров")
|
||||
vector_dim: int = Field(..., description="Размерность векторов")
|
||||
max_examples: int = Field(..., description="Максимальное количество примеров")
|
||||
storage_path: Optional[str] = Field(None, description="Путь к файлу хранилища")
|
||||
|
||||
|
||||
class StatsResponse(BaseModel):
|
||||
@@ -107,7 +106,6 @@ class StatsResponse(BaseModel):
|
||||
model_name: str = Field(..., description="Название модели")
|
||||
model_loaded: bool = Field(..., description="Загружена ли модель")
|
||||
device: Optional[str] = Field(None, description="Устройство (cpu/cuda)")
|
||||
cache_dir: str = Field(..., description="Директория кеша модели")
|
||||
vector_store: VectorStoreStats = Field(..., description="Статистика хранилища векторов")
|
||||
|
||||
model_config = {
|
||||
@@ -116,14 +114,12 @@ class StatsResponse(BaseModel):
|
||||
"model_name": "DeepPavlov/rubert-base-cased",
|
||||
"model_loaded": True,
|
||||
"device": "cpu",
|
||||
"cache_dir": "data/models",
|
||||
"vector_store": {
|
||||
"positive_count": 500,
|
||||
"negative_count": 350,
|
||||
"total_count": 850,
|
||||
"vector_dim": 768,
|
||||
"max_examples": 10000,
|
||||
"storage_path": "data/vectors/vectors.npz"
|
||||
"max_examples": 10000
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -177,3 +173,113 @@ class HealthResponse(BaseModel):
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
class ScoringParamsResponse(BaseModel):
|
||||
"""Ответ с текущими параметрами формулы расчета score."""
|
||||
score_multiplier: float = Field(
|
||||
...,
|
||||
description=(
|
||||
"Базовый множитель для усиления разницы в скорах. "
|
||||
"Используется как основа для расчета финального множителя. "
|
||||
"Чем больше значение, тем сильнее влияние разницы между положительными и отрицательными примерами на итоговый score. "
|
||||
"Рекомендуемое значение: 5.0"
|
||||
)
|
||||
)
|
||||
k_min: int = Field(
|
||||
...,
|
||||
description=(
|
||||
"Минимальное количество ближайших примеров для расчета среднего сходства. "
|
||||
"Алгоритм берет топ-k самых похожих примеров из каждого типа (положительные/отрицательные) "
|
||||
"и вычисляет среднее косинусное сходство. "
|
||||
"Меньшее значение k делает алгоритм более чувствительным к различиям, но может быть менее стабильным. "
|
||||
"Рекомендуемое значение: 5"
|
||||
)
|
||||
)
|
||||
k_max: int = Field(
|
||||
...,
|
||||
description=(
|
||||
"Максимальное количество ближайших примеров для расчета среднего сходства. "
|
||||
"Алгоритм выбирает k в диапазоне [k_min, k_max] в зависимости от количества доступных примеров. "
|
||||
"Большее значение k делает алгоритм более стабильным, но менее чувствительным к различиям. "
|
||||
"Должно быть >= k_min. Рекомендуемое значение: 10"
|
||||
)
|
||||
)
|
||||
base_multiplier_factor: float = Field(
|
||||
...,
|
||||
description=(
|
||||
"Множитель для базового score_multiplier. "
|
||||
"Финальный множитель рассчитывается как: score_multiplier * base_multiplier_factor * адаптивный_коэффициент. "
|
||||
"Этот параметр усиливает влияние разницы между положительными и отрицательными примерами. "
|
||||
"Чем больше значение, тем больше диапазон итогового score (от 0 до 1). "
|
||||
"Рекомендуемое значение: 15.0"
|
||||
)
|
||||
)
|
||||
|
||||
model_config = {
|
||||
"json_schema_extra": {
|
||||
"example": {
|
||||
"score_multiplier": 5.0,
|
||||
"k_min": 5,
|
||||
"k_max": 10,
|
||||
"base_multiplier_factor": 15.0
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
class UpdateScoringParamsRequest(BaseModel):
|
||||
"""Запрос на обновление параметров формулы расчета score."""
|
||||
score_multiplier: Optional[float] = Field(
|
||||
None,
|
||||
gt=0,
|
||||
description=(
|
||||
"Базовый множитель для усиления разницы в скорах. "
|
||||
"Используется как основа для расчета финального множителя. "
|
||||
"Чем больше значение, тем сильнее влияние разницы между положительными и отрицательными примерами на итоговый score. "
|
||||
"Должен быть > 0. Рекомендуемое значение: 5.0"
|
||||
)
|
||||
)
|
||||
k_min: Optional[int] = Field(
|
||||
None,
|
||||
ge=1,
|
||||
description=(
|
||||
"Минимальное количество ближайших примеров для расчета среднего сходства. "
|
||||
"Алгоритм берет топ-k самых похожих примеров из каждого типа (положительные/отрицательные) "
|
||||
"и вычисляет среднее косинусное сходство. "
|
||||
"Меньшее значение k делает алгоритм более чувствительным к различиям, но может быть менее стабильным. "
|
||||
"Должно быть >= 1. Рекомендуемое значение: 5"
|
||||
)
|
||||
)
|
||||
k_max: Optional[int] = Field(
|
||||
None,
|
||||
ge=1,
|
||||
description=(
|
||||
"Максимальное количество ближайших примеров для расчета среднего сходства. "
|
||||
"Алгоритм выбирает k в диапазоне [k_min, k_max] в зависимости от количества доступных примеров. "
|
||||
"Большее значение k делает алгоритм более стабильным, но менее чувствительным к различиям. "
|
||||
"Должно быть >= 1 и >= k_min. Рекомендуемое значение: 10"
|
||||
)
|
||||
)
|
||||
base_multiplier_factor: Optional[float] = Field(
|
||||
None,
|
||||
gt=0,
|
||||
description=(
|
||||
"Множитель для базового score_multiplier. "
|
||||
"Финальный множитель рассчитывается как: score_multiplier * base_multiplier_factor * адаптивный_коэффициент. "
|
||||
"Этот параметр усиливает влияние разницы между положительными и отрицательными примерами. "
|
||||
"Чем больше значение, тем больше диапазон итогового score (от 0 до 1). "
|
||||
"Должен быть > 0. Рекомендуемое значение: 15.0"
|
||||
)
|
||||
)
|
||||
|
||||
model_config = {
|
||||
"json_schema_extra": {
|
||||
"example": {
|
||||
"score_multiplier": 5.0,
|
||||
"k_min": 5,
|
||||
"k_max": 10,
|
||||
"base_multiplier_factor": 15.0
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user