Paper PDF to reproducible Docker environment
Project description
Paper2Env
논문 PDF 하나를 넣으면 실험 환경(Dockerfile/requirements/env.json)을 자동 생성하고, 필요 시 self-healing 루프로 build/run을 재시도하는 로컬 CLI입니다.
설치 (PyPI)
pipx install paper2env
또는
pip install paper2env
빠른 시작
python -m venv .venv
source .venv/bin/activate
pip install -e .
paper2env run paper.pdf
paper2env run paper.pdf --web-search
paper2env run paper.pdf --github <repo_url>
paper2env run paper.pdf --interactive
CLI
paper2env run <paper.pdf> [--workdir <dir>] [--max-attempts 5] [--dry-run]
paper2env export <paper.pdf> --out <dir>
paper2env run <paper.pdf> --llm-model <ollama_model>
paper2env run <paper.pdf> --web-search
paper2env run <paper.pdf> --github <repo_url>
paper2env run <paper.pdf> --hf <model_url>
paper2env run <paper.pdf> --docker-image <image>
paper2env run <paper.pdf> --image-name <name[:tag]> --tag <tag>
paper2env run <paper.pdf> --container-name <name>
paper2env run <paper.pdf> --interactive
paper2env run <paper.pdf> --no-interactive
paper2env run <paper.pdf> --yes
paper2env run <paper.pdf> --rm
paper2env run <paper.pdf> --mount <host_dir>:/workspace
paper2env run <paper.pdf> --no-mount
paper2env run <paper.pdf> --no-keep-alive
paper2env run <paper.pdf> --best-effort
paper2env run <paper.pdf> --resume
paper2env run <paper.pdf> --verbose
paper2env run <paper.pdf> --no-verbose
paper2env doctor
paper2env doctor --deep
paper2env help
산출물
Dockerfilerequirements.txtenv.jsonlogs/attempt_XX.logfailure_report.json(실패 시)
동작 규칙 (요약)
- 기본 입력은
paper.pdf하나이며, 논문/레포/웹 힌트를 우선순위에 따라 처리합니다. - GitHub/HF 힌트가 있으면 레포 파일을 우선 사용해 의존성을 추출합니다.
- Dockerfile은 논문/레포 힌트 기반으로 base image를 결정하고 필요한 시스템 패키지를 추가합니다.
- Self‑healing은 에러 로그를 규칙 기반으로 분류해 최소 수정으로 재시도합니다.
자세한 규칙은 docs/rules.md 참고.
주의
- 실제 Docker build/run을 수행하려면 로컬에 Docker가 설치되어 있어야 합니다.
- CUDA 기반 이미지는 호스트 드라이버/장비 제약에 따라 실패할 수 있습니다.
--llm-model은 로컬 Ollama 설치가 필요합니다. (예:ollama run llama3)- LLM 기능은 외부
ollama바이너리를 호출하므로paper2env패키지 자체 용량은 거의 늘지 않습니다. 다만 로컬 모델 파일은 수백 MB~수 GB까지 커질 수 있습니다. --web-search는 인터넷 연결이 필요하며, 논문 내 링크가 없을 때 GitHub/HF/웹 힌트를 찾습니다.--github/--hf/--docker-image는 사용자가 직접 우선 참조를 지정하는 옵션입니다.- 기본 실행은 대화형이며, Docker 이미지 태그/컨테이너 이름과 GPU 사용 여부 등을 프롬프트로 입력받습니다. (엔터=기본값)
- 기본적으로 컨테이너는 유지되며, 실행 후 삭제하려면
--rm을 사용합니다. - 기본적으로 로컬
workspace/를 컨테이너/workspace에 마운트합니다. 끄려면--no-mount. - 기본적으로 컨테이너를 백그라운드에서 계속 실행합니다. 끄려면
--no-keep-alive. - 기본적으로 항상 새로 생성합니다. 기존
workspace/를 재사용하려면--resume. - 자동 진행은
--yes또는--no-interactive로 설정합니다. --best-effort는 알 수 없는 에러에서 실패를 중단하지 않고failure_report.json만 기록한 뒤 종료 코드를 0으로 반환합니다.
Ollama 사용 순서
- Ollama 실행
- 모델 받기
- 실행할 때
--llm-model옵션 넣기
예시:
ollama serve
ollama pull llama3
paper2env run papers/SimCLR.pdf --llm-model llama3
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
paper2env-0.1.1.tar.gz
(28.5 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
paper2env-0.1.1-py3-none-any.whl
(30.9 kB
view details)
File details
Details for the file paper2env-0.1.1.tar.gz.
File metadata
- Download URL: paper2env-0.1.1.tar.gz
- Upload date:
- Size: 28.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7ff6a6e081503b0d0cb78b553525efa7f5ca52bf218e26772b2ed8e19da7fef4
|
|
| MD5 |
5d85381920e39a43b66f3c7843a09e74
|
|
| BLAKE2b-256 |
def466c5fd64f1cb481a45ef90d503bb6b46686fad343b84f9c1b2eb45c60d52
|
File details
Details for the file paper2env-0.1.1-py3-none-any.whl.
File metadata
- Download URL: paper2env-0.1.1-py3-none-any.whl
- Upload date:
- Size: 30.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f43c54a663ca70bfb21ed4998af37dd261d10f2d42cd70a8b075c4dca9cb7552
|
|
| MD5 |
1ba62d8d17e36d798958da70fdb09353
|
|
| BLAKE2b-256 |
a3df4e81bb803bd9c985a2bdea0634db3e19f692238b52ffd85e564f38767a40
|