Loading...
    • 개발자 가이드
    • API 레퍼런스
    • MCP
    • 리소스
    • 릴리스 노트
    Search...
    ⌘K
    시작하기
    Claude 소개빠른 시작
    모델 및 가격
    모델 개요모델 선택Claude 4.6의 새로운 기능마이그레이션 가이드모델 지원 중단가격
    Claude로 구축하기
    기능 개요Messages API 사용중지 사유 처리프롬프트 모범 사례
    컨텍스트 관리
    컨텍스트 윈도우압축컨텍스트 편집
    기능
    프롬프트 캐싱확장 사고적응형 사고노력 수준메시지 스트리밍배치 처리인용다국어 지원토큰 카운팅임베딩비전PDF 지원Files API검색 결과구조화된 출력
    도구
    개요도구 사용 구현 방법세분화된 도구 스트리밍Bash 도구코드 실행 도구프로그래밍 방식 도구 호출컴퓨터 사용 도구텍스트 편집기 도구웹 페치 도구웹 검색 도구메모리 도구도구 검색 도구
    Agent Skills
    개요빠른 시작모범 사례엔터프라이즈용 SkillsAPI로 Skills 사용
    Agent SDK
    개요빠른 시작TypeScript SDKTypeScript V2 (미리보기)Python SDK마이그레이션 가이드
    API에서 MCP
    MCP 커넥터원격 MCP 서버
    서드파티 플랫폼의 Claude
    Amazon BedrockMicrosoft FoundryVertex AI
    프롬프트 엔지니어링
    개요프롬프트 생성기프롬프트 템플릿 사용프롬프트 개선기명확하고 직접적으로 작성예시 사용 (멀티샷 프롬프팅)Claude에게 생각하게 하기 (CoT)XML 태그 사용Claude에게 역할 부여 (시스템 프롬프트)복잡한 프롬프트 연결긴 컨텍스트 팁확장 사고 팁
    테스트 및 평가
    성공 기준 정의테스트 케이스 개발평가 도구 사용지연 시간 줄이기
    가드레일 강화
    환각 줄이기출력 일관성 높이기탈옥 방지스트리밍 거부프롬프트 유출 줄이기Claude 캐릭터 유지
    관리 및 모니터링
    Admin API 개요데이터 상주워크스페이스사용량 및 비용 APIClaude Code Analytics API제로 데이터 보존
    Console
    Log in
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...

    Solutions

    • AI agents
    • Code modernization
    • Coding
    • Customer support
    • Education
    • Financial services
    • Government
    • Life sciences

    Partners

    • Amazon Bedrock
    • Google Cloud's Vertex AI

    Learn

    • Blog
    • Catalog
    • Courses
    • Use cases
    • Connectors
    • Customer stories
    • Engineering at Anthropic
    • Events
    • Powered by Claude
    • Service partners
    • Startups program

    Company

    • Anthropic
    • Careers
    • Economic Futures
    • Research
    • News
    • Responsible Scaling Policy
    • Security and compliance
    • Transparency

    Learn

    • Blog
    • Catalog
    • Courses
    • Use cases
    • Connectors
    • Customer stories
    • Engineering at Anthropic
    • Events
    • Powered by Claude
    • Service partners
    • Startups program

    Help and security

    • Availability
    • Status
    • Support
    • Discord

    Terms and policies

    • Privacy policy
    • Responsible disclosure policy
    • Terms of service: Commercial
    • Terms of service: Consumer
    • Usage policy
    기능

    인용

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

    Haiku 3을 제외한 모든 활성 모델이 인용을 지원합니다.

    Claude Sonnet 3.7에서의 인용

    Claude Sonnet 3.7은 사용자의 더 명시적인 지시 없이는 다른 Claude 모델에 비해 인용을 할 가능성이 낮을 수 있습니다. Claude Sonnet 3.7에서 인용을 사용할 때는 user 턴에 "Use citations to back up your answer."와 같은 추가 지시를 포함하는 것을 권장합니다.

    또한 모델에게 응답을 구조화하도록 요청할 때, 해당 형식 내에서 인용을 사용하라고 명시적으로 지시하지 않으면 인용을 사용하지 않을 가능성이 높다는 것을 관찰했습니다. 예를 들어, 모델에게 응답에서 <result> 태그를 사용하도록 요청하는 경우, "Always use citations in your answer, even within <result> tags."와 같은 내용을 추가해야 합니다.

    인용 기능에 대한 피드백과 제안은 이 양식을 통해 공유해 주세요.

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

    Was this page helpful?

    • 인용 가능 vs 인용 불가능 콘텐츠
    • PDF 문서
    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-opus-4-6",
        "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. 1

      문서 제공 및 인용 활성화

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

      문서 처리

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

      Claude가 인용된 응답 제공

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

    자동 청킹 vs 사용자 정의 콘텐츠

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

    예를 들어, Claude가 RAG 청크에서 특정 문장을 인용할 수 있게 하려면 각 RAG 청크를 일반 텍스트 문서에 넣어야 합니다. 그렇지 않으면, 추가 청킹을 원하지 않거나 추가 청킹을 사용자 정의하려는 경우 RAG 청크를 사용자 정의 콘텐츠 문서에 넣을 수 있습니다.

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

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

    인용 인덱스

    • 문서 인덱스는 요청의 모든 문서 콘텐츠 블록 목록(모든 메시지에 걸쳐)에서 0-인덱스입니다.
    • 문자 인덱스는 배타적 끝 인덱스를 가진 0-인덱스입니다.
    • 페이지 번호는 배타적 끝 페이지 번호를 가진 1-인덱스입니다.
    • 콘텐츠 블록 인덱스는 사용자 정의 콘텐츠 문서에 제공된 content 목록에서 배타적 끝 인덱스를 가진 0-인덱스입니다.

    토큰 비용

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

    기능 호환성

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

    인용과 구조화된 출력은 호환되지 않습니다

    인용은 구조화된 출력과 함께 사용할 수 없습니다. 사용자 제공 문서(Document 블록 또는 RequestSearchResultBlock)에서 인용을 활성화하고 output_config.format 매개변수(또는 더 이상 사용되지 않는 output_format 매개변수)도 포함하면 API는 400 오류를 반환합니다.

    이는 인용이 텍스트 출력과 인용 블록을 인터리빙해야 하기 때문이며, 이는 구조화된 출력의 엄격한 JSON 스키마 제약 조건과 호환되지 않습니다.

    인용과 함께 프롬프트 캐싱 사용

    인용과 프롬프트 캐싱은 함께 효과적으로 사용할 수 있습니다.

    응답에서 생성된 인용 블록은 직접 캐시할 수 없지만, 참조하는 소스 문서는 캐시할 수 있습니다. 성능을 최적화하려면 최상위 문서 콘텐츠 블록에 cache_control을 적용하세요.

    import anthropic
    
    client = anthropic.Anthropic()
    
    # 긴 문서 콘텐츠 (예: 기술 문서)
    long_document = "This is a very long document with thousands of words..." + " ... " * 1000  # 최소 캐시 가능 길이
    
    response = client.messages.create(
        model="claude-opus-4-6",
        max_tokens=1024,
        messages=[
            {
                "role": "user",
                "content": [
                    {
                        "type": "document",
                        "source": {
                            "type": "text",
                            "media_type": "text/plain",
                            "data": long_document
                        },
                        "citations": {"enabled": True},
                        "cache_control": {"type": "ephemeral"}  # 문서 콘텐츠 캐시
                    },
                    {
                        "type": "text",
                        "text": "What does this document say about API features?"
                    }
                ]
            }
        ]
    )

    이 예시에서:

    • 문서 콘텐츠는 문서 블록의 cache_control을 사용하여 캐시됩니다
    • 문서에 인용이 활성화되어 있습니다
    • Claude는 캐시된 문서 콘텐츠의 이점을 누리면서 인용이 포함된 응답을 생성할 수 있습니다
    • 동일한 문서를 사용하는 후속 요청은 캐시된 콘텐츠의 이점을 받습니다

    문서 유형

    문서 유형 선택

    인용을 위해 세 가지 문서 유형을 지원합니다. 문서는 메시지에 직접 제공하거나(base64, 텍스트 또는 URL) Files API를 통해 업로드하고 file_id로 참조할 수 있습니다:

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

    .csv, .xlsx, .docx, .md, .txt 파일은 문서 블록으로 지원되지 않습니다. 이러한 파일을 일반 텍스트로 변환하여 메시지 콘텐츠에 직접 포함하세요. 다른 파일 형식 작업하기를 참조하세요.

    일반 텍스트 문서

    일반 텍스트 문서는 자동으로 문장으로 청킹됩니다. 인라인으로 제공하거나 file_id로 참조하여 제공할 수 있습니다:

    PDF 문서

    PDF 문서는 base64 인코딩 데이터 또는 file_id로 제공할 수 있습니다. PDF 텍스트가 추출되고 문장으로 청킹됩니다. 이미지 인용은 아직 지원되지 않으므로, 문서를 스캔한 것이며 추출 가능한 텍스트가 포함되지 않은 PDF는 인용할 수 없습니다.

    사용자 정의 콘텐츠 문서

    사용자 정의 콘텐츠 문서는 인용 세분화에 대한 제어를 제공합니다. 추가 청킹이 수행되지 않으며 제공된 콘텐츠 블록에 따라 청크가 모델에 제공됩니다.

    {
        "type": "document",
        "source": {
            "type": "content",
            "content": [
                {"type": "text", "text": "First chunk"},
                {"type": "text", "text": "Second chunk"}
            ]
        },
        "title": "Document Title", # 선택 사항
        "context": "Context about the document that will not be cited from", # 선택 사항
        "citations": {"enabled": True}
    }


    응답 구조

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

    {
        "content": [
            {
                "type": "text",
                "text": "According to the document, "
            },
            {
                "type": "text",
                "text": "the grass is green",
                "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": " and "
            },
            {
                "type": "text",
                "text": "the sky is blue",
                "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
                }]
            },
            {
                "type": "text",
                "text": ". Information from page 5 states that ",
            },
            {
                "type": "text",
                "text": "water is essential",
                "citations": [{
                    "type": "page_location",
                    "cited_text": "Water is essential for life.",
                    "document_index": 1,
                    "document_title": "PDF Document",
                    "start_page_number": 5,
                    "end_page_number": 6
                }]
            },
            {
                "type": "text",
                "text": ". The custom document mentions ",
            },
            {
                "type": "text",
                "text": "important findings",
                "citations": [{
                    "type": "content_block_location",
                    "cited_text": "These are important findings.",
                    "document_index": 2,
                    "document_title": "Custom Content Document",
                    "start_block_index": 0,
                    "end_block_index": 1
                }]
            }
        ]
    }

    스트리밍 지원

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