[오픈소스 프로젝트] Vectorwave 파이썬 함수 실행 데이터를 자동으로 Vector DB로 저장
안녕하세요, OKKY 회원 여러분! 👋 최근 사이드 프로젝트로 개발 중인 오픈소스 프레임워크 VectorWave를 소개하고 피드백을 받고자 글을 남깁니다.
요즘 LLM이나 RAG(검색 증강 생성) 많이들 구현하시죠? 그런데 막상 하려고 보면 데이터 수집하고, 임베딩 만들고, 벡터 DB에 넣고... 이 파이프라인 구축하는 게 여간 귀찮은 일이 아니더라고요. 실행되고 사라지는 휘발성 데이터들이 아깝기도 하고요.
그래서 "그냥 함수 위에 데코레이터 하나만 붙이면 알아서 다 해주면 안 되나?" 라는 생각으로 만들게 되었습니다.
VectorWave: Seamless Auto-Vectorization Framework
핵심 컨셉은 간단합니다. 복잡한 설정 없이 @vectorize 데코레이터만 붙이면, 함수 정보와 실행 결과가 자동으로 Weaviate(Vector DB)에 영구 저장됩니다. 또한 Weaviate를 미들웨어로써 대시보드나 테스트 라이브러리도 지원합니다.
Python
from vectorwave import vectorize
@vectorize(team="backend", priority=1)
def calculate_something(a, b):
# ... 복잡한 로직 ...
return result
이 코드 한 줄이면, 이제 이 함수는 "검색 가능한 지식 자산"이 됩니다.
주요 기능 소개
자동 데이터 수집 & 로깅: 함수의 소스코드, 독스트링은 물론 실행될 때마다 인자(Args), 반환값(Return), 실행 시간, 에러 로그까지 전부 벡터화해서 저장합니다.
AI 자동 문서화 (Auto-Docs): (이거 좀 편합니다) LLM을 연동하면 AI가 알아서 함수 설명을 멋지게 작성해서 DB에 메타데이터로 넣어줍니다. 주석 대충 달아도 검색이 잘 돼요.
시맨틱 캐싱 (Semantic Caching): LLM API 호출 비용 아까우시죠? 입력값이 미묘하게 달라도 의미가 같으면(유사도 기반) DB에 저장된 예전 결과를 바로 반환해 줍니다. 속도도 빠르고 지갑도 지킬 수 있습니다.
분산 추적 (Distributed Tracing):
@trace_span으로 묶으면 여러 함수가 어떻게 실행됐는지 하나의trace_id로 묶어서 흐름을 볼 수 있습니다.테스트 & 힐링: 운영 환경 로그를 그대로 가져와서 회귀 테스트(Replay)를 돌릴 수 있는 기능도 넣었습니다.
(vectorcheck가 이 테스트를 도와줍니다!)
🛠️ 활용 예시
즉시 RAG 구축: 별도 파이프라인 없이 실행 로그 자체가 지식 베이스가 됩니다.
LLM 비용 절감: 시맨틱 캐싱으로 중복 호출 방지.
디버깅: "그때 그 함수 왜 터졌지?" 싶을 때 자연어로 검색해서 에러 상황을 찾을 수 있습니다.
🔗 링크
열심히 만들고 있습니다! 한번 둘러봐 주시고, 버그 제보나 피드백, 그리고 GitHub Star(⭐) 눌러주시면 정말 큰 힘이 될 것 같습니다.
긴 글 읽어주셔서 감사합니다! 즐거운 코딩 하세요! 🚀