balibabu commited on
Commit
6dc139b
·
1 Parent(s): 55e7b7a

feat: Add component AkShare #1739 (#2390)

Browse files

### What problem does this PR solve?

feat: Add component AkShare #1739

### Type of change

- [x] New Feature (non-breaking change which adds functionality)

web/src/assets/svg/akshare.svg ADDED
web/src/assets/svg/wencai.svg CHANGED
web/src/locales/en.ts CHANGED
@@ -892,6 +892,9 @@ The above is the content you need to summarize.`,
892
  lccp: 'Financing',
893
  foreign_exchange: 'Foreign currency',
894
  },
 
 
 
895
  },
896
  footer: {
897
  profile: 'All rights reserved @ React',
 
892
  lccp: 'Financing',
893
  foreign_exchange: 'Foreign currency',
894
  },
895
+ akShare: 'AkShare',
896
+ akShareDescription:
897
+ 'This component can be used to obtain news information for the corresponding stock from the Eastmoney website.',
898
  },
899
  footer: {
900
  profile: 'All rights reserved @ React',
web/src/locales/zh-traditional.ts CHANGED
@@ -846,6 +846,8 @@ export default {
846
  lccp: '理財',
847
  foreign_exchange: '股票',
848
  },
 
 
849
  },
850
  footer: {
851
  profile: '“保留所有權利 @ react”',
 
846
  lccp: '理財',
847
  foreign_exchange: '股票',
848
  },
849
+ akShare: 'AkShare',
850
+ akShareDescription: '此組件可用於從東方財富網取得對應股票的新聞資訊。',
851
  },
852
  footer: {
853
  profile: '“保留所有權利 @ react”',
web/src/locales/zh.ts CHANGED
@@ -864,6 +864,8 @@ export default {
864
  lccp: '理财',
865
  foreign_exchange: '股票',
866
  },
 
 
867
  },
868
  footer: {
869
  profile: 'All rights reserved @ React',
 
864
  lccp: '理财',
865
  foreign_exchange: '股票',
866
  },
867
+ akShare: 'AkShare',
868
+ akShareDescription: '该组件可用于从东方财富网站获取相应股票的新闻信息。',
869
  },
870
  footer: {
871
  profile: 'All rights reserved @ React',
web/src/pages/flow/akshare-form/index.tsx ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import TopNItem from '@/components/top-n-item';
2
+ import { Form } from 'antd';
3
+ import { IOperatorForm } from '../interface';
4
+
5
+ const AkShareForm = ({ onValuesChange, form }: IOperatorForm) => {
6
+ return (
7
+ <Form
8
+ name="basic"
9
+ labelCol={{ span: 6 }}
10
+ wrapperCol={{ span: 18 }}
11
+ autoComplete="off"
12
+ form={form}
13
+ onValuesChange={onValuesChange}
14
+ >
15
+ <TopNItem initialValue={10} max={99}></TopNItem>
16
+ </Form>
17
+ );
18
+ };
19
+
20
+ export default AkShareForm;
web/src/pages/flow/constant.tsx CHANGED
@@ -1,3 +1,4 @@
 
1
  import { ReactComponent as ArXivIcon } from '@/assets/svg/arxiv.svg';
2
  import { ReactComponent as baiduFanyiIcon } from '@/assets/svg/baidu-fanyi.svg';
3
  import { ReactComponent as BaiduIcon } from '@/assets/svg/baidu.svg';
@@ -61,6 +62,7 @@ export enum Operator {
61
  ExeSQL = 'ExeSQL',
62
  Switch = 'Switch',
63
  WenCai = 'WenCai',
 
64
  }
65
 
66
  export const operatorIconMap = {
@@ -88,6 +90,7 @@ export const operatorIconMap = {
88
  [Operator.ExeSQL]: ExeSqlIcon,
89
  [Operator.Switch]: SwitchIcon,
90
  [Operator.WenCai]: WenCaiIcon,
 
91
  };
92
 
93
  export const operatorMap: Record<
@@ -198,6 +201,7 @@ export const operatorMap: Record<
198
  [Operator.ExeSQL]: { backgroundColor: '#b9efe8' },
199
  [Operator.Switch]: { backgroundColor: '#dbaff6' },
200
  [Operator.WenCai]: { backgroundColor: '#faac5b' },
 
201
  };
202
 
203
  export const componentMenuList = [
@@ -270,6 +274,9 @@ export const componentMenuList = [
270
  {
271
  name: Operator.WenCai,
272
  },
 
 
 
273
  ];
274
 
275
  export const initialRetrievalValues = {
@@ -411,6 +418,8 @@ export const initialSwitchValues = { conditions: [] };
411
 
412
  export const initialWenCaiValues = { top_n: 20, query_type: 'stock' };
413
 
 
 
414
  export const CategorizeAnchorPointPositions = [
415
  { top: 1, right: 34 },
416
  { top: 8, right: 18 },
@@ -482,6 +491,7 @@ export const RestrictedUpstreamMap = {
482
  [Operator.ExeSQL]: [Operator.Begin],
483
  [Operator.Switch]: [Operator.Begin],
484
  [Operator.WenCai]: [Operator.Begin],
 
485
  };
486
 
487
  export const NodeMap = {
@@ -509,6 +519,7 @@ export const NodeMap = {
509
  [Operator.ExeSQL]: 'ragNode',
510
  [Operator.Switch]: 'categorizeNode',
511
  [Operator.WenCai]: 'ragNode',
 
512
  };
513
 
514
  export const LanguageOptions = [
 
1
+ import { ReactComponent as AkShareIcon } from '@/assets/svg/akshare.svg';
2
  import { ReactComponent as ArXivIcon } from '@/assets/svg/arxiv.svg';
3
  import { ReactComponent as baiduFanyiIcon } from '@/assets/svg/baidu-fanyi.svg';
4
  import { ReactComponent as BaiduIcon } from '@/assets/svg/baidu.svg';
 
62
  ExeSQL = 'ExeSQL',
63
  Switch = 'Switch',
64
  WenCai = 'WenCai',
65
+ AkShare = 'AkShare',
66
  }
67
 
68
  export const operatorIconMap = {
 
90
  [Operator.ExeSQL]: ExeSqlIcon,
91
  [Operator.Switch]: SwitchIcon,
92
  [Operator.WenCai]: WenCaiIcon,
93
+ [Operator.AkShare]: AkShareIcon,
94
  };
95
 
96
  export const operatorMap: Record<
 
201
  [Operator.ExeSQL]: { backgroundColor: '#b9efe8' },
202
  [Operator.Switch]: { backgroundColor: '#dbaff6' },
203
  [Operator.WenCai]: { backgroundColor: '#faac5b' },
204
+ [Operator.AkShare]: { backgroundColor: '#8085f5' },
205
  };
206
 
207
  export const componentMenuList = [
 
274
  {
275
  name: Operator.WenCai,
276
  },
277
+ {
278
+ name: Operator.AkShare,
279
+ },
280
  ];
281
 
282
  export const initialRetrievalValues = {
 
418
 
419
  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 },
 
491
  [Operator.ExeSQL]: [Operator.Begin],
492
  [Operator.Switch]: [Operator.Begin],
493
  [Operator.WenCai]: [Operator.Begin],
494
+ [Operator.AkShare]: [Operator.Begin],
495
  };
496
 
497
  export const NodeMap = {
 
519
  [Operator.ExeSQL]: 'ragNode',
520
  [Operator.Switch]: 'categorizeNode',
521
  [Operator.WenCai]: 'ragNode',
522
+ [Operator.AkShare]: 'ragNode',
523
  };
524
 
525
  export const LanguageOptions = [
web/src/pages/flow/flow-drawer/index.tsx CHANGED
@@ -3,6 +3,7 @@ import { IModalProps } from '@/interfaces/common';
3
  import { Drawer, Flex, Form, Input } from 'antd';
4
  import { useEffect } from 'react';
5
  import { Node } from 'reactflow';
 
6
  import AnswerForm from '../answer-form';
7
  import ArXivForm from '../arxiv-form';
8
  import BaiduFanyiForm from '../baidu-fanyi-form';
@@ -62,6 +63,7 @@ const FormMap = {
62
  [Operator.ExeSQL]: ExeSQLForm,
63
  [Operator.Switch]: SwitchForm,
64
  [Operator.WenCai]: WenCaiForm,
 
65
  };
66
 
67
  const EmptyContent = () => <div>empty</div>;
 
3
  import { Drawer, Flex, Form, Input } from 'antd';
4
  import { useEffect } from 'react';
5
  import { Node } from 'reactflow';
6
+ import AkShareForm from '../akshare-form';
7
  import AnswerForm from '../answer-form';
8
  import ArXivForm from '../arxiv-form';
9
  import BaiduFanyiForm from '../baidu-fanyi-form';
 
63
  [Operator.ExeSQL]: ExeSQLForm,
64
  [Operator.Switch]: SwitchForm,
65
  [Operator.WenCai]: WenCaiForm,
66
+ [Operator.AkShare]: AkShareForm,
67
  };
68
 
69
  const EmptyContent = () => <div>empty</div>;
web/src/pages/flow/hooks.ts CHANGED
@@ -31,6 +31,7 @@ import {
31
  Operator,
32
  RestrictedUpstreamMap,
33
  SwitchElseTo,
 
34
  initialArXivValues,
35
  initialBaiduFanyiValues,
36
  initialBaiduValues,
@@ -115,6 +116,7 @@ export const useInitializeOperatorParams = () => {
115
  [Operator.ExeSQL]: initialExeSqlValues,
116
  [Operator.Switch]: initialSwitchValues,
117
  [Operator.WenCai]: initialWenCaiValues,
 
118
  };
119
  }, [llmId]);
120
 
 
31
  Operator,
32
  RestrictedUpstreamMap,
33
  SwitchElseTo,
34
+ initialAkShareValues,
35
  initialArXivValues,
36
  initialBaiduFanyiValues,
37
  initialBaiduValues,
 
116
  [Operator.ExeSQL]: initialExeSqlValues,
117
  [Operator.Switch]: initialSwitchValues,
118
  [Operator.WenCai]: initialWenCaiValues,
119
+ [Operator.AkShare]: initialAkShareValues,
120
  };
121
  }, [llmId]);
122
 
web/src/pages/flow/wencai-form/index.tsx CHANGED
@@ -24,7 +24,7 @@ const WenCaiForm = ({ onValuesChange, form }: IOperatorForm) => {
24
  form={form}
25
  onValuesChange={onValuesChange}
26
  >
27
- <TopNItem initialValue={10} max={99}></TopNItem>
28
  <Form.Item label={t('queryType')} name={'query_type'}>
29
  <Select options={wenCaiQueryTypeOptions}></Select>
30
  </Form.Item>
 
24
  form={form}
25
  onValuesChange={onValuesChange}
26
  >
27
+ <TopNItem initialValue={20} max={99}></TopNItem>
28
  <Form.Item label={t('queryType')} name={'query_type'}>
29
  <Select options={wenCaiQueryTypeOptions}></Select>
30
  </Form.Item>