Claude mampu memberikan kutipan terperinci saat menjawab pertanyaan tentang dokumen, membantu Anda melacak dan memverifikasi sumber informasi dalam respons.
Semua model aktif mendukung kutipan, dengan pengecualian Haiku 3.
Kutipan dengan Claude Sonnet 3.7
Claude Sonnet 3.7 mungkin kurang kemungkinan membuat kutipan dibandingkan dengan model Claude lainnya tanpa instruksi yang lebih eksplisit dari pengguna. Saat menggunakan kutipan dengan Claude Sonnet 3.7, kami merekomendasikan untuk menyertakan instruksi tambahan dalam giliran user, seperti "Gunakan kutipan untuk mendukung jawaban Anda." misalnya.
Kami juga telah mengamati bahwa ketika model diminta untuk menyusun responsnya, tidak mungkin menggunakan kutipan kecuali secara eksplisit diberitahu untuk menggunakan kutipan dalam format tersebut. Misalnya, jika model diminta untuk menggunakan tag <result> dalam responsnya, Anda harus menambahkan sesuatu seperti "Selalu gunakan kutipan dalam jawaban Anda, bahkan dalam tag <result>."
Silakan bagikan umpan balik dan saran Anda tentang fitur kutipan menggunakan formulir ini.
Berikut adalah contoh cara menggunakan kutipan dengan 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-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?"
}
]
}
]
}'Perbandingan dengan pendekatan berbasis prompt
Dibandingkan dengan solusi kutipan berbasis prompt, fitur kutipan memiliki keuntungan berikut:
cited_text tidak dihitung menuju token keluaran Anda.cited_text, kutipan dijamin berisi penunjuk yang valid ke dokumen yang disediakan.Integrasikan kutipan dengan Claude dalam langkah-langkah berikut:
Sediakan dokumen dan aktifkan kutipan
citations.enabled=true pada setiap dokumen Anda. Saat ini, kutipan harus diaktifkan pada semua atau tidak ada dokumen dalam permintaan.Dokumen diproses
Claude memberikan respons yang dikutip
Pemotong otomatis vs konten khusus
Secara default, dokumen teks biasa dan PDF dipotong secara otomatis menjadi kalimat. Jika Anda memerlukan kontrol lebih besar atas granularitas kutipan (misalnya, untuk poin-poin atau transkrip), gunakan dokumen konten khusus sebagai gantinya. Lihat Jenis Dokumen untuk detail lebih lanjut.
Misalnya, jika Anda ingin Claude dapat mengutip kalimat spesifik dari potongan RAG Anda, Anda harus menempatkan setiap potongan RAG ke dalam dokumen teks biasa. Jika tidak, jika Anda tidak menginginkan pemotong lebih lanjut untuk dilakukan, atau jika Anda ingin menyesuaikan pemotong tambahan apa pun, Anda dapat menempatkan potongan RAG ke dalam dokumen konten khusus.
source dokumen dapat dikutip.title dan context adalah bidang opsional yang akan diteruskan ke model tetapi tidak digunakan menuju konten yang dikutip.title dibatasi panjangnya sehingga Anda mungkin menemukan bidang context berguna dalam menyimpan metadata dokumen apa pun sebagai teks atau json yang distring.content yang disediakan dalam dokumen konten khusus.cited_text disediakan untuk kenyamanan dan tidak dihitung menuju token keluaran.cited_text juga tidak dihitung menuju token input.Kutipan bekerja bersama dengan fitur API lainnya termasuk prompt caching, token counting dan batch processing.
Kutipan dan Structured Outputs tidak kompatibel
Kutipan tidak dapat digunakan bersama dengan Structured Outputs. Jika Anda mengaktifkan kutipan pada dokumen apa pun yang disediakan pengguna (blok Dokumen atau RequestSearchResultBlock) dan juga menyertakan parameter output_config.format (atau parameter output_format yang sudah usang), API akan mengembalikan kesalahan 400.
Ini karena kutipan memerlukan interleaving blok kutipan dengan keluaran teks, yang tidak kompatibel dengan batasan skema JSON ketat dari keluaran terstruktur.
Kutipan dan prompt caching dapat digunakan bersama secara efektif.
Blok kutipan yang dihasilkan dalam respons tidak dapat di-cache secara langsung, tetapi dokumen sumber yang direferensikan dapat di-cache. Untuk mengoptimalkan kinerja, terapkan cache_control ke blok konten dokumen tingkat atas Anda.
import anthropic
client = anthropic.Anthropic()
# Konten dokumen panjang (misalnya, dokumentasi teknis)
long_document = "This is a very long document with thousands of words..." + " ... " * 1000 # Panjang minimum yang dapat di-cache
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 konten dokumen
},
{
"type": "text",
"text": "What does this document say about API features?"
}
]
}
]
)Dalam contoh ini:
cache_control pada blok dokumenKami mendukung tiga jenis dokumen untuk kutipan. Dokumen dapat disediakan langsung dalam pesan (base64, teks, atau URL) atau diunggah melalui Files API dan direferensikan oleh file_id:
| Jenis | Terbaik untuk | Pemotong | Format kutipan |
|---|---|---|---|
| Teks biasa | Dokumen teks sederhana, prosa | Kalimat | Indeks karakter (diindeks 0) |
| File PDF dengan konten teks | Kalimat | Nomor halaman (diindeks 1) | |
| Konten khusus | Daftar, transkrip, pemformatan khusus, kutipan lebih granular | Tidak ada pemotong tambahan | Indeks blok (diindeks 0) |
File .csv, .xlsx, .docx, .md, dan .txt tidak didukung sebagai blok dokumen. Konversikan ini ke teks biasa dan sertakan langsung dalam konten pesan. Lihat Bekerja dengan format file lain.
Dokumen teks biasa dipotong secara otomatis menjadi kalimat. Anda dapat menyediakannya secara inline atau dengan referensi dengan file_id mereka:
Dokumen PDF dapat disediakan sebagai data yang dikodekan base64 atau oleh file_id. Teks PDF diekstrak dan dipotong menjadi kalimat. Karena kutipan gambar belum didukung, PDF yang merupakan pemindaian dokumen dan tidak berisi teks yang dapat diekstrak tidak akan dapat dikutip.
Dokumen konten khusus memberi Anda kontrol atas granularitas kutipan. Tidak ada pemotong tambahan yang dilakukan dan potongan disediakan ke model sesuai dengan blok konten yang disediakan.
{
"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}
}Ketika kutipan diaktifkan, respons mencakup beberapa blok teks dengan kutipan:
{
"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
}]
}
]
}Untuk respons streaming, kami telah menambahkan jenis citations_delta yang berisi satu kutipan yang akan ditambahkan ke daftar citations pada blok konten text saat ini.
Was this page helpful?