Claude Platform Docs
  • Сообщения
  • Управляемые агенты
  • Администрирование

Search...
⌘K
Первые шаги
Введение в ClaudeБыстрый старт
Разработка с Claude
Обзор возможностейИспользование Messages APIПричины остановки и резервный вариантОтказы и резервный вариантРезервный кредит
Возможности модели
Расширенное мышлениеАдаптивное мышлениеУсилиеБюджеты задач (бета)Быстрый режим (исследовательская предварительная версия)Структурированные выходные данныеЦитированиеПотоковая передача сообщенийПакетная обработкаРезультаты поискаПотоковая передача отказовМногоязычная поддержкаЭмбеддинги
Инструменты
ОбзорКак работает использование инструментовРуководство: создание агента с использованием инструментовОпределение инструментовОбработка вызовов инструментовПараллельное использование инструментовTool Runner (SDK)Строгое использование инструментовСерверные инструментыИнструмент веб-поискаИнструмент веб-загрузкиИнструмент выполнения кодаИнструмент советникаИнструмент поиска инструментовИнструмент памятиИнструмент BashИнструмент текстового редактораИнструмент использования компьютераУстранение неполадок
Инфраструктура инструментов
Справочник по инструментамУправление контекстом инструментовКомбинации инструментовИспользование инструментов с кэшированием подсказокПрограммный вызов инструментовДетальная потоковая передача инструментов
Управление контекстом
Контекстные окнаСжатиеРедактирование контекстаКэширование подсказокСистемные сообщения в середине разговораСоздание режима оркестрацииДиагностика кэша (бета)Подсчёт токенов
Работа с файлами
Files APIПоддержка PDF
Навыки
ОбзорБыстрый стартРекомендацииНавыки для предприятийНавыки в API
MCP
Удалённые серверы MCPКоннектор MCP
Claude на облачных платформах
Amazon BedrockAmazon Bedrock (устаревшая версия)Claude Platform на AWSGoogle CloudMicrosoft Foundry

Log in
Цитирование
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Claude Platform Docs

Solutions

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

Partners

  • Claude on AWS
  • Claude on Google Cloud

Learn

  • Blog
  • 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
  • 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 вашими исходными документами. Цитирование возвращает точные фрагменты, подтверждающие каждое утверждение, чтобы вы могли проверять ответы и показывать источники вашим пользователям.


Эта функция соответствует требованиям Zero Data Retention (ZDR) (нулевого хранения данных). Если у вашей организации действует соглашение ZDR, данные, отправленные через эту функцию, не сохраняются после возврата ответа API.

Claude может предоставлять подробные цитаты при ответах на вопросы о документах, помогая вам отслеживать и проверять источники, лежащие в основе каждого ответа.

Все активные модели поддерживают цитирование, за исключением Claude Haiku 3.



Поделитесь своими отзывами и предложениями о функции цитирования, используя форму обратной связи по цитированию.

Следующий пример показывает, как включить цитирование для документа с обычным текстом с помощью Messages API:

client = anthropic.Anthropic()

response = client.messages.create(
    model="claude-opus-4-8",
    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?"},
            ],
        }
    ],
)
print(response)


Сравнение с подходами на основе подсказок

По сравнению с использованием подсказок, в которых Claude просят указывать источники, функция цитирования предлагает следующие преимущества:

  • Экономия затрат: если ваш подход на основе подсказок просит Claude выводить прямые цитаты, вы можете заметить экономию затрат, поскольку cited_text не учитывается в ваших выходных токенах.
  • Более высокая надёжность цитирования: поскольку API разбирает цитаты в форматы ответов, описанные в следующих разделах, и извлекает cited_text напрямую, цитаты гарантированно содержат корректные указатели на предоставленные документы.
  • Улучшенное качество цитирования: по результатам оценок Anthropic, функция цитирования значительно чаще цитирует наиболее релевантные фрагменты из документов, чем подходы, основанные исключительно на подсказках.

Как работает цитирование

Интегрируйте цитирование с Claude, выполнив следующие шаги:

  1. 1

    Предоставьте документ(ы) и включите цитирование

    • Включите документы в любом из поддерживаемых форматов: PDF, обычный текст или документы с пользовательским содержимым.
    • Установите citations.enabled=true для каждого из ваших документов. В настоящее время цитирование должно быть включено либо для всех документов в запросе, либо ни для одного из них.
    • В настоящее время поддерживается только цитирование текста. Цитирование изображений пока невозможно.
  2. 2

    Документы обрабатываются

    • Содержимое документа разбивается на фрагменты («chunking»), чтобы определить минимальную гранулярность возможных цитат. Например, разбиение на предложения позволяет Claude цитировать одно предложение или объединять несколько последовательных предложений, чтобы процитировать абзац или более длинный фрагмент.
      • Для PDF: текст извлекается, как описано в разделе Поддержка PDF, и содержимое разбивается на предложения. Цитирование изображений из PDF в настоящее время не поддерживается.
      • Для документов с обычным текстом: содержимое разбивается на предложения, которые могут быть процитированы.
      • Для документов с пользовательским содержимым: предоставленные вами блоки содержимого используются как есть, и дополнительное разбиение не выполняется.
  3. 3

    Claude предоставляет ответ с цитатами

    • Ответы теперь могут включать несколько текстовых блоков, где каждый текстовый блок может содержать утверждение, которое делает Claude, и список цитат, подтверждающих это утверждение.
    • Цитаты ссылаются на конкретные места в исходных документах. Формат этих цитат зависит от типа цитируемого документа.
      • Для PDF: цитаты включают диапазон номеров страниц (индексация с 1).
      • Для документов с обычным текстом: цитаты включают диапазон индексов символов (индексация с 0).
      • Для документов с пользовательским содержимым: цитаты включают диапазон индексов блоков содержимого (индексация с 0), соответствующий исходному списку содержимого, который был предоставлен.
    • Индексы документов предоставляются для указания источника ссылки и индексируются с 0 в соответствии со списком всех документов в вашем исходном запросе.


Автоматическое разбиение и пользовательское содержимое

По умолчанию документы с обычным текстом и PDF автоматически разбиваются на предложения. Если вам нужен больший контроль над гранулярностью цитирования (например, для маркированных списков или транскриптов), используйте вместо этого документы с пользовательским содержимым. Подробнее см. в разделе Типы документов.

Например, если вы хотите, чтобы Claude мог цитировать конкретные предложения из ваших фрагментов RAG, вам следует поместить каждый фрагмент RAG в документ с обычным текстом. В противном случае, если вы не хотите, чтобы выполнялось какое-либо дополнительное разбиение, или если вы хотите настроить любое дополнительное разбиение, вы можете поместить фрагменты RAG в документ(ы) с пользовательским содержимым.

Цитируемое и нецитируемое содержимое

  • Текст, находящийся в содержимом source документа, может быть процитирован.
  • title и context — необязательные поля, которые передаются модели, но не используются в качестве цитируемого содержимого.
  • Поле title ограничено по длине, поэтому поле context полезно для хранения метаданных документа в виде текста или сериализованного JSON.

Индексы цитирования

  • Индексы документов индексируются с 0 по списку всех блоков содержимого документов в запросе (по всем сообщениям).
  • Индексы символов индексируются с 0 с исключающими конечными индексами.
  • Номера страниц индексируются с 1 с исключающими конечными номерами страниц.
  • Индексы блоков содержимого индексируются с 0 с исключающими конечными индексами по списку content, предоставленному в документе с пользовательским содержимым.

Затраты на токены

  • Включение цитирования приводит к небольшому увеличению входных токенов из-за дополнений к системной подсказке и разбиения документов на фрагменты.
  • Однако функция цитирования очень эффективна с точки зрения выходных токенов. Внутренне модель выводит цитаты в стандартизированном формате, которые затем разбираются в цитируемый текст и индексы местоположения в документе. Поле cited_text предоставляется для удобства и не учитывается в выходных токенах.
  • При передаче обратно в последующих ходах разговора cited_text также не учитывается во входных токенах.

Совместимость функций

Цитирование работает совместно с другими функциями API, включая кэширование подсказок, подсчёт токенов и пакетную обработку.



Цитирование и структурированные выходные данные несовместимы

Цитирование нельзя использовать вместе со структурированными выходными данными. Если вы включите цитирование для любого предоставленного пользователем документа (блоки document или блоки search_result) и одновременно укажете параметр output_config.format (или устаревший параметр output_format), API вернёт ошибку 400.

Это связано с тем, что цитирование требует чередования блоков цитат с текстовым выводом, что несовместимо со строгими ограничениями JSON-схемы структурированных выходных данных.

Использование кэширования подсказок с цитированием

Цитирование и кэширование подсказок можно эффективно использовать вместе.

Блоки цитат, генерируемые в ответах, не могут быть кэшированы напрямую, но исходные документы, на которые они ссылаются, могут быть кэшированы. Для оптимизации производительности примените cache_control к вашим блокам содержимого документов верхнего уровня.

client = anthropic.Anthropic()

# Длинное содержимое документа (например, техническая документация)
long_document = (
    "This is a very long document with thousands of words..." + " ... " * 1000
)  # Minimum cacheable length

response = client.messages.create(
    model="claude-opus-4-8",
    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"
                    },  # Cache the document content
                },
                {
                    "type": "text",
                    "text": "What does this document say about API features?",
                },
            ],
        }
    ],
)
print(response)

В этом примере:

  • Содержимое документа кэшируется с помощью cache_control на блоке документа.
  • Цитирование включено для документа.
  • Claude может генерировать ответы с цитатами, используя при этом кэшированное содержимое документа.
  • Последующие запросы, использующие тот же документ, получают преимущество от кэшированного содержимого.

Типы документов

Выбор типа документа

Для цитирования поддерживаются три типа документов. Документы могут быть предоставлены непосредственно в сообщении (base64, текст или URL) или загружены через Files API и указаны по file_id:

ТипЛучше всего подходит дляРазбиение на фрагментыФормат цитирования
Обычный текстПростые текстовые документы, прозаПо предложениямИндексы символов (индексация с 0)
PDFPDF-файлы с текстовым содержимымПо предложениямНомера страниц (индексация с 1)
Пользовательское содержимоеСписки, транскрипты, специальное форматирование, более детальное цитированиеБез дополнительного разбиенияИндексы блоков (индексация с 0)


Файлы .csv, .xlsx, .docx, .md и .txt не поддерживаются в качестве блоков документов. Преобразуйте их в обычный текст и включите непосредственно в содержимое сообщения. См. Работа с другими форматами файлов.

Документы с обычным текстом

Документы с обычным текстом автоматически разбиваются на предложения. Вы можете предоставить их встроенными или по ссылке с их file_id:

PDF-документы

PDF-документы могут быть предоставлены в виде данных, закодированных в base64, URL или по file_id. Текст PDF извлекается и разбивается на предложения. Поскольку цитирование изображений пока не поддерживается, PDF-файлы, которые являются сканами документов и не содержат извлекаемого текста, не могут быть процитированы.

Документы с пользовательским содержимым

Документы с пользовательским содержимым дают вам контроль над гранулярностью цитирования. Дополнительное разбиение не выполняется, и фрагменты предоставляются модели в соответствии с предоставленными блоками содержимого.

client = anthropic.Anthropic()

response = client.messages.create(
    model="claude-opus-4-8",
    max_tokens=1024,
    messages=[
        {
            "role": "user",
            "content": [
                {
                    "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},
                },
                {"type": "text", "text": "Summarize this document."},
            ],
        }
    ],
)
print(response)


Структура ответа

Когда цитирование включено, ответы включают несколько текстовых блоков с цитатами:

{
    "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,
                }
            ],
        },
    ]
}

Поддержка потоковой передачи

Для ответов с потоковой передачей цитаты поступают как тип дельты citations_delta внутри событий content_block_delta. Каждая дельта содержит одну цитату для добавления в список citations текущего блока содержимого text.

Следующие шаги

Потоковая передача сообщений

Обрабатывайте тип дельты citations_delta вместе с текстовыми дельтами, чтобы отображать ответы с цитатами по мере их потоковой передачи.

Результаты поиска

Передавайте результаты поиска из вашего RAG-конвейера как полноценные блоки содержимого со встроенной поддержкой цитирования.


Поддержка PDF

Узнайте, как Claude извлекает текст из PDF и как цитаты на основе страниц соотносятся с вашими исходными файлами.

Files API

Загружайте документы один раз и ссылайтесь на них по file_id в нескольких запросах с цитированием.

Was this page helpful?

  • Как работает цитирование
  • Цитируемое и нецитируемое содержимое
  • Индексы цитирования
  • Затраты на токены
  • Совместимость функций
  • Типы документов
  • Выбор типа документа
  • Документы с обычным текстом
  • PDF-документы
  • Документы с пользовательским содержимым
  • Структура ответа
  • Поддержка потоковой передачи
  • Следующие шаги