### What problem does this PR solve? feat: modify the translation of baiduDescription #918 feat: add PubMed operator #918 ### Type of change - [x] New Feature (non-breaking change which adds functionality)tags/v0.9.0
| @@ -0,0 +1,6 @@ | |||
| <svg t="1721281989464" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4310" | |||
| width="200" height="200"> | |||
| <path d="M128 64h448l192 448-192 448H128a128 128 0 0 1-128-128V192a128 128 0 0 1 128-128z" fill="#205992" | |||
| p-id="4311"></path> | |||
| <path d="M704 64h128l192 448-192 448h-128l192-448z" fill="#205992" p-id="4312"></path> | |||
| </svg> | |||
| @@ -579,7 +579,7 @@ The above is the content you need to summarize.`, | |||
| messageDescription: | |||
| 'This component is used to send user static information. You can prepare several messages which will be chosen randomly.', | |||
| keywordDescription: `This component is used to extract keywords from user's question. Top N specifies the number of keywords you need to extract.`, | |||
| wikipediaDescription: `This component is used to get search result from https://www.wikipedia.org/. Typically, it performs as a supplement to knowledgebases. Top N specifies the number of search results you need to adopt.`, | |||
| wikipediaDescription: `This component is used to get search result from https://www.wikipedia.org/. Typically, it performs as a supplement to knowledgebases. Top N specifies the number of search results you need to adapt.`, | |||
| promptText: `Please summarize the following paragraphs. Be careful with the numbers, do not make things up. Paragraphs as following: | |||
| {input} | |||
| The above is the content you need to summarize.`, | |||
| @@ -602,10 +602,10 @@ The above is the content you need to summarize.`, | |||
| keywordExtract: 'Keyword', | |||
| keywordExtractDescription: `This component is used to extract keywords from user's question. Top N specifies the number of keywords you need to extract.`, | |||
| baidu: 'Baidu', | |||
| baiduDescription: `This component is used to get search result from www.baidu.com. Typically, it performs as a supplement to knowledgebases. Top N specifies the number of search results you need to adopt.`, | |||
| baiduDescription: `This component is used to get search result from www.baidu.com. Typically, it performs as a supplement to knowledgebases. Top N specifies the number of search results you need to adapt.`, | |||
| duckDuckGo: 'DuckDuckGo', | |||
| duckDuckGoDescription: | |||
| 'This component is used to get search result from www.duckduckgo.com. Typically, it performs as a supplement to knowledgebases. Top N specifies the number of search results you need to adopt.', | |||
| 'This component is used to get search result from www.duckduckgo.com. Typically, it performs as a supplement to knowledgebases. Top N specifies the number of search results you need to adapt.', | |||
| channel: 'Channel', | |||
| channelTip: `Perform text search or news search on the component's input`, | |||
| text: 'Text', | |||
| @@ -614,6 +614,10 @@ The above is the content you need to summarize.`, | |||
| messageHistoryWindowSizeTip: | |||
| 'The window size of conversation history that needed to be seen by LLM. The larger the better. But be careful with the maximum content length of LLM.', | |||
| wikipedia: 'Wikipedia', | |||
| pubMed: 'PubMed', | |||
| email: 'Email', | |||
| emailTip: | |||
| 'This component is used to get search result from https://pubmed.ncbi.nlm.nih.gov/. Typically, it performs as a supplement to knowledgebases. Top N specifies the number of search results you need to adapt. E-mail is a required field.', | |||
| }, | |||
| footer: { | |||
| profile: 'All rights reserved @ React', | |||
| @@ -541,7 +541,7 @@ export default { | |||
| messageDescription: | |||
| '此元件用於向使用者發送靜態訊息。您可以準備幾條訊息,這些訊息將隨機選擇。', | |||
| keywordDescription: `該組件用於從用戶的問題中提取關鍵字。 Top N指定需要提取的關鍵字數量。`, | |||
| wikipediaDescription: `此元件用於從 https://www.wikipedia.org/ 取得搜尋結果。通常,它充當知識庫的補充。 Top N 指定您需要採用的搜尋結果的數量。`, | |||
| wikipediaDescription: `此元件用於從 https://www.wikipedia.org/ 取得搜尋結果。通常,它作為知識庫的補充。 Top N 指定您需要調整的搜尋結果數。`, | |||
| promptText: `請總結以下段落。注意數字,不要胡編亂造。段落如下: | |||
| {input} | |||
| 以上就是你需要總結的內容。`, | |||
| @@ -575,6 +575,9 @@ export default { | |||
| messageHistoryWindowSizeTip: | |||
| 'LLM需要查看的對話記錄的視窗大小。越大越好。但要注意LLM的最大內容長度。', | |||
| wikipedia: '維基百科', | |||
| email: '信箱', | |||
| emailTip: | |||
| '此元件用於從 https://pubmed.ncbi.nlm.nih.gov/ 取得搜尋結果。通常,它充當知識庫的補充。 Top N 指定您需要適應的搜尋結果的數量。電子郵件是必填欄位。', | |||
| }, | |||
| footer: { | |||
| profile: '“保留所有權利 @ react”', | |||
| @@ -559,7 +559,7 @@ export default { | |||
| messageDescription: | |||
| '此组件用于向用户发送静态信息。您可以准备几条消息,这些消息将被随机选择。', | |||
| keywordDescription: `该组件用于从用户的问题中提取关键词。Top N指定需要提取的关键词数量。`, | |||
| wikipediaDescription: `此组件用于从 https://www.wikipedia.org/ 获取搜索结果。通常,它作为知识库的补充。Top N 指定您需要采用的搜索结果数量。`, | |||
| wikipediaDescription: `此组件用于从 https://www.wikipedia.org/ 获取搜索结果。通常,它作为知识库的补充。Top N 指定您需要调整的搜索结果数量。`, | |||
| promptText: `请总结以下段落。注意数字,不要胡编乱造。段落如下: | |||
| {input} | |||
| 以上就是你需要总结的内容。`, | |||
| @@ -581,10 +581,10 @@ export default { | |||
| keywordExtract: '关键词', | |||
| keywordExtractDescription: `该组件用于从用户的问题中提取关键词。Top N指定需要提取的关键词数量。`, | |||
| baidu: '百度', | |||
| baiduDescription: `该组件用于获取www.baidu.com的搜索结果,一般作为知识库的补充,Top N指定需要采纳的搜索结果数量。`, | |||
| baiduDescription: `此元件用於取得www.baidu.com的搜尋結果。通常作為知識庫的補充。 Top N指定您需要適配的搜尋結果數。`, | |||
| duckDuckGo: 'DuckDuckGo', | |||
| duckDuckGoDescription: | |||
| '此组件用于从 www.duckduckgo.com 获取搜索结果。通常,它作为知识库的补充。Top N 指定您需要采用的搜索结果数量。', | |||
| '此元件用於從 www.duckduckgo.com 取得搜尋結果。通常,它作為知識庫的補充。 Top N 指定您需要調整的搜尋結果數。', | |||
| channel: '频道', | |||
| channelTip: '针对该组件的输入进行文本搜索或新闻搜索', | |||
| text: '文本', | |||
| @@ -593,6 +593,9 @@ export default { | |||
| messageHistoryWindowSizeTip: | |||
| 'LLM 需要查看的对话历史窗口大小。越大越好。但要注意 LLM 的最大内容长度。', | |||
| wikipedia: '维基百科', | |||
| email: '邮箱', | |||
| emailTip: | |||
| '此组件用于从 https://pubmed.ncbi.nlm.nih.gov/ 获取搜索结果。通常,它作为知识库的补充。Top N 指定您需要调整的搜索结果数。电子邮件是必填字段。', | |||
| }, | |||
| footer: { | |||
| profile: 'All rights reserved @ React', | |||
| @@ -1,7 +1,9 @@ | |||
| import { ReactComponent as BaiduIcon } from '@/assets/svg/baidu.svg'; | |||
| import { ReactComponent as DuckIcon } from '@/assets/svg/duck.svg'; | |||
| import { ReactComponent as KeywordIcon } from '@/assets/svg/keyword.svg'; | |||
| import { ReactComponent as PubMedIcon } from '@/assets/svg/pubmed.svg'; | |||
| import { ReactComponent as WikipediaIcon } from '@/assets/svg/wikipedia.svg'; | |||
| import { variableEnabledFieldMap } from '@/constants/chat'; | |||
| import i18n from '@/locales/config'; | |||
| @@ -35,6 +37,7 @@ export enum Operator { | |||
| Baidu = 'Baidu', | |||
| DuckDuckGo = 'DuckDuckGo', | |||
| Wikipedia = 'Wikipedia', | |||
| PubMed = 'PubMed', | |||
| } | |||
| export const operatorIconMap = { | |||
| @@ -50,6 +53,7 @@ export const operatorIconMap = { | |||
| [Operator.DuckDuckGo]: DuckIcon, | |||
| [Operator.Baidu]: BaiduIcon, | |||
| [Operator.Wikipedia]: WikipediaIcon, | |||
| [Operator.PubMed]: PubMedIcon, | |||
| }; | |||
| export const operatorMap = { | |||
| @@ -113,6 +117,9 @@ export const operatorMap = { | |||
| [Operator.Wikipedia]: { | |||
| backgroundColor: '#dee0e2', | |||
| }, | |||
| [Operator.PubMed]: { | |||
| backgroundColor: '#a2ccf0', | |||
| }, | |||
| }; | |||
| export const componentMenuList = [ | |||
| @@ -149,6 +156,9 @@ export const componentMenuList = [ | |||
| { | |||
| name: Operator.Wikipedia, | |||
| }, | |||
| { | |||
| name: Operator.PubMed, | |||
| }, | |||
| ]; | |||
| export const initialRetrievalValues = { | |||
| @@ -221,6 +231,11 @@ export const initialWikipediaValues = { | |||
| language: 'en', | |||
| }; | |||
| export const initialPubMedValues = { | |||
| top_n: 10, | |||
| email: '', | |||
| }; | |||
| export const CategorizeAnchorPointPositions = [ | |||
| { top: 1, right: 34 }, | |||
| { top: 8, right: 18 }, | |||
| @@ -280,6 +295,7 @@ export const RestrictedUpstreamMap = { | |||
| [Operator.Baidu]: [Operator.Begin, Operator.Retrieval], | |||
| [Operator.DuckDuckGo]: [Operator.Begin, Operator.Retrieval], | |||
| [Operator.Wikipedia]: [Operator.Begin, Operator.Retrieval], | |||
| [Operator.PubMed]: [Operator.Begin, Operator.Retrieval], | |||
| }; | |||
| export const NodeMap = { | |||
| @@ -295,6 +311,7 @@ export const NodeMap = { | |||
| [Operator.DuckDuckGo]: 'ragNode', | |||
| [Operator.Baidu]: 'ragNode', | |||
| [Operator.Wikipedia]: 'ragNode', | |||
| [Operator.PubMed]: 'ragNode', | |||
| }; | |||
| export const LanguageOptions = [ | |||
| @@ -14,6 +14,7 @@ import { useHandleFormValuesChange, useHandleNodeNameChange } from '../hooks'; | |||
| import KeywordExtractForm from '../keyword-extract-form'; | |||
| import MessageForm from '../message-form'; | |||
| import OperatorIcon from '../operator-icon'; | |||
| import PubMedForm from '../pubmed-form'; | |||
| import RelevantForm from '../relevant-form'; | |||
| import RetrievalForm from '../retrieval-form'; | |||
| import RewriteQuestionForm from '../rewrite-question-form'; | |||
| @@ -38,6 +39,7 @@ const FormMap = { | |||
| [Operator.DuckDuckGo]: DuckDuckGoForm, | |||
| [Operator.KeywordExtract]: KeywordExtractForm, | |||
| [Operator.Wikipedia]: WikipediaForm, | |||
| [Operator.PubMed]: PubMedForm, | |||
| }; | |||
| const EmptyContent = () => <div>empty</div>; | |||
| @@ -38,6 +38,7 @@ import { | |||
| initialGenerateValues, | |||
| initialKeywordExtractValues, | |||
| initialMessageValues, | |||
| initialPubMedValues, | |||
| initialRelevantValues, | |||
| initialRetrievalValues, | |||
| initialRewriteQuestionValues, | |||
| @@ -90,6 +91,7 @@ export const useInitializeOperatorParams = () => { | |||
| [Operator.DuckDuckGo]: initialDuckValues, | |||
| [Operator.Baidu]: initialBaiduValues, | |||
| [Operator.Wikipedia]: initialWikipediaValues, | |||
| [Operator.PubMed]: initialPubMedValues, | |||
| }; | |||
| }, [llmId]); | |||
| @@ -0,0 +1,31 @@ | |||
| import TopNItem from '@/components/top-n-item'; | |||
| import { useTranslate } from '@/hooks/common-hooks'; | |||
| import { Form, Input } from 'antd'; | |||
| import { IOperatorForm } from '../interface'; | |||
| const PubMedForm = ({ onValuesChange, form }: IOperatorForm) => { | |||
| const { t } = useTranslate('flow'); | |||
| return ( | |||
| <Form | |||
| name="basic" | |||
| labelCol={{ span: 6 }} | |||
| wrapperCol={{ span: 18 }} | |||
| autoComplete="off" | |||
| form={form} | |||
| onValuesChange={onValuesChange} | |||
| > | |||
| <TopNItem initialValue={10}></TopNItem> | |||
| <Form.Item | |||
| label={t('email')} | |||
| name={'email'} | |||
| tooltip={t('emailTip')} | |||
| rules={[{ type: 'email' }]} | |||
| > | |||
| <Input></Input> | |||
| </Form.Item> | |||
| </Form> | |||
| ); | |||
| }; | |||
| export default PubMedForm; | |||
| @@ -77,7 +77,7 @@ const ApiKeyModal = ({ | |||
| <Input placeholder="https://api.openai.com/v1" /> | |||
| </Form.Item> | |||
| )} | |||
| {llmFactory.toLowerCase() === 'Minimax'.toLowerCase() && ( | |||
| {llmFactory?.toLowerCase() === 'Minimax'.toLowerCase() && ( | |||
| <Form.Item<FieldType> label={'Group ID'} name="group_id"> | |||
| <Input /> | |||
| </Form.Item> | |||