balibabu commited on
Commit
c54177d
·
1 Parent(s): e123321

feat: Add component YahooFinance #1739 (#2561)

Browse files

### What problem does this PR solve?

feat: Add component YahooFinance #1739

### Type of change

- [ ] Bug Fix (non-breaking change which fixes an issue)
- [x] New Feature (non-breaking change which adds functionality)
- [ ] Documentation Update
- [ ] Refactoring
- [ ] Performance Improvement
- [ ] Other (please describe):

web/src/assets/svg/yahoo-finance.svg ADDED
web/src/locales/en.ts CHANGED
@@ -909,6 +909,12 @@ The above is the content you need to summarize.`,
909
  akShare: 'AkShare',
910
  akShareDescription:
911
  'This component can be used to obtain news information for the corresponding stock from the Eastmoney website.',
 
 
 
 
 
 
912
  },
913
  footer: {
914
  profile: 'All rights reserved @ React',
 
909
  akShare: 'AkShare',
910
  akShareDescription:
911
  'This component can be used to obtain news information for the corresponding stock from the Eastmoney website.',
912
+ yahooFinance: 'YahooFinance',
913
+ info: 'Info',
914
+ history: 'History',
915
+ financials: 'Financials',
916
+ balanceSheet: 'Balance sheet',
917
+ cashFlowStatement: 'Cash flow statement',
918
  },
919
  footer: {
920
  profile: 'All rights reserved @ React',
web/src/locales/zh-traditional.ts CHANGED
@@ -862,6 +862,12 @@ export default {
862
  },
863
  akShare: 'AkShare',
864
  akShareDescription: '此組件可用於從東方財富網取得對應股票的新聞資訊。',
 
 
 
 
 
 
865
  },
866
  footer: {
867
  profile: '“保留所有權利 @ react”',
 
862
  },
863
  akShare: 'AkShare',
864
  akShareDescription: '此組件可用於從東方財富網取得對應股票的新聞資訊。',
865
+ yahooFinance: '雅虎財經',
866
+ info: '訊息',
867
+ history: '歷史',
868
+ financials: '財務',
869
+ balanceSheet: '資產負債表',
870
+ cashFlowStatement: '現金流量表',
871
  },
872
  footer: {
873
  profile: '“保留所有權利 @ react”',
web/src/locales/zh.ts CHANGED
@@ -880,6 +880,12 @@ export default {
880
  },
881
  akShare: 'AkShare',
882
  akShareDescription: '该组件可用于从东方财富网站获取相应股票的新闻信息。',
 
 
 
 
 
 
883
  },
884
  footer: {
885
  profile: 'All rights reserved @ React',
 
880
  },
881
  akShare: 'AkShare',
882
  akShareDescription: '该组件可用于从东方财富网站获取相应股票的新闻信息。',
883
+ yahooFinance: '雅虎财经',
884
+ info: '信息',
885
+ history: '历史',
886
+ financials: '财务',
887
+ balanceSheet: '资产负债表',
888
+ cashFlowStatement: '现金流量表',
889
  },
890
  footer: {
891
  profile: 'All rights reserved @ React',
web/src/pages/flow/constant.tsx CHANGED
@@ -15,6 +15,7 @@ import { ReactComponent as QWeatherIcon } from '@/assets/svg/qweather.svg';
15
  import { ReactComponent as SwitchIcon } from '@/assets/svg/switch.svg';
16
  import { ReactComponent as WenCaiIcon } from '@/assets/svg/wencai.svg';
17
  import { ReactComponent as WikipediaIcon } from '@/assets/svg/wikipedia.svg';
 
18
 
19
  import { variableEnabledFieldMap } from '@/constants/chat';
20
  import i18n from '@/locales/config';
@@ -63,6 +64,7 @@ export enum Operator {
63
  Switch = 'Switch',
64
  WenCai = 'WenCai',
65
  AkShare = 'AkShare',
 
66
  }
67
 
68
  export const operatorIconMap = {
@@ -91,6 +93,7 @@ export const operatorIconMap = {
91
  [Operator.Switch]: SwitchIcon,
92
  [Operator.WenCai]: WenCaiIcon,
93
  [Operator.AkShare]: AkShareIcon,
 
94
  };
95
 
96
  export const operatorMap: Record<
@@ -202,6 +205,7 @@ export const operatorMap: Record<
202
  [Operator.Switch]: { backgroundColor: '#dbaff6' },
203
  [Operator.WenCai]: { backgroundColor: '#faac5b' },
204
  [Operator.AkShare]: { backgroundColor: '#8085f5' },
 
205
  };
206
 
207
  export const componentMenuList = [
@@ -277,6 +281,9 @@ export const componentMenuList = [
277
  {
278
  name: Operator.AkShare,
279
  },
 
 
 
280
  ];
281
 
282
  export const initialRetrievalValues = {
@@ -420,6 +427,15 @@ export const initialWenCaiValues = { top_n: 20, query_type: 'stock' };
420
 
421
  export const initialAkShareValues = { top_n: 10 };
422
 
 
 
 
 
 
 
 
 
 
423
  export const CategorizeAnchorPointPositions = [
424
  { top: 1, right: 34 },
425
  { top: 8, right: 18 },
@@ -492,6 +508,7 @@ export const RestrictedUpstreamMap = {
492
  [Operator.Switch]: [Operator.Begin],
493
  [Operator.WenCai]: [Operator.Begin],
494
  [Operator.AkShare]: [Operator.Begin],
 
495
  };
496
 
497
  export const NodeMap = {
@@ -520,6 +537,7 @@ export const NodeMap = {
520
  [Operator.Switch]: 'categorizeNode',
521
  [Operator.WenCai]: 'ragNode',
522
  [Operator.AkShare]: 'ragNode',
 
523
  };
524
 
525
  export const LanguageOptions = [
 
15
  import { ReactComponent as SwitchIcon } from '@/assets/svg/switch.svg';
16
  import { ReactComponent as WenCaiIcon } from '@/assets/svg/wencai.svg';
17
  import { ReactComponent as WikipediaIcon } from '@/assets/svg/wikipedia.svg';
18
+ import { ReactComponent as YahooFinanceIcon } from '@/assets/svg/yahoo-finance.svg';
19
 
20
  import { variableEnabledFieldMap } from '@/constants/chat';
21
  import i18n from '@/locales/config';
 
64
  Switch = 'Switch',
65
  WenCai = 'WenCai',
66
  AkShare = 'AkShare',
67
+ YahooFinance = 'YahooFinance',
68
  }
69
 
70
  export const operatorIconMap = {
 
93
  [Operator.Switch]: SwitchIcon,
94
  [Operator.WenCai]: WenCaiIcon,
95
  [Operator.AkShare]: AkShareIcon,
96
+ [Operator.YahooFinance]: YahooFinanceIcon,
97
  };
98
 
99
  export const operatorMap: Record<
 
205
  [Operator.Switch]: { backgroundColor: '#dbaff6' },
206
  [Operator.WenCai]: { backgroundColor: '#faac5b' },
207
  [Operator.AkShare]: { backgroundColor: '#8085f5' },
208
+ [Operator.YahooFinance]: { backgroundColor: '#b474ff' },
209
  };
210
 
211
  export const componentMenuList = [
 
281
  {
282
  name: Operator.AkShare,
283
  },
284
+ {
285
+ name: Operator.YahooFinance,
286
+ },
287
  ];
288
 
289
  export const initialRetrievalValues = {
 
427
 
428
  export const initialAkShareValues = { top_n: 10 };
429
 
430
+ export const initialYahooFinanceValues = {
431
+ info: true,
432
+ history: false,
433
+ financials: false,
434
+ balance_sheet: false,
435
+ cash_flow_statement: false,
436
+ news: true,
437
+ };
438
+
439
  export const CategorizeAnchorPointPositions = [
440
  { top: 1, right: 34 },
441
  { top: 8, right: 18 },
 
508
  [Operator.Switch]: [Operator.Begin],
509
  [Operator.WenCai]: [Operator.Begin],
510
  [Operator.AkShare]: [Operator.Begin],
511
+ [Operator.YahooFinance]: [Operator.Begin],
512
  };
513
 
514
  export const NodeMap = {
 
537
  [Operator.Switch]: 'categorizeNode',
538
  [Operator.WenCai]: 'ragNode',
539
  [Operator.AkShare]: 'ragNode',
540
+ [Operator.YahooFinance]: 'ragNode',
541
  };
542
 
543
  export const LanguageOptions = [
web/src/pages/flow/flow-drawer/index.tsx CHANGED
@@ -32,6 +32,7 @@ import SwitchForm from '../switch-form';
32
  import WenCaiForm from '../wencai-form';
33
  import WikipediaForm from '../wikipedia-form';
34
 
 
35
  import styles from './index.less';
36
 
37
  interface IProps {
@@ -64,6 +65,7 @@ const FormMap = {
64
  [Operator.Switch]: SwitchForm,
65
  [Operator.WenCai]: WenCaiForm,
66
  [Operator.AkShare]: AkShareForm,
 
67
  };
68
 
69
  const EmptyContent = () => <div>empty</div>;
 
32
  import WenCaiForm from '../wencai-form';
33
  import WikipediaForm from '../wikipedia-form';
34
 
35
+ import YahooFinanceForm from '../yahoo-finance-form';
36
  import styles from './index.less';
37
 
38
  interface IProps {
 
65
  [Operator.Switch]: SwitchForm,
66
  [Operator.WenCai]: WenCaiForm,
67
  [Operator.AkShare]: AkShareForm,
68
+ [Operator.YahooFinance]: YahooFinanceForm,
69
  };
70
 
71
  const EmptyContent = () => <div>empty</div>;
web/src/pages/flow/hooks.ts CHANGED
@@ -55,6 +55,7 @@ import {
55
  initialSwitchValues,
56
  initialWenCaiValues,
57
  initialWikipediaValues,
 
58
  } from './constant';
59
  import { ICategorizeForm, IRelevantForm, ISwitchForm } from './interface';
60
  import useGraphStore, { RFState } from './store';
@@ -117,6 +118,7 @@ export const useInitializeOperatorParams = () => {
117
  [Operator.Switch]: initialSwitchValues,
118
  [Operator.WenCai]: initialWenCaiValues,
119
  [Operator.AkShare]: initialAkShareValues,
 
120
  };
121
  }, [llmId]);
122
 
 
55
  initialSwitchValues,
56
  initialWenCaiValues,
57
  initialWikipediaValues,
58
+ initialYahooFinanceValues,
59
  } from './constant';
60
  import { ICategorizeForm, IRelevantForm, ISwitchForm } from './interface';
61
  import useGraphStore, { RFState } from './store';
 
118
  [Operator.Switch]: initialSwitchValues,
119
  [Operator.WenCai]: initialWenCaiValues,
120
  [Operator.AkShare]: initialAkShareValues,
121
+ [Operator.YahooFinance]: initialYahooFinanceValues,
122
  };
123
  }, [llmId]);
124
 
web/src/pages/flow/yahoo-finance-form/index.tsx ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import { useTranslate } from '@/hooks/common-hooks';
2
+ import { Form, Switch } from 'antd';
3
+ import { IOperatorForm } from '../interface';
4
+
5
+ const YahooFinanceForm = ({ onValuesChange, form }: IOperatorForm) => {
6
+ const { t } = useTranslate('flow');
7
+
8
+ return (
9
+ <Form
10
+ name="basic"
11
+ labelCol={{ span: 10 }}
12
+ wrapperCol={{ span: 14 }}
13
+ autoComplete="off"
14
+ form={form}
15
+ onValuesChange={onValuesChange}
16
+ >
17
+ <Form.Item label={t('info')} name={'info'}>
18
+ <Switch></Switch>
19
+ </Form.Item>
20
+ <Form.Item label={t('history')} name={'history'}>
21
+ <Switch></Switch>
22
+ </Form.Item>
23
+ <Form.Item label={t('financials')} name={'financials'}>
24
+ <Switch></Switch>
25
+ </Form.Item>
26
+ <Form.Item label={t('balanceSheet')} name={'balance_sheet'}>
27
+ <Switch></Switch>
28
+ </Form.Item>
29
+ <Form.Item label={t('cashFlowStatement')} name={'cash_flow_statement'}>
30
+ <Switch></Switch>
31
+ </Form.Item>
32
+ <Form.Item label={t('news')} name={'news'}>
33
+ <Switch></Switch>
34
+ </Form.Item>
35
+ </Form>
36
+ );
37
+ };
38
+
39
+ export default YahooFinanceForm;