자사 서비스의 AI 답변을 사용자에게 보여주기 전에 유메로 사실 여부를 확인하세요. 응답에는 주장별 판정·근거·출처와, 인용된 법령·판례·문헌이 공식 자료에 없을 때의 부존재 신뢰도가 함께 들어 있습니다.
Authorization: Bearer <API 키> 헤더를 붙입니다.텍스트 하나를 검증합니다. 검증에는 보통 10~40초가 걸립니다. wait를 주면 결과가 나올 때까지(최대 60초) 연결을 유지하고, 주지 않으면 즉시 202와 id를 돌려주므로 GET /v1/verify/:id로 조회하세요.
| 필드 | 타입 | 설명 |
|---|---|---|
text | string | 검증할 텍스트. 최대 10,000자 |
wait | boolean | number | 선택. true면 최대 60초, 숫자면 그 초만큼 기다림 |
curl -X POST https://www.yume-reamer.com/v1/verify \
-H "Authorization: Bearer yume_live_..." \
-H "Content-Type: application/json" \
-d '{"text": "대법원 2019다123456 판결에 따르면 …", "wait": true}'
const res = await fetch("https://www.yume-reamer.com/v1/verify", {
method: "POST",
headers: { Authorization: `Bearer ${process.env.YUME_API_KEY}`, "Content-Type": "application/json" },
body: JSON.stringify({ text, wait: 30 }),
});
let job = await res.json();
while (job.status === "pending") {
await new Promise((r) => setTimeout(r, 3000));
job = await (await fetch(`https://www.yume-reamer.com/v1/verify/${job.id}`, { headers: { Authorization: `Bearer ${process.env.YUME_API_KEY}` } })).json();
}
import os, time, requests
H = {"Authorization": f"Bearer {os.environ['YUME_API_KEY']}"}
job = requests.post("https://www.yume-reamer.com/v1/verify", json={"text": text, "wait": 30}, headers=H).json()
while job["status"] == "pending":
time.sleep(3)
job = requests.get(f"https://www.yume-reamer.com/v1/verify/{job['id']}", headers=H).json()
{
"id": "9f2c1a7b3d4e5f60",
"status": "done", // pending | done | error
"cached": false,
"created_at": "2026-09-12T03:10:00.000Z",
"completed_at": "2026-09-12T03:10:21.000Z",
"result": {
"verdict": { "label": "부분적으로 부정확", "tone": "false", "detail": "3개 중 1개가 사실과 다릅니다 — …" },
"domain": "법률",
"claims": [
{
"text": "대법원 2019다123456 판결은 …",
"domain": "법률",
"verdict": "false", // confirmed | false | uncertain
"verified_via": "nec", // official | nec | web | research | unavailable
"explanation": "인용된 ‘2019다123456’은(는) 존재하지 않을 가능성이 높습니다(부존재 신뢰도 0.735). …",
"sources": [],
"legal_ref": { "type": "case", "case_number": "2019다123456" },
"nec": {
"identifier": { "type": "case", "canonical": "2019다123456", "searchSpace": "대법원 판결" },
"score": 0.735, "grade": "nonexistent", "gradeLabel": "부존재 확실", "threshold": 0.7,
"weights": { "w1": 0.65, "w2": 0.2, "w3": 0.15 },
"coverage": { "value": 0.9, "estimated": true, "searched": [ … ] },
"formatError": { "value": 0, "skippedSearch": false, "checks": [] },
"proximity": { "value": 0, "similar": [] },
"uncovered": [],
"summary": "…"
}
}
]
},
"usage": { "used": 12, "quota": 1000, "remaining": 988, "resets_at": "2026-09-30T15:00:00.000Z" }
}
official | 법제처 국가법령정보의 현행 조문·판례·헌재 결정 원문과 대조 |
nec | 인용된 식별자 또는 사실 주장을 공식 자료·웹에서 찾지 못해 부존재 신뢰도로 판정 |
web | 실시간 웹 자료로 교차 확인 |
research | 앞 단계에서 결론이 나지 않아 도메인별 심층 재확인을 거침 |
unavailable | 외부 자료 조회에 실패해 확인되지 않음 |
AI가 존재하지 않는 판례·법령·논문을 지어내거나, 있지도 않은 통계·사건을 사실처럼 말하는 경우가 있습니다. 데이터베이스에서 "못 찾았다"는 사실만으로 곧바로 "없다"고 단정할 수는 없으므로, 유메는 다음 세 지표로 부존재 신뢰도를 산출합니다.
식별자(법령·판례·DOI 등)는 공식 레지스트리가 검색공간입니다. 식별자가 없는 일반 사실 주장은 "이 주장이 사실이라면 어디에 기록되어 있어야 하는가"를 검색공간으로 삼습니다 — 공공 통계·공시처럼 사실이라면 반드시 공표되는 영역을 충분히 탐색하고도 찾지 못하면 부존재 신뢰도가 임계값을 넘어 사실과 다름으로 판정합니다. 반대로 비공개 내부 정보나 개인 경험처럼 애초에 기록이 남지 않는 주장은 탐색 커버리지가 낮아 부존재로 단정하지 않고 확인되지 않음으로 남습니다.
NEC = w1·C + w2·F + w3·(1 − P)
grade가 nonexistent(NEC ≥ 0.7)이면 해당 주장은 false로, unverifiable이면 uncovered에 아직 확인하지 못한 영역과 확인 방법이 담깁니다. 지원 식별자: 판례 사건번호, 헌법재판소 사건번호, 법령·조문, DOI, arXiv, PMID, ISBN.
같은 계정의 키로 요청한 검증만 조회할 수 있습니다. 조회는 과금되지 않습니다.
{ "key": { "label": "운영 서버", "prefix": "yume_live_ab12cd…" }, "rate_per_min": 30,
"month": { "used": 12, "quota": 1000, "remaining": 988, "resets_at": "…" } }
POST /v1/verify 1건입니다(같은 텍스트의 캐시 재사용 포함). 입력 오류·인증 실패·한도 초과로 거절된 요청은 과금되지 않습니다.429와 Retry-After 헤더를 돌려줍니다.{ "error": { "code": "quota_exceeded", "message": "…" } }
| HTTP | code | 의미 |
|---|---|---|
| 400 | invalid_request | text가 비어 있음 |
| 401 | invalid_api_key | 키가 없거나 폐기됨 |
| 404 | not_found | 검증 id가 없거나 다른 계정의 것 |
| 413 | text_too_long | 10,000자 초과 |
| 429 | rate_limited / quota_exceeded | 분당 한도 / 월 한도 초과 |
API로 보낸 텍스트는 검증과 과금·분쟁 대응을 위해 1년간 보관되며, 별도 계약으로 허용한 경우를 제외하고 데이터셋 제공 대상에 포함되지 않습니다. 텍스트에 개인정보가 들어간다면 귀사 이용자에게 필요한 고지·동의를 받아주세요. 자세한 내용은 개인정보처리방침과 이용약관을 참고하세요.