use-node-help-link.ts 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. import { useMemo } from 'react'
  2. import { useDocLink, useGetLanguage } from '@/context/i18n'
  3. import { BlockEnum } from '@/app/components/workflow/types'
  4. export const useNodeHelpLink = (nodeType: BlockEnum) => {
  5. const language = useGetLanguage()
  6. const docLink = useDocLink()
  7. const prefixLink = useMemo(() => {
  8. return docLink('/guides/workflow/node/')
  9. }, [language])
  10. const linkMap = useMemo(() => {
  11. if (language === 'zh_Hans') {
  12. return {
  13. [BlockEnum.Start]: 'start',
  14. [BlockEnum.End]: 'end',
  15. [BlockEnum.Answer]: 'answer',
  16. [BlockEnum.LLM]: 'llm',
  17. [BlockEnum.KnowledgeRetrieval]: 'knowledge-retrieval',
  18. [BlockEnum.QuestionClassifier]: 'question-classifier',
  19. [BlockEnum.IfElse]: 'ifelse',
  20. [BlockEnum.Code]: 'code',
  21. [BlockEnum.TemplateTransform]: 'template',
  22. [BlockEnum.VariableAssigner]: 'variable-assigner',
  23. [BlockEnum.VariableAggregator]: 'variable-aggregator',
  24. [BlockEnum.Assigner]: 'variable-assigner',
  25. [BlockEnum.Iteration]: 'iteration',
  26. [BlockEnum.Loop]: 'loop',
  27. [BlockEnum.ParameterExtractor]: 'parameter-extractor',
  28. [BlockEnum.HttpRequest]: 'http-request',
  29. [BlockEnum.Tool]: 'tools',
  30. [BlockEnum.DocExtractor]: 'doc-extractor',
  31. [BlockEnum.ListFilter]: 'list-operator',
  32. [BlockEnum.Agent]: 'agent',
  33. }
  34. }
  35. return {
  36. [BlockEnum.Start]: 'start',
  37. [BlockEnum.End]: 'end',
  38. [BlockEnum.Answer]: 'answer',
  39. [BlockEnum.LLM]: 'llm',
  40. [BlockEnum.KnowledgeRetrieval]: 'knowledge-retrieval',
  41. [BlockEnum.QuestionClassifier]: 'question-classifier',
  42. [BlockEnum.IfElse]: 'ifelse',
  43. [BlockEnum.Code]: 'code',
  44. [BlockEnum.TemplateTransform]: 'template',
  45. [BlockEnum.VariableAssigner]: 'variable-assigner',
  46. [BlockEnum.VariableAggregator]: 'variable-aggregator',
  47. [BlockEnum.Assigner]: 'variable-assigner',
  48. [BlockEnum.Iteration]: 'iteration',
  49. [BlockEnum.Loop]: 'loop',
  50. [BlockEnum.ParameterExtractor]: 'parameter-extractor',
  51. [BlockEnum.HttpRequest]: 'http-request',
  52. [BlockEnum.Tool]: 'tools',
  53. [BlockEnum.DocExtractor]: 'doc-extractor',
  54. [BlockEnum.ListFilter]: 'list-operator',
  55. [BlockEnum.Agent]: 'agent',
  56. }
  57. }, [language]) as Record<string, string>
  58. const link = linkMap[nodeType]
  59. if (!link)
  60. return ''
  61. return `${prefixLink}${link}`
  62. }