PDF 원문 옆에서 논문의 흐름을 이해하고, 그림과 표를 확인하고, 실험 조건을 정리하는 AI 연구 워크벤치.
개발 소스의 기술 스택. 배지를 누르면 실제 의존성 또는 모델 설정으로 이동합니다.
Sasoo는 논문을 읽는 동안 원문을 곁에 둡니다. 요약에서 전체 흐름을 잡고, 섹션별 질문으로 내용을 따라가며, 연결된 Figure와 Table을 눌러 근거를 확인할 수 있습니다. PDF와 분석 결과는 로컬 라이브러리에 보관해 다시 열어 볼 수 있습니다.
화면 안내: 이 개발 앱 캡처는 v1.0.1에 포함된 화면을 보여줍니다(2026-09-25). 저장된 분석 결과를 사용한 한국어 UI 예시이며, 논문과 모델 설정에 따라 실제 내용은 달라집니다. 최신 버전은 v1.2.2 릴리스에서 받을 수 있습니다.
PDF를 올리고 분석을 시작한 뒤, 해설과 원문을 오가며 읽습니다. 저장된 결과는 라이브러리에서 다시 열 수 있습니다.
도식은 Archify로 제작했습니다. 탐색용 HTML은 파일을 내려받아 브라우저에서 열면 검색, 확대, 연결 관계 탐색을 사용할 수 있습니다. 한국어 도식의 고정 뷰어 버튼은 영어입니다.
요약에서 문제, 기존 접근, 해결 원리, 결과와 한계를 읽습니다. 섹션별 질문과 짧은 답을 먼저 훑고, 필요한 곳에서 근거와 설명을 펼쳐 보세요. 읽기 안내에는 원문에서 확인할 질문과 조건이 모입니다.
요약에 연결된 Figure/Table을 누르면 해당 자료와 PDF 페이지로 이동합니다. 요약으로 돌아가기를 누르면 읽던 위치로 복귀합니다. 연결할 원문 자료가 있는 참조에서 사용할 수 있습니다.
요약의 참조 선택 → 그림과 PDF 페이지 확인 → 요약으로 복귀. 데모의 그림 미리보기는 원본 PDF 페이지를 사용합니다. 정지 화면 보기.
레시피에서 실험 절차와 파라미터를 모아 보고 CSV로 내보낼 수 있습니다. 값과 함께 근거 상태, 빠진 정보를 확인하세요. 아래 예시의 검증 미실행은 해당 값의 근거 검증 기록이 없다는 뜻입니다.
워크벤치에는 요약, 종합, 읽기 안내, 그림, 표, 레시피 여섯 탭이 있습니다. 종합 화면은 주요 내용을 한데 모으고, 채팅에서는 논문과 분석에 관해 후속 질문을 할 수 있습니다. 분야별 에이전트 Photon(광학), Cell(바이오), Neural(딥러닝), Circuit(회로)이 설명의 관점을 조정하며, 사용자 데이터 폴더의 Markdown 파일로 에이전트를 확장할 수 있습니다.
AI 해설과 추출 값은 원문과 대조해 사용하세요. 분석 완료나 출처 링크가 정확성 또는 실험 재현성을 보장하지는 않습니다. 일부 원문만 제공한 분석은 전체 논문을 검토한 결과가 아닙니다. 화면은 저장된 응답의 표시와 탐색 예시이며, 캡처 출처와 범위에 제작 기준을 기록했습니다.
- 설치: 공식 GitHub Releases에서 운영체제에 맞는 파일을 받아 설치합니다.
- 설정: 사용할 공급사의 API 키를 입력하고, 공급사 선택, 라이브러리 경로, 자동 분석 설정을 확인합니다.
- 첫 논문: PDF를 업로드한 뒤 분석을 시작하고, 워크벤치에서 원문과 결과를 나란히 읽습니다. 자동 분석을 켜 두면 업로드 후 API 요청이 시작될 수 있습니다.
외부 AI API 사용료는 별도입니다. API 키와 해당 모델을 사용할 권한이 필요하며, 무료 분석을 보장하지 않습니다.
배포 버전은 v1.2.2입니다. 릴리스 노트와 전체 파일에서 변경 내용과 설치 파일을 확인하세요.
| 플랫폼 | 공식 릴리스 파일 | 참고 |
|---|---|---|
| macOS Apple Silicon | DMG / ZIP | 미서명, 미공증 |
| Windows x64 | 설치 EXE | 미서명, SmartScreen 경고 가능 |
Linux와 Intel Mac용 공식 설치 파일은 없습니다. Linux 소스 빌드 명령은 있지만, 위 배포 지원 범위에는 포함되지 않습니다.
시각화 요청의 비용 누락과 월별 집계를 고친 수정 릴리스입니다.
- Mermaid 응답이 비어 있거나 생성한 이미지의 파일 저장이 실패해도 이미 실행한 유료 요청의 기록을 보존합니다.
- 이전 방식의 단일 Mermaid 생성과 수정 요청도 비용 원장에 기록합니다. 사용량을 확인하지 못한 요청은 미확인 상태로 남깁니다.
- 나중에 다시 생성한 시각화의 비용은 실제 요청한 달(UTC 기준)에 반영합니다. 비용 대시보드와 월 예산 한도가 같은 기준을 사용합니다.
- 월별 비용 API에 모델별 미확인 요청 수를 추가했습니다.
기존 기록에 요청 시각이 없으면 처음 저장한 달로 집계됩니다. 토큰 수와 논문 수도 기존처럼 저장한 달을 따릅니다.
상세 릴리스 노트를 참고하세요. 앞선 시각화 수정은 v1.2.1, 혼합 시각화 기능은 v1.2.0에 설명되어 있습니다.
macOS에서 실행이 차단될 때
공식 릴리스에서 받은 Sasoo.app를 /Applications로 옮깁니다. Gatekeeper가 실행을 차단할 때만 출처를 확인한 해당 앱에 다음 명령을 사용하세요.
xattr -dr com.apple.quarantine /Applications/Sasoo.app필요하면 Finder에서 앱을 우클릭하고 열기를 선택합니다. 이 명령은 quarantine 보호를 제거하며, 발행자를 검증하거나 Apple 서명/공증을 대신하지 않습니다. 제3자가 배포한 앱에는 사용하지 마세요.
Windows에서 SmartScreen 경고가 나올 때
공식 릴리스의 설치 EXE를 실행합니다. 미서명 빌드는 알 수 없는 게시자로 표시될 수 있습니다. 공식 다운로드 출처를 확인한 경우에만 추가 정보 → 실행을 선택하세요.
OpenAI와 Gemini 중 사용할 공급사를 설정에서 선택합니다. 한 공급사의 키만 저장했다면 사용 가능한 키에 맞춰 공급사가 선택됩니다. 키를 저장했더라도 잔액, 권한 또는 모델 접근 제한으로 요청이 실패할 수 있습니다.
| 공급사 | API 키 발급 | 사용 기능 |
|---|---|---|
| OpenAI | OpenAI API 키 | 논문 분석, 채팅, 그림 해설, 개념도 생성 |
| Gemini | Google AI Studio | 논문 분석, 채팅, 그림 해설 |
v1.2.2의 기본 분석 공급사는 OpenAI이며 텍스트 분석 모델은 gpt-6-luna입니다. 혼합 시각화의 이미지 생성에는 분석 공급사와 관계없이 OpenAI gpt-image-2.5-flare와 gpt-image-2.5-sunburst를 사용하므로 OpenAI API 키가 필요합니다. 단계별 모델과 추론 수준은 모델 레지스트리, 정확한 모델 ID는 모델 ID에서 확인할 수 있습니다.
설정 화면의 비용은 보고된 사용량과 앱에 등록된 단가로 계산한 추정치입니다. 공급사의 청구액과 다를 수 있으며, 사용량을 확인하지 못한 요청이 무료라는 뜻은 아닙니다.
보관은 로컬에서, AI 처리는 외부 API에서 이루어집니다. PDF와 분석 결과는 로컬 라이브러리에 저장됩니다. 분석과 채팅에 필요한 자료는 선택한 공급사로 전송되며, 혼합 시각화의 이미지 생성 자료는 OpenAI로 전송됩니다.
| 작업 | 외부 API에 전달될 수 있는 자료 |
|---|---|
| 논문 분석 | 원본 PDF, 추출 텍스트, 그림과 표 이미지 |
| 채팅 / 그림 해설 | 질문, 관련 원문과 분석 내용, 대상 이미지 |
| 개념도 생성 | 분석을 바탕으로 만든 설명과 생성 요청 |
개발 소스의 OpenAI 분석은 원본 PDF를 input_file로 첨부하며, Gemini 분석도 PDF를 공급사에 업로드할 수 있습니다. 로컬 Java 파서로 추출하더라도 이후 AI 처리에서 외부 전송이 일어날 수 있습니다. 생성 개념도는 논문 원본 그림과 구분합니다.
전송할 권한이 있는 문서를 사용하고 공급사의 데이터 정책을 확인하세요. API 키는 로컬에서 암호화해 저장하고, 암호화 키는 macOS Keychain 또는 Windows Credential Manager 등 OS 자격 증명 저장소에 보관합니다. 구형 .sasoo_key는 가능한 경우 자동 이전하며, 이전할 수 없거나 폐기한 API 키는 다시 입력해야 합니다.
앱 코드는 sasoo/에 있습니다. Electron이 React/Vite 화면과 로컬 FastAPI 백엔드를 실행하며, SQLite와 파일시스템에 데이터를 보관합니다. PDF 추출에는 Java 기반 OpenDataLoader를 사용합니다.
로컬 앱의 화면, 분석 엔진, 저장소와 외부 AI 공급사의 관계입니다. 문서는 로컬에 저장되며, AI 기능을 실행하면 필요한 내용이 외부 API로 전달됩니다.
PDF 문맥을 준비한 뒤 다음 순서로 주요 분석을 수행합니다. 분야별 에이전트는 스크리닝 결과를 바탕으로 선택됩니다.
이 도식은 주요 단계의 순서를 보여줍니다. 논문 내용과 실행 상태에 따라 단계가 건너뛰어지거나 중단될 수 있습니다. 종합 결과와 추가 시각화는 별도로 생성됩니다. 실제 실행 로직은 analysis_execution.py에 있습니다.
Graphify 탐색용 HTML과 추출 보고서에서 함수와 모듈의 연결을 확인할 수 있습니다. 앱 소스 294개와 문서 16개를 대상으로 했으며, 생성된 도식과 번들 Java 문서는 제외했습니다. 추출 누락과 무방향 그래프 병합의 한계는 보고서에 기록했습니다.
패키지 요구사항은 Node.js 22.13 이상입니다. 릴리스 CI는 Node.js 24, pnpm 10, Python 3.12, Java 21을 사용합니다. 로컬 개발에서도 해당 버전을 기준으로 환경을 준비하세요. PDF 추출에 쓸 Java 런타임은 JAVA_HOME 또는 SASOO_JAVA_HOME으로 지정할 수 있습니다.
git clone https://github.com/dosigner/sasoo.git
cd sasoo/sasoo
pnpm install --frozen-lockfile
python3.12 -m venv backend/.venv
source backend/.venv/bin/activate
python -m pip install -r backend/requirements.txt -r backend/requirements-test.txt pyinstaller
pnpm dev위 명령은 macOS/Linux 셸 기준입니다. Windows PowerShell에서는 가상환경 생성에 py -3.12 -m venv backend/.venv, 활성화에 .\backend\.venv\Scripts\Activate.ps1을 사용합니다.
테스트와 패키징 명령
sasoo/에서 실행합니다.
pnpm --dir=frontend test
pnpm --dir=frontend tsc --noEmit
pnpm --dir=frontend lint
pnpm test:unit활성화한 Python 가상환경에서 백엔드 테스트를 실행합니다.
cd backend
python -m pytest services api models
cd ..pnpm build:mac:release # Run on macOS.
pnpm build:win:release # Run on Windows.일반 pnpm build는 백엔드를 새로 묶지 않습니다. 플랫폼별 release 명령은 백엔드 빌드와 산출물 검증을 포함합니다. 개발 화면 확인, 논문 원문 정확성 검토, 패키지 설치 검증은 각각 필요합니다. Windows 설치 파일이 생성됐다는 사실만으로 실기기 동작을 검증한 것은 아닙니다.
패키지 메타데이터에는 MIT로 표기되어 있습니다. 저장소에는 별도의 프로젝트 LICENSE 파일이 아직 없습니다.