TableMagnifier 파이프라인 결과를 Notion 데이터베이스에 업로드하는 방법을 안내합니다.
QA 생성 결과를 Notion 데이터베이스에 업로드하는 두 가지 방법이 있습니다:
- 파이프라인 실행과 동시에 Notion에 업로드
--upload-to-notion플래그 사용
- 이미 생성된 결과에서 원하는 것만 선택해서 업로드
upload_to_notion_from_json.py스크립트 사용- 중복 업로드 걱정 없음 - 원하는 폴더만 선택적으로 업로드
- Notion Developers에서 Integration 생성
- API Key 복사
- Notion에서 데이터베이스 페이지 열기
- URL에서 Database ID 복사
https://www.notion.so/your-workspace/<DATABASE_ID>?v=...
apis/gemini_keys.yaml 파일에 Notion 설정 추가:
# 기존 Gemini/OpenAI 설정들...
# Notion 설정
notion_key: "secret_xxxxxxxxxxxxxxxxxxxxx"
notion_databases:
public: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
finance: "yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy"
insurance: "zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz"파이프라인 실행 시 --upload-to-notion 플래그를 추가하세요.
# run_openai_public.sh 사용 시
./run_openai_public.sh test_input.json --upload-to-notion
# 또는 직접 실행
python run_pipeline_json.py \
--input test_input.json \
--output-dir output_test_public \
--provider openai \
--model gpt-5-mini \
--domain public \
--qa-only \
--upload-to-notionpython -m generate_synthetic_table.cli \
data/Public/Table/P_origin_0 \
--provider gemini_pool \
--domain public \
--qa-only \
--upload-to-notion이미 생성된 결과를 나중에 선택적으로 업로드할 수 있습니다.
# 폴더 경로 지정 (자동으로 pipeline_output.json 찾음)
python upload_to_notion_from_json.py output_test_public
# 또는 JSON 파일 직접 지정
python upload_to_notion_from_json.py output_test_public/pipeline_output.json실제로 업로드하지 않고 무엇이 업로드될지 미리 확인:
python upload_to_notion_from_json.py output_test_public --dry-run출력 예시:
📂 Loaded 10 result(s) from output_test_public/pipeline_output.json
✅ Notion uploader initialized
🔍 [1/10] Would upload P_origin_0_1:
- Domain: public
- Image: P_origin_0_1
- QA pairs: 5
- Provider: openai
...
진행 메시지 없이 조용히 실행:
python upload_to_notion_from_json.py output_test_public --quietpython upload_to_notion_from_json.py output_test_public \
--config-path path/to/custom_config.yaml# 1. 여러 파이프라인 실행 (Notion 업로드 없이)
./run_openai_public.sh test_input.json
# → 결과: output_public/pipeline_output.json
./run_openai_public.sh multi_input.json
# → 결과: output_public/pipeline_output.json (덮어쓰기됨)
# 2. 각 결과를 별도 폴더로 저장
./run_openai_public.sh test_input.json --output-dir output_test_1
./run_openai_public.sh multi_input.json --output-dir output_test_2
./run_openai_public.sh another_input.json --output-dir output_test_3
# 3. 결과 확인 후 원하는 것만 선택적으로 업로드
python upload_to_notion_from_json.py output_test_1 --dry-run # 먼저 확인
python upload_to_notion_from_json.py output_test_1 # 업로드
python upload_to_notion_from_json.py output_test_3 --dry-run # 확인
python upload_to_notion_from_json.py output_test_3 # 업로드
# output_test_2는 품질이 안 좋아서 업로드 안 함A: 현재는 중복 체크 없이 새로운 레코드가 계속 생성됩니다.
- 해결책:
--dry-run으로 먼저 확인하거나, Notion에서 수동으로 중복 제거 - 권장: 방법 2 (선택적 업로드)를 사용하여 원하는 폴더만 한 번씩 업로드
A: 스크립트는 에러가 발생해도 계속 진행됩니다.
- 성공/실패 카운트가 마지막에 표시됨
- QA가 없는 결과는 자동으로 스킵됨
A: 현재는 pipeline_output.json 전체를 업로드합니다.
- 대안: JSON 파일을 직접 편집하거나 필터링 후 업로드
A: 각 QA 쌍이 Notion 데이터베이스의 한 행(row)으로 저장됩니다:
- Name/Title: pair_id (예:
P_origin_0_1) - Domain: 도메인 (예:
public) - Image: 이미지 파일명
- Question: 질문
- Answer: 답변
- Type: QA 타입 (예:
reasoning) - Count: QA 순번 (1, 2, 3...)
- Provider: 사용한 LLM (예:
openai) - Token: 사용한 토큰 수
- reasoning_annotation: 추론 주석
- context: 컨텍스트
A: 네, pipeline_output.json에 여러 도메인이 섞여 있어도 자동으로 각 도메인의 데이터베이스에 분산 업로드됩니다.
-
항상
--dry-run으로 먼저 확인하세요python upload_to_notion_from_json.py output_test --dry-run
-
출력 폴더를 명확하게 구분하세요
--output-dir output_test_openai_v1 --output-dir output_test_claude_v2
-
중요한 결과는 백업하세요
cp -r output_test_public output_test_public_backup
-
Notion 데이터베이스 속성이 자동 생성됩니다
- 처음 업로드 시 필요한 속성들이 자동으로 추가됨
- Database 권한 확인 필요 (Integration이 접근 가능해야 함)
upload_to_notion_from_json.py- 선택적 업로드 스크립트run_pipeline_json.py- JSON 파이프라인 (파라미터로--upload-to-notion지원)generate_synthetic_table/notion_uploader.py- Notion 업로더 클래스apis/gemini_keys.yaml- 설정 파일
문제가 있거나 추가 기능이 필요하면 이슈를 열어주세요! 🚀