| 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.') |
|
|