- LLocalSearch는 로컬에서 실행되는 소형 LLM을 감싸고, 질문에 답하기 위해 인터넷 검색 도구를 선택해 쓰게 하는 로컬 검색형 AI 프로젝트임
- LLM은 사용자 입력과 도구 호출 결과를 바탕으로 재귀적으로 도구를 여러 번 사용할 수 있어, 최신 정보가 필요한 질문에 대해 검색 기반 답변을 만들 수 있음
- 핵심 기능은 완전 로컬 실행, API 키 불필요, 300유로 GPU를 사용한 데모 수준의 저사양 하드웨어 구동, 답변 내 실시간 로그와 링크, 후속 질문, 모바일 친화 UI, 다크/라이트 모드임
- 현재 버전은 1년 넘게 개발되지 않았고, 개발자는 미완성 소프트웨어를 공개해 시간을 낭비하지 않기 위해 비공개 베타에서 재작성과 재출시를 진행 중임
- 로드맵에는 Llama3 지원, Obsidian에서 영감을 받은 인터페이스 개편, 채팅 기록, 사용자 계정, 개인 문서·Google Drive·Confluence 연동, 사용자별 장기 메모리 구상이 포함됨
LLocalSearch의 역할
- LLocalSearch는 로컬에서 실행되는
Large Language Models를 위한 래퍼임 - 이 래퍼는 모델이 여러 도구 중에서 선택해 사용할 수 있게 함
- 도구는 사용자의 질문에 대한 최신 정보를 찾기 위해 인터넷을 검색하는 기능을 제공함
- 실행 중인 LLM은 사용자 입력과 도구 호출에서 얻은 정보를 바탕으로 도구 사용 여부를 자유롭게 결정할 수 있음
- 도구는 한 번만 쓰는 것이 아니라 여러 번 반복 사용될 수 있음
- 이 과정은 재귀적으로 동작함
- 프로젝트에는 demo.webm 데모가 포함됨
왜 로컬 대안을 쓰려는가
- 장기적으로 OpenAI가 대형 미디어 회사에 판매하는 프로그램에는 채팅 대화 안에서 우선 배치와 더 풍부한 브랜드 표현, 더 눈에 띄는 링크 처리가 포함된다고 되어 있음
- 개발자는 가장 높은 금액을 지불한 쪽에 의해 사용자가 조작되는 아이디어를 싫어한다면, 이 프로젝트처럼 덜 차별적인 대안을 시도할 수 있다고 봄
- 관련 문맥으로 OpenAI의 프로그램 자료를 다룬 Adweek 링크가 제시됨
제공 기능
-
완전 로컬 실행
- API 키가 필요 없음
- 더 프라이버시 친화적인 방식으로 동작함
-
저사양 하드웨어 구동
- 데모 영상은 300유로 GPU를 사용함
-
답변 내 로그와 링크
- 실시간 로그와 링크를 통해 에이전트가 무엇을 하는지 더 잘 이해할 수 있음
- 답변이 어떤 정보에 기반하는지 확인할 수 있음
- 더 깊은 조사를 시작하기 위한 출발점으로 쓸 수 있음
- 후속 질문을 지원함
- 모바일 친화적인 디자인을 제공함
- 다크 모드와 라이트 모드를 지원함
현재 개발 상태와 주의사항
- 현재 공개 버전은 1년 넘게 개발되지 않음
- 개발자는 재작성과 재출시를 비공개 베타에서 진행 중임
- 비공개 베타로 피드백을 모으는 이유는 미완성 소프트웨어를 공개해 모두의 시간을 낭비하지 않기 위해서임
- 참여에 관심이 있으면 개발자에게 연락하라고 안내함
진행 중인 작업
-
Llama3 지원
- 현재 사용하는
langchain라이브러리가 Llama3 stop words를 지키지 않음 - 이 문제 때문에 Llama3가 턴 끝에서 환각을 시작함
- 개발자는 동작하는 패치를 갖고 있으며,
experiments브랜치에서 확인할 수 있다고 함 - 해결 방식이 올바른지 확신하지 못해 langchaingo 팀의 응답을 기다리는 중임
- 현재 사용하는
-
인터페이스 개편
- 더 유연한 패널과 공간을 더 효율적으로 쓰는 인터페이스 개편을 진행 중임
- 현재 레이아웃은 Obsidian에서 영감을 받음
-
채팅 기록과 최근 대화
- 채팅 기록과 최근 대화 지원도 진행 중임
- 내부 데이터 구조를 많이 리팩터링해야 함
- 향후 기능을 더 유연하게 확장하고, 데이터 전송과 인터페이스 부분을 다시 작성하지 않도록 만드는 작업이 필요함
가까운 미래 계획
-
사용자 계정
- 사용자 계정은 RAG 체인 안에서 개인 정보를 다루기 위한 기반 작업임
- 계획된 사용 사례에는 다음이 포함됨
- 사용자가 직접 문서 업로드
- LLocalSearch를 Google Drive에 연결
- LLocalSearch를 Confluence에 연결
-
장기 메모리
- 장기 메모리는 구현에 올바른 방식이 있는지 확신하지 못한다고 되어 있음
- 구상은 메인 에이전트 체인에 사용자 관련 정보를 제공하는 것임
- 사용자 선호도
- 지속 정보를 위한 사용자별 별도 Vector DB Namespace
설치 방식
- Docker 설치 절차가 제공됨
- 설치 흐름은 GitHub 저장소를 클론하고, 필요하면
.env파일을 만들고 수정한 뒤, 컨테이너를 실행하는 방식임 .env수정은 보통 Ollama가 다른 장치에서 실행 중이거나 개인 사용보다 복잡한 구성을 만들 때 필요함- 컨테이너 실행 명령은
docker-compose up -d임