From 377a36a313d0c42ccb48f2a19a1306f18faa9848 Mon Sep 17 00:00:00 2001 From: lee-hyeon-cheol Date: Mon, 21 Sep 2026 18:23:35 +0900 Subject: [PATCH] =?UTF-8?q?chore(gateway):=20=EC=9A=94=EC=B2=AD=20?= =?UTF-8?q?=ED=8C=8C=ED=8A=B8=20=EC=A2=85=EB=A5=98=C2=B7=EC=84=A0=ED=83=9D?= =?UTF-8?q?=20=EB=AA=A8=EB=8D=B8=20=ED=95=9C=20=EC=A4=84=20=EB=A1=9C?= =?UTF-8?q?=EA=B7=B8=20=E2=80=94=20=EC=9D=B4=EB=AF=B8=EC=A7=80=20=EB=B6=84?= =?UTF-8?q?=EA=B8=B0=20=ED=99=95=EC=9D=B8=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Fable 5.1 --- 4_rust_tauri/src-tauri/Cargo.lock | 2 +- 5_django_backend/apps/gateway/views.py | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/4_rust_tauri/src-tauri/Cargo.lock b/4_rust_tauri/src-tauri/Cargo.lock index bdacf46..ec202b3 100644 --- a/4_rust_tauri/src-tauri/Cargo.lock +++ b/4_rust_tauri/src-tauri/Cargo.lock @@ -485,7 +485,7 @@ dependencies = [ [[package]] name = "codeassist-tauri" -version = "0.1.0" +version = "0.1.1" dependencies = [ "base64 0.22.1", "png 0.17.16", diff --git a/5_django_backend/apps/gateway/views.py b/5_django_backend/apps/gateway/views.py index 12ee1c9..de1ad66 100644 --- a/5_django_backend/apps/gateway/views.py +++ b/5_django_backend/apps/gateway/views.py @@ -10,6 +10,7 @@ from __future__ import annotations import json +import logging from typing import AsyncIterator import httpx @@ -19,6 +20,8 @@ from django.views.decorators.csrf import csrf_exempt from .fabrix import FabrixConfig, Variant, auth_variants +log = logging.getLogger(__name__) + # 테스트가 httpx.MockTransport 를 꽂는 자리. None 이면 진짜 네트워크. TRANSPORT: httpx.AsyncBaseTransport | None = None # 마지막에 통과한 인증 형식 — 프로세스당 하나. 다음 요청은 이것부터 시도. @@ -83,6 +86,9 @@ async def chat_completions(request: HttpRequest) -> HttpResponse: return _err(400, "본문이 JSON 객체가 아니야", "invalid_request") body, headers = cfg.prepare(payload) + # 어떤 파트가 왔고 어느 모델로 가는지 — 이미지 분기 확인용(본문은 안 찍음) + kinds = sorted({p.get("type", "?") for m in payload.get("messages") or [] for p in (m.get("content") if isinstance(m.get("content"), list) else [])}) + log.info("ito → model=%s parts=%s stream=%s", headers.get("x-llm-model-id"), kinds or ["text"], bool(body.get("stream"))) variants = auth_variants(headers, _last_ok["variant"]) if body.get("stream"):