Claude는 문서에 대한 질문에 답변할 때 상세한 인용을 제공할 수 있어, 응답의 정보 출처를 추적하고 확인하는 데 도움을 줍니다.

인용 기능은 현재 Claude 3.7 Sonnet, Claude 3.5 Sonnet (신규) 및 3.5 Haiku에서 사용할 수 있습니다.

Claude 3.7 Sonnet의 인용

Claude 3.7 Sonnet은 사용자의 더 명시적인 지시 없이는 다른 Claude 모델에 비해 인용을 할 가능성이 낮을 수 있습니다. Claude 3.7 Sonnet에서 인용을 사용할 때는 예를 들어 "답변을 뒷받침하기 위해 인용을 사용하세요."와 같은 추가 지시사항을 user 턴에 포함하는 것을 권장합니다.

또한 모델이 응답을 구조화하도록 요청받았을 때, 해당 형식 내에서 인용을 사용하라는 명시적인 지시가 없다면 인용을 사용할 가능성이 낮다는 것을 관찰했습니다. 예를 들어, 모델이 응답에서 태그를 사용하도록 요청받은 경우, ” 내에서도 항상 인용을 사용하세요.”와 같은 내용을 추가해야 합니다.

양식을 사용하여 인용 기능에 대한 피드백과 제안을 공유해 주세요.

다음은 Messages API에서 인용을 사용하는 방법의 예시입니다:

curl https://api.anthropic.com/v1/messages \
  -H "content-type: application/json" \
  -H "x-api-key: $ANTHROPIC_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -d '{
    "model": "claude-3-7-sonnet-20250219",
    "max_tokens": 1024,
    "messages": [
      {
        "role": "user",
        "content": [
          {
            "type": "document",
            "source": {
              "type": "text",
              "media_type": "text/plain",
              "data": "The grass is green. The sky is blue."
            },
            "title": "My Document",
            "context": "This is a trustworthy document.",
            "citations": {"enabled": true}
          },
          {
            "type": "text",
            "text": "What color is the grass and sky?"
          }
        ]
      }
    ]
  }'

프롬프트 기반 접근 방식과의 비교

프롬프트 기반 인용 솔루션과 비교하여, 인용 기능은 다음과 같은 장점이 있습니다:

  • 비용 절감: 프롬프트 기반 접근 방식에서 Claude에게 직접 인용문을 출력하도록 요청하는 경우, cited_text가 출력 토큰으로 계산되지 않기 때문에 비용 절감을 볼 수 있습니다.
  • 더 나은 인용 신뢰성: 인용을 위에서 언급한 응답 형식으로 파싱하고 cited_text를 추출하기 때문에, 인용은 제공된 문서에 대한 유효한 참조를 포함하도록 보장됩니다.
  • 향상된 인용 품질: 평가에서 순수하게 프롬프트 기반 접근 방식과 비교했을 때, 인용 기능이 문서에서 가장 관련성 있는 인용문을 인용할 가능성이 크게 높은 것으로 나타났습니다.

인용 작동 방식

다음 단계에 따라 Claude와 인용을 통합하세요:

1

문서 제공 및 인용 활성화

  • 지원되는 형식의 문서를 포함하세요: PDF, 일반 텍스트, 또는 사용자 지정 콘텐츠 문서
  • 각 문서에 대해 citations.enabled=true를 설정하세요. 현재는 요청 내의 모든 문서에 대해 인용을 활성화하거나 비활성화해야 합니다.
  • 현재는 텍스트 인용만 지원되며 이미지 인용은 아직 불가능합니다.
2

문서 처리

  • 가능한 인용의 최소 단위를 정의하기 위해 문서 내용이 “청크”로 나뉩니다. 예를 들어, 문장 단위 청크는 Claude가 단일 문장을 인용하거나 여러 연속된 문장을 연결하여 단락(또는 더 긴 내용)을 인용할 수 있게 합니다!
    • PDF의 경우: PDF 지원에서 설명된 대로 텍스트가 추출되고 내용이 문장 단위로 청크화됩니다. PDF에서 이미지 인용은 현재 지원되지 않습니다.
    • 일반 텍스트 문서의 경우: 내용이 인용 가능한 문장 단위로 청크화됩니다.
    • 사용자 지정 콘텐츠 문서의 경우: 제공된 콘텐츠 블록이 그대로 사용되며 추가 청크화는 수행되지 않습니다.
3

Claude가 인용이 포함된 응답 제공

  • 이제 응답에는 각 텍스트 블록이 Claude가 주장하는 내용과 그 주장을 뒷받침하는 인용 목록을 포함할 수 있는 여러 텍스트 블록이 포함될 수 있습니다.
  • 인용은 소스 문서의 특정 위치를 참조합니다. 이러한 인용의 형식은 인용되는 문서의 유형에 따라 다릅니다.
    • PDF의 경우: 인용에는 페이지 번호 범위(1부터 시작)가 포함됩니다.
    • 일반 텍스트 문서의 경우: 인용에는 문자 인덱스 범위(0부터 시작)가 포함됩니다.
    • 사용자 지정 콘텐츠 문서의 경우: 인용에는 원본 콘텐츠 목록에서 제공된 콘텐츠 블록 인덱스 범위(0부터 시작)가 포함됩니다.
  • 문서 인덱스는 참조 소스를 나타내기 위해 제공되며 원래 요청의 모든 문서 목록에 따라 0부터 시작합니다.

자동 청크화 vs 사용자 지정 콘텐츠

기본적으로 일반 텍스트와 PDF 문서는 자동으로 문장 단위로 청크화됩니다. 인용 단위에 대해 더 많은 제어가 필요한 경우(예: 글머리 기호나 대본의 경우), 대신 사용자 지정 콘텐츠 문서를 사용하세요. 자세한 내용은 문서 유형을 참조하세요.

예를 들어, Claude가 RAG 청크에서 특정 문장을 인용할 수 있기를 원한다면, 각 RAG 청크를 일반 텍스트 문서에 넣어야 합니다. 반대로 추가 청크화를 원하지 않거나 추가 청크화를 사용자 지정하고 싶다면, RAG 청크를 사용자 지정 콘텐츠 문서에 넣을 수 있습니다.

인용 가능 vs 인용 불가능 콘텐츠

  • 문서의 source 콘텐츠 내의 텍스트는 인용될 수 있습니다.
  • titlecontext는 선택적 필드로, 모델에 전달되지만 인용 가능한 콘텐츠로 사용되지 않습니다.
  • title은 길이가 제한되어 있으므로, context 필드를 사용하여 문서 메타데이터를 텍스트나 문자열화된 json으로 저장하는 것이 유용할 수 있습니다.

인용 인덱스

  • 문서 인덱스는 요청의 모든 문서 콘텐츠 블록 목록(모든 메시지에 걸쳐)에서 0부터 시작합니다.
  • 문자 인덱스는 0부터 시작하며 끝 인덱스는 제외됩니다.
  • 페이지 번호는 1부터 시작하며 끝 페이지 번호는 제외됩니다.
  • 콘텐츠 블록 인덱스는 사용자 지정 콘텐츠 문서에서 제공된 content 목록에서 0부터 시작하며 끝 인덱스는 제외됩니다.

토큰 비용

  • 인용을 활성화하면 시스템 프롬프트 추가와 문서 청크화로 인해 입력 토큰이 약간 증가합니다.
  • 하지만 인용 기능은 출력 토큰을 매우 효율적으로 사용합니다. 내부적으로 모델은 표준화된 형식의 인용을 출력하며, 이는 인용된 텍스트와 문서 위치 인덱스로 파싱됩니다. cited_text 필드는 편의를 위해 제공되며 출력 토큰으로 계산되지 않습니다.
  • 후속 대화 턴에서 전달될 때도 cited_text는 입력 토큰으로 계산되지 않습니다.

기능 호환성

인용은 프롬프트 캐싱, 토큰 계산, 배치 처리를 포함한 다른 API 기능과 함께 작동합니다.


문서 유형

문서 유형 선택

인용을 위해 세 가지 문서 유형을 지원합니다:

유형최적 용도청크화인용 형식
일반 텍스트단순 텍스트 문서, 산문문장문자 인덱스 (0부터 시작)
PDF텍스트 콘텐츠가 있는 PDF 파일문장페이지 번호 (1부터 시작)
사용자 지정 콘텐츠목록, 대본, 특수 형식, 더 세분화된 인용추가 청크화 없음블록 인덱스 (0부터 시작)

일반 텍스트 문서

일반 텍스트 문서는 자동으로 문장 단위로 청크화됩니다:

{
    "type": "document",
    "source": {
        "type": "text",
        "media_type": "text/plain",
        "data": "일반 텍스트 내용..."
    },
    "title": "문서 제목", # 선택사항
    "context": "인용되지 않을 문서에 대한 컨텍스트", # 선택사항
    "citations": {"enabled": True}
}

PDF 문서

PDF 문서는 base64로 인코딩된 데이터로 제공됩니다. PDF 텍스트가 추출되어 문장 단위로 청크화됩니다. 이미지 인용은 아직 지원되지 않으므로, 추출 가능한 텍스트가 없는 문서 스캔 PDF는 인용할 수 없습니다.

{
    "type": "document",
    "source": {
        "type": "base64",
        "media_type": "application/pdf",
        "data": base64_encoded_pdf_data
    },
    "title": "문서 제목", # 선택사항
    "context": "인용되지 않을 문서에 대한 컨텍스트", # 선택사항
    "citations": {"enabled": True}
}

사용자 지정 콘텐츠 문서

사용자 지정 콘텐츠 문서를 사용하면 인용 단위를 제어할 수 있습니다. 추가 청크화는 수행되지 않으며, 제공된 콘텐츠 블록에 따라 청크가 모델에 제공됩니다.

{
    "type": "document",
    "source": {
        "type": "content",
        "content": [
            {"type": "text", "text": "첫 번째 청크"},
            {"type": "text", "text": "두 번째 청크"}
        ]
    },
    "title": "문서 제목", # 선택사항
    "context": "인용되지 않을 문서에 대한 컨텍스트", # 선택사항
    "citations": {"enabled": True}
}

응답 구조

인용이 활성화되면, 응답에는 인용이 포함된 여러 텍스트 블록이 포함됩니다:

{
    "content": [
        {
            "type": "text",
            "text": "문서에 따르면, "
        },
        {
            "type": "text",
            "text": "잔디는 초록색이고",
            "citations": [{
                "type": "char_location",
                "cited_text": "The grass is green.",
                "document_index": 0,
                "document_title": "Example Document",
                "start_char_index": 0,
                "end_char_index": 20
            }]
        },
        {
            "type": "text",
            "text": " 그리고 "
        },
        {
            "type": "text",
            "text": "하늘은 파란색입니다",
            "citations": [{
                "type": "char_location",
                "cited_text": "The sky is blue.",
                "document_index": 0,
                "document_title": "Example Document",
                "start_char_index": 20,
                "end_char_index": 36
            }]
        }
    ]
}

스트리밍 지원

스트리밍 응답의 경우, 현재 text 콘텐츠 블록의 citations 목록에 추가될 단일 인용을 포함하는 citations_delta 유형이 추가되었습니다.

Was this page helpful?