Spaces:
Running
Running
Upload app.py
Browse files
app.py
CHANGED
@@ -368,10 +368,10 @@ def handle_api_error(error, attempt):
|
|
368 |
logger.warning(f"用户输入因未知原因被阻止")
|
369 |
return 1, None
|
370 |
else:
|
371 |
-
logger.warning(f"
|
372 |
return 1, None
|
373 |
else:
|
374 |
-
logger.warning(f"
|
375 |
return 1, None
|
376 |
|
377 |
except (IndexError, AttributeError) as e:
|
@@ -585,6 +585,62 @@ def list_models():
|
|
585 |
response = {"object": "list", "data": GEMINI_MODELS}
|
586 |
return jsonify(response)
|
587 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
588 |
def keep_alive():
|
589 |
try:
|
590 |
response = requests.get("http://127.0.0.1:7860/", timeout=10)
|
|
|
368 |
logger.warning(f"用户输入因未知原因被阻止")
|
369 |
return 1, None
|
370 |
else:
|
371 |
+
logger.warning(f"用户输入被阻止,原因: {block_reason_str}")
|
372 |
return 1, None
|
373 |
else:
|
374 |
+
logger.warning(f"用户输入被阻止,原因: {full_reason_str}")
|
375 |
return 1, None
|
376 |
|
377 |
except (IndexError, AttributeError) as e:
|
|
|
585 |
response = {"object": "list", "data": GEMINI_MODELS}
|
586 |
return jsonify(response)
|
587 |
|
588 |
+
@app.route('/hf/v1/embeddings', methods=['POST'])
|
589 |
+
def embeddings():
|
590 |
+
data = request.get_json()
|
591 |
+
model_input = data.get("input", "text-embedding-004")
|
592 |
+
model = data.get("model")
|
593 |
+
if not model_input:
|
594 |
+
return jsonify({"error": "没有提供输入"}), 400
|
595 |
+
|
596 |
+
if isinstance(model_input, str):
|
597 |
+
model_input = [model_input]
|
598 |
+
|
599 |
+
gemini_request = {
|
600 |
+
"model": f"models/{model}",
|
601 |
+
"content": {
|
602 |
+
"parts": [{"text": text} for text in model_input]
|
603 |
+
}
|
604 |
+
}
|
605 |
+
|
606 |
+
gemini_url = f"https://generativelanguage.googleapis.com/v1beta/models/{model}:embedContent?key={current_api_key}"
|
607 |
+
headers = {"Content-Type": "application/json"}
|
608 |
+
try:
|
609 |
+
gemini_response = requests.post(gemini_url, json=gemini_request, headers=headers)
|
610 |
+
gemini_response.raise_for_status()
|
611 |
+
|
612 |
+
response_json = gemini_response.json()
|
613 |
+
embeddings_data = []
|
614 |
+
if 'embedding' in response_json:
|
615 |
+
embeddings_data.append({
|
616 |
+
"object": "embedding",
|
617 |
+
"embedding": response_json['embedding']['values'],
|
618 |
+
"index": 0,
|
619 |
+
})
|
620 |
+
elif 'embeddings' in response_json:
|
621 |
+
for i, embedding in enumerate(response_json['embeddings']):
|
622 |
+
embeddings_data.append({
|
623 |
+
"object": "embedding",
|
624 |
+
"embedding": embedding['values'],
|
625 |
+
"index": i,
|
626 |
+
})
|
627 |
+
|
628 |
+
client_response = {
|
629 |
+
"object": "list",
|
630 |
+
"data": embeddings_data,
|
631 |
+
"model": model,
|
632 |
+
"usage": {
|
633 |
+
"prompt_tokens": 0,
|
634 |
+
"total_tokens": 0,
|
635 |
+
},
|
636 |
+
}
|
637 |
+
switch_api_key()
|
638 |
+
return jsonify(client_response)
|
639 |
+
|
640 |
+
except requests.exceptions.RequestException as e:
|
641 |
+
print(f"请求Embeddings失败↙\: {e}")
|
642 |
+
return jsonify({"error": str(e)}), 500
|
643 |
+
|
644 |
def keep_alive():
|
645 |
try:
|
646 |
response = requests.get("http://127.0.0.1:7860/", timeout=10)
|