|
import { useTranslation } from 'react-i18next'; |
|
import { z } from 'zod'; |
|
import { Operator } from '../constant'; |
|
import AkShareForm from '../form/akshare-form'; |
|
import AnswerForm from '../form/answer-form'; |
|
import ArXivForm from '../form/arxiv-form'; |
|
import BaiduFanyiForm from '../form/baidu-fanyi-form'; |
|
import BaiduForm from '../form/baidu-form'; |
|
import BeginForm from '../form/begin-form'; |
|
import BingForm from '../form/bing-form'; |
|
import CategorizeForm from '../form/categorize-form'; |
|
import CrawlerForm from '../form/crawler-form'; |
|
import DeepLForm from '../form/deepl-form'; |
|
import DuckDuckGoForm from '../form/duckduckgo-form'; |
|
import EmailForm from '../form/email-form'; |
|
import ExeSQLForm from '../form/exesql-form'; |
|
import GenerateForm from '../form/generate-form'; |
|
import GithubForm from '../form/github-form'; |
|
import GoogleForm from '../form/google-form'; |
|
import GoogleScholarForm from '../form/google-scholar-form'; |
|
import InvokeForm from '../form/invoke-form'; |
|
import IterationForm from '../form/iteration-from'; |
|
import Jin10Form from '../form/jin10-form'; |
|
import KeywordExtractForm from '../form/keyword-extract-form'; |
|
import MessageForm from '../form/message-form'; |
|
import PubMedForm from '../form/pubmed-form'; |
|
import QWeatherForm from '../form/qweather-form'; |
|
import RelevantForm from '../form/relevant-form'; |
|
import RetrievalForm from '../form/retrieval-form/next'; |
|
import RewriteQuestionForm from '../form/rewrite-question-form'; |
|
import SwitchForm from '../form/switch-form'; |
|
import TemplateForm from '../form/template-form'; |
|
import TuShareForm from '../form/tushare-form'; |
|
import WenCaiForm from '../form/wencai-form'; |
|
import WikipediaForm from '../form/wikipedia-form'; |
|
import YahooFinanceForm from '../form/yahoo-finance-form'; |
|
|
|
export function useFormConfigMap() { |
|
const { t } = useTranslation(); |
|
|
|
const FormConfigMap = { |
|
[Operator.Begin]: { |
|
component: BeginForm, |
|
defaultValues: {}, |
|
schema: z.object({ |
|
name: z |
|
.string() |
|
.min(1, { |
|
message: t('common.namePlaceholder'), |
|
}) |
|
.trim(), |
|
age: z |
|
.string() |
|
.min(1, { |
|
message: t('common.namePlaceholder'), |
|
}) |
|
.trim(), |
|
}), |
|
}, |
|
[Operator.Retrieval]: { |
|
component: RetrievalForm, |
|
defaultValues: { query: [] }, |
|
schema: z.object({ |
|
name: z |
|
.string() |
|
.min(1, { |
|
message: t('common.namePlaceholder'), |
|
}) |
|
.trim(), |
|
age: z |
|
.string() |
|
.min(1, { |
|
message: t('common.namePlaceholder'), |
|
}) |
|
.trim(), |
|
query: z.array( |
|
z.object({ |
|
type: z.string(), |
|
}), |
|
), |
|
}), |
|
}, |
|
[Operator.Generate]: { |
|
component: GenerateForm, |
|
defaultValues: { |
|
cite: true, |
|
prompt: t('flow.promptText'), |
|
}, |
|
schema: z.object({ |
|
prompt: z.string().min(1, { |
|
message: t('flow.promptMessage'), |
|
}), |
|
}), |
|
}, |
|
[Operator.Answer]: { |
|
component: AnswerForm, |
|
defaultValues: {}, |
|
schema: z.object({}), |
|
}, |
|
[Operator.Categorize]: { |
|
component: CategorizeForm, |
|
defaultValues: { message_history_window_size: 1 }, |
|
schema: z.object({ |
|
message_history_window_size: z.number(), |
|
items: z.array( |
|
z.object({ |
|
name: z.string().min(1, t('flow.nameMessage')).trim(), |
|
}), |
|
), |
|
}), |
|
}, |
|
[Operator.Message]: { |
|
component: MessageForm, |
|
defaultValues: {}, |
|
schema: z.object({}), |
|
}, |
|
[Operator.Relevant]: { |
|
component: RelevantForm, |
|
defaultValues: {}, |
|
schema: z.object({}), |
|
}, |
|
[Operator.RewriteQuestion]: { |
|
component: RewriteQuestionForm, |
|
defaultValues: { |
|
message_history_window_size: 6, |
|
}, |
|
schema: z.object({ |
|
llm_id: z.string(), |
|
message_history_window_size: z.number(), |
|
language: z.string(), |
|
}), |
|
}, |
|
[Operator.Baidu]: { |
|
component: BaiduForm, |
|
defaultValues: { top_n: 10 }, |
|
schema: z.object({ top_n: z.number() }), |
|
}, |
|
[Operator.DuckDuckGo]: { |
|
component: DuckDuckGoForm, |
|
defaultValues: { |
|
top_n: 10, |
|
channel: 'text', |
|
}, |
|
schema: z.object({ |
|
top_n: z.number(), |
|
}), |
|
}, |
|
[Operator.KeywordExtract]: { |
|
component: KeywordExtractForm, |
|
defaultValues: { top_n: 3 }, |
|
schema: z.object({ |
|
llm_id: z.string(), |
|
top_n: z.number(), |
|
}), |
|
}, |
|
[Operator.Wikipedia]: { |
|
component: WikipediaForm, |
|
defaultValues: { |
|
top_n: 10, |
|
}, |
|
schema: z.object({ |
|
language: z.string(), |
|
top_n: z.number(), |
|
}), |
|
}, |
|
[Operator.PubMed]: { |
|
component: PubMedForm, |
|
defaultValues: { top_n: 10 }, |
|
schema: z.object({ |
|
top_n: z.number(), |
|
email: z.string(), |
|
}), |
|
}, |
|
[Operator.ArXiv]: { |
|
component: ArXivForm, |
|
defaultValues: {}, |
|
schema: z.object({}), |
|
}, |
|
[Operator.Google]: { |
|
component: GoogleForm, |
|
defaultValues: {}, |
|
schema: z.object({}), |
|
}, |
|
[Operator.Bing]: { |
|
component: BingForm, |
|
defaultValues: {}, |
|
schema: z.object({}), |
|
}, |
|
[Operator.GoogleScholar]: { |
|
component: GoogleScholarForm, |
|
defaultValues: {}, |
|
schema: z.object({}), |
|
}, |
|
[Operator.DeepL]: { |
|
component: DeepLForm, |
|
defaultValues: {}, |
|
schema: z.object({}), |
|
}, |
|
[Operator.GitHub]: { |
|
component: GithubForm, |
|
defaultValues: {}, |
|
schema: z.object({}), |
|
}, |
|
[Operator.BaiduFanyi]: { |
|
component: BaiduFanyiForm, |
|
defaultValues: {}, |
|
schema: z.object({}), |
|
}, |
|
[Operator.QWeather]: { |
|
component: QWeatherForm, |
|
defaultValues: {}, |
|
schema: z.object({ |
|
web_apikey: z.string(), |
|
lang: z.string(), |
|
type: z.string(), |
|
user_type: z.string(), |
|
time_period: z.string().optional(), |
|
}), |
|
}, |
|
[Operator.ExeSQL]: { |
|
component: ExeSQLForm, |
|
defaultValues: {}, |
|
schema: z.object({}), |
|
}, |
|
[Operator.Switch]: { |
|
component: SwitchForm, |
|
defaultValues: {}, |
|
schema: z.object({}), |
|
}, |
|
[Operator.WenCai]: { |
|
component: WenCaiForm, |
|
defaultValues: { |
|
top_n: 20, |
|
}, |
|
schema: z.object({ |
|
top_n: z.number(), |
|
query_type: z.string(), |
|
}), |
|
}, |
|
[Operator.AkShare]: { |
|
component: AkShareForm, |
|
defaultValues: { |
|
top_n: 10, |
|
}, |
|
schema: z.object({ |
|
top_n: z.number(), |
|
}), |
|
}, |
|
[Operator.YahooFinance]: { |
|
component: YahooFinanceForm, |
|
defaultValues: {}, |
|
schema: z.object({}), |
|
}, |
|
[Operator.Jin10]: { |
|
component: Jin10Form, |
|
defaultValues: {}, |
|
schema: z.object({}), |
|
}, |
|
[Operator.TuShare]: { |
|
component: TuShareForm, |
|
defaultValues: {}, |
|
schema: z.object({}), |
|
}, |
|
[Operator.Crawler]: { |
|
component: CrawlerForm, |
|
defaultValues: {}, |
|
schema: z.object({}), |
|
}, |
|
[Operator.Invoke]: { |
|
component: InvokeForm, |
|
defaultValues: {}, |
|
schema: z.object({}), |
|
}, |
|
[Operator.Concentrator]: { |
|
component: () => <></>, |
|
defaultValues: {}, |
|
schema: z.object({}), |
|
}, |
|
[Operator.Note]: { |
|
component: () => <></>, |
|
defaultValues: {}, |
|
schema: z.object({}), |
|
}, |
|
[Operator.Template]: { |
|
component: TemplateForm, |
|
defaultValues: {}, |
|
schema: z.object({}), |
|
}, |
|
[Operator.Email]: { |
|
component: EmailForm, |
|
defaultValues: {}, |
|
schema: z.object({}), |
|
}, |
|
[Operator.Iteration]: { |
|
component: IterationForm, |
|
defaultValues: {}, |
|
schema: z.object({}), |
|
}, |
|
[Operator.IterationStart]: { |
|
component: () => <></>, |
|
defaultValues: {}, |
|
schema: z.object({}), |
|
}, |
|
}; |
|
|
|
return FormConfigMap; |
|
} |
|
|