Update app.py
Browse files
app.py
CHANGED
|
@@ -636,29 +636,29 @@ def handsome_chat_completions():
|
|
| 636 |
images = response_json.get("images", [])
|
| 637 |
openai_images = []
|
| 638 |
for item in images:
|
| 639 |
-
|
| 640 |
-
|
| 641 |
-
|
| 642 |
-
|
| 643 |
-
|
| 644 |
-
|
| 645 |
-
|
| 646 |
-
|
| 647 |
-
|
| 648 |
-
|
| 649 |
-
|
| 650 |
-
|
| 651 |
-
|
| 652 |
-
|
| 653 |
-
|
| 654 |
-
|
| 655 |
|
| 656 |
# Construct the expected JSON output
|
| 657 |
response_data = {
|
| 658 |
-
"images": openai_images,
|
| 659 |
"created": int(time.time()),
|
| 660 |
"timings": {
|
| 661 |
-
"inference": total_time
|
| 662 |
}
|
| 663 |
}
|
| 664 |
if "seed" in response_json:
|
|
@@ -693,8 +693,8 @@ def handsome_chat_completions():
|
|
| 693 |
logging.error(f"请求转发异常: {e}")
|
| 694 |
return jsonify({"error": str(e)}), 500
|
| 695 |
else:
|
| 696 |
-
|
| 697 |
-
|
| 698 |
start_time = time.time()
|
| 699 |
response = requests.post(
|
| 700 |
TEST_MODEL_ENDPOINT,
|
|
@@ -707,7 +707,6 @@ def handsome_chat_completions():
|
|
| 707 |
return jsonify(response.json()), 429
|
| 708 |
|
| 709 |
if data.get("stream", False):
|
| 710 |
-
# ... (Existing stream response handling)
|
| 711 |
def generate():
|
| 712 |
first_chunk_time = None
|
| 713 |
full_response_content = ""
|
|
@@ -815,14 +814,10 @@ def handsome_chat_completions():
|
|
| 815 |
request_timestamps.append(time.time())
|
| 816 |
token_counts.append(prompt_tokens+completion_tokens)
|
| 817 |
|
| 818 |
-
|
| 819 |
-
|
| 820 |
-
|
| 821 |
-
|
| 822 |
-
return Response(
|
| 823 |
-
stream_with_context(generate()),
|
| 824 |
-
content_type=response.headers['Content-Type']
|
| 825 |
-
)
|
| 826 |
else:
|
| 827 |
response.raise_for_status()
|
| 828 |
end_time = time.time()
|
|
@@ -859,7 +854,8 @@ def handsome_chat_completions():
|
|
| 859 |
item.get("type") == "text"
|
| 860 |
):
|
| 861 |
user_content += (
|
| 862 |
-
item.get("text", "") +
|
|
|
|
| 863 |
)
|
| 864 |
|
| 865 |
user_content = user_content.strip()
|
|
|
|
| 636 |
images = response_json.get("images", [])
|
| 637 |
openai_images = []
|
| 638 |
for item in images:
|
| 639 |
+
if isinstance(item, dict) and "url" in item:
|
| 640 |
+
image_url = item["url"]
|
| 641 |
+
logging.info(f"Extracted image URL: {image_url}") # Log the URL
|
| 642 |
+
try:
|
| 643 |
+
image_data = requests.get(image_url, stream=True).raw
|
| 644 |
+
image = Image.open(image_data)
|
| 645 |
+
buffered = io.BytesIO()
|
| 646 |
+
image.save(buffered, format="PNG")
|
| 647 |
+
img_str = base64.b64encode(buffered.getvalue()).decode()
|
| 648 |
+
openai_images.append({"b64_json": img_str})
|
| 649 |
+
except Exception as e:
|
| 650 |
+
logging.error(f"图片转base64失败: {e}")
|
| 651 |
+
openai_images.append({"url": image_url})
|
| 652 |
+
else:
|
| 653 |
+
logging.error(f"无效的图片数据: {item}")
|
| 654 |
+
openai_images.append({"url": item})
|
| 655 |
|
| 656 |
# Construct the expected JSON output
|
| 657 |
response_data = {
|
| 658 |
+
"images": openai_images,
|
| 659 |
"created": int(time.time()),
|
| 660 |
"timings": {
|
| 661 |
+
"inference": total_time
|
| 662 |
}
|
| 663 |
}
|
| 664 |
if "seed" in response_json:
|
|
|
|
| 693 |
logging.error(f"请求转发异常: {e}")
|
| 694 |
return jsonify({"error": str(e)}), 500
|
| 695 |
else:
|
| 696 |
+
# Existing text-based model handling logic
|
| 697 |
+
try:
|
| 698 |
start_time = time.time()
|
| 699 |
response = requests.post(
|
| 700 |
TEST_MODEL_ENDPOINT,
|
|
|
|
| 707 |
return jsonify(response.json()), 429
|
| 708 |
|
| 709 |
if data.get("stream", False):
|
|
|
|
| 710 |
def generate():
|
| 711 |
first_chunk_time = None
|
| 712 |
full_response_content = ""
|
|
|
|
| 814 |
request_timestamps.append(time.time())
|
| 815 |
token_counts.append(prompt_tokens+completion_tokens)
|
| 816 |
|
| 817 |
+
return Response(
|
| 818 |
+
stream_with_context(generate()),
|
| 819 |
+
content_type=response.headers['Content-Type']
|
| 820 |
+
)
|
|
|
|
|
|
|
|
|
|
|
|
|
| 821 |
else:
|
| 822 |
response.raise_for_status()
|
| 823 |
end_time = time.time()
|
|
|
|
| 854 |
item.get("type") == "text"
|
| 855 |
):
|
| 856 |
user_content += (
|
| 857 |
+
item.get("text", "") +
|
| 858 |
+
" "
|
| 859 |
)
|
| 860 |
|
| 861 |
user_content = user_content.strip()
|