refactor(ingestion): remove retired parser options (#22147)

This commit is contained in:
jay77721 authored and GitHub committed 2026-11-09 14:33:43 +08:00
1 parent eeeda36046
commit 64bc9f3f40
52 files changed
+30 -435

No files matched your search

+1 -7
View File
@@ -1104,7 +1104,6 @@ Success:
"parser_config": {
"chunk_token_num": 128,
"delimiter": "\\n",
"html4excel": false,
"layout_recognize": "DeepDOC"
},
"run": "UNSTART",
@@ -1229,9 +1228,7 @@ curl --request PATCH \
- If `"chunk_method"` is `"naive"`, the `"parser_config"` object contains the following attributes:
- `"chunk_token_num"`: Defaults to `256`.
- `"layout_recognize"`: Defaults to `"DeepDOC"`.
- `"html4excel"`: Indicates whether to convert Excel documents into HTML format. Defaults to `false`.
- `"delimiter"`: Defaults to `"\n"`.
- `"task_page_size"`: Defaults to `12`. For PDF only.
- `"enabled"`: (*Body parameter*), `integer`
Whether the document should be **available** in the Dataset.
- `1` → (available)
@@ -1287,7 +1284,6 @@ Success:
"auto_questions": 0,
"topn_tags": 3,
"layout_recognize": "DeepDOC",
"html4excel": false,
"image_context_size": 0,
"table_context_size": 0
},
@@ -1470,8 +1466,7 @@ Success:
"parser_config": {
"chunk_token_count": 128,
"delimiter": "\n",
"layout_recognize": "DeepDOC",
"task_page_size": 12
"layout_recognize": "DeepDOC"
},
"chunk_method": "naive",
"process_begin_at": null,
@@ -1930,7 +1925,6 @@ Success:
"parser_config": {
"chunk_token_num": 128,
"delimiter": "\\n",
"html4excel": false,
"layout_recognize": "DeepDOC"
},
"process_begin_at": "Thu, 24 Oct 2024 09:56:44 GMT",
+2 -2
View File
@@ -492,7 +492,7 @@ A dictionary representing the attributes to update, with the following keys:
- `"email"`: Email
- `"parser_config"`: `dict[str, Any]` The parsing configuration for the document. Its attributes vary based on the selected `"chunk_method"`:
- `"chunk_method"`=`"naive"`:
`{"chunk_token_num":128,"delimiter":"\n","html4excel":False,"layout_recognize":"DeepDOC","raptor":{"use_raptor":False},"parent_child":{"use_parent_child":False,"children_delimiter":"\n"}}`.
`{"chunk_token_num":128,"delimiter":"\n","layout_recognize":"DeepDOC","raptor":{"use_raptor":False},"parent_child":{"use_parent_child":False,"children_delimiter":"\n"}}`.
- `chunk_method`=`"qa"`:
`{"raptor": {"use_raptor": False}}`
- `chunk_method`=`"manual"`:
@@ -662,7 +662,7 @@ A `Document` object contains the following attributes:
- `status`: `string` Reserved for future use.
- `parser_config`: `ParserConfig` Configuration object for the parser. Its attributes vary based on the selected `chunk_method`:
- `chunk_method`=`"naive"`:
`{"chunk_token_num":128,"delimiter":"\n","html4excel":False,"layout_recognize":"DeepDOC","raptor":{"use_raptor":False}}`.
`{"chunk_token_num":128,"delimiter":"\n","layout_recognize":"DeepDOC","raptor":{"use_raptor":False}}`.
- `chunk_method`=`"qa"`:
`{"raptor": {"use_raptor": False}}`
- `chunk_method`=`"manual"`:
-1
View File
@@ -66,7 +66,6 @@ func GetParserConfig(parserID string, parserConfig map[string]interface{}) map[s
"delimiter": "\n",
"auto_keywords": 0,
"auto_questions": 0,
"html4excel": false,
"topn_tags": 3,
},
"qa": nil,
@@ -210,15 +210,10 @@ var (
// They are deleted so the stored config stops advertising behaviour the Go
// runtime does not implement; every drop is logged with table, row and field.
var ingestionRetiredFlatKeys = []string{
// Spreadsheets are always rendered as segmented HTML; the flag only warns
// now (internal/parser/parser/office_table_render.go:deprecatedHTML4Excel).
"html4excel",
// Splits one parse into several ingestion jobs; it is not a page range and
// not a chunk size.
"task_page_size",
// Follows hyperlinks and indexes the linked content; unimplemented in Go.
"analyze_hyperlink",
"hyperlink_urls",
// Video parsing is rejected at dispatch
// (internal/ingestion/component/media_dispatch.go:maybeDispatchVideo).
"video_prompt",
@@ -119,7 +119,7 @@ func TestMigrateParserChunkerTokenizerConfig(t *testing.T) {
input: `{"layout_recognize":true,"Parser:HipSignsRhyme":{"pdf":{"preprocess":["main_content"],"remove_toc":false}}}`,
want: `{"Parser:HipSignsRhyme":{"pdf":{"preprocess":["main_content"],"remove_toc":false,"parse_method":"deepdoc"}}}`,
},
{name: "retired settings are deleted", input: `{"html4excel":true,"task_page_size":256,"analyze_hyperlink":true,"hyperlink_urls":true,"video_prompt":"x"}`, want: `{}`},
{name: "retired settings are deleted", input: `{"html4excel":true,"task_page_size":256,"video_prompt":"x"}`, want: `{}`},
{name: "no owned keys", input: `{"chunk_method":"naive","topn_tags":5}`, want: `{"chunk_method":"naive","topn_tags":5}`},
{name: "empty config", input: `{}`, want: `{}`},
{name: "canvas rows are skipped", pipeline: ptrString("canvas-1"), input: `{"layout_recognize":true,"chunk_token_num":128}`, want: `{"layout_recognize":true,"chunk_token_num":128}`},
-1
View File
@@ -308,7 +308,6 @@ func defaultSetups() map[string]schema.ParserSetup {
},
"spreadsheet": {
"parse_method": "deepdoc",
"html4excel": false,
"suffix": []string{"xls", "xlsx", "csv"},
},
"doc": {
@@ -254,7 +254,7 @@ func pythonFamilyName(raw string) string {
return "doc"
case "docx":
return "docx"
case "ppt", "pptx", "pages", "dps", "dpt", "slides":
case "ppt", "pptx", "pages", "slides":
return "slides"
case "xls", "xlsx", "spreadsheet":
return "spreadsheet"
@@ -2090,7 +2090,7 @@ func tcadpZipFixtureForComponent(t *testing.T) []byte {
}
func TestParserFileFamilyPresentationExtensions(t *testing.T) {
for _, ext := range []string{"ppt", "pptx", "pages", "dps", "dpt"} {
for _, ext := range []string{"ppt", "pptx", "pages"} {
if got := ParserFileFamily(ext); got != "slides" {
t.Errorf("ParserFileFamily(%q) = %q, want slides", ext, got)
}
+10 -7
View File
@@ -198,16 +198,19 @@ func TestNewParserComponentSkipsNonFamilyParams(t *testing.T) {
}
}
// A canvas saved by the Python frontend stores the Parser params in the
// nested shape {outputs, setups: {pdf: {...}}}; the Go component reads the
// flat shape with file families as top-level keys. The nested group must be
// lifted instead of being treated as a bogus "setups" file family.
func TestSpreadsheetDefaultsDoNotExposeRetiredOption(t *testing.T) {
if _, ok := defaultSetups()["spreadsheet"]["html4excel"]; ok {
t.Fatal("spreadsheet defaults expose the retired option")
}
}
// A canvas can store Parser params as nested setups; lift the families before use.
func TestNewParserComponentFlattensNestedSetups(t *testing.T) {
component, err := NewParserComponent(map[string]any{
"outputs": map[string]any{"html": map[string]any{"type": "string"}},
"setups": map[string]any{
"pdf": map[string]any{"parse_method": "vision"},
"spreadsheet": map[string]any{"html4excel": true},
"spreadsheet": map[string]any{"parse_method": "tcadp"},
},
})
if err != nil {
@@ -221,8 +224,8 @@ func TestNewParserComponentFlattensNestedSetups(t *testing.T) {
if got := parserComponent.setups["pdf"]["parse_method"]; got != "vision" {
t.Errorf("pdf parse_method = %v, want vision (nested setups not flattened)", got)
}
if got := parserComponent.setups["spreadsheet"]["html4excel"]; got != true {
t.Errorf("spreadsheet html4excel = %v, want true (nested setups not flattened)", got)
if got := parserComponent.setups["spreadsheet"]["parse_method"]; got != "tcadp" {
t.Errorf("spreadsheet parse_method = %v, want tcadp (nested setups not flattened)", got)
}
// When both shapes carry the same family, the top-level (Go-native, flat)
@@ -92,7 +92,7 @@ func TestParserComponentCorrectsDOCXUploadedAsDOC(t *testing.T) {
originalLogger := common.Logger
common.Logger = zap.New(core)
t.Cleanup(func() { common.Logger = originalLogger })
for _, suffix := range []string{"doc", "xls", "ppt", "wps", "docx"} {
for _, suffix := range []string{"doc", "xls", "ppt", "docx"} {
t.Run(suffix, func(t *testing.T) {
var messages []string
ctx := runtime.WithProgressMessageCallback(t.Context(), func(_, message string) { messages = append(messages, message) })
@@ -70,9 +70,7 @@
],
"suffix": [
"pptx",
"ppt",
"dps",
"dpt"
"ppt"
]
}
}
@@ -47,7 +47,7 @@ var builtinComponentParamsGolden = map[string]string{
"one": "{\"File\": {}, \"Parser:HipSignsRhyme\": {\"enable_vision_enhancement\": false, \"vlm\": {\"llm_id\": \"\"}, \"doc\": {\"preprocess\": [\"main_content\"], \"suffix\": [\"doc\"]}, \"docx\": {\"preprocess\": [\"main_content\"], \"suffix\": [\"docx\"], \"vlm\": {}}, \"html\": {\"preprocess\": [\"main_content\"], \"suffix\": [\"htm\", \"html\"]}, \"markdown\": {\"preprocess\": [\"main_content\"], \"suffix\": [\"md\", \"markdown\", \"mdx\"], \"vlm\": {}}, \"pdf\": {\"parse_method\": \"DeepDOC\", \"preprocess\": [\"main_content\"], \"suffix\": [\"pdf\"], \"vlm\": {}}, \"spreadsheet\": {\"parse_method\": \"DeepDOC\", \"preprocess\": [\"main_content\"], \"suffix\": [\"xls\", \"xlsx\"], \"vlm\": {}}, \"text&code\": {\"preprocess\": [\"main_content\"], \"suffix\": [\"txt\"]}}, \"OneChunker:DryDrinksVisit\": {}, \"Tokenizer:FrankWeeksListen\": {\"fields\": \"text\", \"filename_embd_weight\": 0.1, \"search_method\": [\"embedding\", \"full_text\"]}, \"Extractor:AutoExtractDefault\": {\"llm_id\": \"\", \"keywords\": {\"top_n\": 0}, \"questions\": {\"top_n\": 0}, \"tags\": {\"top_n\": 0, \"tag_file_id\": \"\"}, \"summary\": {\"enabled\": false}, \"metadata\": {\"enabled\": false, \"metadata\": [], \"built_in_metadata\": []}}}",
"paper": "{\"File\":{},\"Parser:HipSignsRhyme\":{\"enable_vision_enhancement\":false,\"vlm\":{\"llm_id\":\"\"},\"pdf\":{\"enable_multi_column\":true,\"parse_method\":\"DeepDOC\",\"preprocess\":[\"main_content\"],\"suffix\":[\"pdf\"],\"vlm\":{}}},\"TitleChunker:SparklySchoolsTravel\":{\"hierarchy\":0,\"include_heading_content\":false,\"levels\":[[\"^#[^#]\",\"^##[^#]\",\"^###[^#]\",\"^####[^#]\"],[\"第[零一二三四五六七八九十百0-9]+(分?编|部分)\",\"第[零一二三四五六七八九十百0-9]+章\",\"第[零一二三四五六七八九十百0-9]+节\",\"第[零一二三四五六七八九十百0-9]+条\",\"[\\\\((][零一二三四五六七八九十百]+[\\\\))]\"],[\"第[0-9]+章\",\"第[0-9]+节\",\"[0-9]{1,2}[\\\\. 、]\",\"[0-9]{1,2}\\\\.[0-9]{1,2}($|[^a-zA-Z/%~.-])\",\"[0-9]{1,2}\\\\.[0-9]{1,2}\\\\.[0-9]{1,2}\"],[\"第[零一二三四五六七八九十百0-9]+章\",\"第[零一二三四五六七八九十百0-9]+节\",\"[零一二三四五六七八九十百]+[ 、]\",\"[\\\\((][零一二三四五六七八九十百]+[\\\\))]\",\"[\\\\((][0-9]{,2}[\\\\))]\"],[\"PART (ONE|TWO|THREE|FOUR|FIVE|SIX|SEVEN|EIGHT|NINE|TEN)\",\"Chapter (I+V?|VI*|XI|IX|X)\",\"Section [0-9]+\",\"Article [0-9]+\"]],\"hierarchyRules\":[{\"levels\":[{\"expression\":\"^#[^#]\"},{\"expression\":\"^##[^#]\"},{\"expression\":\"^###[^#]\"},{\"expression\":\"^####[^#]\"}]},{\"levels\":[{\"expression\":\"第[零一二三四五六七八九十百0-9]+(分?编|部分)\"},{\"expression\":\"第[零一二三四五六七八九十百0-9]+章\"},{\"expression\":\"第[零一二三四五六七八九十百0-9]+节\"},{\"expression\":\"第[零一二三四五六七八九十百0-9]+条\"},{\"expression\":\"[\\\\((][零一二三四五六七八九十百]+[\\\\))]\"}]},{\"levels\":[{\"expression\":\"第[0-9]+章\"},{\"expression\":\"第[0-9]+节\"},{\"expression\":\"[0-9]{1,2}[\\\\. 、]\"},{\"expression\":\"[0-9]{1,2}\\\\.[0-9]{1,2}($|[^a-zA-Z/%~.-])\"},{\"expression\":\"[0-9]{1,2}\\\\.[0-9]{1,2}\\\\.[0-9]{1,2}\"}]},{\"levels\":[{\"expression\":\"第[零一二三四五六七八九十百0-9]+章\"},{\"expression\":\"第[零一二三四五六七八九十百0-9]+节\"},{\"expression\":\"[零一二三四五六七八九十百]+[ 、]\"},{\"expression\":\"[\\\\((][零一二三四五六七八九十百]+[\\\\))]\"},{\"expression\":\"[\\\\((][0-9]{,2}[\\\\))]\"}]},{\"levels\":[{\"expression\":\"PART (ONE|TWO|THREE|FOUR|FIVE|SIX|SEVEN|EIGHT|NINE|TEN)\"},{\"expression\":\"Chapter (I+V?|VI*|XI|IX|X)\"},{\"expression\":\"Section [0-9]+\"},{\"expression\":\"Article [0-9]+\"}]}],\"groupRules\":[{\"levels\":[{\"expression\":\"^#[^#]\"},{\"expression\":\"^##[^#]\"},{\"expression\":\"^###[^#]\"},{\"expression\":\"^####[^#]\"}]},{\"levels\":[{\"expression\":\"第[零一二三四五六七八九十百0-9]+(分?编|部分)\"},{\"expression\":\"第[零一二三四五六七八九十百0-9]+章\"},{\"expression\":\"第[零一二三四五六七八九十百0-9]+节\"},{\"expression\":\"第[零一二三四五六七八九十百0-9]+条\"},{\"expression\":\"[\\\\((][零一二三四五六七八九十百]+[\\\\))]\"}]},{\"levels\":[{\"expression\":\"第[0-9]+章\"},{\"expression\":\"第[0-9]+节\"},{\"expression\":\"[0-9]{1,2}[\\\\. 、]\"},{\"expression\":\"[0-9]{1,2}\\\\.[0-9]{1,2}($|[^a-zA-Z/%~.-])\"},{\"expression\":\"[0-9]{1,2}\\\\.[0-9]{1,2}\\\\.[0-9]{1,2}\"}]},{\"levels\":[{\"expression\":\"第[零一二三四五六七八九十百0-9]+章\"},{\"expression\":\"第[零一二三四五六七八九十百0-9]+节\"},{\"expression\":\"[零一二三四五六七八九十百]+[ 、]\"},{\"expression\":\"[\\\\((][零一二三四五六七八九十百]+[\\\\))]\"},{\"expression\":\"[\\\\((][0-9]{,2}[\\\\))]\"}]},{\"levels\":[{\"expression\":\"PART (ONE|TWO|THREE|FOUR|FIVE|SIX|SEVEN|EIGHT|NINE|TEN)\"},{\"expression\":\"Chapter (I+V?|VI*|XI|IX|X)\"},{\"expression\":\"Section [0-9]+\"},{\"expression\":\"Article [0-9]+\"}]}],\"hierarchyHierarchy\":\"0\",\"hierarchyGroup\":\"0\",\"method\":\"group\"},\"Tokenizer:GreatCarsWash\":{\"fields\":\"text\",\"filename_embd_weight\":0.1,\"search_method\":[\"embedding\",\"full_text\"]},\"Extractor:AutoExtractDefault\":{\"llm_id\":\"\",\"keywords\":{\"top_n\":0},\"questions\":{\"top_n\":0},\"tags\":{\"top_n\":0,\"tag_file_id\":\"\"},\"summary\":{\"enabled\":false},\"metadata\":{\"enabled\":false,\"metadata\":[],\"built_in_metadata\":[]}}}",
"picture": "{\"File\": {}, \"Parser:ViewsCaptureLight\": {\"enable_vision_enhancement\": false, \"vlm\": {\"llm_id\": \"\"}, \"image\": {\"ocr_enabled\": true, \"preprocess\": [\"main_content\"], \"suffix\": [\"bmp\", \"gif\", \"jpeg\", \"jpg\", \"png\", \"svg\", \"tif\", \"tiff\", \"webp\"]}, \"video\": {\"preprocess\": [\"main_content\"], \"suffix\": [\"3gp\", \"3gpp\", \"avi\", \"flv\", \"mkv\", \"mov\", \"mp4\", \"mpeg\", \"mpg\", \"webm\", \"wmv\"]}}, \"OneChunker:BrightColorsGlow\": {}, \"Tokenizer:SharpLensFocus\": {\"fields\": \"text\", \"filename_embd_weight\": 0.1, \"search_method\": [\"embedding\", \"full_text\"]}, \"Extractor:AutoExtractDefault\": {\"llm_id\": \"\", \"keywords\": {\"top_n\": 0}, \"questions\": {\"top_n\": 0}, \"tags\": {\"top_n\": 0, \"tag_file_id\": \"\"}, \"summary\": {\"enabled\": false}, \"metadata\": {\"enabled\": false, \"metadata\": [], \"built_in_metadata\": []}}}",
"presentation": "{\"File\": {}, \"Parser:HipSignsRhyme\": {\"enable_vision_enhancement\": false, \"vlm\": {\"llm_id\": \"\"}, \"pdf\": {\"parse_method\": \"DeepDOC\", \"preprocess\": [\"main_content\"], \"suffix\": [\"pdf\"], \"vlm\": {}}, \"slides\": {\"parse_method\": \"DeepDOC\", \"preprocess\": [\"main_content\"], \"suffix\": [\"pptx\", \"ppt\", \"dps\", \"dpt\"]}}, \"Tokenizer:TallTreesDance\": {\"fields\": \"text\", \"filename_embd_weight\": 0.1, \"search_method\": [\"embedding\", \"full_text\"]}, \"PageChunker:HappyHillsGlow\": {}, \"Extractor:AutoExtractDefault\": {\"llm_id\": \"\", \"keywords\": {\"top_n\": 0}, \"questions\": {\"top_n\": 0}, \"tags\": {\"top_n\": 0, \"tag_file_id\": \"\"}, \"summary\": {\"enabled\": false}, \"metadata\": {\"enabled\": false, \"metadata\": [], \"built_in_metadata\": []}}}",
"presentation": "{\"File\": {}, \"Parser:HipSignsRhyme\": {\"enable_vision_enhancement\": false, \"vlm\": {\"llm_id\": \"\"}, \"pdf\": {\"parse_method\": \"DeepDOC\", \"preprocess\": [\"main_content\"], \"suffix\": [\"pdf\"], \"vlm\": {}}, \"slides\": {\"parse_method\": \"DeepDOC\", \"preprocess\": [\"main_content\"], \"suffix\": [\"pptx\", \"ppt\"]}}, \"Tokenizer:TallTreesDance\": {\"fields\": \"text\", \"filename_embd_weight\": 0.1, \"search_method\": [\"embedding\", \"full_text\"]}, \"PageChunker:HappyHillsGlow\": {}, \"Extractor:AutoExtractDefault\": {\"llm_id\": \"\", \"keywords\": {\"top_n\": 0}, \"questions\": {\"top_n\": 0}, \"tags\": {\"top_n\": 0, \"tag_file_id\": \"\"}, \"summary\": {\"enabled\": false}, \"metadata\": {\"enabled\": false, \"metadata\": [], \"built_in_metadata\": []}}}",
"qa": "{\"File\": {}, \"Parser:HipSignsRhyme\": {\"enable_vision_enhancement\": false, \"vlm\": {\"llm_id\": \"\"}, \"docx\": {\"preprocess\": [\"main_content\"], \"suffix\": [\"docx\"], \"vlm\": {}}, \"markdown\": {\"preprocess\": [\"main_content\"], \"suffix\": [\"md\", \"markdown\", \"mdx\"], \"vlm\": {}}, \"pdf\": {\"parse_method\": \"DeepDOC\", \"preprocess\": [\"main_content\"], \"suffix\": [\"pdf\"], \"vlm\": {}}, \"spreadsheet\": {\"parse_method\": \"DeepDOC\", \"preprocess\": [\"main_content\"], \"suffix\": [\"xls\", \"xlsx\", \"csv\"], \"vlm\": {}}, \"text&code\": {\"preprocess\": [\"main_content\"], \"suffix\": [\"txt\"]}}, \"Tokenizer:ColdCloudsDream\": {\"fields\": \"text\", \"filename_embd_weight\": 0.1, \"search_method\": [\"embedding\", \"full_text\"]}, \"QAChunker:TidyCloudsThink\": {}}",
"table": "{\"File\": {}, \"Parser:HipSignsRhyme\": {\"enable_vision_enhancement\": false, \"vlm\": {\"llm_id\": \"\"}, \"spreadsheet\": {\"parse_method\": \"DeepDOC\", \"preprocess\": [\"main_content\"], \"suffix\": [\"xls\", \"xlsx\", \"csv\"], \"vlm\": {}, \"column_mode\": \"auto\", \"column_roles\": {}, \"column_names\": []}, \"text&code\": {\"preprocess\": [\"main_content\"], \"suffix\": [\"txt\"]}}, \"TableChunker:FastFoxesJump\": {}, \"Tokenizer:DeepLakesShine\": {\"fields\": \"text\", \"filename_embd_weight\": 0.1, \"search_method\": [\"embedding\", \"full_text\"]}}",
}
-1
View File
@@ -75,7 +75,6 @@ func (p *CSVParser) ConfigureFromSetup(setup map[string]any) {
if v, ok := setup["parse_method"].(string); ok && v != "" {
p.ParseMethod = v
}
deprecatedHTML4Excel(setup, p.String())
deprecatedChunkRows(setup, p.String())
if v, ok := setup["tcadp_apiserver"].(string); ok && v != "" {
p.TCADPAPIServer = v
-25
View File
@@ -3,7 +3,6 @@ package parser
import (
"context"
"fmt"
"reflect"
"strings"
"testing"
@@ -77,30 +76,6 @@ func TestCSVParser_UTF8BOM(t *testing.T) {
}
}
// TestCSVParserHTML4ExcelIsIgnored pins the retirement: html4excel is still
// accepted at the entry (with a deprecation warning) but selects nothing —
// the wire is identical to the default path.
func TestCSVParserHTML4ExcelIsIgnored(t *testing.T) {
data := []byte("Question,Answer\nQ1,A1\n")
plain := NewCSVParser()
plainRes := plain.ParseWithResult(context.Background(), "qa.csv", data)
if plainRes.Err != nil {
t.Fatalf("ParseWithResult failed: %v", plainRes.Err)
}
p := NewCSVParser()
p.ConfigureFromSetup(map[string]any{"html4excel": true})
res := p.ParseWithResult(context.Background(), "qa.csv", data)
if res.Err != nil {
t.Fatalf("ParseWithResult failed: %v", res.Err)
}
if len(res.JSON) != 1 || res.JSON[0].ToMap()["doc_type_kwd"] != "table" {
t.Fatalf("items = %#v, want one table item", res.JSON)
}
if !reflect.DeepEqual(res.JSON, plainRes.JSON) {
t.Errorf("html4excel changed the wire: %v vs %v", res.JSON, plainRes.JSON)
}
}
func TestCSVParser_ConfigureproducedJSON(t *testing.T) {
csvData := []byte("col1,col2\nval1,val2\n")
p := NewCSVParser()
+2 -15
View File
@@ -94,10 +94,8 @@ func trimCells(row []string) []string {
// inside a merged block moves after the block, so every segment owns the
// origins of its Covered slots.
//
// Segmentation is semantic only — sheet boundaries and image anchors, never a
// size budget. The legacy html4excel path pre-cut a fixed 12 rows here, which
// ignored the user's chunk size; that budget belongs to the chunker (see the
// chunker's splitSpreadsheetTable).
// Segmentation follows sheet boundaries and image anchors; the chunker applies
// the configured size budget (see splitSpreadsheetTable).
//
// Every tuple is a spreadsheet position, [sheet, rowStart, rowEnd, colStart,
// colEnd]. The same `positions` field carries PDF layout boxes
@@ -582,17 +580,6 @@ func deprecatedChunkRows(setup map[string]any, parserName string) {
zap.String("parser", parserName), zap.Int("chunk_rows", rows))
}
// deprecatedHTML4Excel reports the retired html4excel option. Both
// spreadsheet builders collapsed into the segmented-HTML wire, so the flag
// selects nothing anymore. Only an enabled flag warns: false is the default
// every parser config carries, and warning there would be noise.
func deprecatedHTML4Excel(setup map[string]any, parserName string) {
if enabled, ok := setup["html4excel"].(bool); ok && enabled {
common.Warn("spreadsheet parser ignored deprecated html4excel; spreadsheet tables are always emitted as segmented HTML",
zap.String("parser", parserName))
}
}
// extractXLSXImages returns the floating and in-cell images anchored to a
// worksheet as structured parser items. Excelize exposes both kinds through
// GetPictureCells/GetPictures; walking the reported anchor cells avoids
@@ -57,38 +57,6 @@ func TestXLSXParserEmitsSegmentedHTMLTable(t *testing.T) {
}
}
// TestXLSXParserHTML4ExcelIsIgnored pins the retirement: html4excel is still
// accepted at the entry (with a deprecation warning) but selects nothing —
// the wire is identical to the default path.
func TestXLSXParserHTML4ExcelIsIgnored(t *testing.T) {
data := newTestXLSX(t, func(f *excelize.File) {
mustSetCell(t, f, "Sheet1", "A1", "Question")
mustSetCell(t, f, "Sheet1", "B1", "Answer")
mustSetCell(t, f, "Sheet1", "A2", "Q1")
mustSetCell(t, f, "Sheet1", "B2", "A1")
})
plain, _ := NewXLSXParser("")
plainRes := plain.ParseWithResult(t.Context(), "qa.xlsx", data)
if plainRes.Err != nil {
t.Fatalf("ParseWithResult: %v", plainRes.Err)
}
p, _ := NewXLSXParser("")
p.ConfigureFromSetup(map[string]any{"html4excel": true})
res := p.ParseWithResult(t.Context(), "qa.xlsx", data)
if res.Err != nil {
t.Fatalf("ParseWithResult: %v", res.Err)
}
if len(res.JSON) != 1 {
t.Fatalf("items = %d, want one atomic table item", len(res.JSON))
}
if res.JSON[0].ToMap()["doc_type_kwd"] != "table" || res.JSON[0].ToMap()["table"] == nil {
t.Fatalf("html4excel item = %#v", res.JSON[0])
}
if !reflect.DeepEqual(res.JSON, plainRes.JSON) {
t.Errorf("html4excel changed the wire: %v vs %v", res.JSON, plainRes.JSON)
}
}
func TestXLSXParserDoesNotPrechunkRows(t *testing.T) {
const dataRows = 257
data := newTestXLSX(t, func(f *excelize.File) {
-1
View File
@@ -58,7 +58,6 @@ func (p *XLSParser) ConfigureFromSetup(setup map[string]any) {
if v, ok := setup["parse_method"].(string); ok && v != "" {
p.ParseMethod = v
}
deprecatedHTML4Excel(setup, p.String())
deprecatedChunkRows(setup, p.String())
if v, ok := setup["tcadp_apiserver"].(string); ok && v != "" {
p.TCADPAPIServer = v
-1
View File
@@ -52,7 +52,6 @@ func (p *XLSXParser) ConfigureFromSetup(setup map[string]any) {
if v, ok := setup["parse_method"].(string); ok && v != "" {
p.ParseMethod = v
}
deprecatedHTML4Excel(setup, p.String())
deprecatedChunkRows(setup, p.String())
if v, ok := setup["tcadp_apiserver"].(string); ok && v != "" {
p.TCADPAPIServer = v
@@ -533,7 +533,7 @@ func isPresentationFile(name *string) bool {
return false
}
ext := strings.ToLower(filepath.Ext(*name))
return ext == ".ppt" || ext == ".pptx" || ext == ".pages" || ext == ".dps" || ext == ".dpt"
return ext == ".ppt" || ext == ".pptx" || ext == ".pages"
}
func validateMetaFields(meta map[string]any) error {
@@ -118,7 +118,7 @@ func TestUpdateDatasetDocumentConfigPatchPreservesOmittedSettings(t *testing.T)
}
func TestUpdateDatasetDocumentRejectsUnsupportedFileFamilyBeforeWrites(t *testing.T) {
for _, filename := range []string{"image.png", "deck.pptx", "deck.pages", "DECK.DPS", "deck.dpt"} {
for _, filename := range []string{"image.png", "deck.pptx", "deck.pages"} {
for _, selection := range []string{"chunk_method", "parser_id"} {
for _, withConfig := range []bool{false, true} {
t.Run(fmt.Sprintf("%s/%s/config=%t", filename, selection, withConfig), func(t *testing.T) {
@@ -41,9 +41,7 @@ func dedicatedDocumentParserID(filetype utility.FileType, filename string) strin
switch {
case strings.HasSuffix(name, ".ppt"),
strings.HasSuffix(name, ".pptx"),
strings.HasSuffix(name, ".pages"),
strings.HasSuffix(name, ".dps"),
strings.HasSuffix(name, ".dpt"):
strings.HasSuffix(name, ".pages"):
return "presentation"
case strings.HasSuffix(name, ".msg"),
strings.HasSuffix(name, ".eml"):
@@ -146,7 +144,7 @@ func parserSelectionColumns(sel *service.ParserSelection) (string, *string) {
// (picture / audio / presentation / email), and failing that to the catch-all
// general pipeline, with the config reseeded from that template. A family the
// pipeline vocabulary cannot name cannot be judged against a declaration: the
// owning pipeline still takes the file, and with no owner (rtf, wps, ...) the
// owning pipeline still takes the file, and with no owner (rtf, ...) the
// dataset's choice is honored. The row then matches the pipeline that actually
// runs it: document parser_config drives both the parser-gap validation and the
// runtime override params, and a row left on a parser that cannot run its file
@@ -28,9 +28,6 @@ func TestDedicatedDocumentParserID(t *testing.T) {
{"pptx routes to presentation", utility.FileTypeDOC, "deck.pptx", "presentation"},
{"legacy ppt routes to presentation", utility.FileTypeDOC, "deck.ppt", "presentation"},
{"pages routes to presentation", utility.FileTypeDOC, "deck.pages", "presentation"},
{"wps presentation dps routes to presentation", utility.FileTypePPT, "deck.dps", "presentation"},
{"wps presentation dpt routes to presentation", utility.FileTypePPT, "deck.dpt", "presentation"},
{"wps presentation dps is case-insensitive", utility.FileTypePPT, "DECK.DPS", "presentation"},
{"presentation extension is case-insensitive", utility.FileTypeDOC, "DECK.PPTX", "presentation"},
{"eml routes to email", utility.FileTypeDOC, "mail.eml", "email"},
{"msg routes to email", utility.FileTypeDOC, "mail.msg", "email"},
@@ -350,15 +347,6 @@ func TestResolveDocumentParser_Priority(t *testing.T) {
wantParserID: "presentation",
wantFamilyIn: "slides",
},
{
name: "wps presentation dps reaches its owner pipeline",
kbParser: "general",
kbConfig: generalParserConfig(),
filename: "deck.dps",
filetype: utility.FileTypePPT,
wantParserID: "presentation",
wantFamilyIn: "slides",
},
{
name: "an unmappable visual extension still reaches picture",
kbParser: "general",
@@ -3348,8 +3348,6 @@ func TestUpdateDatasetDocumentSavesVisionModelAcrossFileTypes(t *testing.T) {
{"image.png", "visual", "general"},
{"deck.pptx", "ppt", "presentation"},
{"deck.pages", "doc", "presentation"},
{"DECK.DPS", "ppt", "presentation"},
{"deck.dpt", "ppt", "presentation"},
{"report.docx", "doc", "manual"},
} {
for _, selection := range []string{"parser_id", "chunk_method"} {
@@ -84,7 +84,7 @@ func TestParseFileContent_DOCXReadsJSONItems(t *testing.T) {
func TestMisnamedOfficeContentExtraction(t *testing.T) {
data := minimalDOCX(t, "Corrected document content")
for _, name := range []string{"renamed.doc", "renamed.wps", "renamed.xls"} {
for _, name := range []string{"renamed.doc", "renamed.xls"} {
t.Run(name, func(t *testing.T) {
content := parseFileContent(t.Context(), name, data)
if !strings.Contains(content, "Corrected document content") || content == string(data) {
+4 -4
View File
@@ -113,17 +113,17 @@ func GetFileType(filename string) FileType {
switch suffix {
case "pdf":
return FileTypePDF
case "xls", "et", "ett":
case "xls":
return FileTypeXLS
case "xlsx":
return FileTypeXLSX
case "csv":
return FileTypeCSV
case "doc", "wps", "wpt":
case "doc":
return FileTypeDOC
case "docx":
return FileTypeDOCX
case "ppt", "dps", "dpt":
case "ppt":
return FileTypePPT
case "pptx":
return FileTypePPTX
@@ -178,7 +178,7 @@ func FilenameType(filename string) FileType {
docExtensions := []string{
"msg", "eml", "doc", "docx", "ppt", "pptx", "yml", "xml", "htm", "json", "jsonl", "ldjson",
"csv", "txt", "ini", "xls", "xlsx", "wps", "wpt", "et", "ett", "dps", "dpt", "rtf", "hlp", "pages", "numbers", "key",
"csv", "txt", "ini", "xls", "xlsx", "rtf", "hlp", "pages", "numbers", "key",
"md", "markdown", "mdx", "py", "js", "java", "c", "cpp", "h", "php", "go", "ts", "sh", "cs", "kt",
"html", "sql", "epub",
}
-120
View File
@@ -1,120 +0,0 @@
//
// Copyright 2026 The InfiniFlow Authors. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
package utility
import "testing"
// wpsRoutes maps a WPS private-format extension (without dot) to the MS-Office
// FileType it must resolve to. WPS reuses the legacy MS-OLE2/CFB binary
// structure, so .wps/.wpt are Word-compatible (DOC), .et/.ett are
// Excel-compatible (XLS), and .dps/.dpt are PowerPoint-compatible (PPT).
var wpsRoutes = []struct {
ext string
want FileType
}{
{"wps", FileTypeDOC},
{"wpt", FileTypeDOC},
{"et", FileTypeXLS},
{"ett", FileTypeXLS},
{"dps", FileTypePPT},
{"dpt", FileTypePPT},
}
// TestGetFileType_WPS_ExactRouting verifies the precise parser-family routing
// for every WPS private extension. This is the gate that actually feeds
// parser.GetParser, so a wrong mapping silently drops the file to text mode.
func TestGetFileType_WPS_ExactRouting(t *testing.T) {
for _, r := range wpsRoutes {
t.Run(r.ext, func(t *testing.T) {
got := GetFileType("sample." + r.ext)
if got != r.want {
t.Errorf("GetFileType(%q) = %q, want %q", "sample."+r.ext, got, r.want)
}
})
}
}
// TestGetFileType_WPS_CaseInsensitiveAndPath ensures case folding and a
// leading directory do not defeat the match (mirrors how real uploads arrive).
func TestGetFileType_WPS_CaseInsensitiveAndPath(t *testing.T) {
cases := []struct {
name string
filename string
want FileType
}{
{"uppercase", "SLIDE.DPT", FileTypePPT},
{"mixed case", "Book.Et", FileTypeXLS},
{"leading dir", "/data/reports/quarter.wps", FileTypeDOC},
{"nested dir", "a/b/c/template.ett", FileTypeXLS},
{"long path mixed case", "/X/Y/Z/DECK.Dps", FileTypePPT},
}
for _, tc := range cases {
t.Run(tc.name, func(t *testing.T) {
got := GetFileType(tc.filename)
if got != tc.want {
t.Errorf("GetFileType(%q) = %q, want %q", tc.filename, got, tc.want)
}
})
}
}
// TestGetFileType_WPS_NoOverMatch guards against accidentally widening the
// match: a non-WPS suffix that merely contains a WPS substring (or a doubled
// extension) must stay OTHER.
func TestGetFileType_WPS_NoOverMatch(t *testing.T) {
cases := []string{
"notes.wpsx", // not .wps
"data.etx", // not .et
"saved.dpts", // not .dpt
"contract.wps.bak",
"slide.dpt.tmp",
}
for _, name := range cases {
t.Run(name, func(t *testing.T) {
if got := GetFileType(name); got != FileTypeOTHER {
t.Errorf("GetFileType(%q) = %q, want %q (must not over-match)", name, got, FileTypeOTHER)
}
})
}
}
// TestFilenameType_WPS_Accepted verifies the upload gate (FilenameType) no
// longer rejects WPS private formats with FileTypeOTHER. FilenameType buckets
// all office documents as FileTypeDOC, consistent with how .ppt/.doc/.xls are
// already handled; the precise family is re-derived downstream by GetFileType.
func TestFilenameType_WPS_Accepted(t *testing.T) {
for _, r := range wpsRoutes {
t.Run(r.ext, func(t *testing.T) {
got := FilenameType("sample." + r.ext)
if got == FileTypeOTHER {
t.Errorf("FilenameType(%q) = %q, want non-OTHER (upload gate must accept)", "sample."+r.ext, got)
}
})
}
}
// TestFilenameType_WPS_DoesNotLoosenGate ensures the new extensions did not
// weaken the gate: a genuinely unknown extension is still rejected.
func TestFilenameType_WPS_DoesNotLoosenGate(t *testing.T) {
for _, name := range []string{"mystery.xyz", "noext", "weird.wpsx"} {
t.Run(name, func(t *testing.T) {
if got := FilenameType(name); got != FileTypeOTHER {
t.Errorf("FilenameType(%q) = %q, want %q (gate must stay strict)", name, got, FileTypeOTHER)
}
})
}
}
-1
View File
@@ -105,7 +105,6 @@ func InitServerTestConfig() *ServerTestConfig {
"delimiter": "\n",
"auto_keywords": 0,
"auto_questions": 0,
"html4excel": false,
"image_context_size": 0,
"table_context_size": 0,
"topn_tags": 3,
@@ -457,7 +457,6 @@ def step_04_set_dataset_settings(
overlap_slider.press("ArrowRight")
set_number_input(page, "ds-settings-parser-auto-keyword-input", 3)
set_number_input(page, "ds-settings-parser-auto-question-input", 2)
set_switch_state(page, "ds-settings-parser-excel-to-html-switch", True)
with step("fill graph and raptor settings"):
page.get_by_test_id("ds-settings-graph-entity-types-add-btn").click()
-1
View File
@@ -51,7 +51,6 @@ DEFAULT_PARSER_CONFIG = {
"delimiter": "\n",
"auto_keywords": 0,
"auto_questions": 0,
"html4excel": False,
"image_context_size": 0,
"table_context_size": 0,
"topn_tags": 3,
@@ -1,70 +0,0 @@
/*
* Copyright 2026 The InfiniFlow Authors. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { useTranslate } from '@/hooks/common-hooks';
import { useFormContext } from 'react-hook-form';
import {
FormControl,
FormField,
FormItem,
FormLabel,
FormMessage,
} from './ui/form';
import { Switch } from './ui/switch';
export function ExcelToHtmlFormField() {
const form = useFormContext();
const { t } = useTranslate('knowledgeDetails');
return (
<FormField
control={form.control}
name="parser_config.html4excel"
render={({ field }) => {
if (typeof field.value === 'undefined') {
// default value set
form.setValue('parser_config.html4excel', false);
}
return (
<FormItem defaultChecked={false} className=" items-center space-y-0 ">
<div className="flex items-center justify-between gap-1">
<FormLabel
tooltip={t('html4excelTip')}
className="text-sm text-text-secondary whitespace-break-spaces w-1/4"
>
{t('html4excel')}
</FormLabel>
<div className="flex-none">
<FormControl>
<Switch
checked={field.value}
onCheckedChange={field.onChange}
data-testid="ds-settings-parser-excel-to-html-switch"
></Switch>
</FormControl>
</div>
</div>
<div className="flex pt-1">
<div className="w-1/4"></div>
<FormMessage />
</div>
</FormItem>
);
}}
/>
);
}
-2
View File
@@ -68,12 +68,10 @@ export const normalizeParserConfig = (
auto_questions,
chunk_token_num,
delimiter,
html4excel,
layout_recognize,
tag_kb_ids,
topn_tags,
filename_embd_weight,
task_page_size,
pages,
children_delimiter,
use_parent_child,
-2
View File
@@ -75,7 +75,6 @@ interface Parserconfig {
from_page?: number;
to_page?: number;
graphrag: Graphrag;
html4excel: boolean;
image_context_size: number;
layout_recognize: string;
llm_id: string;
@@ -123,7 +122,6 @@ export interface IKnowledgeFileParserConfig {
chunk_token_num: number;
layout_recognize: boolean;
pages: number[][];
task_page_size: number;
}
export interface IKnowledgeFile {
-2
View File
@@ -52,13 +52,11 @@ export interface IDocumentInfo {
export interface IParserConfig {
delimiter?: string;
html4excel?: boolean;
layout_recognize?: string;
pages?: any[];
chunk_token_num?: number;
auto_keywords?: number;
auto_questions?: number;
task_page_size?: number;
raptor?: Raptor;
graphrag?: GraphRag;
image_context_window?: number;
-2
View File
@@ -2,11 +2,9 @@ export interface IChangeParserConfigRequestBody {
pages?: number[][];
chunk_token_num?: number;
layout_recognize?: string;
task_page_size?: number;
delimiter?: string;
auto_keywords?: number;
auto_questions?: number;
html4excel?: boolean;
image_table_context_window?: number;
image_context_size?: number;
table_context_size?: number;
-7
View File
@@ -372,10 +372,6 @@ export default {
layoutRecognize: 'محلل قوات الدفاع الشعبي',
layoutRecognizeTip:
'استخدم نموذجًا مرئيًا لتحليل تخطيط PDF لتحديد موقع عناوين المستندات وكتل النص والصور والجداول بشكل فعال. إذا تم اختيار الخيار البسيط، فسيتم استرداد النص العادي فقط في ملف PDF. يرجى ملاحظة أن هذا الخيار يعمل حاليًا فقط مع مستندات PDF.',
taskPageSize: 'حجم صفحة المهمة',
taskPageSizeMessage: 'الرجاء إدخال حجم صفحة المهمة الخاصة بك!',
taskPageSizeTip:
'أثناء التعرف على التخطيط، يتم تقسيم ملف PDF إلى أجزاء ومعالجته بالتوازي لزيادة سرعة المعالجة. تحدد هذه المعلمة حجم كل قطعة. يقلل حجم القطعة الأكبر من احتمالية تقسيم النص المستمر بين الصفحات.',
addPage: 'إضافة صفحة',
greaterThan: 'يجب أن تكون القيمة الحالية أكبر من!',
greaterThanPrevious: 'يجب أن تكون القيمة الحالية أكبر من السابقة!',
@@ -402,9 +398,6 @@ export default {
childrenDelimiter: 'محدد للنص',
childrenDelimiterTip:
'يمكن أن يتكون المحدد أو الفاصل من حرف خاص واحد أو عدة أحرف. إذا كانت هناك أحرف متعددة، فتأكد من أنها محاطة بعلامات التحديد الخلفية (``). على سبيل المثال، إذا قمت بتكوين المحددات الخاصة بك على النحو التالي: \\n`##`;، فسيتم فصل النصوص الخاصة بك عند فواصل الأسطر ورموز التجزئة المزدوجة (##) والفواصل المنقوطة.',
html4excel: 'إكسل إلى HTML',
html4excelTip:
'استخدم مع طريقة التقطيع العامة. عند التعطيل، سيتم تحليل جداول البيانات (XLSX أو XLS(Excel 97-2003)) الموجودة في قاعدة المعرفة إلى أزواج قيمة المفتاح. عند التمكين، سيتم تحليلها إلى جداول HTML، مع تقسيم كل 12 صفًا إذا كان الجدول الأصلي يحتوي على أكثر من 12 صفًا. راجع https://ragflow.io/docs/dataset_configuration#other-format-processing-configuration للحصول على التفاصيل.',
autoKeywords: 'الكلمة الرئيسية التلقائية',
autoKeywordsTip:
'قم باستخراج الكلمات الرئيسية N تلقائيًا لكل مجموعة لزيادة تصنيفها للاستعلامات التي تحتوي على تلك الكلمات الرئيسية. انتبه إلى أنه سيتم استهلاك الرموز المميزة الإضافية بواسطة نموذج الفهرسة المحدد في "التكوين". يمكنك التحقق من الكلمات الأساسية المضافة أو تحديثها لمقطع من قائمة المقاطع. للحصول على التفاصيل، راجع https://ragflow.io/docs/dataset_configuration#content-enhancement-configuration.',
-7
View File
@@ -608,10 +608,6 @@ Nümunə: 1024 ölçülü vektor təsviri olan 1 KB-lıq mesaj ~9 KB yer tutur.
layoutRecognize: 'PDF parseri',
layoutRecognizeTip:
'Sənəd başlıqlarının, mətn bloklarının, şəkillərin və cədvəllərin yerini səmərəli şəkildə müəyyən etmək üçün PDF tərtibatının təhlilində vizual modeldən istifadə edin. Sadə seçim seçilərsə, PDF-dən yalnız adi mətn çıxarılacaq. Nəzərə alın ki, bu seçim hazırda YALNIZ PDF sənədləri üçün işləyir.',
taskPageSize: 'Tapşırıq üzrə səhifə sayı',
taskPageSizeMessage: 'Tapşırıq üzrə səhifə sayını daxil edin!',
taskPageSizeTip:
'Tərtibatın tanınması zamanı emal sürətini artırmaq üçün PDF faylı fraqmentlərə bölünür və paralel emal olunur. Bu parametr hər fraqmentin ölçüsünü təyin edir. Daha böyük fraqment ölçüsü ardıcıl mətnin səhifələr arasında bölünməsi ehtimalını azaldır.',
addPage: 'Səhifə əlavə et',
greaterThan: 'Cari dəyər son dəyərdən böyük olmalıdır!',
greaterThanPrevious: 'Cari dəyər əvvəlki son dəyərdən böyük olmalıdır!',
@@ -643,9 +639,6 @@ Nümunə: 1024 ölçülü vektor təsviri olan 1 KB-lıq mesaj ~9 KB yer tutur.
delimiterPreviewEmpty:
'Ayırıcı yoxdur — mətn yalnız ölçüsünə görə hissələrə bölünəcək.',
delimiterPreviewCount: '({{count}})',
html4excel: 'Excel-dən HTML-ə',
html4excelTip:
'Ümumi hissələrə bölmə üsulu ilə istifadə edin. Söndürüldükdə verilənlər dəstindəki elektron cədvəllər (XLSX və ya XLS(Excel 97-2003)) açar-dəyər cütlərinə çevriləcək. Aktivləşdirildikdə isə HTML cədvəllərinə çevriləcək və ilkin cədvəldə 12-dən çox sətir varsa, hər 12 sətirdən bir bölünəcək. Ətraflı məlumat üçün https://ragflow.io/docs/dataset_configuration#other-format-processing-configuration ünvanına baxın.',
autoKeywords: 'Çıxarılacaq açar sözlərin sayı',
autoKeywordsTip:
"Hər hissə üçün avtomatik olaraq N açar söz çıxarır ki, həmin sözləri ehtiva edən sorğularda hissələrin sıralamadakı yeri yüksəlsin. Nəzərə alın ki, 'Konfiqurasiya' bölməsində göstərilən indeksləşdirmə modeli əlavə tokenlər sərf edəcək. Hissəyə əlavə edilmiş açar sözləri hissələr siyahısından yoxlaya və ya yeniləyə bilərsiniz. Ətraflı məlumat üçün https://ragflow.io/docs/dataset_configuration#content-enhancement-configuration ünvanına baxın.",
-5
View File
@@ -365,9 +365,6 @@ export default {
layoutRecognize: 'PDF парсер',
layoutRecognizeTip:
'Използвайте визуален модел за анализ на оформлението на PDF, за ефективно разпознаване на заглавия, текстови блокове, изображения и таблици. Ако е избрана опцията naive, ще бъде извлечен само обикновеният текст от PDF. Моля, имайте предвид, че тази опция в момента работи САМО за PDF документи.',
taskPageSize: 'Размер на страница за задача',
taskPageSizeMessage: 'Моля, въведете размер на страница за задача!',
taskPageSizeTip: `По време на разпознаването на оформлението PDF файлът се разделя на части и се обработва паралелно за увеличаване на скоростта. Този параметър задава размера на всяка част. По-голям размер намалява вероятността от разделяне на непрекъснат текст между страниците.`,
addPage: 'Добави страница',
greaterThan: 'Текущата стойност трябва да е по-голяма от до!',
greaterThanPrevious:
@@ -393,8 +390,6 @@ export default {
childrenDelimiter: 'Разделител за текст',
childrenDelimiterTip:
'Разделителят може да се състои от един или повече специални символа. Ако са повече символи, уверете се, че са оградени с обратни кавички (``). Например, ако конфигурирате разделителите си така: \\n`##`;, текстовете ви ще бъдат разделени при нов ред, двоен хеш (##) и точка и запетая.',
html4excel: 'Excel към HTML',
html4excelTip: `Използвайте с метода за разделяне General. Когато е деактивирано, електронните таблици (XLSX или XLS(Excel 97-2003)) в базата от знания ще бъдат обработени като двойки ключ-стойност. Когато е активирано, те ще бъдат обработени като HTML таблици, разделяйки всеки 12 реда, ако оригиналната таблица има повече от 12 реда. Вижте https://ragflow.io/docs/dataset_configuration#other-format-processing-configuration за подробности.`,
autoKeywords: 'Авто-ключови думи',
autoKeywordsTip: `Автоматично извлича N ключови думи за всеки фрагмент, за да увеличи класирането им за заявки, съдържащи тези ключови думи. Имайте предвид, че допълнителни токени ще бъдат консумирани от индексиращия модел, указан в 'Конфигурация'. Можете да проверите или актуализирате добавените ключови думи за фрагмент от списъка с фрагменти. За подробности вижте https://ragflow.io/docs/dataset_configuration#content-enhancement-configuration.`,
autoQuestions: 'Авто-въпроси',
-7
View File
@@ -363,10 +363,6 @@ Beispiel: Eine 1 KB Nachricht mit 1024-dim Einbettung verwendet ~9 KB. Das Stand
layoutRecognize: 'Dokumentenparser',
layoutRecognizeTip:
'Verwendet ein visuelles Modell für die PDF-Layout-Analyse, um Dokumententitel, Textblöcke, Bilder und Tabellen effektiv zu lokalisieren. Wenn die einfache Option gewählt wird, wird nur der reine Text im PDF abgerufen. Bitte beachten Sie, dass diese Option derzeit NUR für PDF-Dokumente funktioniert. Weitere Informationen finden Sie unter https://ragflow.io/docs/dataset_configuration#document-parsing-configuration.',
taskPageSize: 'Aufgabenseitengröße',
taskPageSizeMessage: 'Bitte geben Sie die Größe der Aufgabenseite ein!',
taskPageSizeTip:
'Während der Layouterkennung wird eine PDF-Datei in Chunks aufgeteilt und parallel verarbeitet, um die Verarbeitungsgeschwindigkeit zu erhöhen. Dieser Parameter legt die Größe jedes Chunks fest. Eine größere Chunk-Größe verringert die Wahrscheinlichkeit, dass fortlaufender Text zwischen den Seiten aufgeteilt wird.',
addPage: 'Seite hinzufügen',
greaterThan: 'Der aktuelle Wert muss größer als "bis" sein!',
greaterThanPrevious:
@@ -395,9 +391,6 @@ Beispiel: Eine 1 KB Nachricht mit 1024-dim Einbettung verwendet ~9 KB. Das Stand
childrenDelimiter: 'Trennzeichen für Text',
childrenDelimiterTip:
'Ein Trennzeichen oder Separator kann aus einem oder mehreren Sonderzeichen bestehen. Bei mehreren Zeichen stellen Sie sicher, dass sie in Backticks (` `) eingeschlossen sind. Wenn Sie beispielsweise Ihre Trennzeichen so konfigurieren: \\n`##`;, dann werden Ihre Texte an Zeilenumbrüchen, doppelten Rautenzeichen (##) oder Semikolons getrennt.',
html4excel: 'Excel zu HTML',
html4excelTip:
'Verwenden Sie dies zusammen mit der General-Schnittmethode. Wenn deaktiviert, werden Tabellenkalkulationsdateien (XLSX, XLS (Excel 97-2003)) zeilenweise in Schlüssel-Wert-Paare analysiert. Wenn aktiviert, werden Tabellenkalkulationsdateien in HTML-Tabellen umgewandelt. Wenn die ursprüngliche Tabelle mehr als 12 Zeilen enthält, teilt das System sie automatisch alle 12 Zeilen in mehrere HTML-Tabellen auf. Für weitere Informationen siehe https://ragflow.io/docs/dataset_configuration#other-format-processing-configuration.',
autoKeywords: 'Auto-Schlüsselwort',
autoKeywordsTip:
'Extrahieren Sie automatisch N Schlüsselwörter für jeden Abschnitt, um deren Ranking in Abfragen mit diesen Schlüsselwörtern zu verbessern. Beachten Sie, dass zusätzliche Tokens vom in den "Systemmodelleinstellungen" angegebenen Chat-Modell verbraucht werden. Sie können die hinzugefügten Schlüsselwörter eines Abschnitts in der Abschnittsliste überprüfen oder aktualisieren. Für weitere Informationen siehe https://ragflow.io/docs/dataset_configuration#content-enhancement-configuration.',
-5
View File
@@ -642,9 +642,6 @@ Example: A 1 KB message with 1024-dim embedding uses ~9 KB. The 5 MB default lim
layoutRecognize: 'PDF parser',
layoutRecognizeTip:
'Use a visual model for PDF layout analysis to effectively locate document titles, text blocks, images, and tables. If the naive option is chosen, only the plain text in the PDF will be retrieved. Please note that this option currently works ONLY for PDF documents.',
taskPageSize: 'Task page size',
taskPageSizeMessage: 'Please input your task page size!',
taskPageSizeTip: `During layout recognition, a PDF file is split into chunks and processed in parallel to increase processing speed. This parameter sets the size of each chunk. A larger chunk size reduces the likelihood of splitting continuous text between pages.`,
addPage: 'Add page',
greaterThan: 'The current value must be greater than to!',
greaterThanPrevious:
@@ -675,8 +672,6 @@ Example: A 1 KB message with 1024-dim embedding uses ~9 KB. The 5 MB default lim
'No delimiters — text will be chunked by size only.',
delimiterPreviewCount: '({{count}})',
html4excel: 'Excel to HTML',
html4excelTip: `Use with the General chunking method. When disabled, spreadsheets (XLSX or XLS(Excel 97-2003)) in the dataset will be parsed into key-value pairs. When enabled, they will be parsed into HTML tables, splitting every 12 rows if the original table has more than 12 rows. See https://ragflow.io/docs/dataset_configuration#other-format-processing-configuration for details.`,
autoKeywords: 'Number of keywords to extract',
autoKeywordsTip: `Automatically extract N keywords for each chunk to increase their ranking for queries containing those keywords. Be aware that extra tokens will be consumed by the indexing model specified in 'Configuration'. You can check or update the added keywords for a chunk from the chunk list. For details, see https://ragflow.io/docs/dataset_configuration#content-enhancement-configuration.`,
autoQuestions: 'Auto-question number',
-6
View File
@@ -143,10 +143,6 @@ export default {
layoutRecognize: 'Reconocimiento de disposición',
layoutRecognizeTip:
'Usa modelos visuales para el análisis de disposición y así identificar mejor la estructura del documento, encontrar dónde están los títulos, bloques de texto, imágenes y tablas. Sin esta función, solo se obtendrá el texto plano del PDF. Para más información, consulte https://ragflow.io/docs/dataset_configuration#document-parsing-configuration.',
taskPageSize: 'Tamaño de la tarea por página',
taskPageSizeMessage:
'¡Por favor ingresa el tamaño de la tarea por página',
taskPageSizeTip: `Si usas el reconocimiento de disposición, el archivo PDF se dividirá en grupos de páginas consecutivas. El análisis de disposición se realizará en paralelo entre los grupos para aumentar la velocidad de procesamiento. El 'Tamaño de tarea por página' determina el tamaño de los grupos. Cuanto mayor sea el tamaño de la página, menor será la posibilidad de dividir texto continuo entre páginas en diferentes fragmentos.`,
addPage: 'Agregar página',
greaterThan: 'El valor actual debe ser mayor que el valor final.',
greaterThanPrevious: 'El valor actual debe ser mayor que el anterior.',
@@ -164,8 +160,6 @@ export default {
topK: 'Top-K',
topKTip: `Utilizado junto con el Rerank model, esta configuración define el número de fragmentos de texto que se enviarán al modelo reranking especificado.`,
delimiter: `Delimitadores para segmentación de texto`,
html4excel: 'Excel a HTML',
html4excelTip: `Usar junto con el método de fragmentación General. Cuando está desactivado, los archivos de hoja de cálculo (XLSX, XLS (Excel 97-2003)) se analizan línea por línea como pares clave-valor. Cuando está activado, los archivos de hoja de cálculo se convierten en tablas HTML. Si la tabla original tiene más de 12 filas, el sistema la dividirá automáticamente en varias tablas HTML cada 12 filas. Para más información, consulte https://ragflow.io/docs/dataset_configuration#other-format-processing-configuration.`,
},
knowledgeConfiguration: {
-7
View File
@@ -429,10 +429,6 @@ export default {
layoutRecognize: 'Analyseur PDF',
layoutRecognizeTip:
"Utilise un modèle visuel pour détecter les titres, blocs de texte, images et tableaux dans les PDF. Si l'option naïve est choisie, seul le texte brut est extrait. Ne fonctionne que sur les fichiers PDF.",
taskPageSize: 'Taille de page par tâche',
taskPageSizeMessage: 'Veuillez saisir une taille de page pour la tâche !',
taskPageSizeTip:
'Pendant la reconnaissance, un fichier PDF est divisé en segments traités en parallèle. Une taille plus grande réduit les coupures de texte entre pages.',
addPage: 'Ajouter une page',
greaterThan: 'La valeur actuelle doit être supérieure à "à" !',
greaterThanPrevious:
@@ -453,9 +449,6 @@ export default {
delimiter: 'Délimiteur de texte',
delimiterTip:
'Un délimiteur peut être un ou plusieurs caractères spéciaux. Pour plusieurs caractères, encadrez-les de backticks (``). Ex : \\n`##`;',
html4excel: 'Excel vers HTML',
html4excelTip:
'Utilisé avec la méthode "générale". Si désactivé, les tableaux sont convertis en paires clé-valeur. Sinon, ils deviennent des tableaux HTML divisés toutes les 12 lignes.',
autoKeywords: 'Mots-clés automatiques',
autoKeywordsTip:
'Extrait automatiquement N mots-clés par segment. Consomme des tokens. Voir la documentation : https://ragflow.io/docs/dataset_configuration#content-enhancement-configuration.',
-5
View File
@@ -148,9 +148,6 @@ export default {
layoutRecognize: 'Pengenalan tata letak',
layoutRecognizeTip:
'Gunakan model visual untuk analisis tata letak untuk lebih mengidentifikasi struktur dokumen, menemukan di mana judul, blok teks, gambar, and tabel berada. Tanpa fitur ini, hanya teks biasa dari PDF yang dapat diperoleh. Untuk informasi lebih lanjut, lihat https://ragflow.io/docs/dataset_configuration#document-parsing-configuration.',
taskPageSize: 'Ukuran halaman tugas',
taskPageSizeMessage: 'Silakan masukkan ukuran halaman tugas Anda!',
taskPageSizeTip: `Jika menggunakan pengenalan tata letak, file PDF akan dibagi menjadi kelompok berturut-turut. Analisis tata letak akan dilakukan secara paralel antar kelompok untuk meningkatkan kecepatan pemrosesan. 'Ukuran halaman tugas' menentukan ukuran kelompok. Semakin besar ukuran halaman, semakin kecil kemungkinan teks berkelanjutan antara halaman dibagi menjadi potongan yang berbeda.`,
addPage: 'Tambah halaman',
greaterThan: 'Nilai saat ini harus lebih besar dari!',
greaterThanPrevious: 'Nilai saat ini harus lebih besar dari sebelumnya!',
@@ -168,8 +165,6 @@ export default {
topK: 'Top-K',
topKTip: `Digunakan bersama dengan Rerank model, pengaturan ini menentukan jumlah potongan teks yang akan dikirim ke model reranking yang ditentukan.`,
delimiter: `Pemisah untuk segmentasi teks`,
html4excel: 'Excel ke HTML',
html4excelTip: `Gunakan bersama dengan metode pemotongan General. Ketika dinonaktifkan, file spreadsheet (XLSX, XLS (Excel 97-2003)) akan dianalisis baris demi baris menjadi pasangan kunci-nilai. Ketika diaktifkan, file spreadsheet akan dianalisis menjadi tabel HTML. Jika tabel asli memiliki lebih dari 12 baris, sistem akan secara otomatis membagi menjadi beberapa tabel HTML setiap 12 baris. Untuk informasi lebih lanjut, lihat https://ragflow.io/docs/dataset_configuration#other-format-processing-configuration.`,
},
knowledgeConfiguration: {
parsingMode: 'Mode parsing',
-5
View File
@@ -555,9 +555,6 @@ Esempio: un messaggio di 1 KB con embedding a 1024 dimensioni usa ~9 KB. Il limi
layoutRecognize: 'Parser PDF',
layoutRecognizeTip:
"Usa un modello visivo per l'analisi del layout PDF per individuare efficacemente titoli, blocchi di testo, immagini e tabelle. Se viene scelta l'opzione naive, sarà recuperato solo il testo semplice nel PDF. Nota che questa opzione attualmente funziona SOLO per i documenti PDF.",
taskPageSize: 'Dimensione pagina attività',
taskPageSizeMessage: 'Inserisci la dimensione della pagina attività!',
taskPageSizeTip: `Durante il riconoscimento del layout, un file PDF viene suddiviso in chunk ed elaborato in parallelo per aumentare la velocità di elaborazione. Questo parametro imposta la dimensione di ogni chunk. Una dimensione chunk maggiore riduce la probabilità di dividere il testo continuo tra le pagine.`,
addPage: 'Aggiungi pagina',
greaterThan: 'Il valore attuale deve essere maggiore di!',
greaterThanPrevious:
@@ -584,8 +581,6 @@ Esempio: un messaggio di 1 KB con embedding a 1024 dimensioni usa ~9 KB. Il limi
childrenDelimiterTip:
'Un delimitatore può consistere in uno o più caratteri speciali. Se sono più caratteri, assicurati che siano racchiusi tra backtick (``). Ad esempio, se configuri i tuoi delimitatori così: \\n`##`;, i tuoi testi saranno separati a interruzioni di riga, doppio cancelletto (##) e punto e virgola.',
html4excel: 'Excel in HTML',
html4excelTip: `Usa con il metodo di chunking Generale. Quando disabilitato, i fogli di calcolo (XLSX o XLS (Excel 97-2003)) nel dataset saranno analizzati in coppie chiave-valore. Quando abilitato, saranno analizzati in tabelle HTML, dividendo ogni 12 righe se la tabella originale ha più di 12 righe. Vedi https://ragflow.io/docs/dataset_configuration#other-format-processing-configuration per i dettagli.`,
autoKeywords: 'Parole chiave automatiche',
autoKeywordsTip: `Estrai automaticamente N parole chiave per ogni chunk per aumentare il loro ranking per le query contenenti quelle parole chiave. Tieni presente che saranno consumati token extra dal modello di indicizzazione specificato in 'Configurazione'. Puoi controllare o aggiornare le parole chiave aggiunte per un chunk dalla lista dei chunk. Per i dettagli, vedi https://ragflow.io/docs/dataset_configuration#content-enhancement-configuration.`,
autoQuestions: 'Domande automatiche',
-5
View File
@@ -224,9 +224,6 @@ export default {
layoutRecognizeTip:
'レイアウト分析のためにビジュアルモデルを使用し、文書の構造を理解しやすくします。詳細については、https://ragflow.io/docs/dataset_configuration#document-parsing-configuration をご覧ください。',
taskPageSize: 'タスクページサイズ',
taskPageSizeMessage: 'タスクページサイズを入力してください',
taskPageSizeTip: `レイアウト認識中、PDFファイルはチャンクに分割され、処理速度を向上させるために並列処理されます。`,
addPage: 'ページを追加',
greaterThan: '現在の値は終了ページより大きくなければなりません',
@@ -253,8 +250,6 @@ export default {
delimiterTip:
'デリミタやセパレータは、一つまたは複数の特殊文字で構成できます。複数の文字の場合、バッククォート(``)で囲むようにしてください。たとえば、デリミタを次のように設定した場合: \\n ## ;、テキストは行末、ダブルハッシュ記号(##)、およびセミコロンで分割されます。デリミタを設定する前に、テキストのセグメンテーションとチャンキングのメカニズムを理解していることを確認してください。',
html4excel: 'ExcelをHTMLに変換',
html4excelTip: `General切片方法と併用してください。無効の場合、表計算ファイル(XLSX、XLS(Excel 97-2003))は行ごとにキーと値のペアとして解析されます。有効の場合、表計算ファイルはHTML表として解析されます。元の表が12行を超える場合、システムは自動的に12行ごとに複数のHTML表に分割します。詳細については、https://ragflow.io/docs/dataset_configuration#other-format-processing-configuration をご覧ください。`,
autoKeywords: '自動キーワード',
autoKeywordsTip: `各チャンクに含まれるキーワードのランキングを向上させるために、自動的にN個のキーワードを抽出します。「システムモデル設定」で指定されたチャットモデルによって追加のトークンが消費されることに注意してください。チャンクリストから追加されたキーワードを確認または更新することができます。詳細は https://ragflow.io/docs/dataset_configuration#content-enhancement-configuration をご覧ください。`,
autoQuestions: '自動質問',
-5
View File
@@ -544,9 +544,6 @@ export default {
layoutRecognize: 'PDF 파서',
layoutRecognizeTip:
'비전 모델을 사용하여 PDF 레이아웃을 분석하고 문서 제목, 텍스트 블록, 이미지 및 표를 효과적으로 찾습니다. Naive 옵션을 선택하면 PDF의 일반 텍스트만 검색됩니다. 이 옵션은 현재 PDF 문서에만 적용됩니다.',
taskPageSize: '작업 페이지 크기',
taskPageSizeMessage: '작업 페이지 크기를 입력해 주세요',
taskPageSizeTip: `레이아웃 인식 중 PDF 파일은 처리 속도를 높이기 위해 chunk로 분할되어 병렬로 처리됩니다. 이 파라미터는 각 chunk의 크기를 설정합니다. chunk 크기가 클수록 페이지 간에 연속적인 텍스트가 분리될 가능성이 낮아집니다.`,
addPage: '페이지 추가',
greaterThan: '현재 값은 끝 값보다 커야 합니다',
greaterThanPrevious: '현재 값은 이전 끝 값보다 커야 합니다',
@@ -572,8 +569,6 @@ export default {
childrenDelimiterTip:
'구분자는 하나 또는 여러 특수 문자로 구성될 수 있습니다. 여러 문자인 경우 백틱(` `)으로 감싸야 합니다. 예를 들어 구분자를 \\n`##`;으로 설정하면 줄바꿈, 이중 해시 기호(##), 세미콜론에서 텍스트가 분리됩니다.',
html4excel: 'Excel을 HTML로',
html4excelTip: `일반 chunking 방법과 함께 사용합니다. 비활성화 시 데이터셋의 스프레드시트(XLSX 또는 XLS(Excel 97-2003))는 키-값 쌍으로 파싱됩니다. 활성화 시 HTML 표로 파싱되며, 원래 표가 12행을 초과하면 12행마다 분리됩니다. 자세한 내용은 https://ragflow.io/docs/dataset_configuration#other-format-processing-configuration 을 참조하세요.`,
autoKeywords: '자동 키워드',
autoKeywordsTip: `각 chunk에서 N개의 키워드를 자동으로 추출하여 해당 키워드가 포함된 쿼리에서의 순위를 높입니다. '설정'에서 지정된 인덱싱 모델이 추가 토큰을 소비합니다. chunk 목록에서 추가된 키워드를 확인하거나 업데이트할 수 있습니다. 자세한 내용은 https://ragflow.io/docs/dataset_configuration#content-enhancement-configuration 을 참조하세요.`,
autoQuestions: '자동 질문',
-7
View File
@@ -151,10 +151,6 @@ export default {
layoutRecognize: 'Reconhecimento de layout',
layoutRecognizeTip:
'Use modelos visuais para análise de layout para entender melhor a estrutura do documento e localizar efetivamente títulos, blocos de texto, imagens e tabelas. Se desativado, apenas o texto simples no PDF será recuperado. Para mais informações, acesse https://ragflow.io/docs/dataset_configuration#document-parsing-configuration.',
taskPageSize: 'Tamanho da página da tarefa',
taskPageSizeMessage: 'Por favor, insira o tamanho da página da tarefa!',
taskPageSizeTip:
'Durante o reconhecimento de layout, um arquivo PDF é dividido em fragmentos e processado em paralelo para aumentar a velocidade de processamento. Este parâmetro define o tamanho de cada fragmento. Um tamanho de fragmento maior reduz a probabilidade de dividir texto contínuo entre páginas.',
addPage: 'Adicionar página',
greaterThan: 'O valor atual deve ser maior que!',
greaterThanPrevious: 'O valor atual deve ser maior que o anterior!',
@@ -177,9 +173,6 @@ export default {
delimiter: 'Delimitadores para segmentação de texto',
delimiterTip:
'Um delimitador ou separador pode consistir em um ou vários caracteres especiais. Se for múltiplos caracteres, certifique-se de que estejam entre crases (``). Por exemplo, se você configurar seus delimitadores assim: \\n`##`;, seus textos serão separados em quebras de linha, símbolos de hash duplo (##) ou ponto e vírgula. Defina os delimitadores apenas após entender o mecanismo de segmentação e particionamento de texto.',
html4excel: 'Excel para HTML',
html4excelTip:
'Use em conjunto com o método de fragmentação General. Quando desativado, arquivos de planilhas (XLSX, XLS (Excel 97-2003)) serão analisados linha por linha como pares chave-valor. Quando ativado, os arquivos de planilhas serão convertidos em tabelas HTML. Se a tabela original tiver mais de 12 linhas, o sistema dividirá automaticamente em várias tabelas HTML a cada 12 linhas. Para mais informações, consulte https://ragflow.io/docs/dataset_configuration#other-format-processing-configuration.',
autoKeywords: 'Palavras-chave automáticas',
autoKeywordsTip:
'Extraia automaticamente N palavras-chave de cada bloco para aumentar sua classificação em consultas que contenham essas palavras-chave. Esteja ciente de que o modelo de chat especificado nas "Configurações do modelo do sistema" consumirá tokens adicionais. Você pode verificar ou atualizar as palavras-chave adicionadas a um bloco na lista de blocos. Para mais detalhes, consulte https://ragflow.io/docs/dataset_configuration#content-enhancement-configuration.',
-5
View File
@@ -383,9 +383,6 @@ export default {
layoutRecognize: 'PDF парсер',
layoutRecognizeTip:
'Используйте визуальную модель для анализа макета PDF для эффективного определения заголовков документов, текстовых блоков, изображений и таблиц. Если выбран наивный вариант, будет извлекаться только простой текст из PDF. Обратите внимание, что эта опция в настоящее время работает ТОЛЬКО для PDF-документов.',
taskPageSize: 'Размер страницы задачи',
taskPageSizeMessage: 'Пожалуйста, введите размер страницы задачи!',
taskPageSizeTip: `Во время распознавания макета PDF-файл разбивается на части и обрабатывается параллельно для увеличения скорости обработки. Этот параметр устанавливает размер каждой части. Больший размер части снижает вероятность разделения непрерывного текста между страницами.`,
addPage: 'Добавить страницу',
greaterThan: 'Текущее значение должно быть больше, чем "до"!',
greaterThanPrevious:
@@ -412,8 +409,6 @@ export default {
childrenDelimiterTip:
'Разделитель может состоять из одного или нескольких специальных символов. Если это несколько символов, убедитесь, что они заключены в обратные кавычки (``). Например, если вы настроите разделители так: \\n`##`;, то ваш текст будет разделен по переводам строк, двойным символам решетки (##) и точкам с запятой.',
html4excel: 'Excel в HTML',
html4excelTip: `Используется с методом чанкинга General. Когда отключено, электронные таблицы (XLSX или XLS (Excel 97-2003)) в базе знаний будут разобраны в пары ключ-значение. Когда включено, они будут разобраны в HTML таблицы, разделяя каждые 12 строк, если исходная таблица имеет более 12 строк. Подробности см. на https://ragflow.io/docs/dataset_configuration#other-format-processing-configuration.`,
autoKeywords: 'Авто-ключевые слова',
autoKeywordsTip: `Автоматически извлекает N ключевых слов для каждого чанка, чтобы повысить их рейтинг для запросов, содержащих эти ключевые слова. Имейте в виду, что дополнительные токены будут потребляться чат-моделью, указанной в 'Системных настройках модели'. Вы можете проверить или обновить добавленные ключевые слова для чанка из списка чанков. Подробности см. на https://ragflow.io/docs/dataset_configuration#content-enhancement-configuration.`,
autoQuestions: 'Авто-вопросы',
-5
View File
@@ -636,9 +636,6 @@ Prosedürel Bellek: Öğrenilen beceriler, alışkanlıklar ve otomatik prosedü
layoutRecognize: 'PDF ayrıştırıcı',
layoutRecognizeTip:
"PDF düzen analizi için görsel model kullanın. Belge başlıklarını, metin bloklarını, görüntüleri ve tabloları etkili bir şekilde konumlandırır. Naive seçeneği seçilirse yalnızca PDF'deki düz metin alınır. Bu seçeneğin şu anda YALNIZCA PDF belgeleri için çalıştığını lütfen unutmayın.",
taskPageSize: 'Görev sayfa boyutu',
taskPageSizeMessage: 'Lütfen görev sayfa boyutunu girin!',
taskPageSizeTip: `Düzen tanıma sırasında bir PDF dosyası parçalara bölünür ve işleme hızını artırmak için paralel olarak işlenir. Bu parametre her parçanın boyutunu ayarlar. Daha büyük parça boyutu, sayfalar arasındaki sürekli metni bölme olasılığını azaltır.`,
addPage: 'Sayfa ekle',
greaterThan: 'Geçerli değer bitiş değerinden büyük olmalıdır!',
greaterThanPrevious:
@@ -668,8 +665,6 @@ Prosedürel Bellek: Öğrenilen beceriler, alışkanlıklar ve otomatik prosedü
delimiterPreviewEmpty:
'Sınırlayıcı yok — metin yalnızca boyuta göre parçalanacak.',
delimiterPreviewCount: '({{count}})',
html4excel: "Excel'i HTML'ye dönüştür",
html4excelTip: `Genel parçalama yöntemi ile kullanın. Devre dışı bırakıldığında, datasetteki elektronik tablolar (XLSX veya XLS(Excel 97-2003)) anahtar-değer çiftlerine ayrıştırılır. Etkinleştirildiğinde HTML tablolarına ayrıştırılır; orijinal tabloda 12'den fazla satır varsa her 12 satırda bölünür. Ayrıntılar için bkz. https://ragflow.io/docs/dataset_configuration#other-format-processing-configuration.`,
autoKeywords: 'Otomatik anahtar kelime',
autoKeywordsTip: `Her parça için otomatik olarak N anahtar kelime çıkarır ve o anahtar kelimeleri içeren sorgular için sıralamalarını artırır. 'Yapılandırma'da belirtilen indeksleme modeli tarafından ekstra tokenlar tüketileceğini unutmayın. Bir parçaya eklenen anahtar kelimeleri parça listesinden kontrol edebilir veya güncelleyebilirsiniz. Ayrıntılar için bkz. https://ragflow.io/docs/dataset_configuration#content-enhancement-configuration.`,
autoQuestions: 'Otomatik soru',
-7
View File
@@ -613,10 +613,6 @@ export default {
layoutRecognize: 'PDF parseri',
layoutRecognizeTip:
'PDF maketini tahlil qilish uchun vizual modeldan foydalanib, hujjat sarlavhalari, matn bloklari, rasmlari va jadvallarini aniq joylashtiradi. Naive varianti tanlansa, PDFdan faqat oddiy matn olinadi. E’tibor bering, bu variant hozircha FAQAT PDF hujjatlari uchun ishlaydi.',
taskPageSize: 'Vazifa sahifa hajmi',
taskPageSizeMessage: 'Iltimos, vazifa sahifa hajmini kiriting!',
taskPageSizeTip:
'Maketni aniqlash paytida PDF fayli bo‘laklarga bo‘linadi va qayta ishlash tezligini oshirish uchun parallel qayta ishlanadi. Bu parametr har bir bo‘lak hajmini belgilaydi. Kattaroq bo‘lak hajmi sahifalar orasidagi uzluksiz matnni bo‘lib yuborish ehtimolini kamaytiradi.',
addPage: 'Sahifa qo‘shish',
greaterThan: 'Joriy qiymat "gacha" qiymatidan katta bo‘lishi kerak!',
greaterThanPrevious:
@@ -648,9 +644,6 @@ export default {
delimiterPreviewEmpty:
'Ajratgichlar yo‘q — matn faqat hajm bo‘yicha bo‘laklanadi.',
delimiterPreviewCount: '({{count}})',
html4excel: 'Excel’dan HTML’ga',
html4excelTip:
'Umumiy bo‘laklash usuli bilan ishlatiladi. O‘chirilganda, to‘plamdagi elektron jadvallar (XLSX yoki XLS (Excel 97-2003)) kalit-qiymat juftliklariga tahlil qilinadi. Yoqilganda, ular HTML jadvallarga tahlil qilinadi va agar original jadval 12 qatordan ko‘p bo‘lsa, har 12 qatorda bo‘linadi. Tafsilotlar uchun https://ragflow.io/docs/dataset_configuration#other-format-processing-configuration ga qarang.',
autoKeywords: 'Ajratib olinadigan kalit so‘zlar soni',
autoKeywordsTip:
'Har bir bo‘lak uchun N ta kalit so‘zni avtomatik ajratib olib, ushbu kalit so‘zlarni o‘z ichiga olgan so‘rovlar uchun ularning reytingini oshiradi. ‘Sozlash’da belgilangan indekslash modeli tomonidan qo‘shimcha tokenlar sarflanishini yodda tuting. Bo‘lak uchun qo‘shilgan kalit so‘zlarni bo‘laklar ro‘yxatidan tekshirishingiz yoki yangilashingiz mumkin. Tafsilotlar uchun https://ragflow.io/docs/dataset_configuration#content-enhancement-configuration ga qarang.',
-5
View File
@@ -154,9 +154,6 @@ export default {
layoutRecognize: 'Nhận dạng bố cục',
layoutRecognizeTip:
'Sử dụng các mô hình trực quan để phân tích bố cục nhằm xác định tốt hơn cấu trúc tài liệu, tìm vị trí của tiêu đề, khối văn bản, hình ảnh và bảng. Nếu không có tính năng này, chỉ có thể lấy được văn bản thuần của PDF. Để biết thêm thông tin, hãy xem https://ragflow.io/docs/dataset_configuration#document-parsing-configuration.',
taskPageSize: 'Kích thước trang tác vụ',
taskPageSizeMessage: 'Vui lòng nhập kích thước trang tác vụ của bạn!',
taskPageSizeTip: `Nếu sử dụng nhận dạng bố cục, tệp PDF sẽ được chia thành các nhóm trang liên tiếp. Phân tích bố cục sẽ được thực hiện song song giữa các nhóm để tăng tốc độ xử lý. 'Kích thước trang tác vụ' xác định kích thước của các nhóm. Kích thước trang càng lớn, khả năng chia tách văn bản liên tục giữa các trang thành các khối khác nhau càng thấp.`,
addPage: 'Thêm trang',
greaterThan: 'Giá trị hiện tại phải lớn hơn!',
greaterThanPrevious: 'Giá trị hiện tại phải lớn hơn giá trị trước đó!',
@@ -174,8 +171,6 @@ export default {
topK: 'Top-K',
topKTip: `Sử dụng cùng với Rerank model, thiết lập này xác định số lượng đoạn văn cần gửi đến mô hình reranking được chỉ định.`,
delimiter: 'Dấu phân cách cho phân đoạn văn bản',
html4excel: 'Excel sang HTML',
html4excelTip: `Sử dụng cùng với phương pháp cắt khúc General. Khi chưa được bật, tệp bảng tính (XLSX, XLS (Excel 97-2003)) sẽ được phân tích theo dòng thành các cặp khóa-giá trị. Khi bật, tệp bảng tính sẽ được phân tích thành bảng HTML. Nếu bảng gốc vượt quá 12 dòng, hệ thống sẽ tự động chia thành nhiều bảng HTML mỗi 12 dòng. Để biết thêm thông tin, vui lòng xem https://ragflow.io/docs/dataset_configuration#other-format-processing-configuration.`,
autoKeywords: 'Từ khóa tự động',
autoKeywordsTip: `Tự động trích xuất N từ khóa cho mỗi khối để tăng thứ hạng của chúng trong các truy vấn chứa các từ khóa đó. Lưu ý rằng các token bổ sung sẽ được tiêu thụ bởi mô hình trò chuyện được chỉ định trong "Cài đặt mô hình hệ thống". Bạn có thể kiểm tra hoặc cập nhật các từ khóa đã thêm cho một khối từ danh sách khối. Để biết chi tiết, vui lòng xem https://ragflow.io/docs/dataset_configuration#content-enhancement-configuration.`,
autoQuestions: 'Câu hỏi tự động',
-5
View File
@@ -155,9 +155,6 @@ export default {
layoutRecognize: 'PDF解析器',
layoutRecognizeTip:
'使用視覺模型進行 PDF 布局分析,以更好地識別文檔結構,找到標題、文字塊、圖像和表格的位置。若選擇 Naive 選項,則只能取得 PDF 的純文字。請注意此功能僅適用於 PDF 文檔,對其他文檔不生效。如需更多資訊,請參閱 https://ragflow.io/docs/dataset_configuration#document-parsing-configuration。',
taskPageSize: '任務頁面大小',
taskPageSizeMessage: '請輸入您的任務頁面大小!',
taskPageSizeTip: `如果使用佈局識別,PDF 文件將被分成連續的組。佈局分析將在組之間並行執行,以提高處理速度。“任務頁面大小”決定組的大小。頁面大小越大,將頁面之間的連續文本分割成不同塊的機會就越低。`,
addPage: '新增頁面',
greaterThan: '當前值必須大於起始值!',
greaterThanPrevious: '當前值必須大於之前的值!',
@@ -181,8 +178,6 @@ export default {
childrenDelimiter: '文字分段標識符',
childrenDelimiterTip:
'支持多字符作為分隔符,多字符用兩個反引號 \\`\\` 分隔符包裹。若配置成:\\n`##`; 系統將首先使用換行符、兩個#號以及分號先對文本進行分割,隨後再對分得的小文本塊按照「建議文字塊大小」設定的大小進行拼裝。在設定文字分段標識符前請確保理解上述文字分段切片機制。',
html4excel: '表格轉HTML',
html4excelTip: `與 General 切片方法配合使用。未開啟狀態下,表格檔案(XLSX、XLS(Excel 97-2003)會按行解析為鍵值對。開啟後,表格檔案會被解析為 HTML 表格。若原始表格超過 12 行,系統會自動按每 12 行拆分為多個 HTML 表格。欲了解更多資訊,請參閱 https://ragflow.io/docs/dataset_configuration#other-format-processing-configuration。`,
autoKeywords: '自動關鍵字擷取數',
autoKeywordsTip: `自動為每個文字區塊中提取 N 個關鍵詞,以提升查詢精度。請注意:此功能採用「系統模型設定」中設定的預設聊天模型提取關鍵詞,因此也會產生更多 Token 消耗。此外,你也可以手動更新生成的關鍵詞。詳情請參見 https://ragflow.io/docs/dataset_configuration#content-enhancement-configuration。`,
autoQuestions: '自動問題擷取數',
-5
View File
@@ -577,9 +577,6 @@ export default {
layoutRecognize: 'PDF解析器',
layoutRecognizeTip:
'使用视觉模型进行 PDF 布局分析,以更好地识别文档结构,找到标题、文本块、图像和表格的位置。 如果选择 Naive 选项,则只能获取 PDF 的纯文本。请注意该功能只适用于 PDF 文档,对其他文档不生效。欲了解更多信息,请参阅 https://ragflow.io/docs/dataset_configuration#document-parsing-configuration。',
taskPageSize: '任务页面大小',
taskPageSizeMessage: '请输入任务页面大小!',
taskPageSizeTip: `如果使用布局识别,PDF 文件将被分成连续的组。 布局分析将在组之间并行执行,以提高处理速度。 “任务页面大小”决定组的大小。 页面大小越大,将页面之间的连续文本分割成不同块的机会就越低。`,
addPage: '新增页面',
greaterThan: '当前值必须大于起始值!',
greaterThanPrevious: '当前值必须大于之前的值!',
@@ -608,8 +605,6 @@ export default {
delimiterPreviewEmpty: '没有分隔符——文本将仅按大小切分。',
delimiterPreviewCount: '({{count}})',
html4excel: '表格转 HTML',
html4excelTip: `与 General 切片方法配合使用。未开启状态下,表格文件(XLSX、XLS(Excel 97-2003))会按行解析为键值对。开启后,表格文件会被解析为 HTML 表格。若原始表格超过 12 行,系统会自动按每 12 行拆分为多个 HTML 表格。欲了解更多详情,请参阅 https://ragflow.io/docs/dataset_configuration#other-format-processing-configuration。`,
autoKeywords: '自动关键词提取数',
autoKeywordsTip: `自动为每个文本块中提取 N 个关键词,用以提升查询精度。请注意:该功能采用在“配置”中指定的索引模型提取关键词,因此也会产生更多 Token 消耗。另外,你也可以手动更新生成的关键词。详情请见 https://ragflow.io/docs/dataset_configuration#content-enhancement-configuration。`,
autoQuestions: '自动问题提取数',