Skip to content

chore(deps): bump actions/cache from 4 to 5#16

Closed
dependabot[bot] wants to merge 91 commits intomainfrom
dependabot/github_actions/actions/cache-5
Closed

chore(deps): bump actions/cache from 4 to 5#16
dependabot[bot] wants to merge 91 commits intomainfrom
dependabot/github_actions/actions/cache-5

Conversation

@dependabot
Copy link
Contributor

@dependabot dependabot bot commented on behalf of github Jan 9, 2026

Bumps actions/cache from 4 to 5.

Release notes

Sourced from actions/cache's releases.

v5.0.0

[!IMPORTANT] actions/cache@v5 runs on the Node.js 24 runtime and requires a minimum Actions Runner version of 2.327.1.

If you are using self-hosted runners, ensure they are updated before upgrading.


What's Changed

Full Changelog: actions/cache@v4.3.0...v5.0.0

v4.3.0

What's Changed

New Contributors

Full Changelog: actions/cache@v4...v4.3.0

v4.2.4

What's Changed

New Contributors

Full Changelog: actions/cache@v4...v4.2.4

v4.2.3

What's Changed

  • Update to use @​actions/cache 4.0.3 package & prepare for new release by @​salmanmkc in actions/cache#1577 (SAS tokens for cache entries are now masked in debug logs)

New Contributors

Full Changelog: actions/cache@v4.2.2...v4.2.3

... (truncated)

Changelog

Sourced from actions/cache's changelog.

Releases

Changelog

5.0.1

  • Update @azure/storage-blob to ^12.29.1 via @actions/cache@5.0.1 #1685

5.0.0

[!IMPORTANT] actions/cache@v5 runs on the Node.js 24 runtime and requires a minimum Actions Runner version of 2.327.1. If you are using self-hosted runners, ensure they are updated before upgrading.

4.3.0

  • Bump @actions/cache to v4.1.0

4.2.4

  • Bump @actions/cache to v4.0.5

4.2.3

  • Bump @actions/cache to v4.0.3 (obfuscates SAS token in debug logs for cache entries)

4.2.2

  • Bump @actions/cache to v4.0.2

4.2.1

  • Bump @actions/cache to v4.0.1

4.2.0

TLDR; The cache backend service has been rewritten from the ground up for improved performance and reliability. actions/cache now integrates with the new cache service (v2) APIs.

The new service will gradually roll out as of February 1st, 2025. The legacy service will also be sunset on the same date. Changes in these release are fully backward compatible.

We are deprecating some versions of this action. We recommend upgrading to version v4 or v3 as soon as possible before February 1st, 2025. (Upgrade instructions below).

If you are using pinned SHAs, please use the SHAs of versions v4.2.0 or v3.4.0

If you do not upgrade, all workflow runs using any of the deprecated actions/cache will fail.

Upgrading to the recommended versions will not break your workflows.

4.1.2

... (truncated)

Commits
  • 9255dc7 Merge pull request #1686 from actions/cache-v5.0.1-release
  • 8ff5423 chore: release v5.0.1
  • 9233019 Merge pull request #1685 from salmanmkc/node24-storage-blob-fix
  • b975f2b fix: add peer property to package-lock.json for dependencies
  • d0a0e18 fix: update license files for @​actions/cache, fast-xml-parser, and strnum
  • 74de208 fix: update @​actions/cache to ^5.0.1 for Node.js 24 punycode fix
  • ac7f115 peer
  • b0f846b fix: update @​actions/cache with storage-blob fix for Node.js 24 punycode depr...
  • a783357 Merge pull request #1684 from actions/prepare-cache-v5-release
  • 3bb0d78 docs: highlight v5 runner requirement in releases
  • Additional commits viewable in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

leebeanbin and others added 30 commits December 19, 2025 14:21
GitHub Pages has been enabled in repository settings.
This empty commit triggers the documentation workflow.
- 모든 이론 문서의 구식 파일 경로를 현대적 아키텍처 경로로 업데이트
  - embeddings.py → domain/embeddings/, infrastructure/providers/
  - rag_chain.py → facade/rag_facade.py, service/impl/rag_service_impl.py
  - graph.py → domain/graph/, service/impl/state_graph_service_impl.py
  - multi_agent.py → domain/multi_agent/, service/impl/multi_agent_service_impl.py
  - tools.py → domain/tools/tool.py, service/impl/agent_service_impl.py
  - vision_rag.py → facade/vision_rag_facade.py, domain/vision/embeddings.py
- 중복 문서 삭제 (01_embeddings_theory.md, 07_web_search_theory.md)
- 수학적 정의, 구현 경로, 시간 복잡도 정보 보강
- README.md 및 docs/README.md 최신화
- CLI import 경로 수정: ...hybrid_manager → ...infrastructure.hybrid
- pyproject.toml CLI entry point 수정: llmkit.cli:main → llmkit.utils.cli.cli:main
- CLI가 올바른 모듈에서 함수를 import하도록 수정
- PyPI 배포 전체 프로세스 문서화
- 사전 준비 (계정 생성, API 토큰)
- 수동 배포 단계 (빌드, 검증, 업로드)
- GitHub Actions 자동화 배포 설정
- 버전 관리 가이드
- 문제 해결 섹션
- ARCHITECTURE.md: Clean Architecture 기반 아키텍처 가이드 추가
- Makefile: 개발 워크플로우 자동화 (타입 체크, 린트, 테스트 등)
- QUICK_START.md: 빠른 시작 가이드 추가
- Domain Layer: 핵심 비즈니스 로직 및 엔티티
  - embeddings, loaders, splitters, vector_stores, tools, graph 등
- Service Layer: 비즈니스 로직 인터페이스 및 구현
  - IChatService, IRAGService, IAgentService 등
- Facade Layer: 사용자 친화적 API (기존 API 유지)
  - Client, RAGChain, Agent, Graph 등
- Handler Layer: 입력 검증 및 에러 처리
  - ChatHandler, RAGHandler, AgentHandler 등
- Infrastructure Layer: 외부 시스템 인터페이스
  - Provider, Vector Store 구현, Registry 등
- DTO Layer: 데이터 전송 객체
  - Request/Response DTOs
- decorators/: 데코레이터 모듈 (로깅, 에러 처리, 검증)
- utils/error_handling.py: 에러 처리 유틸리티
- utils/streaming.py, streaming_wrapper.py: 스트리밍 지원
- utils/token_counter.py: 토큰 카운팅
- utils/tracer.py: 추적 기능
- utils/evaluation_dashboard.py: 평가 대시보드
- utils/rag_debug/: RAG 디버깅 도구
- utils/rag_visualization.py: RAG 시각화
- utils/cli/__init__.py: CLI 모듈 초기화
- __init__.py: 새 아키텍처 구조에 맞게 export 업데이트
- utils/__init__.py: 유틸리티 모듈 통합 export
- utils/config.py: 설정 관리 개선
- vector_stores/__init__.py: 벡터 스토어 모듈 업데이트
- _source_providers/: Provider 구현 업데이트
- _source_models/: 모델 설정 업데이트
삭제된 파일들 (기능은 새 아키텍처로 이동):
- adapter.py → infrastructure/adapter.py
- agent.py → facade/agent_facade.py, handler/agent_handler.py
- audio_speech.py → domain/audio/, facade/audio_facade.py
- callbacks.py → utils/callbacks.py
- chain.py → facade/chain_facade.py, service/impl/chain_service_impl.py
- cli.py → utils/cli/cli.py
- client.py → facade/client_facade.py
- document_loaders.py → domain/loaders/
- error_handling.py → utils/error_handling.py
- evaluation.py → domain/evaluation/
- finetuning.py → domain/finetuning/
- graph.py → facade/state_graph_facade.py, domain/graph/
- hybrid_manager.py → infrastructure/hybrid/
- inferrer.py → infrastructure/inferrer.py
- memory.py → domain/memory/
- ml_models.py → infrastructure/ml/
- multi_agent.py → facade/multi_agent_facade.py, domain/multi_agent/
- output_parsers.py → domain/output_parsers/
- prompts.py → domain/prompts/
- rag_chain.py → facade/rag_facade.py, service/impl/rag_service_impl.py
- rag_debug.py → utils/rag_debug/
- registry.py → infrastructure/registry/
- scanner.py → infrastructure/scanner.py
- state_graph.py → facade/state_graph_facade.py, domain/state_graph/
- streaming.py → utils/streaming.py
- text_splitters.py → domain/splitters/
- token_counter.py → utils/token_counter.py
- tools.py → domain/tools/
- tools_advanced.py → domain/tools/advanced/
- tracer.py → utils/tracer.py
- vector_stores_old.py → domain/vector_stores/
- vision_embeddings.py → domain/vision/embeddings.py
- vision_loaders.py → domain/vision/loaders.py
- vision_rag.py → facade/vision_rag_facade.py
- web_search.py → domain/web_search/, facade/web_search_facade.py

테스트 파일:
- run_embeddings_tests.py, run_text_splitter_tests.py, run_vector_stores_tests.py 삭제
- test_phase5.py 삭제 (새 테스트 구조로 대체)
- tests/README.md: 테스트 가이드 추가
- tests/conftest.py: 공통 테스트 설정
- test_cli.py: CLI 테스트
- test_domain/: Domain 레이어 테스트
- test_facade/: Facade 레이어 테스트
- test_handler/: Handler 레이어 테스트
- test_infrastructure/: Infrastructure 레이어 테스트
- test_integration.py: 통합 테스트
- test_service/: Service 레이어 테스트
- test_utils/: Utils 테스트
- test_vector_stores/: Vector Store 테스트
- test_e2e.py: End-to-End 테스트
주요 개선사항:
1. DI Container 구현 및 적용
   - utils/di_container.py: 싱글톤 패턴으로 Factory 객체 재사용
   - 모든 Facade의 _init_services()를 DI Container 사용하도록 수정
   - 코드 중복 34곳 → 1곳으로 감소

2. Handler 상속 통일
   - 모든 Handler가 BaseHandler 상속하도록 수정
   - AudioHandler, FinetuningHandler, EvaluationHandler 상속 추가
   - 일관성 향상 및 공통 기능 재사용 가능

3. 버그 수정
   - EvaluationHandler.handle_create_evaluator() 중복 메서드 제거

4. 데코레이터 검증 로직 중복 제거
   - decorators/validation_utils.py: 공통 검증 함수 추출
   - validation.py: 중복 코드 제거 (200줄 → 80줄, 60% 감소)

5. copy.deepcopy() 최적화
   - state_graph_service_impl.py: Dict는 얕은 복사로 시작
   - GraphState에 copy(), deepcopy() 메서드 추가
   - 성능 향상 (10-50% 예상)

6. 사용하지 않는 import 정리
   - 모든 Facade에서 HandlerFactory, ServiceFactory, SourceProviderFactoryAdapter import 제거

7. 문서 추가
   - docs/CODE_QUALITY_ANALYSIS.md: 코드 품질 분석 및 개선 가이드
   - docs/PERFORMANCE_OPTIMIZATION.md: 성능 최적화 가이드
주요 변경사항:
1. DI Container 구현 및 적용
   - utils/di_container.py: 싱글톤 패턴으로 Factory 객체 재사용
   - 모든 Facade의 _init_services() 중복 제거 (34곳 → DI Container 사용)
   - 예상 효과: 코드 중복 90% 감소, 유지보수성 향상

2. Handler 상속 통일
   - 모든 Handler가 BaseHandler 상속 (ChatHandler, AudioHandler, FinetuningHandler, EvaluationHandler)
   - BaseHandler._call_service() 공통 메서드 사용
   - 일관성 향상 및 공통 기능 재사용

3. 데코레이터 검증 로직 중복 제거
   - decorators/validation_utils.py: 공통 검증 로직 추출
   - validation.py: async/sync/generator 각각에 중복되던 검증 로직 통합
   - 예상 효과: 코드 200줄 → 80줄 (60% 감소)

4. copy.deepcopy() 최적화
   - GraphState.copy() 및 deepcopy() 메서드 추가
   - state_graph_service_impl.py: 얕은 복사 우선 사용
   - 예상 효과: 성능 10-50% 향상

5. 버그 수정
   - EvaluationHandler.handle_create_evaluator() 중복 메서드 제거

6. 문서 추가
   - docs/CODE_QUALITY_ANALYSIS.md: 코드 품질 분석 및 개선 가이드
   - docs/PERFORMANCE_OPTIMIZATION.md: 성능 최적화 가이드
- validation.py: validation_utils import에 fallback 추가
- state_graph_service_impl.py: stream 메서드도 GraphState.copy() 사용하도록 수정
- stream 메서드의 초기 상태 복사도 GraphState.copy() 사용하도록 수정
- 반복문 내 GraphState import 중복 제거 (상단에서 한 번만 import)
- iteration += 1 추가 (누락된 부분 수정)
- stream 메서드의 initial_state 복사도 GraphState.copy() 사용하도록 수정
- 모든 copy.deepcopy() 호출을 GraphState.copy() 또는 얕은 복사로 최적화
- 성능 향상: 대용량 상태 객체 복사 시 10-50% 성능 개선
- GraphState import를 파일 상단으로 이동 (중복 제거)
- stream 메서드에서도 상단 import 재사용
- 코드 일관성 향상
- RAG, Agent, Graph, Multi-Agent, Evaluation 파이프라인 분석
- 네트워크 I/O, CPU 연산, 메모리 사용 지점 식별
- 병목 지점 우선순위 및 개선 방안 제시
- 성능 측정 및 모니터링 방법 포함
- F401: 사용되지 않는 import 제거 (make_subplots, visualize_embeddings, Axes3D)
- E721: 타입 비교를 == 에서 is로 변경 (tool.py)
- E722: bare except를 구체적인 예외 타입으로 변경
- 포맷팅 완료 (246개 파일)
- Makefile 업데이트: format-check, lint-format, lint-all 커맨드 추가
- CI 워크플로우 업데이트: black 제거, ruff format 사용
- 불필요한 문서 삭제 (CODE_QUALITY_ANALYSIS.md 등)
- Facade 테스트 DI Container 패턴으로 수정 (11개 파일)
- Handler/Service 테스트 Mock 업데이트
- Response DTO exports 추가 (AudioResponse 등)
- AgentServiceImpl에 max_history_tokens 속성 추가
- Audio optional dependency 추가 (openai-whisper)
- pyproject.toml에 keywords 확장 및 의존성 정리
- 배포 문서 및 스크립트 추가 (DEPLOYMENT.md, publish.sh)

테스트 결과: 577 passed, 0 failed, 0 ERROR ✅
- 패키지명: llmkit → beanllm
- 폴더 구조: src/llmkit → src/beanllm
- 모든 import 경로 업데이트
- CLI 명령어: llmkit → beanllm
- 문서 및 설정 파일 업데이트
- GitHub 저장소 URL 업데이트

테스트: 577 passed ✅
- setuptools include: llmkit* → beanllm*
- package-data: llmkit → beanllm
- pytest coverage: --cov=llmkit → --cov=beanllm
- 모든 MD 파일에서 llmkit → beanllm 변경
- 불필요한 파일 삭제 (PYPI_CHECKLIST.md, poetry.lock)
- pyproject.toml keywords 업데이트
  - llmkit → beanllm
  - anthropic, multi-agent, nlp, prompt-engineering 추가
- __pycache__ 및 .pyc 파일 정리
- README에 PyPI, Downloads, Tests badges 추가
- examples/ 디렉토리 모든 파일 업데이트 (llmkit → beanllm)
  - 15개 파일의 import 및 주석 변경
- GitHub Actions 업데이트
  - ci.yml: src/llmkit → src/beanllm
  - tests.yml: CI에서 복사하여 Tests workflow 생성
  - publish.yml: PyPI URL 업데이트 (llmkit → beanllm)
- 자동 테스트 및 배포 준비 완료
- 13개 Facade 클래스 전체 문서화
- 각 메서드별 파라미터, 반환값, 예제 코드 포함
- Core, Advanced, Specialized 기능으로 분류
- 실용적인 사용 예제 제공
**API_REFERENCE.md 수정:**
- 모든 *Facade 클래스명을 실제 클래스명으로 변경
  - ClientFacade → Client
  - RAGFacade → RAGChain
  - AgentFacade → Agent
  - ChainFacade → Chain
  - MultiAgentFacade → MultiAgentCoordinator
  - GraphFacade → Graph
  - StateGraphFacade → StateGraph
  - AudioFacade → WhisperSTT, TextToSpeech, AudioRAG
  - VisionRAGFacade → VisionRAG
  - WebSearchFacade → WebSearch
  - EvaluationFacade → Evaluator
  - FinetuningFacade → FineTuningManager
- client.chat() 파라미터 형식 수정
  - client.chat("Hello") → client.chat(messages=[{"role": "user", "content": "Hello"}])
- stream 메서드명 수정: stream() → stream_chat()
- 모든 비동기 예제에 async/await 추가

**QUICK_START.md 수정:**
- 모든 비동기 메서드에 await 추가
- client.chat() 파라미터 형식 수정 (messages 리스트)
- stream 메서드명 수정: stream() → stream_chat()
- Agent 파라미터 수정: llm=Client(...) → model="..."
- MultiAgentCoordinator 사용법 수정 (딕셔너리, 메서드명)
- StateGraph 예제 수정 (비동기, add_conditional_edge)
- 모든 예제에 asyncio.run() 추가

이제 모든 문서가 실제 코드와 동기화되었습니다. ✅

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
**README.md 개선:**
- 헤더 및 배지 중앙 정렬 (<h1>, <p align="center">)
- Documentation 섹션 추가 (Quick Start, API Reference, Architecture, Examples)
- 사용자가 빠르게 문서에 접근할 수 있도록 링크 조기 배치
- 2025년 최신 README 기법 적용:
  * Progressive Disclosure (점진적 정보 공개)
  * Visual Hierarchy (시각적 계층)
  * F-Pattern Reading (중요 정보 상단 배치)

이제 README가 최신 베스트 프랙티스를 따릅니다. ✅

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
## Phase 3: ML Layer 완료 (100%)

### TODO-301: MarkerEngine 기본 구현 ✅
- MarkerEngine 클래스 구현 (430 lines)
  * GPU/CPU 모드 지원 (torch integration)
  * marker-pdf 통합 (98% accuracy Markdown conversion)
  * Markdown 테이블 파싱
  * 이미지 변환 및 페이지 분리 로직
- beanPDFLoader 통합
  * ML engine 초기화 (optional dependency)
  * strategy="ml" 지원
  * 의존성 누락 시 graceful fallback
- 단위 테스트 14개 작성 (Mock 기반)
- pyproject.toml ml optional dependency 추가

### TODO-302: marker-pdf 통합 및 최적화 ✅
- 캐싱 메커니즘 (+178 lines)
  * LRU 결과 캐시 (SHA256 키)
  * 모델 캐싱으로 재로딩 방지
  * clear_cache(), get_cache_stats() 메서드
- GPU 메모리 관리
  * _cleanup_gpu_memory() 구현
  * torch.cuda.empty_cache() 호출
  * 배치 처리 후 자동 정리
- Batch 처리 최적화
  * extract_batch() 메서드
  * 진행 상황 로깅
  * GPU 메모리 주기적 정리
- 성능 벤치마크 (297 lines)
  * 3개 엔진 비교 (PyMuPDF, pdfplumber, marker-pdf)
  * PyMuPDF: 129.61 pages/sec (0.20 MB)
  * pdfplumber: 9.59 pages/sec (41.41 MB)
  * pdfplumber는 PyMuPDF보다 13.52배 느림

### 주요 변경사항
**새 파일:**
- src/beanllm/domain/loaders/pdf/engines/marker_engine.py (608 lines)
- tests/domain/loaders/pdf/test_marker_engine.py (20 tests)
- tests/domain/loaders/pdf/benchmark_engines.py (297 lines)

**수정 파일:**
- src/beanllm/domain/loaders/pdf/engines/__init__.py (MarkerEngine export)
- src/beanllm/domain/loaders/pdf/bean_pdf_loader.py (ML engine 통합)
- src/beanllm/domain/loaders/__init__.py (beanPDFLoader export)
- src/beanllm/domain/loaders/factory.py (PDF 자동 감지)
- pyproject.toml (ml optional dependency)
- README.md (ML Layer 예제, 설치 가이드)
- docs/API_REFERENCE.md (beanPDFLoader 완전 문서화)
- docs/PROGRESS.md (Phase 3 100% 완료)

### 테스트 통계
- 총 118 tests (70 → 118, +48 tests)
- 99 passed, 19 skipped (marker-pdf 미설치 시)
- 0 failed (100% pass rate)

### 3-Layer 아키텍처 완성
✅ Fast Layer (PyMuPDF): ~130 pages/sec, 이미지 추출
✅ Accurate Layer (pdfplumber): 95% accuracy, 테이블 추출
✅ ML Layer (marker-pdf): 98% accuracy, 구조 보존 Markdown

### 문서 업데이트
- README: ML Layer 사용 예제 추가
- API_REFERENCE: beanPDFLoader 완전 문서화 (150+ lines)
- PROGRESS: Phase 3 완료 (58% overall progress)
dependabot bot and others added 22 commits January 2, 2026 20:08
Updates the requirements on [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) to permit the latest version.
- [Release notes](https://github.com/pytest-dev/pytest-asyncio/releases)
- [Commits](pytest-dev/pytest-asyncio@v0.21.0...v1.3.0)

---
updated-dependencies:
- dependency-name: pytest-asyncio
  dependency-version: 1.3.0
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
**GitHub Workflows 최적화**:
- ci.yml 삭제 (중복 제거, tests.yml과 통합)
- pip 캐싱 추가 (tests.yml, docs.yml) - CI 30-50% 가속화
- MyPy continue-on-error 제거 (타입 체크 엄격화)
- Sphinx 불필요 의존성 제거

**문서 업데이트**:
- API_REFERENCE.md: Utils 섹션 추가 (198줄)
  - DependencyManager 상세 문서 (4가지 사용 패턴)
  - LazyLoadMixin 상세 문서 (3가지 구현 전략)
  - StructuredLogger 상세 문서 (도메인별 메서드)
  - LRU Cache 상세 문서 (스레드 안전성)
- CHANGELOG.md: Phase 4 내용 추가
- README.md: Phase 4 요약 및 영향 추가

**영향**:
- CI 속도: +30-50% (캐싱)
- Workflows: 5 → 4 (20% 감소)
- 문서 커버리지: 100% (모든 신규 기능)
- 타입 안전성: 강화 (MyPy 실패 시 CI 차단)
**Import 개선**:
- 3-레벨 상대 import → 절대 import (108개 파일)
  - from ...utils. → from beanllm.utils.
  - from ...dto. → from beanllm.dto.
  - from ...infrastructure. → from beanllm.infrastructure.
- requests → httpx 통일 (10개 파일)
  - 동기/비동기 통합 HTTP 클라이언트
  - 조건부 import 포함 모두 변경

**God 클래스 분해**:
1. error_handling.py (1,121줄 → 301줄, 73% 감소)
   - utils/exceptions.py (7개 exception 클래스)
   - utils/resilience/retry.py (Retry 로직 3개 클래스)
   - utils/resilience/circuit_breaker.py (Circuit Breaker 3개 클래스)
   - utils/resilience/rate_limiter.py (Rate Limiting 3개 클래스)
   - utils/resilience/error_tracker.py (Error Tracking 5개 클래스)
   - 100% backward compatibility 유지

2. embeddings/providers.py (1,120줄 → 57줄, 95% 감소)
   - domain/embeddings/api_embeddings.py (7개 API-based)
   - domain/embeddings/local_embeddings.py (4개 Local-based)
   - 논리적 분리: API vs Local
   - 100% backward compatibility 유지

**영향**:
- Import 명확성: 100% (모든 상대 import 제거)
- HTTP 클라이언트: 통일 (httpx 단일 사용)
- God 클래스: 7 → 0 (100% 제거)
- 평균 파일 크기: -84% (1,120줄 → ~300줄)
- 새 모듈: +9개 (5 resilience + 2 embeddings + 2 re-export)
- Backward compatibility: 100% 유지
## 주요 변경사항

### 1. Scripts 및 CLI 업데이트
- **scripts/welcome.py**: llmkit → beanllm 모든 참조 변경
  - Import 경로: `from llmkit.ui` → `from beanllm.ui`
  - 환경 변수: LLMKIT_SHOW_BANNER → BEANLLM_SHOW_BANNER
  - GitHub URL: leebeanbin/llmkit → leebeanbin/beanllm
  - CLI 예제 코드 업데이트

- **publish.sh**: PyPI 배포 스크립트 업데이트
  - 패키지명: llmkit → beanllm
  - Ruff check 경로: src/llmkit → src/beanllm
  - PyPI/TestPyPI URL 업데이트
  - 설치 명령어: `pip install llmkit` → `pip install beanllm`

- **src/beanllm/utils/cli/cli.py**: 상대 import → 절대 import 변경
  - `from ...infrastructure` → `from beanllm.infrastructure`
  - `from ...ui` → `from beanllm.ui`

### 2. Import 문 표준화 (86개 파일)
- **모든 3-level 상대 import 제거**: `from ...` → `from beanllm.`
- **모든 4-level 상대 import 제거**: `from ....` → `from beanllm.`
- **모든 5-level 상대 import 제거**: `from .....` → `from beanllm.`

**영향받은 모듈:**
- domain/ (loaders, embeddings, evaluation, vision, vector_stores, retrieval, splitters, parsers, prompts, graph, finetuning)
- service/impl/ (모든 서비스 구현)
- infrastructure/ (hybrid, registry, models, scanner, inferrer)
- integrations/ (llamaindex, langgraph)
- dto/ (request, response)
- facade/, providers/, models/, utils/

### 3. 누락된 Import 버그 수정
- **docling_loader.py**: `os`, `Dict`, `Any` import 추가
- **csv.py**: `csv` 모듈 import 추가
- **directory.py**: 중복 `import re` 제거
- **jupyter.py**: 문자열 결합 버그 수정
  - 변경 전: `"\n\n" + "="*80 + "\n\n".join(content_parts)`
  - 변경 후: `("\n\n" + "="*80 + "\n\n").join(content_parts)`

### 4. PDF Loader Import 수정 (8개 파일)
- bean_pdf_loader.py
- engines/base.py, pymupdf_engine.py, pdfplumber_engine.py, marker_engine.py
- utils/layout_analyzer.py, markdown_converter.py
- vision_rag_service_impl.py

## 검증 결과
✅ 3-level 이상 상대 import: 144개 → 0개
✅ llmkit 참조 (src/scripts): 모두 제거
✅ requests import: 0개 (모두 httpx 사용)
✅ 누락된 import: 모두 추가
✅ 중복 import: 모두 제거

## 기술적 개선사항
- **유지보수성**: 절대 import로 코드 가독성 향상
- **안정성**: 누락된 import 버그 수정으로 런타임 에러 방지
- **일관성**: 전체 코드베이스 import 스타일 통일
- **호환성**: 패키지 리팩토링 후에도 import 경로 안정성 보장
- SearchResult 중복 import 해결 (RetrievalSearchResult로 alias)
- Missing imports 추가:
  - text.py: import os
  - pdf_loader.py: validate_file_path 함수명 수정
  - web_search/engines.py: requests.RequestException → httpx.RequestError
- CHANGELOG.md: Phase 5-6 추가, [Unreleased] → [0.2.1] 변경
- README.md: Phase 5-6 섹션 추가, Impact 지표 업데이트
- QUICK_START.md & README.md: GitHub URL 수정 (yourusername → leebeanbin)

Phase 5 내용:
- CSVLoader helper methods 추가
- DirectoryLoader 정규식 pre-compilation (1000× faster)
- 모듈 구조 개선

Phase 6 내용:
- 86개 파일 import 표준화 (relative → absolute)
- Missing imports 수정 (docling_loader, csv, text, pdf_loader)
- Scripts 업데이트 (llmkit → beanllm)
- License SPDX 표준 적용
- Linter 에러 수정 (SearchResult 중복, requests → httpx)
…gte-0.21.0-and-lt-2.0.0

chore(deps-dev): update pytest-asyncio requirement from <1.0.0,>=0.21.0 to >=0.21.0,<2.0.0
…te-20231117-and-lt-20250626

chore(deps-dev): update openai-whisper requirement from <20250000,>=20231117 to >=20231117,<20250626
Updates the requirements on [marker-pdf](https://github.com/VikParuchuri/marker) to permit the latest version.
- [Release notes](https://github.com/VikParuchuri/marker/releases)
- [Commits](datalab-to/marker@v0.2.5...v1.10.1)

---
updated-dependencies:
- dependency-name: marker-pdf
  dependency-version: 1.10.1
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Updates the requirements on [openai](https://github.com/openai/openai-python) to permit the latest version.
- [Release notes](https://github.com/openai/openai-python/releases)
- [Changelog](https://github.com/openai/openai-python/blob/main/CHANGELOG.md)
- [Commits](openai/openai-python@v1.0.0...v2.14.0)

---
updated-dependencies:
- dependency-name: openai
  dependency-version: 2.14.0
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
…0-and-lt-3.0.0

chore(deps): update numpy requirement from <2.0.0,>=1.24.0 to >=1.24.0,<3.0.0
Updates the requirements on [black](https://github.com/psf/black) to permit the latest version.
- [Release notes](https://github.com/psf/black/releases)
- [Changelog](https://github.com/psf/black/blob/main/CHANGES.md)
- [Commits](psf/black@23.1a1...25.12.0)

---
updated-dependencies:
- dependency-name: black
  dependency-version: 25.12.0
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
…0-and-lt-26.0.0

chore(deps-dev): update black requirement from <25.0.0,>=23.0.0 to >=23.0.0,<26.0.0
…-and-lt-15.0.0

chore(deps): update rich requirement from <14.0.0,>=13.0.0 to >=13.0.0,<15.0.0
…0-and-lt-3.0.0

chore(deps-dev): update openai requirement from <2.0.0,>=1.0.0 to >=1.0.0,<3.0.0
…0.2.0-and-lt-2.0.0

chore(deps-dev): update marker-pdf requirement from <1.0.0,>=0.2.0 to >=0.2.0,<2.0.0
…ns/upload-artifact-6

chore(deps): bump actions/upload-artifact from 4 to 6
…ns/upload-pages-artifact-4

chore(deps): bump actions/upload-pages-artifact from 3 to 4
Dependency updates:
- Core: rich (14→15), numpy (2→3)
- Optional: openai (2→3), openai-whisper, marker-pdf (1→2)
- Dev: black (25→26), pytest-asyncio (1→2)
- Actions: upload-artifact (4→6), upload-pages-artifact (3→4)

Total: 9 dependency updates for better compatibility
- Fix LLM Provider parameter passing
  * Gemini: Add max_output_tokens and temperature to API calls
  * Ollama: Extract num_predict and temperature from kwargs
  * DeepSeek/Perplexity: Add **kwargs support for parameter adaptation

- Fix STT engine parameter handling
  * SenseVoice: Use config.batch_size instead of hardcoded value
  * Granite: Use config.timestamp instead of hardcoded True

- Fix OCR engine parameter handling
  * Add max_new_tokens field to OCRConfig (default: 1024)
  * Qwen2.5-VL, MiniCPM-o, DeepSeek-OCR: Use config.max_new_tokens

- Enhance ParameterAdapter
  * Add deepseek and perplexity provider mappings (OpenAI-compatible)
  * Add provider name normalization (DeepSeekProvider → deepseek)
  * Fix GPT-5 series special handling with normalized provider names

- Verify TTS and Fine-tuning parameters
  * TTS: All providers (OpenAI, Google, Azure, ElevenLabs) correctly handle parameters
  * Fine-tuning: OpenAI and Axolotl providersorrectly handle all parameters

- Update documentation
  * Remove temporary analysis documents
  * Update README.md with parameter support information for all model types

All providers now correctly handle adapted parameters from ParameterAdapter,
ensuring consistent parameter conversion across OpenAI, Anthropic, Google,
DeepSeek, Perplexity, and Ollama providers.
Bumps [actions/cache](https://github.com/actions/cache) from 4 to 5.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](actions/cache@v4...v5)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot bot added dependencies Pull requests that update a dependency file github_actions Pull requests that update GitHub Actions code labels Jan 9, 2026
@leebeanbin leebeanbin closed this Feb 12, 2026
@leebeanbin leebeanbin deleted the dependabot/github_actions/actions/cache-5 branch February 12, 2026 07:12
@dependabot @github
Copy link
Contributor Author

dependabot bot commented on behalf of github Feb 12, 2026

OK, I won't notify you again about this release, but will get in touch when a new version is available. If you'd rather skip all updates until the next major or minor version, let me know by commenting @dependabot ignore this major version or @dependabot ignore this minor version. You can also ignore all major, minor, or patch releases for a dependency by adding an ignore condition with the desired update_types to your config file.

If you change your mind, just re-open this PR and I'll resolve any conflicts on it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file github_actions Pull requests that update GitHub Actions code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant