txtai
무엇인가
txtai는 시맨틱 검색, LLM 오케스트레이션, 언어 모델 워크플로를 한 라이브러리에서 다루는 Python 프레임워크다. 벡터 데이터베이스와 LLM 프레임워크와 워크플로 엔진을 각각 조합하는 자리를 하나의 임베딩 데이터베이스가 대신한다. 이 데이터베이스는 검색 인덱스로도, LLM 애플리케이션의 지식 소스로도 쓰인다.
어떻게 동작하나
핵심 구성 요소는 임베딩 데이터베이스다. 희소·밀집 벡터 인덱스, 그래프 네트워크, 관계형 데이터베이스를 하나로 묶은 구조다. 텍스트, 문서, 오디오, 이미지, 비디오에서 임베딩을 만들어 인덱싱하고 SQL로 질의한다. 파이프라인은 언어 모델을 감싸 LLM 프롬프트, 질의응답, 레이블링, 전사, 번역, 요약을 실행한다. 워크플로는 파이프라인들을 연결해 비즈니스 로직을 조합한다. 에이전트는 임베딩, 파이프라인, 워크플로, 다른 에이전트를 연결해 문제를 푼다. 외부에는 Web API와 MCP API를 노출하고 JavaScript, Java, Rust, Go 바인딩을 제공한다.
무엇과 다른가
별도 서버로 띄우는 벡터 데이터베이스와 달리 로컬에서 실행되며 데이터를 원격 서비스로 내보내지 않는다. 질의 인터페이스가 SQL이라 관계형 데이터 조회와 같은 방식으로 검색 결과를 다룬다. 작은 마이크로모델부터 대형 언어 모델까지 같은 인터페이스로 다룬다. 기본 의존성만으로 동작하고, 필요한 기능을 쓸 때 추가 의존성을 설치해 확장한다.
어떻게 쓰나
설치는 pip 또는 Docker로 한다. Python 가상 환경 사용을 권장하며 Python 3.10 이상이 필요하다. 설치 후 임베딩 데이터베이스를 만들고 데이터를 인덱싱한 다음 검색하는 순서로 시작한다. 파이프라인, 워크플로, 에이전트는 같은 데이터베이스를 공유하며 조합된다. 내장 API를 통해 선호하는 프로그래밍 언어에서 애플리케이션을 개발한다.
전제와 한계
Python 3.10 이상에서 동작하고 Hugging Face Transformers, Sentence Transformers, FastAPI 위에 만들어졌다. 모델은 Hugging Face Hub의 경로나 로컬 디렉터리에서 로드하며, 경로를 지정하지 않으면 기본 모델이 로드된다. 권장 모델이 없는 작업에는 Hugging Face Tasks 가이드의 기본 모델을 쓴다. 에이전트는 smolagents 프레임워크 위에 올라가고 Hugging Face, llama.cpp, LiteLLM을 경유한 OpenAI·Claude·AWS Bedrock 모델을 지원한다. 라이선스는 Apache 2.0이다.
관련 논문 4
유사 도구
- ragflow비정형 문서를 파싱·청킹해 검색 증강 생성 파이프라인과 에이전트 워크플로를 한 엔진에서 돌리는 오픈소스 RAG 서버다.
- langchainLLM 애플리케이션과 에이전트를 조립하는 Python 프레임워크다. 모델·임베딩·벡터 스토어·툴을 표준 인터페이스로 감싸 제공자 교체를 코드 수정 없이 처리한다.
- haystack검색·라우팅·메모리·생성을 명시적 파이프라인과 에이전트 워크플로로 조립하는 Python LLM 오케스트레이션 프레임워크다.
- khoj개인 문서와 웹을 색인해 로컬·온라인 LLM으로 답을 얻는 셀프호스팅 AI 앱이다. 브라우저·Obsidian·Emacs·WhatsApp에서 접근하고 에이전트와 자동화를 만든다.
- cognee에이전트에 세션을 넘어 지속되는 장기 기억을 붙이는 오픈소스 AI 메모리 플랫폼이다. 자체 호스팅 지식 그래프 엔진 위에서 동작한다.
- Hyper-Extract비정형 텍스트를 LLM으로 구조화해 그래프·하이퍼그래프·시공간 그래프로 추출하는 Python CLI다. 추출·검색·시각화를 한 명령으로 처리한다.