feat: knowledge pipeline (#25360)

Signed-off-by: -LAN- <laipz8200@outlook.com>
Co-authored-by: twwu <twwu@dify.ai>
Co-authored-by: crazywoola <100913391+crazywoola@users.noreply.github.com>
Co-authored-by: jyong <718720800@qq.com>
Co-authored-by: Wu Tianwei <30284043+WTW0313@users.noreply.github.com>
Co-authored-by: QuantumGhost <obelisk.reg+git@gmail.com>
Co-authored-by: lyzno1 <yuanyouhuilyz@gmail.com>
Co-authored-by: quicksand <quicksandzn@gmail.com>
Co-authored-by: Jyong <76649700+JohnJyong@users.noreply.github.com>
Co-authored-by: lyzno1 <92089059+lyzno1@users.noreply.github.com>
Co-authored-by: zxhlyh <jasonapring2015@outlook.com>
Co-authored-by: Yongtao Huang <yongtaoh2022@gmail.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Joel <iamjoel007@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: nite-knite <nkCoding@gmail.com>
Co-authored-by: Hanqing Zhao <sherry9277@gmail.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: Harry <xh001x@hotmail.com>
This commit is contained in:
-LAN-
2025-09-18 12:49:10 +08:00
committed by GitHub
parent 7dadb33003
commit 85cda47c70
1772 changed files with 102407 additions and 31710 deletions

View File

@@ -396,6 +396,19 @@ const translation = {
'maxNumberOfUploads': 'Jumlah upload maksimal',
'both': 'Keduanya',
'uploadFileTypes': 'Unggah Jenis File',
'unit': 'Satuan',
'startChecked': 'Mulai diperiksa',
'placeholder': 'Placeholder',
'uploadMethod': 'Metode Unggah',
'noDefaultSelected': 'Jangan pilih',
'defaultValuePlaceholder': 'Masukkan nilai default untuk mengisi kolom sebelumnya',
'showAllSettings': 'Tampilkan Semua Pengaturan',
'tooltips': 'Tooltip',
'displayName': 'Nama Tampilan',
'tooltipsPlaceholder': 'Masukkan teks bermanfaat yang ditampilkan saat mengarahkan kursor ke label',
'startSelectedOption': 'Mulai opsi yang dipilih',
'unitPlaceholder': 'Tampilkan unit setelah angka, misalnya token',
'placeholderPlaceholder': 'Masukkan teks untuk ditampilkan saat bidang kosong',
},
vision: {
visionSettings: {

View File

@@ -68,6 +68,7 @@ const translation = {
hideTemplates: 'Kembali ke pemilihan mode',
useTemplate: 'Gunakan template ini',
appCreateDSLErrorPart2: 'Apakah Anda ingin melanjutkan?',
import: 'Mengimpor',
},
newAppFromTemplate: {
sidebar: {

View File

@@ -86,6 +86,7 @@ const translation = {
customTools: 'Alat Kustom',
modelProviders: 'Mendukung OpenAI/Anthropic/Llama2/Azure OpenAI/Hugging Face/Replite',
member: 'Anggota',
startBuilding: 'Mulai Membangun',
},
plans: {
sandbox: {

View File

@@ -441,6 +441,15 @@ const translation = {
configLoadBalancing: 'Penyeimbangan Beban Konfigurasi',
addModelCredential: 'Menambahkan kredensial model',
specifyModelCredential: 'Tentukan kredensial model',
addNewModelCredential: 'Menambahkan kredensial model baru',
modelCredential: 'Kredensial model',
addModel: 'Tambahkan model',
removeModel: 'Hapus Model',
manageCredentials: 'Kelola Kredensial',
selectModelCredential: 'Pilih kredensial model',
editModelCredential: 'Mengedit kredensial model',
customModelCredentials: 'Kredensial Model Kustom',
customModelCredentialsDeleteTip: 'Kredensial sedang digunakan dan tidak dapat dihapus',
},
systemModelSettingsLink: 'Mengapa perlu menyiapkan model sistem?',
apiKey: 'API-KUNCI',
@@ -587,6 +596,7 @@ const translation = {
settings: 'Pengaturan',
noRelatedApp: 'Tidak ada aplikasi yang ditautkan',
viewDoc: 'Lihat dokumentasi',
pipeline: 'Pipa',
},
voiceInput: {
speaking: 'Bicaralah sekarang...',
@@ -717,6 +727,9 @@ const translation = {
dropImageHere: 'Letakkan gambar Anda di sini, atau',
},
you: 'Kamu',
label: {
optional: '(opsional)',
},
}
export default translation

View File

@@ -91,6 +91,7 @@ const translation = {
waterCrawlNotConfiguredDescription: 'Konfigurasikan Watercrawl dengan kunci API untuk menggunakannya.',
firecrawlDoc: 'Dokumen Firecrawl',
configureWatercrawl: 'Konfigurasikan Watercrawl',
running: 'Menjalankan',
},
pagePreview: 'Pratinjau Halaman',
notionSyncTitle: 'Notion tidak terhubung',
@@ -181,6 +182,7 @@ const translation = {
qaSwitchHighQualityTipContent: 'Saat ini, hanya metode indeks berkualitas tinggi yang mendukung pemotongan format Tanya Jawab. Apakah Anda ingin beralih ke mode berkualitas tinggi?',
general: 'Umum',
indexSettingTip: 'Untuk mengubah metode indeks & model penyematan, silakan pergi ke',
qaTip: 'Saat menggunakan data Tanya Jawab terstruktur, Anda dapat membuat dokumen yang memasangkan pertanyaan dengan jawaban. Dokumen-dokumen ini diindeks berdasarkan bagian pertanyaan, memungkinkan sistem untuk mengambil jawaban yang relevan berdasarkan kesamaan kueri.',
},
stepThree: {
modelTitle: 'Apakah Anda yakin untuk berhenti menyematkan?',

View File

@@ -91,6 +91,9 @@ const translation = {
notion: 'Sinkronkan formulir Notion',
upload_file: 'Unggah File',
github: 'Sinkronkan formulir Github',
website_crawl: 'Perayapan Situs Web',
online_document: 'Dokumen Online',
local_file: 'File Lokal',
},
type: {
book: 'Buku',
@@ -335,6 +338,7 @@ const translation = {
stop: 'Hentikan pemrosesan',
custom: 'Adat',
resume: 'Melanjutkan',
waiting: 'Menunggu embedding...',
},
segment: {
searchResults_one: 'HASIL',

View File

@@ -0,0 +1,154 @@
const translation = {
creation: {
createFromScratch: {
title: 'Alur pengetahuan kosong',
description: 'Buat alur kustom dari awal dengan kontrol penuh atas pemrosesan dan struktur data.',
},
caution: 'Hati',
createKnowledge: 'Ciptakan Pengetahuan',
errorTip: 'Gagal membuat Basis Pengetahuan',
backToKnowledge: 'Kembali ke Pengetahuan',
successTip: 'Berhasil membuat Basis Pengetahuan',
importDSL: 'Mengimpor dari file DSL',
},
templates: {
customized: 'Disesuaikan',
},
operations: {
choose: 'Memilih',
convert: 'Mengkonversi',
preview: 'Pratayang',
saveAndProcess: 'Simpan & Proses',
process: 'Proses',
details: 'Rincian',
backToDataSource: 'Kembali ke Sumber Data',
editInfo: 'Edit info',
dataSource: 'Sumber Data',
exportPipeline: 'Pipa Ekspor',
useTemplate: 'Gunakan Alur Pengetahuan ini',
},
deletePipeline: {
title: 'Apakah Anda yakin akan menghapus templat alur ini?',
content: 'Menghapus templat alur tidak dapat diubah.',
},
publishPipeline: {
success: {
message: 'Alur Pengetahuan Diterbitkan',
},
error: {
message: 'Gagal Menerbitkan Alur Pengetahuan',
},
},
publishTemplate: {
success: {
learnMore: 'Pelajari lebih lanjut',
message: 'Templat Alur Diterbitkan',
tip: 'Anda dapat menggunakan template ini di halaman pembuatan.',
},
error: {
message: 'Gagal menerbitkan templat alur',
},
},
exportDSL: {
successTip: 'Ekspor DSL pipeline berhasil',
errorTip: 'Gagal mengekspor DSL alur',
},
details: {
structure: 'Struktur',
structureTooltip: 'Struktur Potongan menentukan bagaimana dokumen dibagi dan diindeks—menawarkan mode Umum, Induk-Anak, dan Tanya Jawab—dan unik untuk setiap basis pengetahuan.',
},
testRun: {
steps: {
documentProcessing: 'Pemrosesan Dokumen',
dataSource: 'Sumber Data',
},
dataSource: {
localFiles: 'File Lokal',
},
notion: {
docTitle: 'Dokumen gagasan',
title: 'Pilih Halaman Notion',
},
title: 'Uji Coba',
tooltip: 'Dalam mode uji coba, hanya satu dokumen yang diizinkan untuk diimpor pada satu waktu untuk penelusuran kesalahan dan pengamatan yang lebih mudah.',
},
inputFieldPanel: {
uniqueInputs: {
title: 'Input Unik untuk Setiap Pintu Masuk',
tooltip: 'Input Unik hanya dapat diakses oleh sumber data yang dipilih dan simpul hilirnya. Pengguna tidak perlu mengisinya saat memilih sumber data lain. Hanya bidang input yang direferensikan oleh variabel sumber data yang akan muncul di langkah pertama (Sumber Data). Semua bidang lainnya akan ditampilkan pada langkah kedua (Proses Dokumen).',
},
globalInputs: {
title: 'Input Global untuk Semua Pintu Masuk',
tooltip: 'Input Global dibagikan di semua simpul. Pengguna harus mengisinya saat memilih sumber data apa pun. Misalnya, bidang seperti pembatas dan panjang potongan maksimum dapat diterapkan secara seragam di beberapa sumber data. Hanya bidang input yang direferensikan oleh variabel Sumber Data yang muncul di langkah pertama (Sumber Data). Semua bidang lainnya muncul di langkah kedua (Proses Dokumen).',
},
preview: {
stepTwoTitle: 'Dokumen Proses',
stepOneTitle: 'Sumber Data',
},
error: {
variableDuplicate: 'Nama variabel sudah ada. Silakan pilih nama yang berbeda.',
},
title: 'Bidang Input Pengguna',
editInputField: 'Edit Bidang Input',
addInputField: 'Tambahkan Bidang Input',
description: 'Bidang input pengguna digunakan untuk menentukan dan mengumpulkan variabel yang diperlukan selama proses eksekusi alur. Pengguna dapat menyesuaikan jenis bidang dan mengonfigurasi nilai input secara fleksibel untuk memenuhi kebutuhan sumber data atau langkah pemrosesan dokumen yang berbeda.',
},
addDocuments: {
steps: {
processDocuments: 'Dokumen Proses',
processingDocuments: 'Memproses Dokumen',
chooseDatasource: 'Pilih Sumber Data',
},
stepOne: {
preview: 'Pratayang',
},
stepTwo: {
chunkSettings: 'Pengaturan Potongan',
previewChunks: 'Pratinjau Potongan',
},
stepThree: {
learnMore: 'Pelajari lebih lanjut',
},
title: 'Tambahkan Dokumen',
backToDataSource: 'Sumber Data',
characters: 'Karakter',
},
documentSettings: {
title: 'Pengaturan Dokumen',
},
onlineDocument: {},
onlineDrive: {
breadcrumbs: {
allFiles: 'Semua File',
allBuckets: 'Semua Bucket Penyimpanan Cloud',
searchPlaceholder: 'Cari file...',
},
resetKeywords: 'Mengatur ulang kata kunci',
notSupportedFileType: 'Jenis file ini tidak didukung',
emptySearchResult: 'Tidak ada barang yang ditemukan',
emptyFolder: 'Folder ini kosong',
},
credentialSelector: {},
conversion: {
confirm: {
title: 'Konfirmasi',
content: 'Tindakan ini bersifat permanen. Anda tidak akan dapat kembali ke metode sebelumnya. Silakan konfirmasi untuk mengonversi.',
},
warning: 'Tindakan ini tidak dapat dibatalkan.',
descriptionChunk2: '— pendekatan yang lebih terbuka dan fleksibel dengan akses ke plugin dari pasar kami. Ini akan menerapkan metode pemrosesan baru untuk semua dokumen di masa mendatang.',
successMessage: 'Berhasil mengonversi himpunan data menjadi alur',
errorMessage: 'Gagal mengonversi himpunan data ke alur',
descriptionChunk1: 'Anda sekarang dapat mengonversi basis pengetahuan yang ada untuk menggunakan Knowledge Pipeline untuk pemrosesan dokumen',
title: 'Mengonversi ke Alur Pengetahuan',
},
knowledgePermissions: 'Izin',
pipelineNameAndIcon: 'Nama & ikon pipa',
inputField: 'Bidang Masukan',
knowledgeDescription: 'Deskripsi pengetahuan',
knowledgeNameAndIconPlaceholder: 'Silakan masukkan nama Basis Pengetahuan',
knowledgeNameAndIcon: 'Nama & ikon pengetahuan',
knowledgeDescriptionPlaceholder: 'Jelaskan apa yang ada di Basis Pengetahuan ini. Deskripsi terperinci memungkinkan AI mengakses konten kumpulan data dengan lebih akurat. Jika kosong, Dify akan menggunakan strategi hit default. (Opsional)',
editPipelineInfo: 'Mengedit info alur',
}
export default translation

View File

@@ -35,6 +35,14 @@ const translation = {
indexMethodHighQualityTip: 'Memanggil model penyematan untuk memproses dokumen untuk pengambilan yang lebih tepat membantu LLM menghasilkan jawaban berkualitas tinggi.',
permissionsOnlyMe: 'Hanya saya',
indexMethodEconomyTip: 'Menggunakan 10 kata kunci per potongan untuk pengambilan, tidak ada token yang dikonsumsi dengan mengorbankan penurunan akurasi pengambilan.',
chunkStructure: {
learnMore: 'Pelajari lebih lanjut',
description: 'tentang Struktur Potongan.',
title: 'Struktur Potongan',
},
nameAndIcon: 'Nama & Ikon',
onSearchResults: 'Tidak ada anggota yang cocok dengan kueri penelusuran Anda.\nCoba cari lagi.',
numberOfKeywords: 'Jumlah Kata Kunci',
},
desc: 'Di sini Anda dapat memodifikasi properti dan pengaturan pengambilan Pengetahuan ini.',
title: 'Setelan pengetahuan',

View File

@@ -2,6 +2,8 @@ const translation = {
chunkingMode: {
general: 'Umum',
parentChild: 'Orang tua-anak',
graph: 'Grafik',
qa: 'Tanya Jawab',
},
parentMode: {
fullDoc: 'Dokumen lengkap',
@@ -81,6 +83,10 @@ const translation = {
},
change: 'Ubah',
changeRetrievalMethod: 'Ubah metode pengambilan',
keyword_search: {
description: 'Indeks Terbalik adalah struktur yang digunakan untuk pengambilan yang efisien. Diatur berdasarkan istilah, setiap istilah menunjuk ke dokumen atau halaman web yang berisinya.',
title: 'Indeks Terbalik',
},
},
indexingTechnique: {
economy: 'EKO',
@@ -210,6 +216,9 @@ const translation = {
allKnowledgeDescription: 'Pilih untuk menampilkan semua pengetahuan di ruang kerja ini. Hanya Pemilik Ruang Kerja yang dapat mengelola semua pengetahuan.',
defaultRetrievalTip: 'Pengambilan multi-jalur digunakan secara default. Pengetahuan diambil dari beberapa basis pengetahuan dan kemudian diberi peringkat ulang.',
unavailable: 'Tidak tersedia',
updated: 'Diperbarui',
createFromPipeline: 'Membuat dari Knowledge Pipeline',
externalKnowledgeBase: 'Basis Pengetahuan Eksternal',
}
export default translation

View File

@@ -1,4 +1,8 @@
const translation = {
sidebar: {
expandSidebar: 'Perluas Bilah Sisi',
collapseSidebar: 'Ciutkan Bilah Sisi',
},
}
export default translation

View File

@@ -0,0 +1,38 @@
const translation = {
common: {
publishAsPipeline: {
name: 'Nama & ikon pipa',
namePlaceholder: 'Silakan masukkan nama Knowledge Pipeline ini. (Wajib)',
descriptionPlaceholder: 'Silakan masukkan deskripsi Knowledge Pipeline ini. (Opsional)',
description: 'Deskripsi pengetahuan',
},
processing: 'Pengolahan',
reRun: 'Jalankan ulang',
testRun: 'Uji Coba',
confirmPublish: 'Konfirmasi Publikasi',
preparingDataSource: 'Menyiapkan Sumber Data',
confirmPublishContent: 'Setelah berhasil menerbitkan alur pengetahuan, struktur potongan basis pengetahuan ini tidak dapat diubah. Apakah Anda yakin ingin mempublikasikannya?',
goToAddDocuments: 'Buka untuk menambahkan dokumen',
publishAs: 'Publikasikan sebagai Alur Pengetahuan',
},
inputField: {
manage: 'Urus',
create: 'Membuat bidang input pengguna',
},
publishToast: {
title: 'Pipeline ini belum dipublikasikan',
desc: 'Ketika alur tidak diterbitkan, Anda dapat memodifikasi struktur potongan di simpul pangkalan pengetahuan, dan orkestrasi dan perubahan alur akan secara otomatis disimpan sebagai draf.',
},
result: {
resultPreview: {
loading: 'Pengolahan... Harap tunggu',
viewDetails: 'Lihat detail',
error: 'Terjadi kesalahan selama eksekusi',
},
},
ragToolSuggestions: {
title: 'Saran untuk RAG',
},
}
export default translation

View File

@@ -17,6 +17,7 @@ const translation = {
other: 'Lain',
utilities: 'Utilitas',
search: 'Mencari',
rag: 'Kain lap',
},
allTags: 'Semua Tag',
searchTags: 'Tag Pencarian',

View File

@@ -9,6 +9,7 @@ const translation = {
bundles: 'Bundel',
agents: 'Strategi Agen',
tools: 'Perkakas',
datasources: 'Sumber Data',
},
categorySingle: {
bundle: 'Bundel',
@@ -16,6 +17,7 @@ const translation = {
tool: 'Alat',
model: 'Pola',
extension: 'Ekstensi',
datasource: 'Sumber Data',
},
list: {
source: {
@@ -261,6 +263,8 @@ const translation = {
workspaceDefault: 'Ruang Kerja Default',
authorization: 'Otorisasi',
credentialUnavailableInButton: 'Kredensial tidak tersedia',
emptyAuth: 'Silakan konfigurasikan otentikasi',
connectedWorkspace: 'Ruang Kerja yang Terhubung',
},
searchInMarketplace: 'Cari di Marketplace',
findMoreInMarketplace: 'Temukan selengkapnya di Marketplace',

View File

@@ -240,6 +240,7 @@ const translation = {
openInStudio: 'Buka di Studio',
builtInPromptTitle: 'Cepat',
toolNameUsageTip: 'Nama panggilan alat untuk penalaran dan permintaan agen',
allTools: 'Semua alat',
}
export default translation

View File

@@ -207,6 +207,8 @@ const translation = {
testRunIteration: 'Iterasi Uji Coba',
startRun: 'Mulai Lari',
loop: 'Lari',
preparingDataSource: 'Menyiapkan Sumber Data',
reRun: 'Jalankan ulang',
},
tabs: {
'utilities': 'Utilitas',
@@ -225,6 +227,8 @@ const translation = {
'plugin': 'Plugin',
'transform': 'Mengubah',
'allTool': 'Semua',
'sources': 'Sumber',
'searchDataSource': 'Cari Sumber Data',
},
blocks: {
'code': 'Kode',
@@ -249,6 +253,8 @@ const translation = {
'if-else': 'JIKA/LAIN',
'loop-start': 'Mulai Loop',
'variable-aggregator': 'Agregator Variabel',
'datasource': 'Sumber Data',
'knowledge-index': 'Basis Pengetahuan',
},
blocksAbout: {
'template-transform': 'Mengonversi data menjadi string menggunakan sintaks templat Jinja',
@@ -271,6 +277,8 @@ const translation = {
'variable-aggregator': 'Agregatkan variabel multi-cabang menjadi satu variabel untuk konfigurasi terpadu simpul hilir.',
'end': 'Menentukan jenis akhir dan hasil alur kerja',
'list-operator': 'Digunakan untuk memfilter atau mengurutkan konten array.',
'datasource': 'Sumber Data Tentang',
'knowledge-index': 'Basis Pengetahuan Tentang',
},
operator: {
zoomIn: 'Perbesar',
@@ -373,6 +381,7 @@ const translation = {
},
insertVarTip: 'Sisipkan Variabel',
outputVars: 'Variabel Keluaran',
inputVars: 'Variabel Masukan',
},
start: {
outputVars: {
@@ -890,6 +899,27 @@ const translation = {
parameterSchema: 'Skema Parameter',
strategyNotFoundDesc: 'Versi plugin yang diinstal tidak menyediakan strategi ini.',
},
dataSource: {
add: 'Menambahkan sumber data',
supportedFileFormatsPlaceholder: 'Ekstensi file, e.g. doc',
supportedFileFormats: 'Format file yang didukung',
},
knowledgeBase: {
chunkStructureTip: {
learnMore: 'Pelajari lebih lanjut',
title: 'Silakan pilih struktur potongan',
message: 'Basis Pengetahuan Dify mendukung tiga struktur pemotongan: Umum, Induk-anak, dan Tanya Jawab. Setiap basis pengetahuan hanya dapat memiliki satu struktur. Output dari simpul sebelumnya harus selaras dengan struktur potongan yang dipilih. Perhatikan bahwa pilihan struktur chunking memengaruhi metode indeks yang tersedia.',
},
chooseChunkStructure: 'Pilih struktur potongan',
aboutRetrieval: 'tentang metode pengambilan.',
chunkIsRequired: 'Struktur potongan diperlukan',
changeChunkStructure: 'Ubah Struktur Potongan',
retrievalSettingIsRequired: 'Pengaturan pengambilan diperlukan',
indexMethodIsRequired: 'Metode indeks diperlukan',
chunkStructure: 'Struktur Potongan',
chunksInput: 'Potongan',
chunksInputTip: 'Variabel input dari node basis pengetahuan adalah Chunks. Tipe variabel adalah objek dengan Skema JSON tertentu yang harus konsisten dengan struktur chunk yang dipilih.',
},
},
tracing: {},
versionHistory: {
@@ -949,6 +979,10 @@ const translation = {
reset: 'Atur ulang ke nilai eksekusi terakhir',
resetConversationVar: 'Mengatur ulang variabel percakapan ke nilai default',
emptyTip: 'Setelah melangkah melalui simpul di kanvas atau menjalankan simpul langkah demi langkah, Anda dapat melihat nilai variabel simpul saat ini di Inspeksi Variabel',
export: 'ekspor',
largeDataNoExport: 'Data besar - hanya pratinjau sebagian',
exportToolTip: 'Ekspor Variabel sebagai File',
largeData: 'Data besar, pratinjau baca-saja. Ekspor untuk melihat semua.',
},
relations: {
noDependents: 'Tidak ada tanggungan',