Quardo commited on
Commit
3a9a095
1 Parent(s): 70b91e5

Updated space. #3

Browse files
Files changed (2) hide show
  1. app.py +23 -1
  2. requirements.txt +4 -3
app.py CHANGED
@@ -4,6 +4,7 @@ from sse_starlette.sse import EventSourceResponse
4
  from typing import (List, Tuple, Optional)
5
  from fastapi import FastAPI, Request
6
  import gradio as gr
 
7
  import threading
8
  import requests
9
  import argparse
@@ -21,7 +22,7 @@ import os
21
  # --- === CONFIG === ---
22
 
23
  ENV_HANDLE = "env"#or "url on env"
24
- IMAGE_HANDLE = "url"# or "base64"
25
  API_BASE = "env"# or "openai"
26
  api_key = os.environ['API_API_KEY']
27
  oai_api_key = os.environ['OPENAI_API_KEY']
@@ -422,6 +423,27 @@ def handleMultimodalData(model, role, data):
422
  return {"role": role, "content": [{"type": "text", "text": "\n\n".join(handler)}] + result}
423
  else:
424
  return {"role": role, "content": [{"type": "text", "text": data.get('text', '')}] + result}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
425
  elif isinstance(data, str):
426
  return {"role": role, "content": data}
427
  else:
 
4
  from typing import (List, Tuple, Optional)
5
  from fastapi import FastAPI, Request
6
  import gradio as gr
7
+ import mimetypes
8
  import threading
9
  import requests
10
  import argparse
 
22
  # --- === CONFIG === ---
23
 
24
  ENV_HANDLE = "env"#or "url on env"
25
+ IMAGE_HANDLE = "base64"# or "url"
26
  API_BASE = "env"# or "openai"
27
  api_key = os.environ['API_API_KEY']
28
  oai_api_key = os.environ['OPENAI_API_KEY']
 
423
  return {"role": role, "content": [{"type": "text", "text": "\n\n".join(handler)}] + result}
424
  else:
425
  return {"role": role, "content": [{"type": "text", "text": data.get('text', '')}] + result}
426
+ elif isinstance(data, Tuple):
427
+ file_path = data[0]
428
+ mime_type, _ = mimetypes.guess_type(file_path)
429
+ content = getattr(data, 'text', str(data))
430
+
431
+ if mime_type and mime_type.startswith("image/") and model in vision_models:
432
+ if IMAGE_HANDLE == "base64":
433
+ with open(file_path, "rb") as image_file:
434
+ encoded_image = base64.b64encode(image_file.read()).decode('utf-8')
435
+ return {"role": role, "content": [{"type": "image_url", "image_url": {"url": "data:" + mime_type + ";base64," + encoded_image}}]}
436
+ else:
437
+ return {"role": role, "content": [{"type": "image_url", "image_url": {"url": file_path}}]}
438
+ elif mime_type and (mime_type.startswith("text/") or mime_type.startswith("application/")):
439
+ try:
440
+ with open(file_path, "rb") as data_file:
441
+ file_content = data_file.read().decode('utf-8')
442
+ return {"role": role, "content": [{"type": "text", "text": "<|file_start|>" + os.path.basename(file_path) + "\n" + file_content + "<|file_end|>"}]}
443
+ except UnicodeDecodeError:
444
+ return {"role": role, "content": [{"type": "text", "text": content}]}
445
+ else:
446
+ return {"role": role, "content": content}
447
  elif isinstance(data, str):
448
  return {"role": role, "content": data}
449
  else:
requirements.txt CHANGED
@@ -1,5 +1,6 @@
1
- uvicorn==0.27.1
2
- starlette==0.37.2
3
  sse-starlette==2.1.2
 
4
  requests==2.31.0
5
- aiohttp==3.8.5
 
 
 
 
 
1
  sse-starlette==2.1.2
2
+ starlette==0.37.2
3
  requests==2.31.0
4
+ mimetype==0.1.5
5
+ uvicorn==0.27.1
6
+ aiohttp==3.8.5