Skip to content

Vector Projection item 상세 조회 SQL WHERE 조립 오류 #386

@donghyuck

Description

@donghyuck

Issue

Type

  • Feature
  • Bug
  • Refactor
  • Docs
  • Chore

Size

  • Small (1): 단순 수정 / 단일 파일
  • Medium (2): 기능 단위 변경 / 다중 파일
  • Large (3): 구조 변경 / 복수 모듈

Summary

  • Vector Projection points 조회와 search-visualization은 정상화되었지만, Top-K 결과 또는 산점도 점 선택 시 item 상세 조회 API가 500으로 실패합니다.
  • 원인은 JdbcExistingVectorItemRepository.findByVectorItemIds()의 SQL 문자열 조립 공백 누락으로 보입니다.

Background

  • /services/ai/vector-visualization에서 COMPLETED · 122건 Projection을 선택하면 산점도가 정상 렌더링됩니다.
  • 검색어=퇴직금 규정은, Top-K=10으로 검색 시각화를 실행하면 Top-K 결과가 정상 반환됩니다.
  • 하지만 Top-K 결과 1번을 클릭하면 GET /api/mgmt/ai/vectors/items/6-18 호출이 500으로 실패하고, 선택 항목 상세 패널에 서버 오류가 표시됩니다.

Scope

  • JdbcExistingVectorItemRepository.findByVectorItemIds() SQL 조립 수정
  • WHERE, IN, OR 앞뒤 공백 보장
  • jsonText(null, "chunkId"), rowVectorItemId("id"), jsonText(null, "documentId") concat 경계 보정
  • item 상세 API가 chunkId, row-{id}, documentId 기준으로 정상 조회되는지 확인

Acceptance Criteria

  • GET /api/mgmt/ai/vectors/items/{vectorItemId} 호출이 200으로 응답한다.
  • vectorItemId=6-18 같은 chunk id 조회가 정상 동작한다.
  • 응답에 label, targetType, sourceId, text, embeddingModel, dimension, metadata, createdAt이 포함된다.
  • Vector Map 화면에서 Top-K 결과 클릭 시 선택 항목 상세 패널이 표시된다.
  • 산점도 점 클릭 시에도 같은 상세 조회가 정상 동작한다.

Validation Plan

  • build
  • test
  • smoke / manual check
  • analysis only (no code change)

AI-Assisted

  • Yes
  • No

AI Usage

  • Usage type: 브라우저 재검증, 서버 로그 분석, 이슈 작성
  • Subagent used: No
  • Delegated scope: N/A
  • Main author validation: /services/ai/vector-visualization에서 검색 시각화 후 Top-K 결과 클릭 및 산점도 점 클릭으로 상세 패널 표시를 확인합니다.

Notes

  • 재현 Projection: proj-20260430044829-105b3fa0
  • 재현 API: GET /api/mgmt/ai/vectors/items/6-18
  • points 조회는 통과했습니다.
  • search-visualization도 통과했습니다. 예: 퇴직금 규정은 검색 시 Top-K 10건과 similarity가 표시됨.
  • 서버 로그 핵심:
Connection.prepareStatement(SELECT id, object_type, object_id, chunk_index, text, embedding, metadata, created_at
 FROM tb_ai_document_chunk
 WHEREmetadata ->> 'chunkId'IN (?)
OR'row-' || idIN (?)
ORmetadata ->> 'documentId'    IN (?)
 ORDER BY object_type, object_id, chunk_index, id
)

org.postgresql.util.PSQLException: ERROR: syntax error at or near "->>"
  • 의심 위치: JdbcExistingVectorItemRepository.findByVectorItemIds()의 text block + 문자열 concat 경계.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions