feature: V4.11.1 (#5350)

* perf: system toolset & mcp (#5200)

* feat: support system toolset

* fix: type

* fix: system tool config

* chore: mcptool config migrate

* refactor: mcp toolset

* fix: fe type error

* fix: type error

* fix: show version

* chore: support extract tool's secretInputConfig out of inputs

* chore: compatible with old version mcp

* chore: adjust

* deps: update dependency @fastgpt-skd/plugin

* fix: version

* fix: some bug (#5316)

* chore: compatible with old version mcp

* fix: version

* fix: compatible bug

* fix: mcp object params

* fix: type error

* chore: update test cases

* chore: remove log

* fix: toolset node name

* optimize app logs sort (#5310)

* log keys config modal

* multiple select

* api

* fontsize

* code

* chatid

* fix build

* fix

* fix component

* change name

* log keys config

* fix

* delete unused

* fix

* perf: log code

* perf: send auth code modal enter press

* fix log (#5328)

* perf: mcp toolset comment

* perf: log ui

* remove log (#5347)

* doc

* fix: action

* remove log

* fix: Table Optimization (#5319)

* feat: table test: 1

* feat: table test: 2

* feat: table test: 3

* feat: table test: 4

* feat: table test : 5 把maxSize改回chunkSize

* feat: table test : 6 都删了,只看maxSize

* feat: table test : 7 恢复初始,接下来删除标签功能

* feat: table test : 8 删除标签功能

* feat: table test : 9 删除标签功能成功

* feat: table test : 10 继续调试,修改trainingStates

* feat: table test : 11 修改第一步

* feat: table test : 12 修改第二步

* feat: table test : 13 修改了HtmlTable2Md

* feat: table test : 14 修改表头分块规则

* feat: table test : 15 前面表格分的太细了

* feat: table test : 16 改着改着表头又不加了

* feat: table test : 17 用CUSTOM_SPLIT_SIGN不行,重新改

* feat: table test : 18 表头仍然还会多加,但现在分块搞的合理了终于

* feat: table test : 19 还是需要搞好表头问题,先保存一下调试情况

* feat: table test : 20 调试结束,看一下replace有没有问题,没问题就pr

* feat: table test : 21 先把注释删了

* feat: table test : 21 注释replace都改了,下面切main分支看看情况

* feat: table test : 22 修改旧文件

* feat: table test : 23 修改测试文件

* feat: table test : 24 xlsx表格处理

* feat: table test : 25 刚才没保存先com了

* feat: table test : 26 fix

* feat: table test : 27 先com一版调试

* feat: table test : 28 试试放format2csv里

* feat: table test : 29 xlsx解决

* feat: table test : 30 tablesplit解决

* feat: table test : 31

* feat: table test : 32

* perf: table split

* perf: mcp old version compatibility (#5342)

* fix: system-tool secret inputs

* fix: rewrite runtime node i18n for system tool

* perf: mcp old version compatibility

* fix: splitPluginId

* fix: old mcp toolId

* fix: filter secret key

* feat: support system toolset activation

* chore: remove log

* perf: mcp update

* perf: rewrite toolset

* fix:delete variable id (#5335)

* perf: variable update

* fix: multiple select ui

* perf: model config move to plugin

* fix: var conflit

* perf: variable checker

* Avoid empty number

* update doc time

* fix: test

* fix: mcp object

* update count app

* update count app

---------

Co-authored-by: Finley Ge <32237950+FinleyGe@users.noreply.github.com>
Co-authored-by: heheer <heheer@sealos.io>
Co-authored-by: heheer <zhiyu44@qq.com>
Co-authored-by: colnii <1286949794@qq.com>
Co-authored-by: dreamer6680 <1468683855@qq.com>
This commit is contained in:
Archer
2025-08-01 16:08:20 +08:00
committed by GitHub
parent e0c21a949c
commit e25d7efb5b
143 changed files with 2596 additions and 4177 deletions

View File

@@ -559,9 +559,8 @@ FastGPT AI 相关参数配置说明
it(`Test splitText2Chunks 9`, () => {
const mock = {
text: `测试的呀,第一个表格
| 序号 | 姓名 | 年龄 | 职业 | 城市 |
|------|------|------|------|------|
| --- | --- | --- | --- | --- |
| 1 | 张三 | 25 | 工程师 | 北京 |
| 2 | 李四 | 30 | 教师 | 上海 |
| 3 | 王五 | 28 | 医生 | 广州 |
@@ -600,7 +599,7 @@ it(`Test splitText2Chunks 9`, () => {
这是第二段了,第二表格
| 序号 | 姓名 | 年龄 | 职业 | 城市 |
|------|------|------|------|------|
| --- | --- | --- | --- | --- |
| 1 | 张三 | 25 | 工程师 | 北京 |
| 6 | 周八 | 32 | 会计 | 成都 |
| 2 | 李四 | 30 | 教师 | 上海 |
@@ -615,11 +614,10 @@ it(`Test splitText2Chunks 9`, () => {
| 10004 | 黄末 | 28 | 作家 | 厦门 |
| 10013 | 杨一 | 34 | 程序员 | 厦门 |
结束了
| 序号22 | 姓名 | 年龄 | 职业 | 城市 |
|------|------|------|------|------|
| --- | --- | --- | --- | --- |
| 1 | 张三 | 25 | 工程师 | 北京 |
| 2 | 李四 | 30 | 教师 | 上海 |
| 3 | 王五 | 28 | 医生 | 广州 |
@@ -636,7 +634,6 @@ it(`Test splitText2Chunks 9`, () => {
`,
result: [
`测试的呀,第一个表格
| 序号 | 姓名 | 年龄 | 职业 | 城市 |
| --- | --- | --- | --- | --- |
| 1 | 张三 | 25 | 工程师 | 北京 |
@@ -655,9 +652,7 @@ it(`Test splitText2Chunks 9`, () => {
| 1001 | 杨一 | 34 | 程序员 | 厦门 |
| 1002 | 杨二 | 34 | 程序员 | 厦门 |
| 1003 | 杨三 | 34 | 程序员 | 厦门 |`,
`| 序号 | 姓名 | 年龄 | 职业 | 城市 |
| --- | --- | --- | --- | --- |
| 6 | 周八 | 32 | 会计 | 成都 |
`| 6 | 周八 | 32 | 会计 | 成都 |
| 1004 | 杨四 | 34 | 程序员 | 厦门 |
| 1005 | 杨五 | 34 | 程序员 | 厦门 |
| 1000 | 黄末 | 28 | 作家 | 厦门 |
@@ -670,15 +665,11 @@ it(`Test splitText2Chunks 9`, () => {
| 1002 | 杨二 | 34 | 程序员 | 厦门 |
| 1003 | 杨三 | 34 | 程序员 | 厦门 |
| 1004 | 杨四 | 34 | 程序员 | 厦门 |
| 1005 | 杨五 | 34 | 程序员 | 厦门 |`,
`| 序号 | 姓名 | 年龄 | 职业 | 城市 |
| --- | --- | --- | --- | --- |
| 1005 | 杨五 | 34 | 程序员 | 厦门 |
| 6 | 周八 | 32 | 会计 | 成都 |
| 1000 | 黄末 | 28 | 作家 | 厦门 |
| 1000 | 黄末 | 28 | 作家 | 厦门 |
| 1000 | 黄末 | 28 | 作家 | 厦门 |
这是第二段了,第二表格
| 1000 | 黄末 | 28 | 作家 | 厦门 |`,
`这是第二段了,第二表格
| 序号 | 姓名 | 年龄 | 职业 | 城市 |
| --- | --- | --- | --- | --- |
@@ -807,3 +798,154 @@ af da da fda a a`,
const { chunks } = splitText2Chunks({ text: mock.text, chunkSize: 2000, paragraphChunkDeep: 2 });
expect(chunks).toEqual(mock.result);
});
// 表格合并测试
it(`Test splitText2Chunks 13 - Table split with empty lastText`, () => {
const mock = {
text: `
## 4.1、关键假设及盈利预测
公司医药工业产品线按治疗领域分心血管类、补益类、清热类、妇科类和其他药品,商业分部包含自有产品销售,相应有分部间抵消,我们分别给予营收增速和毛利率假设, 如下:
1)心脑血管类:心脑血管类为公司核心优势产品,产品包括安宫牛黄丸、牛黄清心丸、同仁堂大活络丸等,2021-2023 年心脑血管类产品营收增速逐年下滑, 毛利率受主要原材料牛黄和麝香价格涨幅较大影响,毛利率承压。我们分别假设 2024-2026 年,心脑血管类产品营收增速分别为 0%、8%和 10%,2025 年受消费上升带动开始恢复性增长,毛利率分别为 47%、50%和 52%,毛利率逐年提升,反映牛黄进口试点后,牛黄原料成本压力缓解。
2)补益类:补益类是公司第二大产品线,包括六味地黄丸、五子衍宗丸等。 我们分别假设 2024-2026 年补益类产品营收年增长 8%、10%和 12%,毛利率均保持稳定为 37.5%。
3)妇科类:妇科类产品包括乌鸡白凤丸、坤宝丸等,历年销售比较平稳。我们假设 2024-2026 年妇科类产品年增长 5%,毛利率维持稳定在 42%。
4)清热类:清热类产品与流行性疾病相关,2023 年为流感大年,感冒清热类产品销售相对旺盛,基数较高。我们假设 2024-2026 年清热类产品年增长-15%、8% 和 10%, 2024 年负增长, 反映上 2023 年基数较高和 2024 年流行性疾病小年影响, 毛利率稳定为 35.0%。
5)其他产品:我们假设 2024-2026 年其他中药品种营收年增长 5%、10%和 15%, 毛利率稳定保持 41%。
6)医药商业:医药商业营收增长主要是旗下同仁堂商业零售门店带动, 2023-2024H1 门店新开显著提速,2024 年上半年新开 116 家门店。我们假设 2024-2026 年医药商业年均增长 9%,毛利率保持 31%水平不变。
7)分部抵消:公司医药商业销售自产药品比例逐年提升,2023 年分部抵消 34.6 亿元,占医药工业营收 31.3%左右,我们假设 2024-2026 年,分部间抵消占医药工业营收分别为 33%、34%和 35%,毛利率为 -2%。
表 4同仁堂主营业务关键假设及营收拆分
| 同仁堂经营拆分: | 单位 | 2021A | 2022A | 2023A | 2024E | 2025E | 2026E |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 合并营业收入 | 亿元 | 146.03 | 153.72 | 178.61 | 187.68 | 203.30 | 222.68 |
| 同比 | % | 13.86% | 5.27% | 16.19% | 5.08% | 8.33% | 9.53% |
| 毛利率 | % | 47.62% | 48.80% | 47.29% | 44.53% | 45.50% | 46.46% |
| | | | | | | | |
| 分产品 | | | | | | | |
| 一、医药工业分部 | 亿元 | 88.76 | 98.40 | 110.79 | 113.42 | 123.59 | 138.44 |
| 同比 | % | 15.99% | 10.86% | 12.59% | 2.38% | 8.96% | 12.02% |
| 毛利率 | % | 48.13% | 48.95% | 46.96% | 42.50% | 43.63% | 44.32% |
| 分细分产品: | | | | | | | |
| 1、母公司生产心脑血管类(安宫、清心、大活络等) | 亿元 | 36.29 | 40.63 | 43.88 | 43.88 | 47.39 | 52.13 |
| 同比 | % | 20.80% | 11.97% | 8.00% | 0.00% | 8.00% | 10.00% |
| 毛利率 | $ \% $ | 59.96% | 61.20% | 57.62% | 47.00% | 50.00% | 52.00% |
| | | | | | | | |
| 2、补益类(六味、金匮、五子衍宗) | | 14.56 | 15.67 | 17.30 | 18.68 | 20.55 | 23.02 |
| 同比 | % | 2.86% | 7.62% | 10.40% | 8.00% | 10.00% | 12.00% |
| 毛利率 | $ \% $ | 42.45% | 43.00% | 37.39% | 37.50% | 37.50% | 37.50% |
| | | | | | | | |
| 3、妇科类(乌鸡白凤丸、坤宝丸) | | 3.80 | 3.48 | 3.77 | 3.96 | 4.15 | 4.36 |
| 同比 | % | 23.83% | -8.38% | 8.28% | 5.00% | 5.00% | 5.00% |
| 毛利率 | % | 40.16% | 38.12% | 42.38% | 42.00% | 42.00% | 42.00% |
| | | | | | | | |
| 4、清热类(感冒清热颗粒、牛黄解毒) | 亿元 | 5.24 | 5.29 | 6.14 | 5.22 | 5.64 | 6.20 |
| 同比 | % | 5.19% | 0.86% | 16.07% | -15.00% | 8.00% | 10.00% |
| 毛利率 | $ \% $ | 36.09% | 34.39% | 34.97% | 35.00% | 35.00% | 35.00% |
| | | | | | | | |
| 5、其他中药品种 | 亿元 | 28.87 | 33.33 | 39.70 | 41.69 | 45.85 | 52.73 |
| 同比 | % | 18.90% | 15.45% | 19.11% | 5.00% | 10.00% | 15.00% |
| 毛利率 | $ \% $ | 39.36% | 40.25% | 41.65% | 41.00% | 41.00% | 41.00% |
| | | | | | | | |
| 二、商业分部(同仁堂商业) | 亿元 | 82.41 | 84.80 | 102.5 | 111.7 | 121.7 | 132.7 |
| 同比 | % | 12.64% | 2.90% | 20.83% | 9.00% | 9.00% | 9.00% |
| 毛利率 | % | 31.51% | 30.95% | 31.11% | 31.00% | 31.00% | 31.00% |
| | | | | | | | |
| 三、分部间抵消 | 亿元 | -25.14 | (29.48) | (34.64) | (37.43) | (42.02) | (48.45) |
| 同比 | % | 17.32% | 17.27% | 17.50% | 8.06% | 12.26% | 15.31% |
| 毛利率 | % | -3.39% | -2.05% | -1.61% | -2.0% | -2.0% | -2.0% |
| 分部抵消营收占工业比例 | % | 28.32% | 29.96% | 31.27% | 33.0% | 34.0% | 35.0% |
资料来源Wind, 诚通证券研究所
综上,我们预测公司 2024-2026 年,营业收入分别为 187.7/203.3/222.7 亿元, 分别同比增 5.1%/8.3%/9.5%;归母净利润分别为 16.7/19.4/22.6 亿元,分别同比增 $ {0.3}\% /{15.8}\% /{16.7}\% $ ; 每股 EPS 分别为 1.22/1.41/1.65 元; 毛利率分别为 44.5%/45.5%/46.5%。`,
result: [
`## 4.1、关键假设及盈利预测
公司医药工业产品线按治疗领域分心血管类、补益类、清热类、妇科类和其他药品,商业分部包含自有产品销售,相应有分部间抵消,我们分别给予营收增速和毛利率假设, 如下:
1)心脑血管类:心脑血管类为公司核心优势产品,产品包括安宫牛黄丸、牛黄清心丸、同仁堂大活络丸等,2021-2023 年心脑血管类产品营收增速逐年下滑, 毛利率受主要原材料牛黄和麝香价格涨幅较大影响,毛利率承压。我们分别假设 2024-2026 年,心脑血管类产品营收增速分别为 0%、8%和 10%,2025 年受消费上升带动开始恢复性增长,毛利率分别为 47%、50%和 52%,毛利率逐年提升,反映牛黄进口试点后,牛黄原料成本压力缓解。
2)补益类:补益类是公司第二大产品线,包括六味地黄丸、五子衍宗丸等。 我们分别假设 2024-2026 年补益类产品营收年增长 8%、10%和 12%,毛利率均保持稳定为 37.5%。
3)妇科类:妇科类产品包括乌鸡白凤丸、坤宝丸等,历年销售比较平稳。我们假设 2024-2026 年妇科类产品年增长 5%,毛利率维持稳定在 42%。
4)清热类:清热类产品与流行性疾病相关,2023 年为流感大年,感冒清热类产品销售相对旺盛,基数较高。我们假设 2024-2026 年清热类产品年增长-15%、8% 和 10%, 2024 年负增长, 反映上 2023 年基数较高和 2024 年流行性疾病小年影响, 毛利率稳定为 35.0%。
5)其他产品:我们假设 2024-2026 年其他中药品种营收年增长 5%、10%和 15%, 毛利率稳定保持 41%。
6)医药商业:医药商业营收增长主要是旗下同仁堂商业零售门店带动, 2023-2024H1 门店新开显著提速,2024 年上半年新开 116 家门店。我们假设 2024-2026 年医药商业年均增长 9%,毛利率保持 31%水平不变。
7)分部抵消:公司医药商业销售自产药品比例逐年提升,2023 年分部抵消 34.6 亿元,占医药工业营收 31.3%左右,我们假设 2024-2026 年,分部间抵消占医药工业营收分别为 33%、34%和 35%,毛利率为 -2%。
表 4同仁堂主营业务关键假设及营收拆分`,
`## 4.1、关键假设及盈利预测
| 同仁堂经营拆分: | 单位 | 2021A | 2022A | 2023A | 2024E | 2025E | 2026E |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 合并营业收入 | 亿元 | 146.03 | 153.72 | 178.61 | 187.68 | 203.30 | 222.68 |
| 同比 | % | 13.86% | 5.27% | 16.19% | 5.08% | 8.33% | 9.53% |
| 毛利率 | % | 47.62% | 48.80% | 47.29% | 44.53% | 45.50% | 46.46% |
| | | | | | | | |
| 分产品 | | | | | | | |
| 一、医药工业分部 | 亿元 | 88.76 | 98.40 | 110.79 | 113.42 | 123.59 | 138.44 |
| 同比 | % | 15.99% | 10.86% | 12.59% | 2.38% | 8.96% | 12.02% |
| 毛利率 | % | 48.13% | 48.95% | 46.96% | 42.50% | 43.63% | 44.32% |
| 分细分产品: | | | | | | | |
| 1、母公司生产心脑血管类(安宫、清心、大活络等) | 亿元 | 36.29 | 40.63 | 43.88 | 43.88 | 47.39 | 52.13 |
| 同比 | % | 20.80% | 11.97% | 8.00% | 0.00% | 8.00% | 10.00% |
| 毛利率 | $ \% $ | 59.96% | 61.20% | 57.62% | 47.00% | 50.00% | 52.00% |
| | | | | | | | |
| 2、补益类(六味、金匮、五子衍宗) | | 14.56 | 15.67 | 17.30 | 18.68 | 20.55 | 23.02 |
| 同比 | % | 2.86% | 7.62% | 10.40% | 8.00% | 10.00% | 12.00% |
| 毛利率 | $ \% $ | 42.45% | 43.00% | 37.39% | 37.50% | 37.50% | 37.50% |
| | | | | | | | |
| 3、妇科类(乌鸡白凤丸、坤宝丸) | | 3.80 | 3.48 | 3.77 | 3.96 | 4.15 | 4.36 |
| 同比 | % | 23.83% | -8.38% | 8.28% | 5.00% | 5.00% | 5.00% |
| 毛利率 | % | 40.16% | 38.12% | 42.38% | 42.00% | 42.00% | 42.00% |
| | | | | | | | |
| 4、清热类(感冒清热颗粒、牛黄解毒) | 亿元 | 5.24 | 5.29 | 6.14 | 5.22 | 5.64 | 6.20 |
| 同比 | % | 5.19% | 0.86% | 16.07% | -15.00% | 8.00% | 10.00% |
| 毛利率 | $ \% $ | 36.09% | 34.39% | 34.97% | 35.00% | 35.00% | 35.00% |
| | | | | | | | |
| 5、其他中药品种 | 亿元 | 28.87 | 33.33 | 39.70 | 41.69 | 45.85 | 52.73 |
| 同比 | % | 18.90% | 15.45% | 19.11% | 5.00% | 10.00% | 15.00% |`,
`## 4.1、关键假设及盈利预测
| 同仁堂经营拆分: | 单位 | 2021A | 2022A | 2023A | 2024E | 2025E | 2026E |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 毛利率 | $ \% $ | 39.36% | 40.25% | 41.65% | 41.00% | 41.00% | 41.00% |
| | | | | | | | |
| 二、商业分部(同仁堂商业) | 亿元 | 82.41 | 84.80 | 102.5 | 111.7 | 121.7 | 132.7 |
| 同比 | % | 12.64% | 2.90% | 20.83% | 9.00% | 9.00% | 9.00% |
| 毛利率 | % | 31.51% | 30.95% | 31.11% | 31.00% | 31.00% | 31.00% |
| | | | | | | | |
| 三、分部间抵消 | 亿元 | -25.14 | (29.48) | (34.64) | (37.43) | (42.02) | (48.45) |
| 同比 | % | 17.32% | 17.27% | 17.50% | 8.06% | 12.26% | 15.31% |
| 毛利率 | % | -3.39% | -2.05% | -1.61% | -2.0% | -2.0% | -2.0% |
| 分部抵消营收占工业比例 | % | 28.32% | 29.96% | 31.27% | 33.0% | 34.0% | 35.0% |
资料来源Wind, 诚通证券研究所
综上,我们预测公司 2024-2026 年,营业收入分别为 187.7/203.3/222.7 亿元, 分别同比增 5.1%/8.3%/9.5%;归母净利润分别为 16.7/19.4/22.6 亿元,分别同比增 $ {0.3}\% /{15.8}\% /{16.7}\% $ ; 每股 EPS 分别为 1.22/1.41/1.65 元; 毛利率分别为 44.5%/45.5%/46.5%。`
]
};
const { chunks } = splitText2Chunks({
text: mock.text,
chunkSize: 1000
});
expect(chunks).toEqual(mock.result);
});

View File

@@ -27,7 +27,7 @@ describe('jsonSchema2NodeInput', () => {
valueType: 'string',
toolDescription: 'name',
required: true,
renderTypeList: ['input']
renderTypeList: ['input', 'reference']
},
{
key: 'select',
@@ -54,7 +54,7 @@ describe('jsonSchema2NodeInput', () => {
valueType: 'number',
toolDescription: 'age',
required: true,
renderTypeList: ['numberInput'],
renderTypeList: ['numberInput', 'reference'],
max: 100,
min: 0
},
@@ -72,7 +72,7 @@ describe('jsonSchema2NodeInput', () => {
valueType: 'object',
toolDescription: 'object',
required: false,
renderTypeList: ['JSONEditor']
renderTypeList: ['JSONEditor', 'reference']
},
{
key: 'strArr',
@@ -80,7 +80,7 @@ describe('jsonSchema2NodeInput', () => {
valueType: 'arrayString',
toolDescription: 'strArr',
required: false,
renderTypeList: ['JSONEditor']
renderTypeList: ['JSONEditor', 'reference']
},
{
key: 'numArr',
@@ -88,7 +88,7 @@ describe('jsonSchema2NodeInput', () => {
valueType: 'arrayNumber',
toolDescription: 'numArr',
required: false,
renderTypeList: ['JSONEditor']
renderTypeList: ['JSONEditor', 'reference']
},
{
key: 'boolArr',
@@ -96,7 +96,7 @@ describe('jsonSchema2NodeInput', () => {
valueType: 'arrayBoolean',
toolDescription: 'boolArr',
required: false,
renderTypeList: ['JSONEditor']
renderTypeList: ['JSONEditor', 'reference']
},
{
key: 'objArr',
@@ -104,7 +104,7 @@ describe('jsonSchema2NodeInput', () => {
valueType: 'arrayObject',
toolDescription: 'objArr',
required: false,
renderTypeList: ['JSONEditor']
renderTypeList: ['JSONEditor', 'reference']
},
{
key: 'anyArr',
@@ -112,7 +112,7 @@ describe('jsonSchema2NodeInput', () => {
valueType: 'arrayAny',
toolDescription: 'anyArr',
required: false,
renderTypeList: ['JSONEditor']
renderTypeList: ['JSONEditor', 'reference']
}
];
const result = jsonSchema2NodeInput(jsonSchema);