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