|
import base64 |
|
import os |
|
import time |
|
import traceback |
|
from typing import Callable, Optional |
|
|
|
import numpy as np |
|
|
|
|
|
def float_list_to_base64(float_array: np.ndarray) -> str: |
|
|
|
|
|
|
|
|
|
bytes_array = float_array.tobytes() |
|
|
|
|
|
encoded_bytes = base64.b64encode(bytes_array) |
|
|
|
|
|
ascii_string = encoded_bytes.decode('ascii') |
|
return ascii_string |
|
|
|
|
|
def debug_msg(*args, **kwargs): |
|
from extensions.openai.script import params |
|
if os.environ.get("OPENEDAI_DEBUG", params.get('debug', 0)): |
|
print(*args, **kwargs) |
|
|
|
|
|
def _start_cloudflared(port: int, tunnel_id: str, max_attempts: int = 3, on_start: Optional[Callable[[str], None]] = None): |
|
try: |
|
from flask_cloudflared import _run_cloudflared |
|
except ImportError: |
|
print('You should install flask_cloudflared manually') |
|
raise Exception( |
|
'flask_cloudflared not installed. Make sure you installed the requirements.txt for this extension.') |
|
|
|
for _ in range(max_attempts): |
|
try: |
|
if tunnel_id is not None: |
|
public_url = _run_cloudflared(port, port + 1, tunnel_id=tunnel_id) |
|
else: |
|
public_url = _run_cloudflared(port, port + 1) |
|
|
|
if on_start: |
|
on_start(public_url) |
|
|
|
return |
|
except Exception: |
|
traceback.print_exc() |
|
time.sleep(3) |
|
|
|
raise Exception('Could not start cloudflared.') |
|
|