Синхронизация с server/: нормализация видео, овал-подсказка, хосты с путём, DNR-стенд
- app.py: probe_video(), HDR→bt709, fps=30, -t 20, логирование progress/face_ok, split_host_path() для хостов с путём (domain.com/v1/giga), FPG_WS_PORT - templates/index.html: овал-подсказка, canvas 1080×1080, запас 10% - templates/result.html: стилевые правки (цвета) - gigadoc_ws.py: поддержка пути в --sdk-host - test_fpg.py: переведён на DNR-стенд (bearer subprotocol, Origin) - README: хосты с путём, FPG_WS_PORT, нормализация - .gitignore: server/, wordpress/, wordpress-plugin/ (отдельные репозитории)
This commit is contained in:
1 parent
421183b7e3
commit
7375618b1d
9 files changed
+423
-108
No files matched your search
+31
-6
@@ -66,7 +66,7 @@ def parse_args():
|
||||
parser.add_argument(
|
||||
"--sdk-host",
|
||||
required=True,
|
||||
help="SDK hostname, например gigadoc-sdk.sbermed.ai",
|
||||
help="SDK hostname, например gigadoc-dnr-sdk.sbermed.ai",
|
||||
)
|
||||
|
||||
parser.add_argument(
|
||||
@@ -94,10 +94,10 @@ def parse_args():
|
||||
|
||||
parser.add_argument(
|
||||
"--origin",
|
||||
default="https://gigadoc.sbermed.ai",
|
||||
default="https://gigadoc-dnr-sdk.sbermed.ai",
|
||||
help=(
|
||||
"Origin для WebSocket "
|
||||
"(default: https://gigadoc.sbermed.ai)"
|
||||
"(default: https://gigadoc-dnr-sdk.sbermed.ai)"
|
||||
),
|
||||
)
|
||||
|
||||
@@ -211,6 +211,22 @@ def normalize_prefix(prefix: str) -> str:
|
||||
return prefix.rstrip("/")
|
||||
|
||||
|
||||
def split_host_path(host: str) -> tuple:
|
||||
"""Разделить 'host/path' на (scheme, hostname, base_path).
|
||||
|
||||
Поддерживает варианты: "domain.com", "domain.com/v1/giga",
|
||||
"https://domain.com/v1/giga". Схема возвращается без "://".
|
||||
"""
|
||||
host = host.strip().rstrip("/")
|
||||
scheme = ""
|
||||
if "://" in host:
|
||||
scheme, host = host.split("://", 1)
|
||||
parts = host.split("/", 1)
|
||||
hostname = parts[0]
|
||||
base_path = "/" + parts[1] if len(parts) > 1 else ""
|
||||
return scheme, hostname, base_path
|
||||
|
||||
|
||||
def build_ssl_context(
|
||||
insecure: bool,
|
||||
) -> Optional[ssl.SSLContext]:
|
||||
@@ -329,7 +345,8 @@ async def create_predict_session(
|
||||
)
|
||||
|
||||
url = (
|
||||
f"https://{args.sdk_host}"
|
||||
f"https://{args.sdk_hostname}"
|
||||
f"{args.sdk_base_path}"
|
||||
f"{rest_prefix}/predict/new"
|
||||
)
|
||||
|
||||
@@ -494,7 +511,8 @@ async def websocket_predict(
|
||||
for port in ports:
|
||||
|
||||
ws_url = (
|
||||
f"wss://{args.sdk_host}:{port}"
|
||||
f"wss://{args.sdk_hostname}:{port}"
|
||||
f"{args.sdk_base_path}"
|
||||
f"{ws_prefix}/{uid}/image"
|
||||
)
|
||||
|
||||
@@ -918,7 +936,8 @@ async def delete_predict_session(
|
||||
)
|
||||
|
||||
url = (
|
||||
f"https://{args.sdk_host}"
|
||||
f"https://{args.sdk_hostname}"
|
||||
f"{args.sdk_base_path}"
|
||||
f"{rest_prefix}/predict/{uid}"
|
||||
)
|
||||
|
||||
@@ -993,6 +1012,12 @@ async def main():
|
||||
|
||||
args = parse_args()
|
||||
|
||||
# sdk_host может содержать путь (domain.com/v1/giga) —
|
||||
# разделяем на hostname и base_path.
|
||||
_scheme, args.sdk_hostname, args.sdk_base_path = split_host_path(
|
||||
args.sdk_host
|
||||
)
|
||||
|
||||
setup_logging(
|
||||
args.verbose
|
||||
)
|
||||
|
||||
Reference in new issue
Block a user