将 filtered_models 从硬编码改为可配置参数

1. 在 config.py 中添加 FILTERED_MODELS 配置项
2. 在 .env.example 中添加 FILTERED_MODELS 示例
3. 修改 model_service.py 以使用配置的过滤模型列表
4. 优化模型过滤逻辑
This commit is contained in:
yangtb2024
2025-03-18 14:47:58 +08:00
parent 0cac178572
commit 851bb9c09b
3 changed files with 13 additions and 6 deletions
+11 -6
View File
@@ -11,7 +11,7 @@ class ModelService:
self.model_search = model_search
self.model_image = model_image
self.base_url = "https://generativelanguage.googleapis.com/v1beta"
self.filtered_models = ["gemini-1.0-pro-vision-latest", "gemini-pro-vision"]
self.filtered_models = settings.FILTERED_MODELS
def get_gemini_models(self, api_key: str) -> Optional[Dict[str, Any]]:
url = f"{self.base_url}/models?key={api_key}"
@@ -20,6 +20,16 @@ class ModelService:
response = requests.get(url)
if response.status_code == 200:
gemini_models = response.json()
filtered_models_list = []
for model in gemini_models.get("models", []):
model_id = model["name"].split("/")[-1]
if model_id not in self.filtered_models:
filtered_models_list.append(model)
else:
logger.info(f"Filtered out model: {model_id}")
gemini_models["models"] = filtered_models_list
return gemini_models
else:
logger.error(f"Error: {response.status_code}")
@@ -44,11 +54,6 @@ class ModelService:
for model in gemini_models.get("models", []):
model_id = model["name"].split("/")[-1]
if model_id in self.filtered_models:
logger.info(f"Filtered out model: {model_id}")
continue
openai_model = {
"id": model_id,
"object": "model",