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 документа, может быть процитирован.
  • title и context являются необязательными полями, которые будут переданы модели, но не будут использоваться для цитируемого контента.
  • title ограничен по длине, поэтому поле context может быть полезным для хранения любых метаданных документа в виде текста или строкового JSON.

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

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

Стоимость токенов

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

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

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


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

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

Мы поддерживаем три типа документов для цитирования:

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

Обычные текстовые документы

Обычные текстовые документы автоматически разбиваются на предложения:

{
    "type": "document",
    "source": {
        "type": "text",
        "media_type": "text/plain",
        "data": "Plain text content..."
    },
    "title": "Document Title", # необязательно
    "context": "Context about the document that will not be cited from", # необязательно
    "citations": {"enabled": True}
}

PDF-документы

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

{
    "type": "document",
    "source": {
        "type": "base64",
        "media_type": "application/pdf",
        "data": base64_encoded_pdf_data
    },
    "title": "Document Title", # необязательно
    "context": "Context about the document that will not be cited from", # необязательно
    "citations": {"enabled": True}
}

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

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

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

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

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