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." (Всегда используйте цитаты в своем ответе, даже в тегах <result>.)
Пожалуйста, поделитесь своими отзывами и предложениями о функции цитирования, используя эту форму.
Вот пример использования цитирования с API Messages:
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?"
}
]
}
]
}'Сравнение с подходами на основе подсказок
По сравнению с решениями для цитирования на основе подсказок, функция цитирования имеет следующие преимущества:
cited_text не учитывается в ваших выходных токенах.cited_text, цитирование гарантированно содержит действительные указатели на предоставленные документы.Интегрируйте цитирование с Claude в следующие шаги:
Предоставьте документ(ы) и включите цитирование
citations.enabled=true для каждого из ваших документов. В настоящее время цитирование должно быть включено для всех или ни одного из документов в запросе.Документы обрабатываются
Claude предоставляет цитируемый ответ
Автоматическое разбиение на части в сравнении с пользовательским содержимым
По умолчанию документы простого текста и PDF автоматически разбиваются на предложения. Если вам нужен больший контроль над гранулярностью цитирования (например, для маркированных списков или стенограмм), используйте вместо этого пользовательские документы содержимого. См. Типы документов для получения дополнительной информации.
Например, если вы хотите, чтобы Claude мог цитировать конкретные предложения из ваших фрагментов RAG, вы должны поместить каждый фрагмент RAG в документ простого текста. В противном случае, если вы не хотите выполнять дальнейшее разбиение на части или если вы хотите настроить любое дополнительное разбиение на части, вы можете поместить фрагменты RAG в пользовательский документ содержимого.
source документа, может быть процитирован.title и context — это необязательные поля, которые будут переданы модели, но не будут использоваться для цитируемого содержимого.title ограничен по длине, поэтому вы можете найти поле context полезным для хранения любых метаданных документа в виде текста или строкового JSON.content, предоставленного в пользовательском документе содержимого.cited_text предоставляется для удобства и не учитывается в выходных токенах.cited_text также не учитывается в входных токенах.Цитирование работает в сочетании с другими функциями API, включая кэширование подсказок, подсчет токенов и пакетную обработку.
Цитирование и структурированные выходы несовместимы
Цитирование не может использоваться вместе со структурированными выходами. Если вы включите цитирование для любого документа, предоставленного пользователем (блоки Document или RequestSearchResultBlock), и также включите параметр output_config.format (или устаревший параметр output_format), API вернет ошибку 400.
Это потому, что цитирование требует чередования блоков цитирования с текстовым выводом, что несовместимо со строгими ограничениями схемы JSON структурированных выходов.
Цитирование и кэширование подсказок можно использовать вместе эффективно.
Блоки цитирования, созданные в ответах, не могут быть кэшированы напрямую, но исходные документы, на которые они ссылаются, могут быть кэшированы. Для оптимизации производительности примените cache_control к блокам содержимого документа верхнего уровня.
import anthropic
client = anthropic.Anthropic()
# Long document content (e.g., technical documentation)
long_document = "This is a very long document with thousands of words..." + " ... " * 1000 # Minimum cacheable length
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"} # Cache the document content
},
{
"type": "text",
"text": "What does this document say about API features?"
}
]
}
]
)В этом примере:
cache_control в блоке документаМы поддерживаем три типа документов для цитирования. Документы могут быть предоставлены непосредственно в сообщении (base64, текст или URL) или загружены через Files API и указаны по file_id:
| Тип | Лучше всего для | Разбиение на части | Формат цитирования |
|---|---|---|---|
| Простой текст | Простые текстовые документы, проза | Предложение | Индексы символов (с индексацией 0) |
| PDF файлы с текстовым содержимым | Предложение | Номера страниц (с индексацией 1) | |
| Пользовательское содержимое | Списки, стенограммы, специальное форматирование, более детальное цитирование | Без дополнительного разбиения на части | Индексы блоков (с индексацией 0) |
Файлы .csv, .xlsx, .docx, .md и .txt не поддерживаются как блоки документов. Преобразуйте их в простой текст и включите непосредственно в содержимое сообщения. См. Работа с другими форматами файлов.
Документы простого текста автоматически разбиваются на предложения. Вы можете предоставить их встроенными или по ссылке с их file_id:
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", # optional
"context": "Context about the document that will not be cited from", # optional
"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
}]
}
]
}Для потоковых ответов мы добавили тип citations_delta, который содержит одну цитату, которая будет добавлена в список citations в текущем блоке содержимого text.
Was this page helpful?