Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
P
poc-api
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
poc
poc-api
Commits
4c86757c
Commit
4c86757c
authored
Jun 04, 2025
by
alex yao
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat:图表插件更换GLM4
parent
1a849352
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
41 additions
and
11 deletions
+41
-11
ChartGenerateFunction.java
...and/ai/function/chart_generate/ChartGenerateFunction.java
+25
-3
ChartGenerateFunctionTest.java
...esource/demand/ai/function/ChartGenerateFunctionTest.java
+16
-8
No files found.
src/main/java/cn/com/poc/thirdparty/resource/demand/ai/function/chart_generate/ChartGenerateFunction.java
View file @
4c86757c
...
@@ -36,7 +36,7 @@ public class ChartGenerateFunction extends AbstractLargeModelFunction {
...
@@ -36,7 +36,7 @@ public class ChartGenerateFunction extends AbstractLargeModelFunction {
private
LLMService
llmService
;
private
LLMService
llmService
;
private
final
Logger
logger
=
LoggerFactory
.
getLogger
(
ChartGenerateFunction
.
class
);
private
final
Logger
logger
=
LoggerFactory
.
getLogger
(
ChartGenerateFunction
.
class
);
private
final
String
MODEL
=
"
deepseek-v3
"
;
private
final
String
MODEL
=
"
glm-4-plus
"
;
private
final
String
DESC
=
"根据用户问题和现有数据生成mermaid图表,如生成饼状图,折线图,散点图,柱状图,流程图等"
;
private
final
String
DESC
=
"根据用户问题和现有数据生成mermaid图表,如生成饼状图,折线图,散点图,柱状图,流程图等"
;
...
@@ -83,10 +83,32 @@ public class ChartGenerateFunction extends AbstractLargeModelFunction {
...
@@ -83,10 +83,32 @@ public class ChartGenerateFunction extends AbstractLargeModelFunction {
"请以Mermaid格式返回配置, 思考好了之后再输出,不要输出其他内容,如解释或注释。\n"
+
"请以Mermaid格式返回配置, 思考好了之后再输出,不要输出其他内容,如解释或注释。\n"
+
"\n"
+
"\n"
+
"**示例**\n"
+
"**示例**\n"
+
"目标生成折线图:\n"
+
"**示例1**\n"
+
"问题:帮我将一下数据生成折线图:\n"
+
"输入数据:请求类型 处理部门 平均处理时间 优先级 技术问题 技术部 2小时 高 账单问题 财务部 1工作日 中 其他 客服部 30分钟 低\n"
+
"主题:不同类型请求在各部门的平均处理时间对比\n"
+
"图形类型 :柱状图\n"
+
"输出:\n"
+
"```mermaid\n"
+
"```mermaid\n"
+
"xychart-beta\n"
+
"xychart-beta\n"
+
" line [+1.3, .6, 2.4, -.34]\n"
+
" title \"不同类型请求在各部门的平均处理时间对比\"\n"
+
" x-axis \"请求类型\" [\"技术问题\", \"账单问题\", \"其他\"]\n"
+
" y-axis \"处理时间\" 0-->10\n"
+
" bar [2, 8, 0.5]```\n"
+
"```"
+
"\n"
+
"**示例2**\n"
+
"问题: 帮我将一下数据生成折线图\n"
+
"输入数据: 2022-03-15 500000.00 定金 银行转账 YXSK20220315001 1 购房定金 2022-04-01 1500000.00 首付 银行转账 YXSK20220401001 1 首付款30% 2022-10-01 2450000.00 尾款 银行转账 YXSK20221001001 1 银行按揭放款 2022-04-20 500000.00 定金 银行转账 YXSK20220420001 2 购房定金 2022-05-05 1500000.00 首付 银行转账 YXSK20220505001 2 首付款30% 2022-11-01 2550000.00 尾款 银行转账 YXSK20221101001 2 银行按揭放款\n"
+
"主题:购房款项支付情况\n"
+
"图形类型 :折线图\n"
+
"输出:\n"
+
"```mermaid\n"
+
"xychart-beta\n"
+
" title \"购房款项支付情况\"\n"
+
" x-axis \"日期\" [\"2022-03-15\", \"2022-04-01\", \"2022-04-20\", \"2022-05-05\", \"2022-10-01\", \"2022-11-01\"]\n"
+
" y-axis \"金额(元)\" 0-->3000000\n"
+
" line [500000, 1500000, 500000, 1500000, 2450000, 2550000]"
+
"```"
;
"```"
;
@Override
@Override
...
...
src/test/java/cn/com/poc/thirdparty/resource/demand/ai/function/ChartGenerateFunctionTest.java
View file @
4c86757c
...
@@ -50,20 +50,27 @@ public class ChartGenerateFunctionTest {
...
@@ -50,20 +50,27 @@ public class ChartGenerateFunctionTest {
"2. 使用与数据类型匹配的图表子类型(如堆积柱状图、面积折线图等)\n"
+
"2. 使用与数据类型匹配的图表子类型(如堆积柱状图、面积折线图等)\n"
+
"3. 坐标轴需要包含单位说明\n"
+
"3. 坐标轴需要包含单位说明\n"
+
"4. 使用最简单的方式生成,不要样式\n"
+
"4. 使用最简单的方式生成,不要样式\n"
+
"5. 实际使用中用户的数据和要求不同,不能直接使用例子进行输出,要按照用户要求的图表进行\n"
+
"5. 实际使用中用户的数据和要求不同,不能直接使用例子进行输出,要按照用户要求的图表进行\n"
+
"\n"
+
"\n"
+
"**输出要求**:\n"
+
"**输出要求**:\n"
+
"- 仅返回可直接用于Markdown的Mermaid配置\n"
+
"- 仅返回可直接用于Markdown的Mermaid配置\n"
+
"- 包含完整的Mermaid配置项\n"
+
"- 包含完整的Mermaid配置项\n"
+
"- 严格遵循Mermaid的语法\n"
+
"- 严格遵循Mermaid的语法\n"
+
"- 注意中文标题需要带双引号\n"
+
"- 注意中文标题需要带双引号\n"
+
"- 若需要换行则使用</br>代替换行符\n"
+
"请以Mermaid格式返回配置, 思考好了之后再输出,不要输出其他内容,如解释或注释。\n"
+
"请以Mermaid格式返回配置, 思考好了之后再输出,不要输出其他内容,如解释或注释。\n"
+
"\n"
+
"\n"
+
"**示例**\n"
+
"**示例**\n"
+
"目标生成折线图:\n"
+
"问题:帮我将一下数据生成折线图:\n"
+
"输入数据:请求类型 处理部门 平均处理时间 优先级 技术问题 技术部 2小时 高 账单问题 财务部 1工作日 中 其他 客服部 30分钟 低\n"
+
"主题:不同类型请求在各部门的平均处理时间对比\n"
+
"图形类型 :柱状图\n"
+
"```mermaid\n"
+
"```mermaid\n"
+
"xychart-beta\n"
+
"xychart-beta\n"
+
" line [+1.3, .6, 2.4, -.34]\n"
+
" title \"不同类型请求在各部门的平均处理时间对比\"\n"
+
" x-axis \"请求类型\" [\"技术问题\", \"账单问题\", \"其他\"]\n"
+
" y-axis \"处理时间\" 0-->10\n"
+
" bar [2, 8, 0.5]"
+
"```"
;
"```"
;
@Resource
@Resource
...
@@ -77,10 +84,10 @@ public class ChartGenerateFunctionTest {
...
@@ -77,10 +84,10 @@ public class ChartGenerateFunctionTest {
// String json = "{\"chart_type\": \"折线图\", \"data\": \"2022-03-15 500000.00 定金 银行转账 YXSK20220315001 1 购房定金 2022-04-01 1500000.00 首付 银行转账 YXSK20220401001 1 首付款30% 2022-10-01 2450000.00 尾款 银行转账 YXSK20221001001 1 银行按揭放款 2022-04-20 500000.00 定金 银行转账 YXSK20220420001 2 购房定金 2022-05-05 1500000.00 首付 银行转账 YXSK20220505001 2 首付款30% 2022-11-01 2550000.00 尾款 银行转账 YXSK20221101001 2 银行按揭放款\", \"question\": \"帮我将一下数据生成折线图\", \"theme\": \"购房款项支付情况\"}'}";
// String json = "{\"chart_type\": \"折线图\", \"data\": \"2022-03-15 500000.00 定金 银行转账 YXSK20220315001 1 购房定金 2022-04-01 1500000.00 首付 银行转账 YXSK20220401001 1 首付款30% 2022-10-01 2450000.00 尾款 银行转账 YXSK20221001001 1 银行按揭放款 2022-04-20 500000.00 定金 银行转账 YXSK20220420001 2 购房定金 2022-05-05 1500000.00 首付 银行转账 YXSK20220505001 2 首付款30% 2022-11-01 2550000.00 尾款 银行转账 YXSK20221101001 2 银行按揭放款\", \"question\": \"帮我将一下数据生成折线图\", \"theme\": \"购房款项支付情况\"}'}";
JSONObject
jsonObject
=
new
JSONObject
();
JSONObject
jsonObject
=
new
JSONObject
();
jsonObject
.
put
(
"question"
,
"
根据以上数据生成流程
图"
);
jsonObject
.
put
(
"question"
,
"
帮我将一下数据生成折线
图"
);
jsonObject
.
put
(
"chart_type"
,
"
流程
图"
);
jsonObject
.
put
(
"chart_type"
,
"
折线
图"
);
jsonObject
.
put
(
"theme"
,
"
请求处理流程
"
);
jsonObject
.
put
(
"theme"
,
"
购房款项支付情况
"
);
jsonObject
.
put
(
"data"
,
"
请求类型 处理部门 平均处理时间 优先级 技术问题 技术部 2小时 高 账单问题 财务部 1工作日 中 其他 客服部 30分钟 低
"
);
jsonObject
.
put
(
"data"
,
"
2022-03-15 500000.00 定金 银行转账 YXSK20220315001 1 购房定金 2022-04-01 1500000.00 首付 银行转账 YXSK20220401001 1 首付款30% 2022-10-01 2450000.00 尾款 银行转账 YXSK20221001001 1 银行按揭放款 2022-04-20 500000.00 定金 银行转账 YXSK20220420001 2 购房定金 2022-05-05 1500000.00 首付 银行转账 YXSK20220505001 2 首付款30% 2022-11-01 2550000.00 尾款 银行转账 YXSK20221101001 2 银行按揭放款
"
);
String
content
=
jsonObject
.
toJSONString
();
String
content
=
jsonObject
.
toJSONString
();
String
identifier
=
"test_function"
;
String
identifier
=
"test_function"
;
...
@@ -97,7 +104,8 @@ public class ChartGenerateFunctionTest {
...
@@ -97,7 +104,8 @@ public class ChartGenerateFunctionTest {
String
[]
strings
=
new
String
[]{
"chart_generate"
};
String
[]
strings
=
new
String
[]{
"chart_generate"
};
List
<
Tool
>
tools
=
AgentApplicationTools
.
buildFunctionConfig
(
new
ArrayList
<>(),
"N"
,
"test"
,
"test"
List
<
Tool
>
tools
=
AgentApplicationTools
.
buildFunctionConfig
(
new
ArrayList
<>(),
"N"
,
"test"
,
"test"
,
strings
,
"N"
);
,
strings
,
"N"
);
FunctionCallResult
functionCallResult
=
llmService
.
functionCall
(
"请求类型 处理部门 平均处理时间 优先级\n"
+
FunctionCallResult
functionCallResult
=
llmService
.
functionCall
(
"\n"
+
"请求类型 处理部门 平均处理时间 优先级\n"
+
"技术问题 技术部 2小时 高\n"
+
"技术问题 技术部 2小时 高\n"
+
"账单问题 财务部 1工作日 中\n"
+
"账单问题 财务部 1工作日 中\n"
+
"其他 客服部 30分钟 低\n"
+
"其他 客服部 30分钟 低\n"
+
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment