Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
@@ -28,6 +28,8 @@ text_models = []
|
|
28 |
free_text_models = []
|
29 |
embedding_models = []
|
30 |
free_embedding_models = []
|
|
|
|
|
31 |
|
32 |
invalid_keys_global = []
|
33 |
free_keys_global = []
|
@@ -100,11 +102,14 @@ def refresh_models():
|
|
100 |
"""
|
101 |
global text_models, free_text_models
|
102 |
global embedding_models, free_embedding_models
|
|
|
103 |
|
104 |
text_models = get_all_models(FREE_MODEL_TEST_KEY, "chat")
|
105 |
embedding_models = get_all_models(FREE_MODEL_TEST_KEY, "embedding")
|
|
|
106 |
free_text_models = []
|
107 |
free_embedding_models = []
|
|
|
108 |
|
109 |
ban_models_str = os.environ.get("BAN_MODELS")
|
110 |
ban_models = []
|
@@ -124,6 +129,7 @@ def refresh_models():
|
|
124 |
|
125 |
text_models = [model for model in text_models if model not in ban_models]
|
126 |
embedding_models = [model for model in embedding_models if model not in ban_models]
|
|
|
127 |
|
128 |
with concurrent.futures.ThreadPoolExecutor(
|
129 |
max_workers=100
|
@@ -161,11 +167,31 @@ def refresh_models():
|
|
161 |
free_embedding_models.append(model)
|
162 |
except Exception as exc:
|
163 |
logging.error(f"模型 {model} 测试生成异常: {exc}")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
164 |
|
165 |
logging.info(f"所有文本模型列表:{text_models}")
|
166 |
logging.info(f"免费文本模型列表:{free_text_models}")
|
167 |
logging.info(f"所有向量模型列表:{embedding_models}")
|
168 |
logging.info(f"免费向量模型列表:{free_embedding_models}")
|
|
|
|
|
169 |
|
170 |
def test_embedding_model_availability(api_key, model_name):
|
171 |
"""
|
@@ -195,6 +221,17 @@ def test_embedding_model_availability(api_key, model_name):
|
|
195 |
f"API Key:{api_key},错误信息:{e}"
|
196 |
)
|
197 |
return False
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
198 |
|
199 |
def load_keys():
|
200 |
"""
|
|
|
28 |
free_text_models = []
|
29 |
embedding_models = []
|
30 |
free_embedding_models = []
|
31 |
+
image_models = []
|
32 |
+
free_image_models = []
|
33 |
|
34 |
invalid_keys_global = []
|
35 |
free_keys_global = []
|
|
|
102 |
"""
|
103 |
global text_models, free_text_models
|
104 |
global embedding_models, free_embedding_models
|
105 |
+
global image_models, free_image_models
|
106 |
|
107 |
text_models = get_all_models(FREE_MODEL_TEST_KEY, "chat")
|
108 |
embedding_models = get_all_models(FREE_MODEL_TEST_KEY, "embedding")
|
109 |
+
image_models = get_all_models(FREE_MODEL_TEST_KEY, "embedding")
|
110 |
free_text_models = []
|
111 |
free_embedding_models = []
|
112 |
+
free_image_models = []
|
113 |
|
114 |
ban_models_str = os.environ.get("BAN_MODELS")
|
115 |
ban_models = []
|
|
|
129 |
|
130 |
text_models = [model for model in text_models if model not in ban_models]
|
131 |
embedding_models = [model for model in embedding_models if model not in ban_models]
|
132 |
+
image_models = [model for model in embedding_models if model not in ban_models]
|
133 |
|
134 |
with concurrent.futures.ThreadPoolExecutor(
|
135 |
max_workers=100
|
|
|
167 |
free_embedding_models.append(model)
|
168 |
except Exception as exc:
|
169 |
logging.error(f"模型 {model} 测试生成异常: {exc}")
|
170 |
+
|
171 |
+
with concurrent.futures.ThreadPoolExecutor(
|
172 |
+
max_workers=100
|
173 |
+
) as executor:
|
174 |
+
future_to_model = {
|
175 |
+
executor.submit(
|
176 |
+
test_image_model_availability,
|
177 |
+
FREE_MODEL_TEST_KEY, model
|
178 |
+
): model for model in embedding_models
|
179 |
+
}
|
180 |
+
for future in concurrent.futures.as_completed(future_to_model):
|
181 |
+
model = future_to_model[future]
|
182 |
+
try:
|
183 |
+
is_free = future.result()
|
184 |
+
if is_free:
|
185 |
+
free_image_models.append(model)
|
186 |
+
except Exception as exc:
|
187 |
+
logging.error(f"模型 {model} 测试生成异常: {exc}")
|
188 |
|
189 |
logging.info(f"所有文本模型列表:{text_models}")
|
190 |
logging.info(f"免费文本模型列表:{free_text_models}")
|
191 |
logging.info(f"所有向量模型列表:{embedding_models}")
|
192 |
logging.info(f"免费向量模型列表:{free_embedding_models}")
|
193 |
+
logging.info(f"所有生图模型列表:{image_models}")
|
194 |
+
logging.info(f"免费生图模型列表:{free_image_models}")
|
195 |
|
196 |
def test_embedding_model_availability(api_key, model_name):
|
197 |
"""
|
|
|
221 |
f"API Key:{api_key},错误信息:{e}"
|
222 |
)
|
223 |
return False
|
224 |
+
|
225 |
+
def test_image_model_availability(api_key, model_name):
|
226 |
+
"""
|
227 |
+
测试指定的向量模型是否可用。
|
228 |
+
"""
|
229 |
+
headers = {
|
230 |
+
"Authorization": f"Bearer {api_key}",
|
231 |
+
"Content-Type": "application/json"
|
232 |
+
}
|
233 |
+
|
234 |
+
return True
|
235 |
|
236 |
def load_keys():
|
237 |
"""
|