AI 에이전트를 회사에서 활용하다 보면 문서 관리가 가장 큰 과제다. 매번 복사·붙여넣기 하는 방식은 오래 가지 못한다. 이번 글에서는 무료 오픈소스 도구만 활용해, 팀원들이 쉽게 사용할 수 있는 문서 관리 체계를 온프레미스 환경에서 구축하는 방법을 PostgreSQL 데이터베이스 기반으로 정리한다.
필요한 구성 요소
- 문서 저장소: Nextcloud (DB: PostgreSQL)
- 검색·Q&A 엔진: LangChain + FAISS, 혹은 Haystack
- Agent 연동: DocAI-MCP (Gradio UI 제공)
- 데이터 자동화: Scrapy(웹 크롤링), Airbyte CE(ETL)
구축 과정
1. 서버 준비
Ubuntu 서버를 기준으로 설명한다.
sudo apt update && sudo apt upgrade -y
sudo apt install docker.io docker-compose -y
sudo apt install python3-pip -y
2. 문서 저장소 (Nextcloud + PostgreSQL)
Nextcloud를 PostgreSQL과 함께 구성한다.
docker-compose.yml 예시:
version: '3'
services:
db:
image: postgres:15
restart: always
volumes:
- db:/var/lib/postgresql/data
environment:
- POSTGRES_USER=nextcloud
- POSTGRES_PASSWORD=example
- POSTGRES_DB=nextcloud
app:
image: nextcloud
restart: always
ports:
- 8080:80
volumes:
- nextcloud:/var/www/html
environment:
- POSTGRES_PASSWORD=example
- POSTGRES_DB=nextcloud
- POSTGRES_USER=nextcloud
- POSTGRES_HOST=db
volumes:
db:
nextcloud:
실행:
docker-compose up -d
브라우저에서 http://서버IP:8080 접속 → 관리자 계정 생성
3. 검색·Q&A 파이프라인
LangChain과 FAISS를 설치해 문서를 벡터화하고 검색 가능하게 만든다.
pip install langchain faiss-cpu openai
간단한 코드 예시:
from langchain.text_splitter import CharacterTextSplitter
from langchain.vectorstores import FAISS
from langchain.embeddings.openai import OpenAIEmbeddings
from langchain.chains import RetrievalQA
from langchain.llms import OpenAI
with open("sample.txt") as f:
text = f.read()
splitter = CharacterTextSplitter(chunk_size=500, chunk_overlap=50)
docs = splitter.split_text(text)
embeddings = OpenAIEmbeddings()
db = FAISS.from_texts(docs, embeddings)
qa = RetrievalQA.from_chain_type(
llm=OpenAI(),
retriever=db.as_retriever()
)
print(qa.run("이 문서의 핵심 요약은?"))
4. Agent 연동
DocAI-MCP를 설치하고 Ollama + Mistral 같은 무료 모델을 연결한다.
git clone https://github.com/your-org/docai-mcp.git
cd docai-mcp
pip install -r requirements.txt
python app.py
실행하면 Gradio UI가 뜨고, 브라우저에서 문서를 업로드해 바로 요약·Q&A를 할 수 있다.
5. 데이터 자동 업데이트
- Scrapy: 웹 크롤링으로 최신 보고서/뉴스 자동 수집
- Airbyte CE: 외부 DB/서비스 데이터를 주기적으로 가져와 문서 저장소에 반영
6. 팀원 사용 방식
- 브라우저에서 Nextcloud 접속 → 문서 업로드
- Agent UI(Gradio)에서 검색·요약·Q&A 요청
- 결과를 Slack/Teams 같은 협업 툴에 공유
마무리
이 체계를 구축하면 팀원들은 단순히 문서를 올리고 질문만 던지면 된다. Agent가 알아서 검색하고 요약해주니 업무 효율이 크게 올라간다. 무엇보다 모든 과정이 무료 오픈소스 기반이라 비용 부담 없이 회사 내부에서 안전하게 운영할 수 있다. PostgreSQL을 사용하면 안정성과 확장성 면에서도 유리하다.

댓글 남기기