문서

설치부터 API 까지. 이 페이지에 없는 것은 junhuhan99@gmail.com 로 물어보세요.

설치스크립트 속성라벨 셀렉터JS API채널톡 연동AI 이용 안내·JSON표시 REST APIOpenAI 호환 게이트웨이증적·보고서개인정보

1. 설치

대시보드에서 사이트를 등록하면 고유 키(am_…)가 나옵니다. 아래 한 줄을 모든 페이지의 <head> 에 넣습니다. 태그 관리자(GTM)로 넣어도 됩니다.

<script src="https://veritai.teamplut.com/veritai.js" data-site="va_XXXXXXXXXXX" defer></script>

넣자마자 하단(또는 상단)에 사전 고지 배너가 뜨고, 라벨 셀렉터에 맞는 요소에 「AI 생성」 라벨이 붙습니다. 첫 기록이 들어오면 대시보드의 사이트 상태가 «가동 중»으로 바뀝니다.

2. 스크립트가 읽는 설정

설정은 태그가 아니라 대시보드에 저장되고 스크립트가 5분 캐시로 받아 갑니다. 그래서 문구·색·위치를 바꿔도 사이트 코드를 다시 배포할 필요가 없습니다.

항목설명
배너 켜기/위치/테마/강조색하단·상단, 어두운/밝은 테마, 버튼·테두리 색
언어자동(문서 lang → 브라우저 언어), 한국어 고정, 영어 고정
확인 후 재표시 안 함0~365일. 0이면 매번 표시. localStorage 에 확인 시각만 저장
문구배너 본문·근거 문구·버튼·라벨 문구를 한/영 각각 수정. HTML 은 들어가지 않습니다(텍스트로만 삽입)
「VERIT AI로 고지됨」 표기무료 요금제는 항상 표시, 유료는 끌 수 있음

3. 라벨 셀렉터

기본값은 [data-veritai], [data-ai-generated], .ai-generated 입니다. 챗봇 답변 말풍선이나 생성 이미지 컨테이너의 CSS 셀렉터를 쉼표로 더 적으면, 지금 있는 요소와 나중에 추가되는 요소 모두에 라벨이 붙습니다(MutationObserver).

/* 예: 채널톡·인터콤 류 위젯의 봇 메시지, 자체 챗 UI */
.ch-bot-message, .intercom-comment[data-bot], .chat .m.b, img.generated

가상 콘텐츠(딥페이크류) 셀렉터를 따로 적으면 「AI 생성 · 가상 콘텐츠」 라벨과 제31조 3항 고지 문구(title·aria-description)가 붙습니다.

라벨은 position:absolute 로 요소 오른쪽 위에 놓이며, 부모가 static 이면 relative 로 바꿉니다. 클래스 .veritai-label 로 스타일을 덮어쓸 수 있습니다.

4. JS API

window.__veritai.label(element)                 // 이 요소에 라벨 부착 (SPA 에서 직접 호출)
window.__veritai.label(element, {deepfake:true}) // 가상 콘텐츠로 표시
window.__veritai.notice()                       // 배너를 다시 보여 준다 (확인 기록 삭제)
window.__veritai.count()                        // 이 페이지에서 붙인 라벨 수

4-1. 채널톡 연동

채널톡 상담창은 iframe 안에서 채널톡 서버가 그리므로, 페이지에 넣은 스크립트로는 봇 답변에 라벨을 붙일 수 없습니다. VERIT AI 는 세 겹으로 처리합니다. 대시보드 → 사이트 → 채널톡 탭에서 켭니다.

무엇을설정 위치
① 웹훅 (서버)유저챗이 열리거나 첫 메시지가 오면 봇이 고지 메시지를 먼저 보냅니다(채팅당 1회, 증적 기록). 봇 답변은 «표시 부착» 증적으로 기록됩니다.채널톡 채널 설정 → 연동 → 웹훅에 대시보드가 주는 주소 등록(이벤트: 유저챗 생성·메시지 생성). 채널 설정 → 보안 및 개발 → Open API 키를 대시보드에 입력.
② ALF 지시문AI 상담원 답변 끝줄에 표시 문구를 붙이게 합니다(제31조 2항 «결과물 표시»).채널 설정 → ALF → 지시사항에 대시보드의 문장을 붙여 넣기.
③ 화면 (스크립트)ChannelIO('onShowMessenger') 에 걸어 상담창을 여는 순간 고지 배너를 띄우고 기록합니다(세션당 1회).스크립트만 설치돼 있으면 자동.

Open API 로 보내는 고지 메시지는 채널톡 요금제의 봇 메시지 정책을 따릅니다. 웹훅 주소에는 사이트별 비밀 토큰이 들어 있으니 외부에 공개하지 마세요(설정 탭에서 재발급 가능).

5. AI 이용 안내 페이지와 ai-disclosure.json

사이트마다 공개 안내 페이지 https://veritai.teamplut.com/p/<키> 와 기계판독 파일 …/p/<키>.json 이 생성됩니다. 배너의 「AI 이용 안내」 링크가 여기로 갑니다. 사이트 푸터에도 링크를 두는 것을 권합니다.

자기 도메인에 두고 싶으면 대시보드에서 ai-disclosure.json 을 내려받아 /.well-known/ai-disclosure.json 에 올리고, 페이지 head 에 다음을 넣습니다.

<meta name="ai-disclosure" content="https://example.com/.well-known/ai-disclosure.json">

6. 표시 REST API (스타터 이상)

대시보드에서 API 키(vai_…)를 발급합니다. 헤더 X-Verit-Key 로 보냅니다. 월 한도는 요금제에 따릅니다.

텍스트 표시

POST https://veritai.teamplut.com/v1/label/text
X-Verit-Key: vai_…
Content-Type: application/json

{"text":"…AI 답변…", "lang":"ko", "kind":"generated", "position":"suffix"}

→ {"ok":true, "text":"…AI 답변…\n\nAI 생성 콘텐츠 · 이 내용은 생성형 인공지능이 만든 결과물입니다.", "label":"…"}

이미지 표시 (프로 이상)

PNG/JPEG 바이너리를 그대로 보냅니다. 모서리에 보이는 라벨을 얹고(끄려면 ?visible=0), XMP 에 veritai:aiGenerated · IPTC DigitalSourceType=trainedAlgorithmicMedia 를, PNG 는 iTXt 청크에 같은 선언을 심어 돌려줍니다.

curl -X POST "https://veritai.teamplut.com/v1/label/image?lang=ko&corner=br" \
  -H "X-Verit-Key: vai_…" -H "Content-Type: image/png" \
  --data-binary @generated.png -o labeled.png

# 검증(키 불필요)
curl -X POST https://veritai.teamplut.com/v1/verify/image --data-binary @labeled.png
→ {"ok":true,"labeled":true,"meta":{"aiGenerated":true,"issuer":"VERIT AI …","issuedAt":"…"}}

7. OpenAI 호환 표시 게이트웨이 (프로 이상)

OpenAI SDK 의 base_url 만 바꾸면 모든 답변 끝에 표시 문구가 붙고 증적이 남습니다. 손님의 OpenAI 키는 Authorization 헤더로 그대로 상류에 전달되며 저장하지 않습니다. 스트리밍도 지원합니다.

from openai import OpenAI
client = OpenAI(
    base_url="https://veritai.teamplut.com/v1",
    api_key="sk-…",                                   # 귀사의 OpenAI 키 (그대로 전달)
    default_headers={"X-Verit-Key": "vai_…", "X-Verit-Lang": "ko"},
)
r = client.chat.completions.create(model="gpt-4.1-mini", messages=[{"role":"user","content":"안녕"}])
print(r.choices[0].message.content)   # 끝에 표시 문구가 붙어 있다

X-Verit-Upstream: wit 를 주면 위트 AI API 를 상류로 씁니다(해외카드 없이 원화 결제).

8. 증적과 보고서

스크립트는 배너 노출(shown)·확인(ack)·라벨 부착(label)을, API 는 처리 건(api)을 기록합니다. 각 기록에는 페이지 경로, 언어, 그때 쓴 문구의 해시가 붙어 «언제 무슨 문구로 고지했는가»를 되짚을 수 있습니다. 대시보드에서 CSV 로 내려받고, 월간 이행 보고서를 인쇄해 제출합니다. 보관 기간은 요금제(7일·90일·3년)에 따르며 기한이 지난 원장은 삭제되고 일별 요약만 남습니다.

9. 개인정보

스크립트는 쿠키를 쓰지 않습니다. 확인 시각만 localStorage 에 둡니다. 서버는 IP 를 저장하지 않고 날짜+IP+UA 의 해시 앞 24자만 두어 «오늘 몇 명이 고지를 받았나»를 셉니다. 하루가 지나면 같은 사람을 이을 수 없습니다. 페이지 경로는 저장하지만 쿼리스트링은 저장하지 않습니다.

VERIT AI는 고지·표시 실행 도구이며 법률 자문을 제공하지 않습니다. 법령의 해석·적용은 이용 기업의 책임입니다.