Skip to content

리팩토링: llm_utils 모듈을 utils/llm으로 이동 및 구조 개선 #190

@ParkGyeongTae

Description

@ParkGyeongTae

이슈 내용

📋 변경 사항 요약

이번 작업에서는 Lang2SQL 프로젝트의 LLM 관련 모듈 구조를 개선하고, 코드의 가독성과 유지보수성을 향상시키는 리팩토링을 수행했습니다.

🔄 주요 변경사항

1. 모듈 구조 개선

  • 이전: llm_utils/ 디렉토리 구조
  • 이후: utils/llm/ 디렉토리로 통합
  • 프로젝트의 전체적인 모듈 구조와 일관성을 맞추기 위해 utils/ 하위로 이동

2. 삭제된 파일들

llm_utils/README.md
llm_utils/__init__.py
llm_utils/chains.py
llm_utils/graph_utils/__init__.py
llm_utils/graph_utils/base.py
llm_utils/graph_utils/basic_graph.py
llm_utils/graph_utils/enriched_graph.py
llm_utils/graph_utils/profile_utils.py
llm_utils/llm/__init__.py
llm_utils/llm/factory.py
llm_utils/llm_response_parser.py
llm_utils/output_parser/__init__.py
llm_utils/output_parser/document_suitability.py
llm_utils/output_parser/question_suitability.py
llm_utils/retrieval.py
llm_utils/tools/__init__.py
llm_utils/tools/datahub.py
llm_utils/vectordb/__init__.py
llm_utils/vectordb/factory.py
llm_utils/vectordb/faiss_db.py
llm_utils/vectordb/pgvector_db.py

3. 새로 추가된 파일들

  • utils/llm/ 디렉토리 하위에 모든 LLM 관련 모듈 재구성
  • 기존 기능을 유지하면서 새로운 구조로 정리

4. 수정된 파일들

engine/query_executor.py

  • import 경로를 utils.llm.*로 변경
  • 모듈 구조 변경에 따른 import 문 업데이트

interface/app_pages/graph_builder.py

  • import 경로를 utils.llm.graph_utils.*로 변경
  • LangGraph 워크플로우 구성 기능 유지

interface/core/config/settings.py

  • import 경로를 utils.llm.tools로 변경
  • 설정 관리 기능 유지

interface/core/result_renderer.py

  • import 경로를 utils.llm.llm_response_parser로 변경
  • 결과 렌더링 기능 유지

interface/core/session_utils.py

  • import 경로를 utils.llm.graph_utils.*로 변경
  • 세션 관리 기능 유지

test/test_llm_utils/test_llm_response_parser.py

  • import 경로를 utils.llm.llm_response_parser로 변경
  • 테스트 기능 유지

🎯 개선 효과

  1. 구조 일관성: 프로젝트의 전체적인 모듈 구조와 일관성 확보
  2. 유지보수성 향상: utils/ 하위로 통합하여 모듈 관리 용이성 증대
  3. 가독성 개선: 명확한 디렉토리 구조로 코드 탐색 용이
  4. 기능 보존: 모든 기존 기능을 유지하면서 구조만 개선

🔍 영향 범위

  • 모든 LLM 관련 기능이 utils/llm/ 하위로 이동
  • import 경로 변경으로 인한 의존성 업데이트
  • 테스트 코드 경로 수정
  • 프로젝트 설정 파일(pyproject.toml) 업데이트

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions