選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

constants.ts 4.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. import type { ComponentType } from 'react'
  2. import { BlockEnum } from '../types'
  3. import StartNode from './start/node'
  4. import StartPanel from './start/panel'
  5. import EndNode from './end/node'
  6. import EndPanel from './end/panel'
  7. import AnswerNode from './answer/node'
  8. import AnswerPanel from './answer/panel'
  9. import LLMNode from './llm/node'
  10. import LLMPanel from './llm/panel'
  11. import KnowledgeRetrievalNode from './knowledge-retrieval/node'
  12. import KnowledgeRetrievalPanel from './knowledge-retrieval/panel'
  13. import QuestionClassifierNode from './question-classifier/node'
  14. import QuestionClassifierPanel from './question-classifier/panel'
  15. import IfElseNode from './if-else/node'
  16. import IfElsePanel from './if-else/panel'
  17. import CodeNode from './code/node'
  18. import CodePanel from './code/panel'
  19. import TemplateTransformNode from './template-transform/node'
  20. import TemplateTransformPanel from './template-transform/panel'
  21. import HttpNode from './http/node'
  22. import HttpPanel from './http/panel'
  23. import ToolNode from './tool/node'
  24. import ToolPanel from './tool/panel'
  25. import VariableAssignerNode from './variable-assigner/node'
  26. import VariableAssignerPanel from './variable-assigner/panel'
  27. import AssignerNode from './assigner/node'
  28. import AssignerPanel from './assigner/panel'
  29. import ParameterExtractorNode from './parameter-extractor/node'
  30. import ParameterExtractorPanel from './parameter-extractor/panel'
  31. import IterationNode from './iteration/node'
  32. import IterationPanel from './iteration/panel'
  33. import LoopNode from './loop/node'
  34. import LoopPanel from './loop/panel'
  35. import DocExtractorNode from './document-extractor/node'
  36. import DocExtractorPanel from './document-extractor/panel'
  37. import ListFilterNode from './list-operator/node'
  38. import ListFilterPanel from './list-operator/panel'
  39. import AgentNode from './agent/node'
  40. import AgentPanel from './agent/panel'
  41. import DataSourceNode from './data-source/node'
  42. import DataSourcePanel from './data-source/panel'
  43. import KnowledgeBaseNode from './knowledge-base/node'
  44. import KnowledgeBasePanel from './knowledge-base/panel'
  45. import { TransferMethod } from '@/types/app'
  46. export const NodeComponentMap: Record<string, ComponentType<any>> = {
  47. [BlockEnum.Start]: StartNode,
  48. [BlockEnum.End]: EndNode,
  49. [BlockEnum.Answer]: AnswerNode,
  50. [BlockEnum.LLM]: LLMNode,
  51. [BlockEnum.KnowledgeRetrieval]: KnowledgeRetrievalNode,
  52. [BlockEnum.QuestionClassifier]: QuestionClassifierNode,
  53. [BlockEnum.IfElse]: IfElseNode,
  54. [BlockEnum.Code]: CodeNode,
  55. [BlockEnum.TemplateTransform]: TemplateTransformNode,
  56. [BlockEnum.HttpRequest]: HttpNode,
  57. [BlockEnum.Tool]: ToolNode,
  58. [BlockEnum.VariableAssigner]: VariableAssignerNode,
  59. [BlockEnum.Assigner]: AssignerNode,
  60. [BlockEnum.VariableAggregator]: VariableAssignerNode,
  61. [BlockEnum.ParameterExtractor]: ParameterExtractorNode,
  62. [BlockEnum.Iteration]: IterationNode,
  63. [BlockEnum.Loop]: LoopNode,
  64. [BlockEnum.DocExtractor]: DocExtractorNode,
  65. [BlockEnum.ListFilter]: ListFilterNode,
  66. [BlockEnum.Agent]: AgentNode,
  67. [BlockEnum.DataSource]: DataSourceNode,
  68. [BlockEnum.KnowledgeBase]: KnowledgeBaseNode,
  69. }
  70. export const PanelComponentMap: Record<string, ComponentType<any>> = {
  71. [BlockEnum.Start]: StartPanel,
  72. [BlockEnum.End]: EndPanel,
  73. [BlockEnum.Answer]: AnswerPanel,
  74. [BlockEnum.LLM]: LLMPanel,
  75. [BlockEnum.KnowledgeRetrieval]: KnowledgeRetrievalPanel,
  76. [BlockEnum.QuestionClassifier]: QuestionClassifierPanel,
  77. [BlockEnum.IfElse]: IfElsePanel,
  78. [BlockEnum.Code]: CodePanel,
  79. [BlockEnum.TemplateTransform]: TemplateTransformPanel,
  80. [BlockEnum.HttpRequest]: HttpPanel,
  81. [BlockEnum.Tool]: ToolPanel,
  82. [BlockEnum.VariableAssigner]: VariableAssignerPanel,
  83. [BlockEnum.VariableAggregator]: VariableAssignerPanel,
  84. [BlockEnum.Assigner]: AssignerPanel,
  85. [BlockEnum.ParameterExtractor]: ParameterExtractorPanel,
  86. [BlockEnum.Iteration]: IterationPanel,
  87. [BlockEnum.Loop]: LoopPanel,
  88. [BlockEnum.DocExtractor]: DocExtractorPanel,
  89. [BlockEnum.ListFilter]: ListFilterPanel,
  90. [BlockEnum.Agent]: AgentPanel,
  91. [BlockEnum.DataSource]: DataSourcePanel,
  92. [BlockEnum.KnowledgeBase]: KnowledgeBasePanel,
  93. }
  94. export const CUSTOM_NODE_TYPE = 'custom'
  95. export const FILE_TYPE_OPTIONS = [
  96. { value: 'image', i18nKey: 'image' },
  97. { value: 'document', i18nKey: 'doc' },
  98. { value: 'audio', i18nKey: 'audio' },
  99. { value: 'video', i18nKey: 'video' },
  100. ]
  101. export const TRANSFER_METHOD = [
  102. { value: TransferMethod.local_file, i18nKey: 'localUpload' },
  103. { value: TransferMethod.remote_url, i18nKey: 'url' },
  104. ]
  105. export const SUB_VARIABLES = ['type', 'size', 'name', 'url', 'extension', 'mime_type', 'transfer_method', 'related_id']
  106. export const OUTPUT_FILE_SUB_VARIABLES = SUB_VARIABLES.filter(key => key !== 'transfer_method')