Powering Local-First AI: Searching and Retrieving Context for Inference

개요

로컬 컨텍스트 스토어의 검색 및 검색 계층은 SQLite에 저장된 과거 컨텍스트를 LLM의 프롬프트 창으로 효율적으로 전달하는 다리 역할을 합니다.

주요 내용

* 검색 기능 구현: search_context_itemssearch_context_by_type와 같은 함수를 통해 SQLite의 LIKE 연산자를 사용하여 제목과 내용에서 대소문자를 구분하지 않는 키워드 검색을 수행합니다.
* 필터링 기능 추가: config_decision과 같은 특정 컨텍스트 유형으로 검색을 제한하여 관련 없는 항목을 제외할 수 있습니다.
* 컨텍스트 랭킹: ORDER BY importance DESC, created_at DESC 쿼리를 사용하여 중요도가 높고 최근에 생성된 컨텍스트를 우선적으로 검색 결과에 포함시킵니다.
* 데이터베이스 레벨 LIMIT 적용: Python 메모리로 많은 데이터를 가져온 후 슬라이싱하는 대신, 데이터베이스에서 직접 필요한 수만큼의 레코드만 반환하여 효율성을 높입니다.
* LLM 형식으로 데이터 변환: prepare_context_for_inference 함수를 통해 검색된 원시 데이터 딕셔너리를 LLM이 이해하기 쉬운 구조화된 텍스트 블록(인덱스, 유형, 제목, 내용 포함)으로 변환합니다.
* 성능 측정: 경량 타이밍 메커니즘을 통합하여 SQLite 조회 및 컨텍스트 형식 지정 속도를 측정했으며, 수 밀리초 내에 완료됨을 확인했습니다.

시사점

로컬 AI 시스템에서 효율적인 검색, 랭킹, 필터링 및 데이터 구조화는 LLM 추론 시 사용자 경험에 눈에 띄는 지연 없이 컨텍스트를 주입하는 데 중요하며, 이는 AI가 저장된 메모리를 능동적으로 활용할 수 있도록 합니다.

원문 읽기 →
원문을 불러오는 중...

댓글

GitHub Discussions