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"):