File size: 56,764 Bytes
838e578
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6fb2244
838e578
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6fb2244
838e578
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6fb2244
 
 
838e578
 
 
 
 
 
 
 
 
 
 
6fb2244
838e578
 
 
 
 
 
 
 
 
6fb2244
838e578
 
 
 
 
 
 
 
 
6fb2244
 
838e578
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6fb2244
 
838e578
6fb2244
 
838e578
6fb2244
 
838e578
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6fb2244
 
838e578
 
 
 
 
6fb2244
 
838e578
 
6fb2244
 
838e578
 
 
 
 
6fb2244
 
 
 
838e578
 
 
 
 
6fb2244
 
838e578
 
 
6fb2244
 
838e578
6fb2244
 
838e578
6fb2244
 
838e578
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6fb2244
 
838e578
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6fb2244
 
838e578
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6fb2244
 
838e578
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6fb2244
 
838e578
 
 
 
 
6fb2244
 
 
 
838e578
 
6fb2244
 
838e578
 
 
6fb2244
 
838e578
6fb2244
 
838e578
6fb2244
 
838e578
6fb2244
 
838e578
6fb2244
 
838e578
6fb2244
 
838e578
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6fb2244
 
838e578
 
 
6fb2244
 
838e578
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6fb2244
 
838e578
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6fb2244
838e578
 
 
6fb2244
838e578
 
 
 
 
6fb2244
838e578
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6fb2244
838e578
 
 
 
 
 
 
 
 
6fb2244
838e578
 
 
 
 
 
 
 
6fb2244
838e578
 
 
 
6fb2244
838e578
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6fb2244
838e578
 
 
 
6fb2244
838e578
 
 
 
 
 
 
6fb2244
838e578
 
 
 
 
 
 
 
 
 
 
 
 
6fb2244
838e578
 
 
6fb2244
838e578
 
 
6fb2244
838e578
 
 
6fb2244
838e578
 
 
 
 
 
6fb2244
838e578
 
 
 
 
 
 
 
 
6fb2244
838e578
 
 
 
 
 
 
 
 
 
 
 
 
6fb2244
838e578
 
 
 
 
 
 
6fb2244
838e578
 
 
 
 
 
6fb2244
838e578
 
 
 
 
6fb2244
838e578
 
 
 
 
 
6fb2244
838e578
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
export default {
  translation: {
    common: {
      delete: 'Excluir',
      deleteModalTitle: 'Tem certeza de que deseja excluir este item?',
      ok: 'Sim',
      cancel: 'Não',
      total: 'Total',
      rename: 'Renomear',
      name: 'Nome',
      save: 'Salvar',
      namePlaceholder: 'Por favor, insira o nome',
      next: 'Próximo',
      create: 'Criar',
      edit: 'Editar',
      upload: 'Carregar',
      english: 'Inglês',
      portugueseBr: 'Português (Brasil)',
      chinese: 'Chinês Simplificado',
      traditionalChinese: 'Chinês Tradicional',
      language: 'Idioma',
      languageMessage: 'Por favor, insira seu idioma!',
      languagePlaceholder: 'selecione seu idioma',
      copy: 'Copiar',
      copied: 'Copiado',
      comingSoon: 'Em breve',
      download: 'Baixar',
      close: 'Fechar',
      preview: 'Pré-visualizar',
      move: 'Mover',
      warn: 'Aviso',
      action: 'Ação',
      s: 'S',
      pleaseSelect: 'Por favor, selecione',
      pleaseInput: 'Por favor, insira',
      submit: 'Enviar',
      embedIntoSite: 'Incorporar no site',
      previousPage: 'Anterior',
      nextPage: 'Próxima',
    },
    login: {
      login: 'Entrar',
      signUp: 'Inscrever-se',
      loginDescription: 'Estamos muito animados para vê-lo novamente!',
      registerDescription: 'Feliz por tê-lo a bordo!',
      emailLabel: 'Email',
      emailPlaceholder: 'Por favor, insira o email',
      passwordLabel: 'Senha',
      passwordPlaceholder: 'Por favor, insira a senha',
      rememberMe: 'Lembrar-me',
      signInTip: 'Não tem uma conta?',
      signUpTip: 'Já tem uma conta?',
      nicknameLabel: 'Apelido',
      nicknamePlaceholder: 'Por favor, insira o apelido',
      register: 'Criar uma conta',
      continue: 'Continuar',
      title: 'Comece a construir seus assistentes inteligentes.',
      description:
        'Inscreva-se gratuitamente para explorar a tecnologia RAG de ponta. Crie bases de conhecimento e IAs para capacitar seu negócio.',
      review: 'de 500+ avaliações',
    },
    header: {
      knowledgeBase: 'Base de Conhecimento',
      chat: 'Chat',
      register: 'Registrar',
      signin: 'Entrar',
      home: 'Início',
      setting: 'Configurações do usuário',
      logout: 'Sair',
      fileManager: 'Gerenciamento de Arquivos',
      flow: 'Agente',
      search: 'Buscar',
    },
    knowledgeList: {
      welcome: 'Bem-vindo de volta',
      description: 'Quais bases de conhecimento você usará hoje?',
      createKnowledgeBase: 'Criar base de conhecimento',
      name: 'Nome',
      namePlaceholder: 'Por favor, insira o nome!',
      doc: 'Documentos',
      searchKnowledgePlaceholder: 'Buscar',
      noMoreData: 'Isso é tudo. Nada mais.',
    },
    knowledgeDetail: {
      dataset: 'Conjunto de dados',
      testing: 'Teste de recuperação',
      files: 'Arquivos',
      configuration: 'Configuração',
      name: 'Nome',
      namePlaceholder: 'Por favor, insira o nome!',
      doc: 'Documentos',
      datasetDescription:
        '😉 Por favor, aguarde o término da análise do seu arquivo antes de iniciar um chat com IA.',
      addFile: 'Adicionar arquivo',
      searchFiles: 'Buscar seus arquivos',
      localFiles: 'Arquivos locais',
      emptyFiles: 'Criar arquivo vazio',
      webCrawl: 'Rastreamento na web',
      chunkNumber: 'Número de fragmentos',
      uploadDate: 'Data de upload',
      chunkMethod: 'Método de fragmentação',
      enabled: 'Habilitar',
      disabled: 'Desabilitar',
      action: 'Ação',
      parsingStatus: 'Status da análise',
      processBeginAt: 'Início em',
      processDuration: 'Duração',
      progressMsg: 'Progresso',
      testingDescription:
        'Realize um teste de recuperação para verificar se o RAGFlow pode recuperar o conteúdo pretendido para o LLM.',
      similarityThreshold: 'Limite de similaridade',
      similarityThresholdTip:
        'O RAGFlow emprega uma combinação de similaridade de palavras-chave ponderada e similaridade de cosseno vetorial ponderada, ou uma combinação de similaridade de palavras-chave ponderada e pontuação de reranking ponderada durante a recuperação. Este parâmetro define o limite para similaridades entre a consulta do usuário e os fragmentos. Qualquer fragmento com uma pontuação de similaridade abaixo deste limite será excluído dos resultados.',
      vectorSimilarityWeight: 'Peso da similaridade de palavras-chave',
      vectorSimilarityWeightTip:
        'Define o peso da similaridade de palavras-chave na pontuação de similaridade combinada, usada com a similaridade de cosseno vetorial ou com a pontuação de reranking. O total dos dois pesos deve ser igual a 1.0.',
      testText: 'Texto de teste',
      testTextPlaceholder: 'Insira sua pergunta aqui!',
      testingLabel: 'Testando',
      similarity: 'Similaridade híbrida',
      termSimilarity: 'Similaridade de termos',
      vectorSimilarity: 'Similaridade vetorial',
      hits: 'Acertos',
      view: 'Visualizar',
      filesSelected: 'Arquivos selecionados',
      upload: 'Carregar',
      run: 'Analisar',
      runningStatus0: 'Não analisado',
      runningStatus1: 'Analisando',
      runningStatus2: 'Cancelado',
      runningStatus3: 'Sucesso',
      runningStatus4: 'Falha',
      pageRanges: 'Intervalos de páginas',
      pageRangesTip:
        'Intervalo de páginas a serem analisadas; páginas fora deste intervalo não serão processadas.',
      fromPlaceholder: 'de',
      fromMessage: 'Página inicial ausente',
      toPlaceholder: 'até',
      toMessage: 'Página final ausente (excluída)',
      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.',
      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!',
      selectFiles: 'Selecionar arquivos',
      changeSpecificCategory: 'Alterar categoria específica',
      uploadTitle:
        'Clique ou arraste o arquivo para esta área para fazer o upload',
      uploadDescription:
        'Suporte para upload único ou em massa. Estritamente proibido fazer upload de dados da empresa ou outros arquivos proibidos.',
      chunk: 'Fragmento',
      bulk: 'Em massa',
      cancel: 'Cancelar',
      rerankModel: 'Modelo de reranking',
      rerankPlaceholder: 'Por favor, selecione',
      rerankTip:
        'Se deixado vazio, o RAGFlow usará uma combinação de similaridade de palavras-chave ponderada e similaridade de cosseno vetorial ponderada; se um modelo de reranking for selecionado, uma pontuação de reranking ponderada substituirá a similaridade de cosseno vetorial ponderada. Esteja ciente de que usar um modelo de reranking aumentará significativamente o tempo de resposta do sistema.',
      topK: 'Top-K',
      topKTip: 'K fragmentos serão alimentados em modelos de reranking.',
      delimiter: 'Delimitador',
      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.',
      html4excel: 'Excel para HTML',
      html4excelTip:
        'Quando ativado, a planilha será analisada em tabelas HTML, com no máximo 256 linhas por tabela. Caso contrário, será analisada em pares chave-valor por linha.',
      autoKeywords: 'Palavras-chave automáticas',
      autoKeywordsTip:
        'Extraia automaticamente N palavras-chave para cada fragmento para aumentar sua classificação para consultas que contenham essas palavras-chave. Você pode verificar ou atualizar as palavras-chave adicionadas para um fragmento na lista de fragmentos. Esteja ciente de que tokens extras serão consumidos pelo LLM especificado nas "Configurações do modelo do sistema".',
      autoQuestions: 'Perguntas automáticas',
      autoQuestionsTip: `Extraia automaticamente N perguntas para cada fragmento para aumentar sua relevância em consultas que contenham essas perguntas. Você pode verificar ou atualizar as perguntas adicionadas a um fragmento na lista de fragmentos. Essa funcionalidade não interromperá o processo de fragmentação em caso de erro, exceto pelo fato de que pode adicionar um resultado vazio ao fragmento original. Esteja ciente de que tokens extras serão consumidos pelo LLM especificado nas 'Configurações do modelo do sistema'.`,
      redo: 'Deseja limpar os {{chunkNum}} fragmentos existentes?',
      setMetaData: 'Definir Metadados',
      pleaseInputJson: 'Por favor, insira um JSON',
      documentMetaTips: `<p>Os metadados estão no formato JSON (não são pesquisáveis). Eles serão adicionados ao prompt para o LLM se quaisquer fragmentos deste documento forem incluídos no prompt.</p>
      <p>Exemplos:</p>
      <b>Os metadados são:</b><br>
      <code>
        {
            "Autor": "Alex Dowson",
            "Data": "2024-11-12"
        }
      </code><br>
      <b>O prompt será:</b><br>
      <p>Documento: nome_do_documento</p>
      <p>Autor: Alex Dowson</p>
      <p>Data: 2024-11-12</p>
      <p>Fragmentos relevantes a seguir:</p>
      <ul>
      <li> Aqui está o conteúdo do fragmento....</li>
      <li> Aqui está o conteúdo do fragmento....</li>
      </ul>
      `,
      metaData: 'Metadados',
    },
    knowledgeConfiguration: {
      titleDescription:
        'Atualize a configuração da sua base de conhecimento aqui, especialmente o método de fragmentação.',
      name: 'Nome da base de conhecimento',
      photo: 'Foto da base de conhecimento',
      description: 'Descrição',
      language: 'Idioma',
      languageMessage: 'Por favor, insira seu idioma!',
      languagePlaceholder: 'Por favor, insira seu idioma!',
      permissions: 'Permissões',
      embeddingModel: 'Modelo de incorporação',
      chunkTokenNumber: 'Número de tokens por fragmento',
      chunkTokenNumberMessage: 'O número de tokens por fragmento é obrigatório',
      embeddingModelTip:
        'O modelo que converte fragmentos em embeddings. Ele não pode ser alterado depois que a base de conhecimento tiver fragmentos. Para mudar para um modelo diferente, é necessário excluir todos os fragmentos existentes.',
      permissionsTip:
        "Se definido como 'Equipe', todos os membros da equipe poderão gerenciar a base de conhecimento.",
      chunkTokenNumberTip:
        'Define o limite de tokens para um fragmento. Um parágrafo com menos tokens que esse limite será combinado com o próximo parágrafo até que a contagem de tokens ultrapasse o limite, momento em que um fragmento será criado.',
      chunkMethod: 'Método de fragmentação',
      chunkMethodTip: 'Veja as dicas à direita.',
      upload: 'Enviar',
      english: 'Inglês',
      chinese: 'Chinês',
      embeddingModelPlaceholder:
        'Por favor, selecione um modelo de incorporação',
      chunkMethodPlaceholder: 'Por favor, selecione um método de fragmentação',
      save: 'Salvar',
      me: 'Somente eu',
      team: 'Equipe',
      cancel: 'Cancelar',
      methodTitle: 'Descrição do método de fragmentação',
      methodExamples: 'Exemplos',
      methodExamplesDescription:
        'As capturas de tela a seguir são fornecidas para maior clareza.',
      dialogueExamplesTitle: 'Exemplos de diálogos',
      methodEmpty:
        'Aqui será exibida uma explicação visual das categorias da base de conhecimento',
      book: `<p>Os formatos de arquivo suportados são <b>DOCX</b>, <b>PDF</b>, <b>TXT</b>.</p><p>
      Para cada livro em PDF, defina os <i>intervalos de páginas</i> para remover informações indesejadas e reduzir o tempo de análise.</p>`,
      laws: `<p>Os formatos de arquivo suportados são <b>DOCX</b>, <b>PDF</b>, <b>TXT</b>.</p><p>
      Documentos legais normalmente seguem um formato de escrita rigoroso. Usamos recursos textuais para identificar pontos de divisão.</p><p>
      Os fragmentos terão granularidade compatível com 'ARTIGO', garantindo que todo o texto de nível superior seja incluído no fragmento.</p>`,
      manual: `<p>Apenas <b>PDF</b> é suportado.</p><p>
      Assumimos que o manual tem uma estrutura hierárquica de seções, usando os títulos das seções inferiores como unidade básica para fragmentação. Assim, figuras e tabelas na mesma seção não serão separadas, o que pode resultar em fragmentos maiores.</p>`,
      naive: `<p>Os formatos de arquivo suportados são <b>DOCX, EXCEL, PPT, IMAGE, PDF, TXT, MD, JSON, EML, HTML</b>.</p>
      <p>Este método fragmenta arquivos de maneira 'simples':</p>
      <p>
      <li>Usa um modelo de detecção visual para dividir os textos em segmentos menores.</li>
      <li>Depois, combina segmentos adjacentes até que a contagem de tokens ultrapasse o limite definido em 'Número de tokens por fragmento', criando então um fragmento.</li></p>`,
      paper: `<p>Apenas <b>PDF</b> é suportado.</p><p>
      Os artigos serão divididos por seção, como <i>resumo, 1.1, 1.2</i>. </p><p>
      Essa abordagem permite que o LLM resuma o artigo de forma mais eficaz e forneça respostas mais compreensíveis. No entanto, aumenta o contexto para conversas de IA e o custo computacional do LLM. Durante uma conversa, considere reduzir o valor de '<b>topN</b>'.</p>`,
      presentation: `<p>Os formatos de arquivo suportados são <b>PDF</b>, <b>PPTX</b>.</p><p>
      Cada página do slide é tratada como um fragmento, com sua imagem em miniatura armazenada.</p><p>
      <i>Esse método de fragmentação é aplicado automaticamente a todos os arquivos PPT enviados, então não é necessário especificá-lo manualmente.</i></p>`,
      qa: `<p>Este método suporta arquivos nos formatos <b>EXCEL</b> e <b>CSV/TXT</b>.</p>
      <li>Se o arquivo estiver no formato <b>Excel</b>, ele deve conter duas colunas sem cabeçalhos: uma para perguntas e outra para respostas, com a coluna de perguntas antes da de respostas. Múltiplas planilhas são aceitas, desde que as colunas estejam corretamente estruturadas.</li>
      <li>Se o arquivo estiver no formato <b>CSV/TXT</b>, ele deve estar codificado em UTF-8 e usar TAB como delimitador para separar perguntas e respostas.</li>
      <p><i>Linhas de texto que não seguirem essas regras serão ignoradas, e cada par de Pergunta & Resposta será tratado como um fragmento distinto.</i></p>`,
      useRaptor: 'Usar RAPTOR para melhorar a recuperação',
      useRaptorTip:
        'Processamento Abstrativo Recursivo para Recuperação Organizada em Árvore. Veja mais em https://huggingface.co/papers/2401.18059.',
      prompt: 'Prompt',
      promptTip: 'Prompt usado pelo LLM para sumarização.',
      promptMessage: 'O prompt é obrigatório',
      promptText: `Por favor, resuma os seguintes parágrafos. Tenha cuidado com os números, não invente informações. Os parágrafos são os seguintes:
      {cluster_content}
    O conteúdo acima precisa ser resumido.`,
      maxToken: 'Máximo de tokens',
      maxTokenTip: 'Número máximo de tokens para sumarização.',
      maxTokenMessage: 'O número máximo de tokens é obrigatório',
      threshold: 'Limite',
      thresholdTip: 'Quanto maior o limite, menor será o número de clusters.',
      thresholdMessage: 'O limite é obrigatório',
      maxCluster: 'Máximo de clusters',
      maxClusterTip: 'Número máximo de clusters.',
      maxClusterMessage: 'O número máximo de clusters é obrigatório',
      randomSeed: 'Semente aleatória',
      randomSeedMessage: 'A semente aleatória é obrigatória',
      entityTypes: 'Tipos de entidades',
      vietnamese: 'Vietnamita',
      pageRank: 'Ranking de páginas',
      pageRankTip: `Isso aumenta a pontuação de relevância da base de conhecimento. Seu valor será adicionado à pontuação de relevância de todos os fragmentos recuperados dessa base de conhecimento. Útil ao pesquisar em múltiplas bases e querer priorizar uma específica.`,
      tagName: 'Etiqueta',
      frequency: 'Frequência',
      searchTags: 'Pesquisar etiquetas',
      tagCloud: 'Nuvem',
      tagTable: 'Tabela',
      tagSet: 'Conjunto de etiquetas',
      tagSetTip: `
      <p>Selecionar bases de conhecimento com 'Etiqueta' ajuda a etiquetar fragmentos.</p>
      <p>Consultas nesses fragmentos também usarão etiquetas.</p>
      <p>Isso melhora a precisão da recuperação adicionando mais informações ao conjunto de dados, especialmente quando há muitos fragmentos.</p>
      <p>Diferenças entre etiquetas e palavras-chave:</p>
      <ul>
        <li>As etiquetas são um conjunto fechado definido pelo usuário, enquanto palavras-chave são um conjunto aberto.</li>
        <li>É necessário enviar conjuntos de etiquetas com exemplos antes de usá-los.</li>
        <li>Palavras-chave são geradas pelo LLM, o que é caro e demorado.</li>
      </ul>`,
      topnTags: 'Top-N Etiquetas',
      tags: 'Etiquetas',
      addTag: 'Adicionar etiqueta',
    },
    chunk: {
      chunk: 'Fragmento',
      bulk: 'Em massa',
      selectAll: 'Selecionar tudo',
      enabledSelected: 'Ativar selecionados',
      disabledSelected: 'Desativar selecionados',
      deleteSelected: 'Excluir selecionados',
      search: 'Pesquisar',
      all: 'Todos',
      enabled: 'Ativado',
      disabled: 'Desativado',
      keyword: 'Palavra-chave',
      function: 'Função',
      chunkMessage: 'Por favor, insira um valor!',
      full: 'Texto completo',
      ellipse: 'Reticências',
      graph: 'Grafo de conhecimento',
      mind: 'Mapa mental',
      question: 'Pergunta',
      questionTip: `Se houver perguntas fornecidas, a incorporação do fragmento será baseada nelas.`,
    },
    chat: {
      newConversation: 'Nova conversa',
      createAssistant: 'Criar um Assistente',
      assistantSetting: 'Configuração do Assistente',
      promptEngine: 'Motor de Prompt',
      modelSetting: 'Configuração do Modelo',
      chat: 'Chat',
      newChat: 'Novo chat',
      send: 'Enviar',
      sendPlaceholder: 'Envie uma mensagem para o assistente...',
      chatConfiguration: 'Configuração do Chat',
      chatConfigurationDescription:
        'Configure aqui um assistente de chat dedicado às bases de conhecimento selecionadas! 💕',
      assistantName: 'Nome do assistente',
      assistantNameMessage: 'O nome do assistente é obrigatório',
      namePlaceholder: 'Ex.: Jarvis Currículos',
      assistantAvatar: 'Avatar do assistente',
      language: 'Idioma',
      emptyResponse: 'Resposta vazia',
      emptyResponseTip: `Defina isto como uma resposta caso nenhuma informação seja encontrada nas bases de conhecimento para sua consulta, ou deixe este campo vazio para permitir que o LLM improvise quando nada for encontrado.`,
      setAnOpener: 'Saudação inicial',
      setAnOpenerInitial: `Olá! Sou seu assistente, como posso ajudar?`,
      setAnOpenerTip: 'Defina uma saudação inicial para os usuários.',
      knowledgeBases: 'Bases de conhecimento',
      knowledgeBasesMessage: 'Por favor, selecione',
      knowledgeBasesTip:
        'Selecione as bases de conhecimento para associar a este assistente de chat.',
      system: 'Sistema',
      systemInitialValue: `Você é um assistente inteligente. Por favor, resuma o conteúdo da base de conhecimento para responder à pergunta. Liste os dados da base de conhecimento e responda com detalhes. Quando todo o conteúdo da base de conhecimento for irrelevante para a pergunta, sua resposta deve incluir a frase "A resposta que você procura não foi encontrada na base de conhecimento!" As respostas devem considerar o histórico do chat.
      Aqui está a base de conhecimento:
      {knowledge}
      O acima é a base de conhecimento.`,
      systemMessage: 'Por favor, insira!',
      systemTip:
        'Seus prompts ou instruções para o LLM, incluindo, mas não se limitando, ao papel, ao comprimento desejado, ao tom e ao idioma das respostas.',
      topN: 'Top N',
      topNTip: `Nem todos os fragmentos com pontuação de similaridade acima do 'limiar de similaridade' serão enviados ao LLM. Isso seleciona os 'Top N' fragmentos recuperados.`,
      variable: 'Variável',
      variableTip: `As variáveis podem ajudar a desenvolver estratégias mais flexíveis, especialmente ao usar nossas APIs de gerenciamento de assistentes de chat. Essas variáveis serão usadas pelo 'Sistema' como parte dos prompts para o LLM. A variável {knowledge} é uma variável especial reservada que representa suas bases de conhecimento selecionadas, e todas as variáveis devem estar entre chaves { }.`,
      add: 'Adicionar',
      key: 'Chave',
      optional: 'Opcional',
      operation: 'Operação',
      model: 'Modelo',
      modelTip: 'Modelo de chat com linguagem ampla',
      modelMessage: 'Por favor, selecione!',
      freedom: 'Liberdade',
      improvise: 'Improvisar',
      precise: 'Preciso',
      balance: 'Equilíbrio',
      freedomTip: `Um atalho para as configurações de 'Temperatura', 'Top P', 'Penalidade de presença' e 'Penalidade de frequência', indicando o nível de liberdade do modelo. Este parâmetro possui três opções: selecione 'Improvisar' para respostas mais criativas; selecione 'Preciso' (padrão) para respostas mais conservadoras; 'Equilíbrio' é um meio-termo entre 'Improvisar' e 'Preciso'.`,
      temperature: 'Temperatura',
      temperatureMessage: 'A temperatura é obrigatória',
      temperatureTip: `Este parâmetro controla a aleatoriedade das previsões do modelo. Uma temperatura mais baixa resulta em respostas mais conservadoras, enquanto uma temperatura mais alta gera respostas mais criativas e diversificadas.`,
      topP: 'Top P',
      topPMessage: 'Top P é obrigatório',
      topPTip:
        'Também conhecido como "amostragem por núcleo", este parâmetro define um limite para selecionar um conjunto menor das palavras mais prováveis para amostragem, cortando as menos prováveis.',
      presencePenalty: 'Penalidade de presença',
      presencePenaltyMessage: 'Penalidade de presença é obrigatória',
      presencePenaltyTip:
        'Isso desencoraja o modelo de repetir as mesmas informações, penalizando palavras que já apareceram na conversa.',
      frequencyPenalty: 'Penalidade de frequência',
      frequencyPenaltyMessage: 'Penalidade de frequência é obrigatória',
      frequencyPenaltyTip:
        'Semelhante à penalidade de presença, isso reduz a tendência do modelo de repetir as mesmas palavras frequentemente.',
      maxTokens: 'Máximo de tokens',
      maxTokensMessage: 'O máximo de tokens é obrigatório',
      maxTokensTip: `Define o comprimento máximo da saída do modelo, medido pelo número de tokens (palavras ou partes de palavras). O padrão é 512. Se desativado, você remove o limite máximo de tokens, permitindo que o modelo determine o número de tokens em suas respostas.`,
      maxTokensInvalidMessage:
        'Por favor, insira um número válido para o máximo de tokens.',
      maxTokensMinMessage: 'O máximo de tokens não pode ser menor que 0.',
      quote: 'Mostrar citação',
      quoteTip: 'Exibir ou não o texto original como referência.',
      selfRag: 'Self-RAG',
      selfRagTip: 'Consulte: https://huggingface.co/papers/2310.11511',
      overview: 'ID do Chat',
      pv: 'Número de mensagens',
      uv: 'Número de usuários ativos',
      speed: 'Velocidade de saída de tokens',
      tokens: 'Consumo de tokens',
      round: 'Número de interações por sessão',
      thumbUp: 'Satisfação do cliente',
      preview: 'Pré-visualizar',
      embedded: 'Incorporado',
      serviceApiEndpoint: 'Endpoint da API de Serviço',
      apiKey: 'Chave da API',
      apiReference: 'Documentos da API',
      dateRange: 'Intervalo de datas:',
      backendServiceApi: 'Servidor API',
      createNewKey: 'Criar nova chave',
      created: 'Criado',
      action: 'Ação',
      embedModalTitle: 'Incorporar no site',
      comingSoon: 'Em breve',
      fullScreenTitle: 'Incorporar Total',
      fullScreenDescription:
        'Incorpore o iframe abaixo no local desejado em seu site',
      partialTitle: 'Incorporar Parcial',
      extensionTitle: 'Extensão do Chrome',
      tokenError: 'Por favor, crie uma chave API primeiro.',
      betaError:
        'Por favor, adquira uma chave API do RAGFlow na página Configurações do Sistema primeiro.',
      searching: 'Pesquisando...',
      parsing: 'Analisando',
      uploading: 'Carregando',
      uploadFailed: 'Falha no carregamento',
      regenerate: 'Regenerar',
      read: 'Ler conteúdo',
      tts: 'Texto para fala',
      ttsTip:
        'Certifique-se de selecionar um modelo TTS na página Configurações antes de habilitar esta opção para reproduzir texto como áudio.',
      relatedQuestion: 'Pergunta relacionada',
      answerTitle: 'R',
      multiTurn: 'Otimização de múltiplas interações',
      multiTurnTip:
        'Isso otimiza as consultas dos usuários usando o contexto em uma conversa de múltiplas rodadas. Quando ativado, consumirá tokens adicionais do LLM.',
      howUseId: 'Como usar o ID do chat?',
      description: 'Descrição do assistente',
    },
    setting: {
      profile: 'Perfil',
      profileDescription: 'Atualize sua foto e detalhes pessoais aqui.',
      maxTokens: 'Máximo de Tokens',
      maxTokensMessage: 'Máximo de Tokens é obrigatório',
      maxTokensTip: `Isso define o comprimento máximo da saída do modelo, medido em número de tokens (palavras ou partes de palavras). O padrão é 512. Se desativado, você remove o limite máximo de tokens, permitindo que o modelo determine o número de tokens em suas respostas.`,
      maxTokensInvalidMessage:
        'Por favor, insira um número válido para Máximo de Tokens.',
      maxTokensMinMessage: 'O Máximo de Tokens não pode ser menor que 0.',
      password: 'Senha',
      passwordDescription: 'Digite sua senha atual para alterá-la.',
      model: 'Provedores de Modelo',
      modelDescription: 'Defina o parâmetro do modelo e a chave da API aqui.',
      team: 'Equipe',
      system: 'Sistema',
      logout: 'Sair',
      api: 'API',
      username: 'Nome de usuário',
      usernameMessage: 'Por favor, insira seu nome de usuário!',
      photo: 'Sua foto',
      photoDescription: 'Isso será exibido no seu perfil.',
      colorSchema: 'Esquema de cores',
      colorSchemaMessage: 'Por favor, selecione seu esquema de cores!',
      colorSchemaPlaceholder: 'selecione seu esquema de cores',
      bright: 'Claro',
      dark: 'Escuro',
      timezone: 'Fuso horário',
      timezoneMessage: 'Por favor, insira seu fuso horário!',
      timezonePlaceholder: 'selecione seu fuso horário',
      email: 'Endereço de e-mail',
      emailDescription: 'Após o registro, o e-mail não pode ser alterado.',
      currentPassword: 'Senha atual',
      currentPasswordMessage: 'Por favor, insira sua senha!',
      newPassword: 'Nova senha',
      newPasswordMessage: 'Por favor, insira sua nova senha!',
      newPasswordDescription: 'Sua nova senha deve ter mais de 8 caracteres.',
      confirmPassword: 'Confirmar nova senha',
      confirmPasswordMessage: 'Por favor, confirme sua senha!',
      confirmPasswordNonMatchMessage:
        'A nova senha que você inseriu não corresponde!',
      cancel: 'Cancelar',
      addedModels: 'Modelos adicionados',
      modelsToBeAdded: 'Modelos a serem adicionados',
      addTheModel: 'Adicionar o modelo',
      apiKey: 'Chave da API',
      apiKeyMessage:
        'Por favor, insira a chave da API (para modelos implantados localmente, ignore isso).',
      apiKeyTip:
        'A chave da API pode ser obtida registrando-se no fornecedor correspondente do LLM.',
      showMoreModels: 'Mostrar mais modelos',
      baseUrl: 'URL Base',
      baseUrlTip:
        'Se sua chave da API for do OpenAI, ignore isso. Outros provedores intermediários fornecerão essa URL base com a chave da API.',
      modify: 'Modificar',
      systemModelSettings: 'Configurações do Modelo do Sistema',
      chatModel: 'Modelo de chat',
      chatModelTip:
        'O modelo LLM padrão que todos os novos bancos de conhecimento usarão.',
      embeddingModel: 'Modelo de incorporação',
      embeddingModelTip:
        'O modelo de incorporação padrão que todos os novos bancos de conhecimento usarão.',
      img2txtModel: 'Modelo Img2Txt',
      img2txtModelTip:
        'O modelo multimodal padrão que todos os novos bancos de conhecimento usarão. Ele pode descrever uma imagem ou vídeo.',
      sequence2txtModel: 'Modelo Sequence2Txt',
      sequence2txtModelTip:
        'O modelo ASR padrão que todos os novos bancos de conhecimento usarão. Use este modelo para converter vozes em texto correspondente.',
      rerankModel: 'Modelo de Reordenação',
      rerankModelTip:
        'O modelo de reordenação padrão usado para reordenar os fragmentos recuperados pelas perguntas dos usuários.',
      ttsModel: 'Modelo TTS',
      ttsModelTip:
        'O modelo TTS padrão será usado para gerar fala durante as conversas sob demanda.',
      workspace: 'Área de trabalho',
      upgrade: 'Atualizar',
      addLlmTitle: 'Adicionar LLM',
      modelName: 'Nome do modelo',
      modelID: 'ID do modelo',
      modelUid: 'UID do modelo',
      modelNameMessage: 'Por favor, insira o nome do seu modelo!',
      modelType: 'Tipo de modelo',
      modelTypeMessage: 'Por favor, insira o tipo do seu modelo!',
      addLlmBaseUrl: 'URL base',
      baseUrlNameMessage: 'Por favor, insira sua URL base!',
      vision: 'Suporta visão?',
      ollamaLink: 'Como integrar {{name}}',
      FishAudioLink: 'Como usar FishAudio',
      TencentCloudLink: 'Como usar TencentCloud ASR',
      volcModelNameMessage: 'Por favor, insira o nome do seu modelo!',
      addEndpointID: 'EndpointID do modelo',
      endpointIDMessage: 'Por favor, insira o EndpointID do modelo',
      addArkApiKey: 'VOLC ARK_API_KEY',
      ArkApiKeyMessage: 'Por favor, insira sua ARK_API_KEY',
      bedrockModelNameMessage: 'Por favor, insira o nome do seu modelo!',
      addBedrockEngineAK: 'CHAVE DE ACESSO',
      bedrockAKMessage: 'Por favor, insira sua CHAVE DE ACESSO',
      addBedrockSK: 'CHAVE SECRETA',
      bedrockSKMessage: 'Por favor, insira sua CHAVE SECRETA',
      bedrockRegion: 'Região AWS',
      bedrockRegionMessage: 'Por favor, selecione!',
      'us-east-1': 'Leste dos EUA (N. Virgínia)',
      'us-west-2': 'Oeste dos EUA (Oregon)',
      'ap-southeast-1': 'Ásia-Pacífico (Singapura)',
      'ap-northeast-1': 'Ásia-Pacífico (Tóquio)',
      'eu-central-1': 'Europa (Frankfurt)',
      'us-gov-west-1': 'AWS GovCloud (EUA-Oeste)',
      'ap-southeast-2': 'Ásia-Pacífico (Sydney)',
      addHunyuanSID: 'Hunyuan Secret ID',
      HunyuanSIDMessage: 'Por favor, insira seu Secret ID',
      addHunyuanSK: 'Hunyuan Secret Key',
      HunyuanSKMessage: 'Por favor, insira sua Secret Key',
      addTencentCloudSID: 'TencentCloud Secret ID',
      TencentCloudSIDMessage: 'Por favor, insira seu Secret ID',
      addTencentCloudSK: 'TencentCloud Secret Key',
      TencentCloudSKMessage: 'Por favor, insira sua Secret Key',
      SparkModelNameMessage: 'Por favor, selecione o modelo Spark',
      addSparkAPIPassword: 'Senha da API Spark',
      SparkAPIPasswordMessage: 'Por favor, insira sua senha da API',
      addSparkAPPID: 'ID do aplicativo Spark',
      SparkAPPIDMessage: 'Por favor, insira seu ID do aplicativo',
      addSparkAPISecret: 'Segredo da API Spark',
      SparkAPISecretMessage: 'Por favor, insira seu segredo da API',
      addSparkAPIKey: 'Chave da API Spark',
      SparkAPIKeyMessage: 'Por favor, insira sua chave da API',
      yiyanModelNameMessage: 'Por favor, insira o nome do modelo',
      addyiyanAK: 'Chave da API yiyan',
      yiyanAKMessage: 'Por favor, insira sua chave da API',
      addyiyanSK: 'Chave secreta yiyan',
      yiyanSKMessage: 'Por favor, insira sua chave secreta',
      FishAudioModelNameMessage:
        'Por favor, dê um nome ao seu modelo de síntese de voz',
      addFishAudioAK: 'Chave da API Fish Audio',
      addFishAudioAKMessage: 'Por favor, insira sua chave da API',
      addFishAudioRefID: 'ID de referência do FishAudio',
      addFishAudioRefIDMessage:
        'Por favor, insira o ID de referência (deixe em branco para usar o modelo padrão).',
      modelProvidersWarn: `Por favor, adicione tanto o modelo de incorporação quanto o LLM em <b>Configurações > Provedores de Modelo</b> primeiro. Depois, defina-os nas 'Configurações do modelo do sistema'.`,
      apiVersion: 'Versão da API',
      apiVersionMessage: 'Por favor, insira a versão da API',
      add: 'Adicionar',
      updateDate: 'Data de atualização',
      role: 'Função',
      invite: 'Convidar',
      agree: 'Aceitar',
      refuse: 'Recusar',
      teamMembers: 'Membros da equipe',
      joinedTeams: 'Equipes ingressadas',
      sureDelete: 'Tem certeza de que deseja remover este membro?',
      quit: 'Sair',
      sureQuit: 'Tem certeza de que deseja sair da equipe que você ingressou?',
    },
    message: {
      registered: 'Registrado!',
      logout: 'sair',
      logged: 'conectado!',
      pleaseSelectChunk: 'Por favor, selecione o pedaço!',
      modified: 'Modificado',
      created: 'Criado',
      deleted: 'Deletado',
      renamed: 'Renomeado',
      operated: 'Operado',
      updated: 'Atualizado',
      uploaded: 'Carregado',
      200: 'O servidor retornou com sucesso os dados solicitados.',
      201: 'Dados criados ou modificados com sucesso.',
      202: 'Uma solicitação foi colocada na fila em segundo plano (tarefa assíncrona).',
      204: 'Dados deletados com sucesso.',
      400: 'Houve um erro na solicitação emitida, e o servidor não criou ou modificou os dados.',
      401: 'O usuário não tem permissões (token, nome de usuário ou senha incorretos).',
      403: 'O usuário está autorizado, mas o acesso é proibido.',
      404: 'A solicitação foi feita para um registro que não existe, e o servidor não executou a operação.',
      406: 'O formato solicitado não está disponível.',
      410: 'O recurso solicitado foi permanentemente deletado e não estará mais disponível.',
      413: 'O tamanho total dos arquivos carregados de uma vez é muito grande.',
      422: 'Ao criar um objeto, ocorreu um erro de validação.',
      500: 'Ocorreu um erro no servidor, por favor, verifique o servidor.',
      502: 'Erro de gateway.',
      503: 'O serviço está indisponível e o servidor está temporariamente sobrecarregado ou em manutenção.',
      504: 'Timeout de gateway.',
      requestError: 'Erro na solicitação',
      networkAnomalyDescription:
        'Há uma anomalia na sua rede e você não consegue se conectar ao servidor.',
      networkAnomaly: 'anomalia de rede',
      hint: 'dica',
    },
    fileManager: {
      name: 'Nome',
      uploadDate: 'Data de Upload',
      knowledgeBase: 'Base de Conhecimento',
      size: 'Tamanho',
      action: 'Ação',
      addToKnowledge: 'Link para a Base de Conhecimento',
      pleaseSelect: 'Por favor, selecione',
      newFolder: 'Nova Pasta',
      file: 'Arquivo',
      uploadFile: 'Carregar Arquivo',
      directory: 'Diretório',
      uploadTitle:
        'Clique ou arraste o arquivo para esta área para fazer o upload',
      uploadDescription:
        'Suporta upload de um único arquivo ou múltiplos arquivos. É estritamente proibido o upload de dados da empresa ou outros arquivos proibidos.',
      local: 'Uploads locais',
      s3: 'Uploads S3',
      preview: 'Pré-visualização',
      fileError: 'Erro no arquivo',
      uploadLimit:
        'O tamanho do arquivo não pode exceder 10M, e o número total de arquivos não pode exceder 128',
      destinationFolder: 'Pasta de destino',
    },
    flow: {
      cite: 'Citar',
      citeTip: 'dicaDeCitação',
      name: 'Nome',
      nameMessage: 'Por favor, insira o nome',
      description: 'Descrição',
      examples: 'Exemplos',
      to: 'Para',
      msg: 'Mensagens',
      messagePlaceholder: 'mensagem',
      messageMsg: 'Por favor, insira uma mensagem ou delete este campo.',
      addField: 'Adicionar opção',
      addMessage: 'Adicionar mensagem',
      loop: 'Loop',
      loopTip:
        'O loop é o limite superior do número de repetições do componente atual. Quando o número de repetições excede o valor do loop, significa que o componente não pode completar a tarefa atual, por favor, reotimize o agente',
      yes: 'Sim',
      no: 'Não',
      key: 'Chave',
      componentId: 'ID do componente',
      add: 'Adicionar',
      operation: 'Operação',
      run: 'Executar',
      save: 'Salvar',
      title: 'ID:',
      beginDescription: 'Aqui é onde o fluxo começa.',
      answerDescription: `Um componente que serve como a interface entre o ser humano e o bot, recebendo entradas do usuário e exibindo as respostas do agente.`,
      retrievalDescription: `Um componente que recupera informações de bases de conhecimento especificadas (conjuntos de dados). Certifique-se de que as bases de conhecimento que você seleciona utilizam o mesmo modelo de incorporação.`,
      generateDescription: `Um componente que solicita ao LLM gerar respostas. Certifique-se de que o prompt está configurado corretamente.`,
      categorizeDescription: `Um componente que utiliza o LLM para classificar as entradas do usuário em categorias predefinidas. Certifique-se de especificar o nome, a descrição e os exemplos para cada categoria, juntamente com o próximo componente correspondente.`,
      relevantDescription: `Um componente que usa o LLM para avaliar se a saída anterior é relevante para a última consulta do usuário. Certifique-se de especificar o próximo componente para cada resultado de avaliação.`,
      rewriteQuestionDescription: `Um componente que refina uma consulta do usuário caso ela não recupere informações relevantes da base de conhecimento. Esse processo é repetido até que o limite de repetições predefinido seja alcançado.`,
      messageDescription:
        "Um componente que envia uma mensagem estática. Se várias mensagens forem fornecidas, uma delas será selecionada aleatoriamente para ser enviada. Certifique-se de que o componente posterior seja 'Interagir', o componente de interface.",
      keywordDescription: `Um componente que recupera os N melhores resultados de pesquisa a partir da entrada do usuário. Certifique-se de que o valor de TopN esteja configurado corretamente antes de usar.`,
      switchDescription: `Um componente que avalia condições com base na saída de componentes anteriores e direciona o fluxo de execução conforme necessário. Ele permite lógica de ramificação complexa, definindo casos e especificando ações para cada caso ou ação padrão caso nenhuma condição seja atendida.`,
      wikipediaDescription: `Um componente que realiza buscas no wikipedia.org, utilizando TopN para especificar o número de resultados de pesquisa. Ele complementa as bases de conhecimento existentes.`,
      promptText: `Por favor, resuma os seguintes parágrafos. Tenha cuidado com os números, não invente nada. Os parágrafos são os seguintes:
        {input} Acima está o conteúdo que você precisa resumir.`,
      createGraph: 'Criar agente',
      createFromTemplates: 'Criar a partir de modelos',
      retrieval: 'Recuperação',
      generate: 'Gerar',
      answer: 'Interagir',
      categorize: 'Categorizar',
      relevant: 'Relevante',
      rewriteQuestion: 'Reescrever',
      rewrite: 'Reescrever',
      begin: 'Começar',
      message: 'Mensagem',
      blank: 'Em branco',
      createFromNothing: 'Crie seu agente do zero',
      addItem: 'Adicionar Item',
      addSubItem: 'Adicionar Subitem',
      nameRequiredMsg: 'Nome é obrigatório',
      nameRepeatedMsg: 'O nome não pode ser repetido',
      keywordExtract: 'Palavra-chave',
      keywordExtractDescription: `Um componente que extrai palavras-chave de uma consulta do usuário, com Top N especificando o número de palavras-chave a serem extraídas.`,
      baidu: 'Baidu',
      baiduDescription: `Um componente que realiza buscas no baidu.com, utilizando TopN para especificar o número de resultados de pesquisa. Ele complementa as bases de conhecimento existentes.`,
      duckDuckGo: 'DuckDuckGo',
      duckDuckGoDescription:
        'Um componente que realiza buscas no duckduckgo.com, permitindo especificar o número de resultados de pesquisa usando TopN. Ele complementa as bases de conhecimento existentes.',
      channel: 'Canal',
      channelTip: `Realize uma busca por texto ou por notícias na entrada do componente`,
      text: 'Texto',
      news: 'Notícias',
      messageHistoryWindowSize: 'Tamanho da janela de mensagens',
      messageHistoryWindowSizeTip:
        'O tamanho da janela do histórico de conversa que precisa ser visualizado pelo LLM. Quanto maior, melhor. Mas tenha cuidado com o comprimento máximo de conteúdo do LLM.',
      wikipedia: 'Wikipedia',
      pubMed: 'PubMed',
      pubMedDescription:
        'Um componente que realiza buscas em https://pubmed.ncbi.nlm.nih.gov/, permitindo especificar o número de resultados de pesquisa usando TopN. Ele complementa as bases de conhecimento existentes.',
      email: 'Email',
      emailTip:
        'O E-mail é um campo obrigatório. Você deve inserir um endereço de E-mail aqui.',
      arXiv: 'ArXiv',
      arXivDescription:
        'Um componente que realiza buscas em https://arxiv.org/, permitindo especificar o número de resultados de pesquisa usando TopN. Ele complementa as bases de conhecimento existentes.',
      sortBy: 'Ordenar por',
      submittedDate: 'Data de envio',
      lastUpdatedDate: 'Última data de atualização',
      relevance: 'Relevância',
      google: 'Google',
      googleDescription:
        'Um componente que realiza buscas em https://www.google.com/, permitindo especificar o número de resultados de pesquisa usando TopN. Ele complementa as bases de conhecimento existentes. Observe que isso requer uma chave API de serpapi.com.',
      bing: 'Bing',
      bingDescription:
        'Um componente que realiza buscas em https://www.bing.com/, permitindo especificar o número de resultados de pesquisa usando TopN. Ele complementa as bases de conhecimento existentes. Observe que isso requer uma chave API de microsoft.com.',
      apiKey: 'CHAVE API',
      country: 'País&Região',
      language: 'Idioma',
      googleScholar: 'Google Scholar',
      googleScholarDescription:
        'Um componente que realiza buscas em https://scholar.google.com/. Você pode usar Top N para especificar o número de resultados de pesquisa.',
      yearLow: 'Ano mínimo',
      yearHigh: 'Ano máximo',
      patents: 'Patentes',
      data: 'Dados',
      deepL: 'DeepL',
      deepLDescription:
        'Um componente que realiza traduções mais especializadas a partir de https://www.deepl.com/.',
      authKey: 'Chave de autenticação',
      sourceLang: 'Idioma de origem',
      targetLang: 'Idioma de destino',
      gitHub: 'GitHub',
      gitHubDescription:
        'Um componente que realiza buscas por repositórios em https://github.com/. Você pode usar Top N para especificar o número de resultados de pesquisa.',
      baiduFanyi: 'BaiduFanyi',
      baiduFanyiDescription:
        'Um componente que realiza traduções especializadas a partir de https://fanyi.baidu.com/.',
      appid: 'ID do App',
      secretKey: 'Chave secreta',
      domain: 'Domínio',
      transType: 'Tipo de tradução',
      baiduSecretKeyOptions: {
        translate: 'Tradução geral',
        fieldtranslate: 'Tradução de campo',
      },
      baiduDomainOptions: {
        it: 'Tecnologia da informação',
        finance: 'Finanças e economia',
        machinery: 'Fabricação de máquinas',
        senimed: 'Biomedicina',
        novel: 'Literatura online',
        academic: 'Artigo acadêmico',
        aerospace: 'Aeroespacial',
        wiki: 'Humanidades e ciências sociais',
        news: 'Notícias e informações',
        law: 'Leis e regulamentos',
        contract: 'Contrato',
      },
      baiduSourceLangOptions: {
        auto: 'Detecção automática',
        zh: 'Chinês',
        en: 'Inglês',
        yue: 'Cantonês',
        wyw: 'Chinês clássico',
        jp: 'Japonês',
        kor: 'Coreano',
        fra: 'Francês',
        spa: 'Espanhol',
        th: 'Tailandês',
        ara: 'Árabe',
        ru: 'Russo',
        pt: 'Português',
        de: 'Alemão',
        it: 'Italiano',
        el: 'Grego',
        nl: 'Holandês',
        pl: 'Polonês',
        bul: 'Búlgaro',
        est: 'Estoniano',
        dan: 'Dinamarquês',
        fin: 'Finlandês',
        cs: 'Tcheco',
        rom: 'Romeno',
        slo: 'Esloveno',
        swe: 'Sueco',
        hu: 'Húngaro',
        cht: 'Chinês tradicional',
        vie: 'Vietnamita',
      },

      qWeather: 'QWeather',
      qWeatherDescription:
        'Um componente que recupera informações meteorológicas, como temperatura e qualidade do ar, de https://www.qweather.com.',

      lang: 'Idioma',
      type: 'Tipo',
      webApiKey: 'Chave de API da Web',
      userType: 'Tipo de usuário',
      timePeriod: 'Período de tempo',

      qWeatherLangOptions: {
        zh: 'Chinês simplificado',
        'zh-hant': 'Chinês tradicional',
        en: 'Inglês',
        de: 'Alemão',
        es: 'Espanhol',
        fr: 'Francês',
        it: 'Italiano',
        ja: 'Japonês',
        ko: 'Coreano',
        ru: 'Russo',
        hi: 'Hindi',
        th: 'Tailandês',
        ar: 'Árabe',
        pt: 'Português',
        bn: 'Bengali',
        ms: 'Malaio',
        nl: 'Holandês',
        el: 'Grego',
        la: 'Latim',
        sv: 'Sueco',
        id: 'Indonésio',
        pl: 'Polonês',
        tr: 'Turco',
        cs: 'Tcheco',
        et: 'Estoniano',
        vi: 'Vietnamita',
        fil: 'Filipino',
        fi: 'Finlandês',
        he: 'Hebraico',
        is: 'Islandês',
        nb: 'Norueguês',
      },

      qWeatherTypeOptions: {
        weather: 'Previsão do tempo',
        indices: 'Índice de qualidade de vida relacionado ao clima',
        airquality: 'Qualidade do ar',
      },
      qWeatherUserTypeOptions: {
        free: 'Assinante gratuito',
        paid: 'Assinante pago',
      },

      qWeatherTimePeriodOptions: {
        now: 'Agora',
        '3d': '3 dias',
        '7d': '7 dias',
        '10d': '10 dias',
        '15d': '12 dias',
        '30d': '30 dias',
      },

      publish: 'API',
      exeSQL: 'ExeSQL',
      exeSQLDescription:
        'Um componente que executa consultas SQL em um banco de dados relacional, suportando consultas de MySQL, PostgreSQL ou MariaDB.',

      dbType: 'Tipo de banco de dados',
      database: 'Banco de dados',
      username: 'Nome de usuário',
      host: 'Hospedeiro',
      port: 'Porta',
      password: 'Senha',
      switch: 'Trocar',
      logicalOperator: 'Operador lógico',
      switchOperatorOptions: {
        equal: 'igual',
        notEqual: 'diferente',
        gt: 'Maior que',
        ge: 'Maior ou igual',
        lt: 'Menor que',
        le: 'Menor ou igual',
        contains: 'Contém',
        notContains: 'Não contém',
        startWith: 'Começa com',
        endWith: 'Termina com',
        empty: 'Vazio',
        notEmpty: 'Não vazio',
      },

      switchLogicOperatorOptions: {
        and: 'E',
        or: 'Ou',
      },

      operator: 'Operador',
      value: 'Valor',
      useTemplate: 'Usar este modelo',
      wenCai: 'WenCai',
      queryType: 'Tipo de consulta',
      wenCaiDescription:
        'Um componente que obtém informações financeiras, incluindo preços de ações e notícias de financiamento, de uma ampla variedade de sites financeiros.',

      wenCaiQueryTypeOptions: {
        stock: 'Ação',
        zhishu: 'Índice',
        fund: 'Fundo',
        hkstock: 'Ações de Hong Kong',
        usstock: 'Mercado de ações dos EUA',
        threeboard: 'Mercado OTC Novo',
        conbond: 'Título Conversível',
        insurance: 'Seguro',
        futures: 'Futuros',
        lccp: 'Financiamento',
        foreign_exchange: 'Câmbio',
      },

      akShare: 'AkShare',
      akShareDescription:
        'Um componente que obtém notícias sobre ações de https://www.eastmoney.com/.',

      yahooFinance: 'YahooFinance',
      yahooFinanceDescription:
        'Um componente que consulta informações sobre uma empresa de capital aberto usando seu símbolo de ticker.',

      crawler: 'Rastreador Web',
      crawlerDescription:
        'Um componente que rastreia o código-fonte HTML de um URL especificado.',

      proxy: 'Proxy',
      crawlerResultOptions: {
        html: 'Html',
        markdown: 'Markdown',
        content: 'Conteúdo',
      },

      extractType: 'Tipo de extração',
      info: 'Informações',
      history: 'Histórico',
      financials: 'Financeiro',
      balanceSheet: 'Balanço patrimonial',
      cashFlowStatement: 'Demonstração de fluxo de caixa',
      jin10: 'Jin10',
      jin10Description:
        'Um componente que obtém informações financeiras da Plataforma Aberta Jin10, incluindo notícias, calendários, cotações e referências.',

      flashType: 'Tipo de Flash',
      filter: 'Filtro',
      contain: 'Contém',
      calendarType: 'Tipo de calendário',
      calendarDatashape: 'Formato de dados do calendário',
      symbolsDatatype: 'Tipo de dados de símbolos',
      symbolsType: 'Tipo de símbolos',
      jin10TypeOptions: {
        flash: 'Notícias rápidas',
        calendar: 'Calendário',
        symbols: 'Cotações',
        news: 'Referência',
      },

      jin10FlashTypeOptions: {
        '1': 'Notícias do Mercado',
        '2': 'Notícias de Futuros',
        '3': 'Notícias EUA-Hong Kong',
        '4': 'Notícias A-Share',
        '5': 'Notícias de Commodities & Forex',
      },

      jin10CalendarTypeOptions: {
        cj: 'Calendário de dados macroeconômicos',
        qh: 'Calendário de Futuros',
        hk: 'Calendário do mercado de ações de Hong Kong',
        us: 'Calendário do mercado de ações dos EUA',
      },

      jin10CalendarDatashapeOptions: {
        data: 'Dados',
        event: 'Evento',
        holiday: 'Feriado',
      },

      jin10SymbolsTypeOptions: {
        GOODS: 'Cotações de commodities',
        FOREX: 'Cotações de Forex',
        FUTURE: 'Cotações do mercado internacional',
        CRYPTO: 'Cotações de criptomoedas',
      },

      jin10SymbolsDatatypeOptions: {
        symbols: 'Lista de commodities',
        quotes: 'Últimas cotações do mercado',
      },
      concentrator: 'Concentrador',
      concentratorDescription:
        'Um componente que recebe a saída do componente anterior e a passa como entrada para os componentes subsequentes.',

      tuShare: 'TuShare',
      tuShareDescription:
        'Um componente que obtém resumos de notícias financeiras de sites financeiros principais, auxiliando pesquisas industriais e quantitativas.',

      tuShareSrcOptions: {
        sina: 'Sina',
        wallstreetcn: 'wallstreetcn',
        '10jqka': 'Straight flush',
        eastmoney: 'Eastmoney',
        yuncaijing: 'YUNCAIJING',
        fenghuang: 'FENGHUANG',
        jinrongjie: 'JRJ',
      },

      token: 'Token',
      src: 'Fonte',
      startDate: 'Data de início',
      endDate: 'Data de término',
      keyword: 'Palavra-chave',
      note: 'Nota',
      noteDescription: 'Nota',
      notePlaceholder: 'Por favor, insira uma nota',

      invoke: 'Invocar',
      invokeDescription:
        'Um componente capaz de chamar serviços remotos, usando saídas de outros componentes ou constantes como entradas.',

      url: 'Url',
      method: 'Método',
      timeout: 'Tempo de espera',
      headers: 'Cabeçalhos',
      cleanHtml: 'Limpar HTML',
      cleanHtmlTip:
        'Se a resposta for formatada em HTML e apenas o conteúdo principal for desejado, ative esta opção.',

      reference: 'Referência',
      input: 'Entrada',
      output: 'Saída',
      parameter: 'Parâmetro',
      howUseId: 'Como usar o ID do agente?',
      content: 'Conteúdo',
      operationResults: 'Resultados da operação',
      autosaved: 'Autossalvo',
      optional: 'Opcional',
      pasteFileLink: 'Cole o link do arquivo',
      testRun: 'Executar teste',
      template: 'Modelo',
      templateDescription:
        'Um componente que formata a saída de outro componente.',

      emailComponent: 'Email',
      emailDescription: 'Enviar um email para um endereço especificado.',
      smtpServer: 'Servidor SMTP',
      smtpPort: 'Porta SMTP',
      senderEmail: 'Email do remetente',
      authCode: 'Código de autorização',
      senderName: 'Nome do remetente',
      toEmail: 'Email do destinatário',
      ccEmail: 'Email CC',
      emailSubject: 'Assunto',
      emailContent: 'Conteúdo',
      smtpServerRequired: 'Por favor, insira o endereço do servidor SMTP',
      senderEmailRequired: 'Por favor, insira o email do remetente',
      authCodeRequired: 'Por favor, insira o código de autorização',
      toEmailRequired: 'Por favor, insira o email do destinatário',
      emailContentRequired: 'Por favor, insira o conteúdo do email',
      emailSentSuccess: 'Email enviado com sucesso',
      emailSentFailed: 'Falha ao enviar o email',

      dynamicParameters: 'Parâmetros dinâmicos',
      jsonFormatTip:
        'O componente anterior deve fornecer a string JSON no seguinte formato:',
      toEmailTip: 'to_email: Email do destinatário (Obrigatório)',
      ccEmailTip: 'cc_email: Email CC (Opcional)',
      subjectTip: 'subject: Assunto do email (Opcional)',
      contentTip: 'content: Conteúdo do email (Opcional)',
      jsonUploadTypeErrorMessage: 'Por favor, carregue um arquivo json',
      jsonUploadContentErrorMessage: 'Erro no arquivo json',

      iteration: 'Iteração',
      iterationDescription:
        'Este componente primeiramente divide a entrada em um array pelo "delimitador". Realiza os mesmos passos de operação nos elementos do array em sequência até que todos os resultados sejam gerados, o que pode ser entendido como um processador de tarefas em lote. Por exemplo, dentro do nó de tradução de texto longo, se todo o conteúdo for enviado ao nó LLM, o limite de conversação pode ser atingido. O nó anterior pode primeiro dividir o texto longo em fragmentos e cooperar com o nó iterativo para realizar a tradução em lote de cada fragmento para evitar atingir o limite de mensagem do LLM em uma única conversa.',

      delimiterTip:
        'Este delimitador é usado para dividir o texto de entrada em várias partes, cuja saída será realizada como entrada de cada iteração.',

      delimiterOptions: {
        comma: 'Vírgula',
        lineBreak: 'Quebra de linha',
        tab: 'Tabulação',
        underline: 'Sublinhado',
        diagonal: 'Diagonal',
        minus: 'Menos',
        semicolon: 'Ponto e vírgula',
      },
      addVariable: 'Adicionar variável',
      variableSettings: 'Configurações da variável',
      globalVariables: 'Variáveis globais',
      systemPrompt: 'Prompt do sistema',
      addCategory: 'Adicionar categoria',
      categoryName: 'Nome da categoria',
      nextStep: 'Próximo passo',
      footer: {
        profile: 'Todos os direitos reservados @ React',
      },
      layout: {
        file: 'arquivo',
        knowledge: 'conhecimento',
        chat: 'bate-papo',
      },
    },
  },
};