OpenArchive
조직의 OpenSQL에 설치하는 AI 문서관리 플랫폼입니다. 문서를 올리면 텍스트 추출 → 청킹 → 임베딩 → 벡터 저장 → 문서 관계 생성이 자동으로 일어나고, 정형 필터(태그·유형·권한)와 벡터 유사도와 문서 관계를 하나의 SQL로 결합해 검색합니다. 사람은 웹 화면으로, 프로그램은 REST API로, AI 에이전트는 MCP로 같은 문서와 같은 권한 규칙 위에서 접근합니다.
설치
Python 3.12+와 Tmax OpenSQL(PostgreSQL 17 + pgvector)이 필요합니다. DSN만 자기 환경으로 바꿉니다 — OpenProxy 경유라면 데이터베이스 자리에 풀 이름을 적습니다.
pipx install "openarchive-server[local]"
openarchive init --dsn "postgresql://app:secret@<OpenProxy 호스트>:6432/<풀 이름>"
EMBEDDING_PROVIDER=local openarchive serve
init은 연결·확장·권한을 점검하고 스키마를 적용한 뒤 첫 관리자 admin의 비밀번호를 묻습니다.
브라우저에서 http://localhost:8000 을 열어 로그인합니다. 예제 문서로 먼저 둘러보려면
openarchive demo --user admin을 실행합니다.
[local]은 BGE-M3 임베딩 모델입니다(torch 포함, 수 GB). 첫serve에 가중치를 내려받습니다.- 이미지·스캔 PDF의 텍스트 인식에는 시스템 패키지 tesseract와 한국어 모델이 필요합니다.
vector확장은 슈퍼유저만 만들 수 있습니다 — 앱 전용 롤로 설치하면 DBA가 미리 만들어 둡니다.
명령
| 명령 | 하는 일 |
|---|---|
openarchive init |
점검 → 스키마 적용 → 첫 관리자 생성 |
openarchive serve |
API + 임베딩 워커 + 웹 화면 |
openarchive import <폴더> --user <계정> · export <폴더> --user <계정> · search "…" --user <계정> · ask "…" --user <계정> |
셸에서 문서를 넣고, 빼고, 찾고, 근거로 답합니다(ask는 ANSWER_PROVIDER가 켜져 있어야 함) |
openarchive demo --user <계정> |
예제 문서를 넣어 봅니다 |
openarchive create-user · reset-password |
계정 추가 · 잊은 비밀번호 재설정 |
openarchive rebuild-edges · rebuild-previews · reextract <문서 ID>|--all |
관계 전체 재계산 · 미리보기 변환 다시 걸기 · 보관된 원본에서 텍스트 다시 추출 |
위 명령은 서버 셸의 운영자 도구로 DB(DATABASE_URL 또는 --dsn)에 직접 붙습니다. 사용자는 웹에서 발급한
API 토큰으로 REST에만 붙는 사용자 명령을 씁니다 — DB 접속 정보는 쓰지 않습니다.
| 사용자 명령 | 하는 일 |
|---|---|
openarchive login --url <서버> --token <토큰> · whoami |
로그인 · 로그인한 사용자와 토큰 범위 확인 |
openarchive doc list · show · download · upload · edit · restore · tag · delete · trash |
문서 목록·텍스트 보기·원본 내려받기·올리기·텍스트 바꾸기·버전 되돌리기·태그·휴지통 |
openarchive search "…" · ask "…" (--user 없이) |
로그인한 토큰의 열람 범위로 찾고 답합니다 |
문서
MIT 라이선스.
본 제품은 한컴의 HWP 문서 파일(.hwp) 공개 문서를 참고하여 개발하였습니다.
Metadata
Release files for openarchive-server 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| openarchive_server-0.2.0.tar.gz | 1.0 MB | Without provenance | Details for openarchive_server-0.2.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| openarchive_server-0.2.0-py3-none-any.whl | Python 3 | none | any | Details for openarchive_server-0.2.0-py3-none-any.whl |
Total release size: 1.9 MB
Release files / openarchive_server-0.2.0.tar.gz
| Download URL | openarchive_server-0.2.0.tar.gz |
|---|---|
| Size | 1.0 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
079345b1a829cd11d0f57fd1f07001dc70bd2fc30d0ef475b97f60e604334168
|
|
BLAKE2b-256 checksum How to use checksums |
3137c57202d9483bac0cbc08e536ac6c7bd9e731e3fef8cd29a1a74087f97694
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.2
|
Release files / openarchive_server-0.2.0-py3-none-any.whl
| Download URL | openarchive_server-0.2.0-py3-none-any.whl |
|---|---|
| Size | 874.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
81777004bec8e38d82ad75a3c1b156843495d32493b97fb1316f8766cbe3a303
|
|
BLAKE2b-256 checksum How to use checksums |
681fb1f58823b92439b64aaee66b2e57934f52f5dd8270b23365997a018c3689
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.2
|
Security for openarchive-server 0.2.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.