Добавьте citations.enabled: true в каждый document-блок. Claude вернёт текст несколькими блоками, а у подтверждённых утверждений появится массив citations.
json
{
"type": "document",
"source": {
"type": "base64",
"media_type": "application/pdf",
"data": "<PDF_BASE64>"
},
"title": "Отчёт.pdf",
"citations": {"enabled": true}
}json
{
"type": "text",
"text": "Выручка выросла на 18%",
"citations": [{
"type": "page_location",
"document_index": 0,
"document_title": "Отчёт.pdf",
"start_page_number": 5,
"end_page_number": 6,
"cited_text": "..."
}]
}- Если в запросе несколько документов, citations должны быть включены либо у всех, либо ни у одного.
- Для PDF ссылки используют
page_location; для текстовых документов — символьные позиции. - В streaming каждая ссылка приходит отдельным
citations_delta.
Kimi, Composer и Grok не возвращают нативные Anthropic document citations. Поиск может возвращать текст и ссылки, но это другой формат, описанный в Server tools.
- Kimi. У подставленного документа есть якоря разделов вида
file_…#page=3,#slide=2,#sheet=1&part=1и#section=4. Это не цитаты, но по ним можно попросить модель ссылаться на страницы прямо в тексте ответа. Подробности на странице Kimi · Chat Completions. - Composer и Grok. Механизма цитат нет и заменить его нечем.