mirror of
https://github.com/snailyp/gemini-balance.git
synced 2026-09-05 23:56:37 +08:00
将 filtered_models 从硬编码改为可配置参数
1. 在 config.py 中添加 FILTERED_MODELS 配置项 2. 在 .env.example 中添加 FILTERED_MODELS 示例 3. 修改 model_service.py 以使用配置的过滤模型列表 4. 优化模型过滤逻辑
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
API_KEYS=["AIzaSyxxxxxxxxxxxxxxxxxxx","AIzaSyxxxxxxxxxxxxxxxxxxx"]
|
API_KEYS=["AIzaSyxxxxxxxxxxxxxxxxxxx","AIzaSyxxxxxxxxxxxxxxxxxxx"]
|
||||||
ALLOWED_TOKENS=["sk-123456"]
|
ALLOWED_TOKENS=["sk-123456"]
|
||||||
# AUTH_TOKEN=sk-123456
|
# AUTH_TOKEN=sk-123456
|
||||||
|
FILTERED_MODELS=["gemini-1.0-pro-vision-latest", "gemini-pro-vision"]
|
||||||
MODEL_SEARCH=["gemini-2.0-flash-exp","gemini-2.0-pro-exp"]
|
MODEL_SEARCH=["gemini-2.0-flash-exp","gemini-2.0-pro-exp"]
|
||||||
MODEL_IMAGE=["gemini-2.0-flash-exp"]
|
MODEL_IMAGE=["gemini-2.0-flash-exp"]
|
||||||
TOOLS_CODE_EXECUTION_ENABLED=false
|
TOOLS_CODE_EXECUTION_ENABLED=false
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ class Settings(BaseSettings):
|
|||||||
BASE_URL: str = "https://generativelanguage.googleapis.com/v1beta"
|
BASE_URL: str = "https://generativelanguage.googleapis.com/v1beta"
|
||||||
MODEL_SEARCH: List[str] = ["gemini-2.0-flash-exp"]
|
MODEL_SEARCH: List[str] = ["gemini-2.0-flash-exp"]
|
||||||
MODEL_IMAGE: List[str] = ["gemini-2.0-flash-exp"]
|
MODEL_IMAGE: List[str] = ["gemini-2.0-flash-exp"]
|
||||||
|
FILTERED_MODELS: List[str] = ["gemini-1.0-pro-vision-latest", "gemini-pro-vision"]
|
||||||
TOOLS_CODE_EXECUTION_ENABLED: bool = False
|
TOOLS_CODE_EXECUTION_ENABLED: bool = False
|
||||||
SHOW_SEARCH_LINK: bool = True
|
SHOW_SEARCH_LINK: bool = True
|
||||||
SHOW_THINKING_PROCESS: bool = True
|
SHOW_THINKING_PROCESS: bool = True
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ class ModelService:
|
|||||||
self.model_search = model_search
|
self.model_search = model_search
|
||||||
self.model_image = model_image
|
self.model_image = model_image
|
||||||
self.base_url = "https://generativelanguage.googleapis.com/v1beta"
|
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]]:
|
def get_gemini_models(self, api_key: str) -> Optional[Dict[str, Any]]:
|
||||||
url = f"{self.base_url}/models?key={api_key}"
|
url = f"{self.base_url}/models?key={api_key}"
|
||||||
@@ -20,6 +20,16 @@ class ModelService:
|
|||||||
response = requests.get(url)
|
response = requests.get(url)
|
||||||
if response.status_code == 200:
|
if response.status_code == 200:
|
||||||
gemini_models = response.json()
|
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
|
return gemini_models
|
||||||
else:
|
else:
|
||||||
logger.error(f"Error: {response.status_code}")
|
logger.error(f"Error: {response.status_code}")
|
||||||
@@ -44,11 +54,6 @@ class ModelService:
|
|||||||
|
|
||||||
for model in gemini_models.get("models", []):
|
for model in gemini_models.get("models", []):
|
||||||
model_id = model["name"].split("/")[-1]
|
model_id = model["name"].split("/")[-1]
|
||||||
|
|
||||||
if model_id in self.filtered_models:
|
|
||||||
logger.info(f"Filtered out model: {model_id}")
|
|
||||||
continue
|
|
||||||
|
|
||||||
openai_model = {
|
openai_model = {
|
||||||
"id": model_id,
|
"id": model_id,
|
||||||
"object": "model",
|
"object": "model",
|
||||||
|
|||||||
Reference in New Issue
Block a user