Metadata-Version: 2.4
Name: medcreatorguard
Version: 0.2.0
Summary: AI safety toolkit for clinicians and health content creators
License: MIT
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: openai>=1.30.0
Requires-Dist: pydantic>=2.6.0
Requires-Dist: typer>=0.12.0
Requires-Dist: rich>=13.7.0
Requires-Dist: httpx>=0.27.0
Provides-Extra: claude
Requires-Dist: anthropic>=0.40.0; extra == "claude"
Provides-Extra: dev
Requires-Dist: pytest>=8.0.0; extra == "dev"
Requires-Dist: pytest-asyncio>=0.23.0; extra == "dev"
Requires-Dist: pytest-mock>=3.12.0; extra == "dev"
Dynamic: license-file

# MedCreatorGuard

**AI safety toolkit for clinicians and health content creators**

[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
[![Python 3.10+](https://img.shields.io/badge/Python-3.10+-blue.svg)](https://python.org)
[![PyPI](https://img.shields.io/pypi/v/medcreatorguard.svg)](https://pypi.org/project/medcreatorguard/)

> 의사이자 AI creator의 관점에서 설계한 의료 콘텐츠 안전성 검토 오픈소스 도구.

---

## What is this?

MedCreatorGuard is an open-source AI toolkit that helps clinicians and health creators review medical content for factual accuracy, evidence quality, and patient safety **before publishing**.

SNS에 올라오는 건강 콘텐츠 중 많은 부분이:

- 효과를 과장하거나 ("완치됩니다", "모든 사람에게 효과")
- 근거 없는 주장을 하거나 ("독소 배출", "간 해독")
- 전문 의료를 불필요하게 여기게 만듭니다 ("병원 안 가도 됩니다")

MedCreatorGuard는 이런 문제를 자동으로 감지하고, 더 안전한 표현으로 수정을 제안합니다.

---

## Features

- **Rule-based scan** — API 호출 없이 위험 패턴 즉시 감지 (한국어 + 영어, `--no-llm`)
- **LLM analysis** — OpenAI(`gpt-4o-mini`) 또는 Anthropic Claude로 의료 주장 추출, 근거 등급 평가, 안전한 재작성 제안
- **CLI tool** — 터미널에서 바로 사용 (`medguard check`, `medguard rewrite`)
- **Paper-to-post** — 연구 논문 초록 → 안전한 SNS 포스트 자동 변환

---

## Installation

### Option 1: PyPI (권장)

```bash
pip install medcreatorguard

# Claude를 사용하려면:
pip install "medcreatorguard[claude]"
```

### Option 2: GitHub에서 직접 설치

```bash
git clone https://github.com/aimekoreaofficial/MedCreatorGuard.git
cd MedCreatorGuard
pip install -e .
```

### API 키 설정

LLM 분석을 사용하려면 API 키가 필요합니다. (룰 기반 검사만 쓰려면 `--no-llm` — 키 불필요)

```bash
# OpenAI (기본, --llm openai)
export OPENAI_API_KEY=<your-api-key>       # Mac/Linux
set OPENAI_API_KEY=<your-api-key>          # Windows cmd

# Anthropic Claude (--llm claude)
export ANTHROPIC_API_KEY=<your-api-key>
```

---

## Quick Start

```bash
# 텍스트 직접 분석
medguard check --text "마그네슘을 먹으면 불면증이 완치됩니다."

# API 키 없이 룰 기반 검사만
medguard check --no-llm --text "부작용 없는 100% 효과 보장!"

# 파일 분석
medguard check examples/korean_sleep_caption.txt

# Claude로 분석
medguard check --llm claude --text "당뇨가 완치됩니다."

# 안전한 표현으로 재작성
medguard rewrite --text "이 방법만 하면 병원에 가지 않아도 됩니다."

# 연구 논문 초록 → SNS 포스트 변환
medguard paper-to-post examples/abstract.txt --platform instagram

# JSON 형식으로 출력
medguard check --text "당뇨가 완치됩니다." --json
```

---

## Example Output

```
medguard check --text "마그네슘을 먹으면 불면증이 대부분 해결됩니다."

╭─── MedCreatorGuard Report ───╮
│ Risk Score: 🟡 중간 (Medium) │
╰──────────────────────────────╯

Detected Claims
 Claim                            Type              Evidence  Risk    Concern
 마그네슘 섭취가 불면증을 해결한다   treatment_effect  C         medium  효과가 과장됨.
                                                                     근거는 제한적임.

⚠ Risky Phrases
  • 대부분 해결됩니다
    불면증 해결을 과장함
    → 일부 사람에게 수면 개선에 도움이 될 수 있습니다

╭─ Suggested Safe Rewrite ─────────────────────────────────╮
│ 마그네슘은 일부 사람의 수면 관리에 도움이 될 수 있지만,      │
│ 불면증은 다양한 원인이 있습니다. 증상이 지속되면 의료진과    │
│ 상담하는 것이 좋습니다.                                    │
╰──────────────────────────────────────────────────────────╯

╭─ Suggested Disclaimer ───────────────────────────────────╮
│ 이 콘텐츠는 일반적인 건강 정보 제공 목적이며               │
│ 개인의 진단이나 치료를 대체하지 않습니다.                  │
╰──────────────────────────────────────────────────────────╯
```

---

## CLI Options

| Option | Commands | Description |
|--------|----------|-------------|
| `--text`, `-t` | check, rewrite | 인라인 텍스트 분석 |
| `--llm` | all | LLM 프로바이더: `openai`(기본) 또는 `claude` |
| `--model`, `-m` | all | 모델 지정 (기본: openai=`gpt-4o-mini`, claude=`claude-opus-4-8`) |
| `--no-llm` | check, rewrite | API 키 없이 룰 기반 검사만 실행 |
| `--json` | check, paper-to-post | 원시 JSON 출력 |
| `--platform`, `-p` | paper-to-post | 대상 플랫폼 (기본: instagram) |

LLM 호출이 실패하면(타임아웃, 잘못된 응답 등) 크래시하지 않고 룰 기반 결과로 자동 전환되며 경고가 표시됩니다.

---

## Evidence Levels

| Grade | Meaning |
|-------|---------|
| **A** | 강한 근거 — 메타분석 / 대규모 RCT |
| **B** | 중등도 근거 — 소규모 임상 / 관찰연구 |
| **C** | 제한적 근거 — 전문가 의견 / 기전 추론 |
| **D** | 근거 부족 또는 과장 가능성 |

---

## Development

```bash
git clone https://github.com/aimekoreaofficial/MedCreatorGuard.git
cd MedCreatorGuard
pip install -e ".[dev,claude]"
pytest
```

---

## License

MIT License — 자유롭게 사용, 수정, 배포 가능합니다.

---

*Built by [@aimekoreaofficial](https://github.com/aimekoreaofficial)*
