

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Cara kerja basis pengetahuan Amazon Bedrock
<a name="kb-how-it-works"></a>

Amazon Bedrock Knowledge Bases membantu Anda memanfaatkan Retrieval Augmented Generation (RAG), teknik populer yang melibatkan pengambilan informasi dari penyimpanan data untuk menambah respons yang dihasilkan oleh Large Language Models (). LLMs Saat Anda menyiapkan basis pengetahuan dengan sumber data Anda, aplikasi Anda dapat menanyakan basis pengetahuan untuk mengembalikan informasi guna menjawab kueri baik dengan kutipan langsung dari sumber atau dengan respons alami yang dihasilkan dari hasil kueri.

Dengan Pangkalan Pengetahuan Amazon Bedrock, Anda dapat membangun aplikasi yang diperkaya oleh konteks yang diterima dari kueri basis pengetahuan. Ini memungkinkan waktu yang lebih cepat untuk memasarkan dengan mengabstraksi dari pengangkatan pipa bangunan yang berat dan memberi Anda solusi out-of-the-box RAG untuk mengurangi waktu pembuatan aplikasi Anda. Menambahkan basis pengetahuan juga meningkatkan efektivitas biaya dengan menghilangkan kebutuhan untuk terus melatih model Anda untuk dapat memanfaatkan data pribadi Anda.

Diagram berikut menggambarkan secara skematis bagaimana RAG dilakukan. Basis pengetahuan menyederhanakan pengaturan dan implementasi RAG dengan mengotomatiskan beberapa langkah dalam proses ini.

**Pra-pemrosesan data tidak terstruktur**

Untuk mengaktifkan pengambilan yang efektif dari data pribadi yang tidak terstruktur (data yang tidak ada di penyimpanan data terstruktur), praktik umum adalah mengubah data menjadi teks dan membaginya menjadi potongan-potongan yang dapat dikelola. Potongan atau potongan kemudian dikonversi menjadi embeddings dan ditulis ke indeks vektor, sambil mempertahankan pemetaan ke dokumen asli. Embeddings ini digunakan untuk menentukan kesamaan semantik antara kueri dan teks dari sumber data. Gambar berikut menggambarkan pra-pemrosesan data untuk database vektor.

![\[Data pra-pemrosesan untuk generasi tambahan pengambilan\]](http://docs.aws.amazon.com/id_id/bedrock/latest/userguide/images/kb/rag-preprocess.png)


Penyematan vektor adalah serangkaian angka yang mewakili setiap potongan teks. Sebuah model mengubah setiap potongan teks menjadi serangkaian angka, yang dikenal sebagai vektor, sehingga teks dapat dibandingkan secara matematis. Vektor-vektor ini dapat berupa bilangan floating-point (float32) atau bilangan biner. Sebagian besar model embeddings yang didukung oleh Amazon Bedrock menggunakan vektor floating-point secara default. Namun, beberapa model mendukung vektor biner. Jika Anda memilih model penyematan biner, Anda juga harus memilih model dan penyimpanan vektor yang mendukung vektor biner.

Vektor biner, yang hanya menggunakan 1 bit per dimensi, tidak semahal penyimpanan seperti vektor floating-point (float32), yang menggunakan 32 bit per dimensi. Namun, vektor biner tidak setepat vektor floating-point dalam representasi teksnya.

Contoh berikut menunjukkan sepotong teks dalam tiga representasi:


****  

| Representasi | Nilai | 
| --- | --- | 
| Teks | “Amazon Bedrock menggunakan model foundation berkinerja tinggi dari perusahaan AI terkemuka dan Amazon.” | 
| vektor Floating-point | [0.041..., 0.056..., -0.018..., -0.012..., -0.020..., ...] | 
| vektor biner | [1,1,0,0,0, ...] | 

**Eksekusi runtime**

Saat runtime, model embedding digunakan untuk mengonversi kueri pengguna menjadi vektor. Indeks vektor kemudian ditanyakan untuk menemukan potongan yang semantik mirip dengan kueri pengguna dengan membandingkan vektor dokumen dengan vektor kueri pengguna. Pada langkah terakhir, prompt pengguna ditambah dengan konteks tambahan dari potongan yang diambil dari indeks vektor. Prompt di samping konteks tambahan kemudian dikirim ke model untuk menghasilkan respons bagi pengguna. Gambar berikut mengilustrasikan bagaimana RAG beroperasi saat runtime untuk menambah respons terhadap kueri pengguna.

![\[Generasi yang diperbesar pengambilan saat runtime\]](http://docs.aws.amazon.com/id_id/bedrock/latest/userguide/images/kb/rag-runtime.png)


Untuk mempelajari lebih lanjut tentang cara mengubah data Anda menjadi basis pengetahuan, cara menanyakan basis pengetahuan Anda setelah Anda mengaturnya, dan penyesuaian yang dapat Anda terapkan ke sumber data selama proses konsumsi, lihat topik berikut:

**Topics**
+ [

# Mengubah data menjadi basis pengetahuan
](kb-how-data.md)
+ [

# Mengambil informasi dari sumber data menggunakan Amazon Bedrock Knowledge Bases
](kb-how-retrieval.md)
+ [

# Menyesuaikan basis pengetahuan Anda
](kb-how-customization.md)

# Mengubah data menjadi basis pengetahuan
<a name="kb-how-data"></a>

Untuk membuat basis pengetahuan, sambungkan ke sumber data yang didukung yang ingin dapat diakses oleh basis pengetahuan Anda. Basis pengetahuan Anda akan dapat menanggapi pertanyaan pengguna atau menghasilkan tanggapan berdasarkan data yang diambil.

 Amazon Bedrock Knowledge Bases mendukung berbagai dokumen, termasuk teks, gambar, atau dokumen multimodal yang berisi tabel, bagan, diagram, dan gambar lainnya. Data *multimodal* mengacu pada kombinasi teks dan data visual. Contoh jenis file yang berisi data tidak terstruktur adalah teks, penurunan harga, HTML, dan. PDFs

Bagian berikut menjelaskan jenis data yang didukung oleh Pangkalan Pengetahuan Amazon Bedrock dan layanan yang dapat Anda hubungkan dengan basis pengetahuan untuk setiap jenis data:

## Data tidak terstruktur
<a name="kb-how-unstructured"></a>

Data tidak terstruktur mengacu pada data yang tidak dipaksa ke dalam struktur yang telah ditentukan. Pangkalan Pengetahuan Amazon Bedrock mendukung penyambungan ke layanan berikut untuk menambahkan data tidak terstruktur ke basis pengetahuan Anda:
+ Amazon S3
+ Confluence(pratinjau)
+ Microsoft SharePoint(pratinjau)
+ Salesforce(pratinjau)
+ Web Crawler(pratinjau)
+ Sumber data khusus (memungkinkan konsumsi langsung data ke basis pengetahuan tanpa perlu disinkronkan)

Sumber data berisi bentuk mentah dokumen Anda. Untuk mengoptimalkan proses kueri, basis pengetahuan mengubah data mentah Anda menjadi *embeddings vektor*, representasi numerik dari data, untuk mengukur kesamaan dengan kueri yang juga diubah menjadi embeddings vektor. Pangkalan Pengetahuan Amazon Bedrock menggunakan sumber daya berikut dalam proses mengonversi sumber data Anda:
+ Model penyematan — Model dasar yang mengubah data Anda menjadi embeddings vektor. Untuk data multimodal yang berisi teks dan gambar, Anda dapat menggunakan model penyematan multimodal seperti Amazon Titan Multimodal Embeddings G1 atau Cohere Embed v3.
+ Vector store — Layanan yang menyimpan representasi vektor data Anda. Toko vektor berikut didukung:
  + Amazon Tanpa OpenSearch Server
  + Amazon Neptune
  + Amazon Aurora (RDS)
  + Pinecone
  + Redis Enterprise Cloud
  + MongoDB Atlas

*Proses mengubah data Anda menjadi embeddings vektor disebut konsumsi.* Proses konsumsi yang mengubah data Anda menjadi basis pengetahuan melibatkan langkah-langkah berikut:

**Tertelan**

1. Data diuraikan oleh parser pilihan Anda. Untuk informasi lebih lanjut tentang parsing, lihat[Opsi penguraian untuk sumber data Anda](kb-advanced-parsing.md).

1. Setiap dokumen di sumber data Anda dibagi menjadi *beberapa bagian*, subdivisi data yang dapat ditentukan oleh jumlah token dan parameter lainnya. Untuk informasi lebih lanjut tentang chunking, lihat. [Bagaimana content chunking bekerja untuk basis pengetahuan](kb-chunking.md)

1. Model penyematan yang Anda pilih mengubah data menjadi embeddings vektor. Untuk konten multimodal, gambar disematkan sebagai vektor visual sementara teks disematkan sebagai vektor teks, memungkinkan pencarian di kedua modalitas.

1. Penyematan vektor ditulis ke indeks vektor di toko vektor pilihan Anda.

Setelah proses konsumsi selesai, basis pengetahuan Anda siap untuk ditanyakan. Untuk informasi tentang cara menanyakan dan mengambil informasi dari basis pengetahuan Anda, lihat[Mengambil informasi dari sumber data menggunakan Amazon Bedrock Knowledge Bases](kb-how-retrieval.md).

Jika Anda membuat perubahan pada sumber data, Anda harus menyinkronkan perubahan untuk menyerap penambahan, modifikasi, dan penghapusan ke dalam basis pengetahuan. Beberapa sumber data mendukung konsumsi langsung atau penghapusan file ke dalam basis pengetahuan, menghilangkan kebutuhan untuk memperlakukan modifikasi dan konsumsi sumber data sebagai langkah terpisah dan kebutuhan untuk selalu melakukan sinkronisasi penuh. Untuk mempelajari cara menyerap dokumen langsung ke basis pengetahuan Anda dan sumber data yang mendukungnya, lihat[Ingest berubah langsung menjadi basis pengetahuan](kb-direct-ingestion.md).

Amazon Bedrock Knowledge Bases menawarkan berbagai opsi untuk menyesuaikan cara data Anda dicerna. Untuk informasi selengkapnya tentang menyesuaikan proses ini, lihat[Menyesuaikan basis pengetahuan Anda](kb-how-customization.md).

## Data terstruktur
<a name="kb-how-structured"></a>

Data terstruktur mengacu pada data tabular dalam format yang telah ditentukan sebelumnya oleh penyimpanan data yang ada di dalamnya. Pangkalan Pengetahuan Amazon Bedrock terhubung ke penyimpanan data terstruktur yang didukung melalui mesin kueri Amazon Redshift. Amazon Bedrock Knowledge Bases menyediakan mekanisme terkelola penuh yang menganalisis pola kueri, riwayat kueri, dan metadata skema untuk mengonversi kueri bahasa alami menjadi kueri SQL. Kueri yang dikonversi ini kemudian digunakan untuk mengambil informasi yang relevan dari sumber data yang didukung.

Amazon Bedrock Knowledge Bases mendukung koneksi ke layanan berikut untuk menambahkan penyimpanan data terstruktur ke basis pengetahuan Anda:
+ Amazon Redshift
+ AWS Glue Data Catalog(AWS Lake Formation)

Jika Anda menghubungkan basis pengetahuan Anda ke penyimpanan data terstruktur, Anda tidak perlu mengubah data menjadi embeddings vektor. Sebagai gantinya, Amazon Bedrock Knowledge Bases dapat langsung menanyakan penyimpanan data terstruktur. Selama kueri, Pangkalan Pengetahuan Amazon Bedrock dapat mengonversi kueri pengguna menjadi kueri SQL untuk mengambil data yang relevan dengan kueri pengguna dan menghasilkan respons yang lebih akurat. Anda juga dapat menghasilkan kueri SQL tanpa mengambil data dan menggunakannya dalam alur kerja lainnya.

Sebagai contoh, repositori database berisi tabel berikut dengan informasi tentang pelanggan dan pembelian mereka:


****  

| ID Pelanggan | Jumlah yang dibeli pada tahun 2020 | Jumlah yang dibeli pada tahun 2021 | Jumlah yang dibeli pada tahun 2022 | Total jumlah yang dibeli hingga saat ini | 
| --- | --- | --- | --- | --- | 
| 1 | 200 | 300 | 500 | 1000 | 
| 2 | 150 | 100 | 120 | 370 | 
| 3 | 300 | 300 | 300 | 900 | 
| 4 | 720 | 180 | 100 | 900 | 
| 5 | 500 | 400 | 100 | 1000 | 
| 6 | 900 | 800 | 1000 | 2700 | 
| 7 | 470 | 420 | 400 | 1290 | 
| 8 | 250 | 280 | 250 | 780 | 
| 9 | 620 | 830 | 740 | 2190 | 
| 10 | 300 | 200 | 300 | 800 | 

Jika kueri pengguna mengatakan “beri saya ringkasan dari 5 pelanggan belanja teratas,” basis pengetahuan dapat melakukan hal berikut:
+ Ubah kueri menjadi kueri SQL.
+ Kembalikan kutipan dari tabel yang berisi berikut ini:
  + Kolom tabel yang relevan “ID Pelanggan” dan “Jumlah Total Pembelian Hingga Saat Ini”
  + Baris tabel yang berisi jumlah total pembelian untuk 10 pelanggan dengan belanja tertinggi
+ Hasilkan respons yang menyatakan pelanggan mana yang merupakan 5 pelanggan belanja teratas dan berapa banyak yang mereka beli.

Contoh lain dari kueri yang basis pengetahuan dapat menghasilkan kutipan tabel untuk meliputi:
+ “5 pelanggan teratas dengan pengeluaran pada tahun 2020"
+ “pelanggan teratas berdasarkan jumlah pembelian pada tahun 2020"
+ “5 pelanggan teratas berdasarkan jumlah pembelian mulai 2020-2022"
+ “5 pelanggan dengan pengeluaran tertinggi di 2020-2022"
+ “pelanggan dengan jumlah pembelian total kurang dari \$110"
+ “5 pelanggan belanja terendah teratas”

Semakin spesifik atau rinci kueri, semakin banyak basis pengetahuan dapat mempersempit informasi yang tepat untuk dikembalikan. Misalnya, alih-alih kueri “10 pelanggan teratas dengan pengeluaran pada tahun 2020", kueri yang lebih spesifik adalah “temukan 10 jumlah total pembelian tertinggi hingga saat ini untuk pelanggan pada tahun 2020". Kueri spesifik mengacu pada nama kolom “Jumlah Total yang Dibeli Sampai Tanggal” di tabel database pengeluaran pelanggan, dan juga menunjukkan bahwa data harus diurutkan berdasarkan “tertinggi”.

# Mengambil informasi dari sumber data menggunakan Amazon Bedrock Knowledge Bases
<a name="kb-how-retrieval"></a>

Setelah menyiapkan basis pengetahuan, Anda dapat mengatur aplikasi Anda untuk menanyakan sumber data di dalamnya. Untuk membuat kueri basis pengetahuan, Anda dapat memanfaatkan operasi API berikut:
+ [https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_Retrieve.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_Retrieve.html)— Mengambil potongan sumber atau gambar dari data Anda yang paling relevan dengan kueri dan mengembalikannya dalam respons sebagai array.
+ [https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrieveAndGenerate.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrieveAndGenerate.html)— Bergabung `Retrieve` dengan [InvokeModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModel.html)operasi di Amazon Bedrock untuk mengambil potongan sumber dari data Anda yang paling relevan dengan kueri dan menghasilkan respons bahasa alami. Termasuk kutipan untuk potongan sumber tertentu dari data.  Jika sumber data Anda menyertakan elemen visual, model memanfaatkan wawasan dari gambar-gambar ini saat menghasilkan respons teks dan memberikan atribusi sumber untuk gambar.
+ [GenerateQuery](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_GenerateQuery.html)— Mengubah kueri pengguna bahasa alami menjadi kueri yang dalam bentuk yang cocok untuk penyimpanan data terstruktur.

`RetrieveAndGenerate`Operasi adalah tindakan gabungan yang secara mendasar menggunakan `GenerateQuery`(jika basis pengetahuan Anda terhubung ke penyimpanan data terstruktur), `Retrieve` dan `InvokeModel` untuk melaksanakan seluruh proses RAG. Karena Amazon Bedrock Knowledge Bases juga memberi Anda akses ke `Retrieve` operasi, Anda memiliki fleksibilitas untuk memisahkan langkah-langkah di RAG dan menyesuaikannya untuk kasus penggunaan spesifik Anda.

Anda juga dapat menggunakan [model reranking](rerank.md) saat menggunakan `Retrieve` atau `RetrieveAndGenerate` memutar ulang relevansi dokumen yang diambil selama kueri.

Untuk mempelajari cara menggunakan operasi API ini saat melakukan kueri basis pengetahuan, lihat[Uji basis pengetahuan Anda dengan pertanyaan dan tanggapan](knowledge-base-test.md).

# Menyesuaikan basis pengetahuan Anda
<a name="kb-how-customization"></a>

Pangkalan Pengetahuan Amazon Bedrock menyediakan opsi untuk menyesuaikan cara sumber data Anda diproses menjadi basis pengetahuan Anda, memberi Anda fleksibilitas dalam cara data Anda disimpan, diuraikan, dan dikembalikan ke pengguna akhir. Pilih salah satu topik berikut untuk mempelajari lebih lanjut tentang opsi penyesuaian yang dapat Anda pertimbangkan saat menyiapkan basis pengetahuan Anda:

**Topics**
+ [

# Bagaimana content chunking bekerja untuk basis pengetahuan
](kb-chunking.md)
+ [

# Opsi penguraian untuk sumber data Anda
](kb-advanced-parsing.md)
+ [

# Gunakan fungsi Lambda transformasi kustom untuk menentukan bagaimana data Anda dicerna
](kb-custom-transformation.md)
+ [

# Sertakan metadata dalam sumber data untuk meningkatkan kueri basis pengetahuan
](kb-metadata.md)

# Bagaimana content chunking bekerja untuk basis pengetahuan
<a name="kb-chunking"></a>

Saat menelan data Anda, Amazon Bedrock pertama-tama membagi dokumen atau konten Anda menjadi potongan-potongan yang dapat dikelola untuk pengambilan data yang efisien. Potongan kemudian dikonversi menjadi embeddings dan ditulis ke indeks vektor (representasi vektor data), sambil mempertahankan pemetaan ke dokumen asli. Penyematan vektor memungkinkan teks dibandingkan secara kuantitatif.

**Topics**
+ [

## Chunking standar
](#kb-standard-chunking)
+ [

## Chunking hierarkis
](#kb-hiearchical-chunking)
+ [

## Chunking semantik
](#kb-semantic-chunking)
+ [

## Pembagian konten multimodal
](#kb-multimodal-chunking)

## Chunking standar
<a name="kb-standard-chunking"></a>

Amazon Bedrock mendukung pendekatan standar berikut untuk chunking:

**catatan**  
Strategi chunking teks hanya berlaku untuk dokumen teks. Untuk konten multimodal (audio, video, gambar), chunking terjadi pada tingkat model embedding, bukan melalui strategi berbasis teks ini.
+ Potongan ukuran tetap: Anda dapat mengonfigurasi ukuran potongan yang diinginkan dengan menentukan jumlah token per potongan, dan persentase tumpang tindih, memberikan fleksibilitas untuk menyelaraskan dengan kebutuhan spesifik Anda. Anda dapat mengatur jumlah maksimum token yang tidak boleh melebihi potongan dan persentase tumpang tindih antara potongan berturut-turut.
**catatan**  
Untuk konten yang diuraikan (seperti konten yang menggunakan parser lanjutan atau dikonversi dari HTML), Pangkalan Pengetahuan Amazon Bedrock dapat memotong konten untuk mengoptimalkan hasil terbaik. Chunker menghormati batas dokumen logis (seperti halaman atau bagian) dan tidak menggabungkan konten melintasi batas-batas ini, bahkan ketika meningkatkan ukuran token maksimum akan memungkinkan potongan yang lebih besar.
+ Chunking default: Membagi konten menjadi potongan teks sekitar 300 token. Proses chunking menghormati batas-batas kalimat, memastikan bahwa kalimat lengkap dipertahankan dalam setiap potongan.

Anda juga dapat memilih no chunking untuk dokumen Anda. Setiap dokumen diperlakukan satu potongan teks. Anda mungkin ingin pra-proses dokumen Anda dengan membaginya menjadi file terpisah sebelum memilih no chunking sebagai pendekatan/strategi chunking Anda. Jika Anda memilih no chunking untuk dokumen Anda, Anda tidak dapat melihat nomor halaman dalam kutipan atau filter berdasarkan bidang/atribut *x-amz-bedrock-kb- document-page-number* metadata.

## Chunking hierarkis
<a name="kb-hiearchical-chunking"></a>

Chunking hierarkis melibatkan pengorganisasian informasi ke dalam struktur bersarang dari potongan anak dan orang tua. Saat membuat sumber data, Anda dapat menentukan ukuran potongan induk, ukuran potongan anak, dan jumlah token yang tumpang tindih di antara setiap potongan. Selama pengambilan, sistem awalnya mengambil potongan anak, tetapi menggantinya dengan potongan induk yang lebih luas sehingga memberikan model dengan konteks yang lebih komprehensif.

Penyematan teks kecil lebih tepat, tetapi pengambilan bertujuan untuk konteks yang komprehensif. Sistem chunking hierarkis menyeimbangkan kebutuhan ini dengan mengganti potongan anak yang diambil dengan potongan induknya bila sesuai.

**catatan**  
Karena potongan anak digantikan oleh potongan induk selama pengambilan, jumlah hasil yang dikembalikan mungkin kurang dari jumlah yang diminta.
Chunking hierarkis tidak disarankan saat menggunakan bucket vektor S3 sebagai penyimpanan vektor Anda. Saat menggunakan jumlah token yang tinggi untuk chunking (lebih dari 8000 token digabungkan), Anda mungkin mengalami batasan ukuran metadata.

Untuk chunking hierarkis, basis pengetahuan Amazon Bedrock mendukung penetapan dua level atau kedalaman berikut untuk chunking:
+ Induk: Anda mengatur ukuran token potongan induk maksimum.
+ Anak: Anda mengatur ukuran token potongan anak maksimum.

Anda juga mengatur token tumpang tindih antar potongan. Ini adalah jumlah absolut token tumpang tindih antara potongan induk berturut-turut dan potongan anak berturut-turut.

## Chunking semantik
<a name="kb-semantic-chunking"></a>

Chunking semantik adalah teknik pemrosesan bahasa alami yang membagi teks menjadi potongan-potongan yang bermakna untuk meningkatkan pemahaman dan pengambilan informasi. Ini bertujuan untuk meningkatkan akurasi pengambilan dengan berfokus pada konten semantik daripada hanya struktur sintaksis. Dengan demikian, ini dapat memfasilitasi ekstraksi dan manipulasi informasi yang relevan dengan lebih tepat.

Saat mengonfigurasi chunking semantik, Anda memiliki opsi untuk menentukan parameter hiper berikut.
+ Token maksimum: Jumlah maksimum token yang harus dimasukkan dalam satu potongan, sambil menghormati batas kalimat.
+ Ukuran buffer: Untuk kalimat tertentu, ukuran buffer mendefinisikan jumlah kalimat di sekitarnya yang akan ditambahkan untuk pembuatan embeddings. Misalnya, ukuran buffer 1 menghasilkan 3 kalimat (kalimat saat ini, sebelumnya dan berikutnya) untuk digabungkan dan disematkan. Parameter ini dapat mempengaruhi seberapa banyak teks diperiksa bersama untuk menentukan batas setiap potongan, memengaruhi granularitas dan koherensi potongan yang dihasilkan. Ukuran buffer yang lebih besar mungkin menangkap lebih banyak konteks tetapi juga dapat menimbulkan noise, sementara ukuran buffer yang lebih kecil mungkin kehilangan konteks penting tetapi memastikan chunking yang lebih tepat.
+ Ambang batas persentil breakpoint: Ambang batas persentil kalimat distance/dissimilarity untuk menggambar breakpoint antar kalimat. Ambang batas yang lebih tinggi membutuhkan kalimat agar lebih dapat dibedakan agar dapat dibagi menjadi beberapa bagian yang berbeda. Ambang batas yang lebih tinggi menghasilkan potongan yang lebih sedikit dan biasanya ukuran potongan rata-rata yang lebih besar.
**catatan**  
Ada biaya tambahan untuk menggunakan chunking semantik karena penggunaan model pondasi. Biaya tergantung pada jumlah data yang Anda miliki. Lihat [harga Amazon Bedrock](https://aws.amazon.com/bedrock/pricing/) untuk informasi lebih lanjut tentang biaya model pondasi.

## Pembagian konten multimodal
<a name="kb-multimodal-chunking"></a>

Untuk konten multimodal (audio, video, gambar), perilaku chunking berbeda dari dokumen teks:
+ **Penyematan multimodal Nova: Chunking terjadi pada tingkat model embedding**. Anda dapat mengonfigurasi durasi potongan audio dan video dari 1-30 detik (default: 5 detik). Untuk file video, hanya durasi potongan video yang berlaku, meskipun video berisi audio. Durasi potongan audio hanya berlaku untuk file audio mandiri.
+ **Pengurai Otomasi Data Batuan Dasar (BDA):** Konten pertama kali dikonversi menjadi teks (transkrip dan ringkasan adegan), kemudian strategi chunking teks standar diterapkan ke teks yang dikonversi.

**catatan**  
Saat menggunakan penyematan multimodal Nova, strategi chunking teks yang dikonfigurasi di basis pengetahuan Anda hanya memengaruhi dokumen teks di sumber data Anda, bukan file audio, video, atau gambar.

# Opsi penguraian untuk sumber data Anda
<a name="kb-advanced-parsing"></a>

Parsing mengacu pada pemahaman dan ekstraksi konten dari data mentah. Amazon Bedrock Knowledge Bases menawarkan opsi berikut untuk mengurai sumber data Anda selama konsumsi:
+ **Parser default Amazon Bedrock - Hanya mem-parsing** teks dalam file teks, termasuk file.txt, .md, .html, .doc/.docx, .xls/.xlsx, dan.pdf. Parser ini tidak dikenakan biaya penggunaan apa pun.
**catatan**  
Karena parser default hanya mengeluarkan teks, sebaiknya gunakan Amazon Bedrock Data Automation atau model foundation sebagai parser, bukan parser default jika dokumen Anda menyertakan gambar, bagan, tabel, atau gambar. Amazon Bedrock Data Automation dan model foundation dapat mengekstrak elemen-elemen ini dari dokumen Anda dan mengembalikannya sebagai output.
+ Amazon Bedrock Knowledge Bases menawarkan parser berikut untuk mengurai data multimodal, termasuk gambar, bagan, dan tabel dalam file.pdf, selain file gambar.jpeg dan .png. Parser ini juga dapat mengekstrak gambar, bagan, tabel, dan gambar ini dan menyimpannya sebagai file di tujuan S3 yang Anda tentukan selama pembuatan basis pengetahuan. Selama pengambilan basis pengetahuan, file-file ini dapat dikembalikan dalam respons atau atribusi sumber.
  + **Amazon Bedrock Data Automation —** Layanan yang dikelola sepenuhnya yang secara efektif memproses data multimodal, tanpa perlu memberikan permintaan tambahan apa pun. Biaya parser ini tergantung pada jumlah halaman dalam dokumen atau jumlah gambar yang akan diproses. Untuk informasi selengkapnya tentang layanan ini, lihat [Amazon Bedrock Data Automation](bda.md).
  + **Model pondasi** — Memproses data multimodal menggunakan model pondasi. Parser ini memberi Anda opsi untuk menyesuaikan prompt default yang digunakan untuk ekstraksi data. Biaya parser ini tergantung pada jumlah token input dan output yang diproses oleh model foundation. Untuk daftar model yang mendukung penguraian data Pangkalan Pengetahuan Amazon Bedrock, lihat. [Model dan Wilayah yang didukung untuk penguraian](knowledge-base-supported.md#knowledge-base-supported-parsing)

**penting**  
Jika Anda memilih Amazon Bedrock Data Automation atau model foundation sebagai parser, metode yang Anda pilih akan digunakan untuk mengurai semua file.pdf di sumber data Anda, meskipun file.pdf hanya berisi teks. Parser default tidak akan digunakan untuk mengurai file.pdf ini. Akun Anda dikenakan biaya untuk penggunaan Amazon Bedrock Data Automation atau model foundation dalam mengurai file-file ini.

Saat memilih cara mengurai data Anda, pertimbangkan hal berikut:
+ Apakah data Anda murni tekstual atau jika berisi data multimodal, seperti gambar, grafik, dan bagan, yang Anda ingin basis pengetahuan dapat kueri.
+ Apakah Anda ingin opsi untuk menyesuaikan prompt yang digunakan untuk menginstruksikan model tentang cara mengurai data Anda.
+ Biaya parser. Amazon Bedrock Data Automation menggunakan harga per halaman, sedangkan parser model foundation mengenakan biaya berdasarkan token input dan output. Untuk informasi selengkapnya, lihat [Harga Amazon Bedrock](https://aws.amazon.com/bedrock/pricing/).
+ Batas ukuran file total. Saat Anda menggunakan model dasar sebagai parser Anda, ukuran file total di semua file tidak boleh lebih besar dari 100 GB.

Untuk mempelajari cara mengonfigurasi cara penguraian basis pengetahuan Anda, lihat konfigurasi sambungan untuk sumber data Anda. [Connect sumber data ke basis pengetahuan Anda](data-source-connectors.md)

# Gunakan fungsi Lambda transformasi kustom untuk menentukan bagaimana data Anda dicerna
<a name="kb-custom-transformation"></a>

Anda memiliki kemampuan untuk menentukan fungsi Lambda transformasi khusus untuk menyuntikkan logika Anda sendiri ke dalam proses konsumsi basis pengetahuan.

Anda mungkin memiliki logika chunking tertentu, tidak didukung secara native oleh basis pengetahuan Amazon Bedrock. Gunakan opsi strategi no chunking, sambil menentukan fungsi Lambda yang berisi logika chunking Anda. Selain itu, Anda harus menentukan bucket Amazon S3 agar basis pengetahuan dapat menulis file yang akan dipotong oleh fungsi Lambda Anda.

Setelah chunking, fungsi Lambda Anda akan menulis kembali file yang dipotong ke dalam bucket yang sama dan mengembalikan referensi untuk basis pengetahuan untuk diproses lebih lanjut. Anda secara opsional memiliki kemampuan untuk menyediakan AWS KMS kunci Anda sendiri untuk enkripsi file yang disimpan di bucket S3 Anda.

**catatan**  
Jika konektor web digunakan, teks penurunan harga diteruskan ke Lambda, bukan HTML.

Atau, Anda mungkin ingin menentukan metadata tingkat potongan, sementara basis pengetahuan menerapkan salah satu strategi chunking yang didukung secara asli. Dalam hal ini, pilih salah satu strategi chunking yang telah ditentukan sebelumnya (misalnya, chunking default atau ukuran tetap), sambil memberikan referensi ke fungsi Lambda dan bucket S3 Anda. Dalam hal ini, basis pengetahuan akan menyimpan file yang diuraikan dan dipotong sebelumnya dalam bucket S3 yang telah ditentukan sebelumnya, sebelum memanggil fungsi Lambda Anda untuk menambahkan metadata tingkat potongan lebih lanjut.

Setelah menambahkan metadata tingkat potongan, fungsi Lambda Anda akan menulis kembali file yang dipotong ke dalam bucket yang sama dan mengembalikan referensi untuk basis pengetahuan untuk diproses lebih lanjut. Harap dicatat bahwa metadata tingkat potongan diutamakan dan menimpa metadata tingkat file, jika terjadi tabrakan.

[Untuk contoh penggunaan fungsi Lambda Python untuk chunking kustom, lihat Chunking kustom menggunakan fungsi Lambda.](https://github.com/aws-samples/amazon-bedrock-samples/blob/main/rag/knowledge-bases/features-examples/03-optimizing-accuracy-retrieved-results/advanced_chunking_options.ipynb)

Untuk kontrak API dan file, lihat struktur di bawah ini:

**Kontrak API saat menambahkan transformasi khusus menggunakan fungsi Lambda**

```
{
...
    "vectorIngestionConfiguration": {
        "customTransformationConfiguration": { // Custom transformation 
            "intermediateStorage": {
                "s3Location": { // the location where input/output of the Lambda is expected 
                    "uri": "string"
                }
            },
            "transformations": [{
                "transformationFunction": {
                    "transformationLambdaConfiguration": {
                        "lambdaArn": "string"
                    }
                },
                "stepToApply": "string" // enum of POST_CHUNKING
            }]
        },
        "chunkingConfiguration": {
            "chunkingStrategy": "string",
            "fixedSizeChunkingConfiguration": {
                "maxTokens": "number",
                "overlapPercentage": "number"
            }
            ...
        }
    }
}
```

**Format masukan transformasi Lambda kustom**

```
{
    "version": "1.0",
    "knowledgeBaseId": "string",
    "dataSourceId": "string",
    "ingestionJobId": "string",
    "bucketName": "string",
    "priorTask": "string",
    "inputFiles": [{
        "originalFileLocation": {
            "type": "S3",
            "s3_location": {
                "uri": "string"
            }
        },
        "fileMetadata": {
            "key1": "value1",
            "key2": "value2"
        },
        "contentBatches": [{
            "key":"string"
        }]
    }]
}
```

**Format keluaran transformasi Lambda kustom**

```
{
    "outputFiles": [{
        "originalFileLocation": {
            "type": "S3",
            "s3_location": {
                "uri": "string"
            }
        },
        "fileMetadata": {
            "key1": "value1",
            "key2": "value2"
        },
        "contentBatches": [{
            "key": "string"
        }]
    }]
}
```

**Format file untuk objek yang direferensikan di `fileContents`**

```
{
    "fileContents": [{
        "contentBody": "...",
        "contentType": "string", // enum of TEXT, PDF, ...
        "contentMetadata": {
            "key1": "value1",
            "key2": "value2"
        }
    }
    ...
    ]
}
```

# Sertakan metadata dalam sumber data untuk meningkatkan kueri basis pengetahuan
<a name="kb-metadata"></a>

Saat menelan file CSV (nilai terpisah koma), Anda memiliki kemampuan untuk memiliki basis pengetahuan yang memperlakukan kolom tertentu sebagai bidang konten versus bidang metadata. Alih-alih berpotensi memiliki ratusan atau ribuan pasangan content/metadata file, Anda sekarang dapat memiliki satu file CSV dan file metadata.json yang sesuai, memberikan petunjuk basis pengetahuan tentang cara memperlakukan setiap kolom di dalam CSV Anda.

Ada batasan untuk metadata dokumen fields/attributes per potongan. Lihat [Kuota untuk basis pengetahuan](https://docs.aws.amazon.com/bedrock/latest/userguide/quotas.html)

Sebelum menelan file CSV, pastikan:
+ CSV Anda dalam format RFC418 0 dan dikodekan UTF-8.
+ Baris pertama CSV Anda mencakup informasi header.
+ Bidang metadata yang disediakan di metadata.json Anda hadir sebagai kolom di CSV Anda.
+ Anda menyediakan filename.csv.metadata.json file dengan format berikut:

  ```
  {
      "metadataAttributes": {
          "${attribute1}": "${value1}",
          "${attribute2}": "${value2}",
          ...
      },
      "documentStructureConfiguration": {
          "type": "RECORD_BASED_STRUCTURE_METADATA",
          "recordBasedStructureMetadata": {
              "contentFields": [
                  {
                      "fieldName": "string"
                  }
              ],
              "metadataFieldsSpecification": {
                  "fieldsToInclude": [
                      {
                          "fieldName": "string"
                      }
                  ],
                  "fieldsToExclude": [
                      {
                          "fieldName": "string"
                      }
                  ]
              }
          }
      }
  }
  ```

File CSV diurai satu baris pada satu waktu dan strategi chunking dan penyematan vektor diterapkan ke bidang konten. Basis pengetahuan Amazon Bedrock saat ini mendukung satu bidang konten. Bidang konten dibagi menjadi beberapa bagian, dan bidang metadata (kolom) yang terkait dengan setiap potongan diperlakukan sebagai nilai string.

Misalnya, ada CSV dengan kolom 'Description' dan kolom 'Creation\$1Date'. Bidang deskripsi adalah bidang konten dan tanggal pembuatan adalah bidang metadata terkait. Teks deskripsi dibagi menjadi beberapa bagian dan diubah menjadi embeddings vektor untuk setiap baris di CSV. Nilai tanggal pembuatan diperlakukan sebagai representasi string tanggal dan dikaitkan dengan setiap potongan untuk deskripsi.

Jika tidak ada inclusion/exclusion bidang yang disediakan, semua kolom diperlakukan sebagai kolom metadata, kecuali kolom konten. Jika hanya bidang inklusi yang disediakan, hanya kolom yang disediakan yang diperlakukan sebagai metadata. Jika hanya bidang pengecualian yang disediakan, semua kolom, kecuali kolom pengecualian diperlakukan sebagai metadata. Jika Anda memberikan hal yang sama `fieldName` di keduanya `fieldsToInclude` dan`fieldsToExclude`, Amazon Bedrock melempar pengecualian validasi. Jika ada konflik antara inklusi dan pengecualian, itu akan mengakibatkan kegagalan.

Baris kosong yang ditemukan di dalam CSV diabaikan atau dilewati.