메인 콘텐츠로 건너뛰기

Documentation Index

Fetch the complete documentation index at: https://docs.factagora.com/llms.txt

Use this file to discover all available pages before exploring further.

1. 워터마크 삽입

/fingerprint/embed에 콘텐츠를 보내 TKG를 추출하고 워터마크를 삽입합니다.
curl -X POST "https://api.factagora.com/api/v1/fingerprint/embed" \
  -H "Authorization: Bearer fag_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "content": "The European Central Bank raised interest rates by 25 basis points on Thursday, citing persistent core inflation in the eurozone. Analysts at Goldman Sachs expect one more hike before a pause in Q4.",
    "content_type": "news",
    "metadata": {
      "author_id": "editor_jane",
      "published_at": "2024-06-15T08:00:00Z",
      "source_id": "article_12345"
    }
  }'

응답

{
  "watermarked_content": "The European Central Bank raised interest rates by 25 basis points...",
  "fingerprint_id": "fp_l1p8OPCwGhvu",
  "tkg_snapshot": {
    "entities": ["European Central Bank", "Interest rate", "Goldman Sachs"],
    "timeseries": ["2024-06-15"],
    "relations": [
      { "from": "European Central Bank", "rel": "raises", "to": "Interest rate" }
    ],
    "argument_map": [
      {
        "premise": "Persistent core inflation in the eurozone",
        "evidence": "ECB policy meeting decision",
        "conclusion": "Interest rates raised by 25 basis points"
      }
    ]
  },
  "embed_timestamp": "2024-06-15T08:01:23.456Z",
  "meta": { "executionTimeMs": 1234 }
}
원본이 아니라 watermarked_content를 배포하세요. 워터마크가 적용된 버전은 원본과 동일해 보이지만, 워터마크 기반 탐지를 가능하게 하는 보이지 않는 zero-width 문자들이 포함되어 있습니다.
fingerprint_id를 내부 글 ID와 함께 저장하세요. 재점수 산정과 리포팅에 필요합니다.

2. 콘텐츠 재사용 탐지

당신의 글에서 비롯된 것처럼 보이는 콘텐츠를, 재작성되었더라도, 발견했다면 /fingerprint/detect에 보냅니다.
curl -X POST "https://api.factagora.com/api/v1/fingerprint/detect" \
  -H "Authorization: Bearer fag_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "content": "ECB hiked rates 25bp Thursday due to stubborn inflation. Goldman analysts predict one final increase before year-end pause."
  }'

응답

{
  "match_found": true,
  "confidence_score": 0.87,
  "query_fingerprint_id": "fp_tmpQueryId01",
  "matches": [
    {
      "fingerprint_id": "fp_l1p8OPCwGhvu",
      "content_type": "news",
      "metadata": { "author_id": "editor_jane", "source_id": "article_12345" },
      "embed_timestamp": "2024-06-15T08:01:23.456Z",
      "score": 0.87,
      "similarity_breakdown": {
        "entity_match": 0.92,
        "timeseries_match": 1.0,
        "causal_pattern_match": 0.78
      },
      "overlap": {
        "entities": ["european central bank", "interest rate", "goldman sachs"],
        "timeseries": ["2024-06-15"],
        "relations": ["european central bank|raises|interest rate"]
      },
      "watermark_match": false,
      "watermark_correlation": null
    }
  ],
  "meta": {
    "scanned": 156,
    "executionTimeMs": 342,
    "weights": { "entity": 0.5, "time": 0.2, "causal": 0.3 },
    "watermark_detected": false
  }
}
쿼리 텍스트가 완전히 재작성되었음에 주목하세요, “ECB hiked rates 25bp” vs “European Central Bank raised interest rates by 25 basis points”, 그럼에도 API는 내부 인과 구조를 비교해 87%의 신뢰도로 매치를 찾아냈습니다.

3. 워터마크로 탐지 (최고 신뢰도)

콘텐츠의 워터마크 버전이 보이지 않는 문자들과 함께 그대로 복사되었다면, 워터마크 레이어가 발화해 거의 확실한 출처 증명을 제공합니다:
{
  "matches": [
    {
      "fingerprint_id": "fp_l1p8OPCwGhvu",
      "score": 0.87,
      "watermark_match": true,
      "watermark_correlation": 0.98,
      ...
    }
  ],
  "meta": {
    "watermark_detected": true
  }
}
watermark_match: true이면 매치는 암호학적으로 검증된 것입니다, 정확히 워터마크가 적용된 콘텐츠(또는 그 일부)가 사용되었음을 의미합니다.

4. 커스텀 가중치로 탐지 튜닝

콘텐츠 유형마다 점수 강조점이 달라질 수 있습니다. 필요하면 기본값을 재정의하세요:
{
  "content": "...",
  "weights": { "entity": 0.3, "time": 0.1, "causal": 0.6 }
}
사용된 가중치는 항상 meta.weights에 반향되므로 어떤 값이 적용되었는지 확인할 수 있습니다.

5. 기존 fingerprint 재점수 산정

이미 삽입한 fingerprint에 새 콘텐츠가 매치되는지 주기적으로 확인하려면 fingerprint_id를 직접 전달하세요:
curl -X POST "https://api.factagora.com/api/v1/fingerprint/detect" \
  -H "Authorization: Bearer fag_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{"fingerprint_id": "fp_l1p8OPCwGhvu"}'
저장된 TKG 스냅샷을 재사용하므로 재추출 없이 더 빠르게 작동하고, 예약된 모니터링에 이상적입니다.

요약

단계엔드포인트역할
EmbedPOST /fingerprint/embedTKG 추출, 워터마크 삽입, fingerprint 저장
DetectPOST /fingerprint/detect저장된 fingerprint를 대상으로 워터마크 + TKG 매칭 실행
Re-scorePOST /fingerprint/detect (fingerprint_id 포함)기존 fingerprint를 새 후보 콘텐츠와 재점수 산정