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
1a849352
Commit
1a849352
authored
Jun 04, 2025
by
alex yao
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix:图表插件 <\br> 取代换行符
parent
daa8ed21
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
53 additions
and
13 deletions
+53
-13
ChartGenerateFunction.java
...and/ai/function/chart_generate/ChartGenerateFunction.java
+2
-1
ChartGenerateFunctionTest.java
...esource/demand/ai/function/ChartGenerateFunctionTest.java
+51
-12
No files found.
src/main/java/cn/com/poc/thirdparty/resource/demand/ai/function/chart_generate/ChartGenerateFunction.java
View file @
1a849352
...
@@ -72,13 +72,14 @@ public class ChartGenerateFunction extends AbstractLargeModelFunction {
...
@@ -72,13 +72,14 @@ public class ChartGenerateFunction extends AbstractLargeModelFunction {
"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"
+
...
...
src/test/java/cn/com/poc/thirdparty/resource/demand/ai/function/ChartGenerateFunctionTest.java
View file @
1a849352
...
@@ -29,6 +29,43 @@ import java.util.List;
...
@@ -29,6 +29,43 @@ import java.util.List;
@WebAppConfiguration
@WebAppConfiguration
public
class
ChartGenerateFunctionTest
{
public
class
ChartGenerateFunctionTest
{
private
final
String
SYSTEM_PROMPT
=
"您是一名专业的数据可视化工程师,请根据以下要求生成图表配置:\n"
+
"**主题**:\n"
+
"${theme}\n"
+
"**输入数据**:\n"
+
"上下文提取数据:\n"
+
"${data}\n"
+
"\n"
+
"数据库数据:\n"
+
"${database_result}\n"
+
"\n"
+
"知识库数据:\n"
+
"${knowledge_result}\n"
+
"\n"
+
"**图形类型**:\n"
+
"${chart_type}\n"
+
"\n"
+
"**配置要求**:\n"
+
"1. 图表标题应准确反映数据主题\n"
+
"2. 使用与数据类型匹配的图表子类型(如堆积柱状图、面积折线图等)\n"
+
"3. 坐标轴需要包含单位说明\n"
+
"4. 使用最简单的方式生成,不要样式\n"
+
"5. 实际使用中用户的数据和要求不同,不能直接使用例子进行输出,要按照用户要求的图表进行\n"
+
"\n"
+
"**输出要求**:\n"
+
"- 仅返回可直接用于Markdown的Mermaid配置\n"
+
"- 包含完整的Mermaid配置项\n"
+
"- 严格遵循Mermaid的语法\n"
+
"- 注意中文标题需要带双引号\n"
+
"请以Mermaid格式返回配置, 思考好了之后再输出,不要输出其他内容,如解释或注释。\n"
+
"\n"
+
"**示例**\n"
+
"目标生成折线图:\n"
+
"```mermaid\n"
+
"xychart-beta\n"
+
" line [+1.3, .6, 2.4, -.34]\n"
+
"```"
;
@Resource
@Resource
ChartGenerateFunction
chartGenerateFunction
;
ChartGenerateFunction
chartGenerateFunction
;
...
@@ -40,10 +77,10 @@ public class ChartGenerateFunctionTest {
...
@@ -40,10 +77,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"
,
"
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 银行按揭放款
"
);
jsonObject
.
put
(
"data"
,
"
请求类型 处理部门 平均处理时间 优先级 技术问题 技术部 2小时 高 账单问题 财务部 1工作日 中 其他 客服部 30分钟 低
"
);
String
content
=
jsonObject
.
toJSONString
();
String
content
=
jsonObject
.
toJSONString
();
String
identifier
=
"test_function"
;
String
identifier
=
"test_function"
;
...
@@ -60,14 +97,11 @@ public class ChartGenerateFunctionTest {
...
@@ -60,14 +97,11 @@ 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"
+
" 2022-03-15 500000.00 定金 银行转账 YXSK20220315001 1 购房定金\n"
+
"技术问题 技术部 2小时 高\n"
+
" 2022-04-01 1500000.00 首付 银行转账 YXSK20220401001 1 首付款30%\n"
+
"账单问题 财务部 1工作日 中\n"
+
" 2022-10-01 2450000.00 尾款 银行转账 YXSK20221001001 1 银行按揭放款\n"
+
"其他 客服部 30分钟 低\n"
+
"2022-04-20 500000.00 定金 银行转账 YXSK20220420001 2 购房定金\n"
+
"根据以上数据生成流程图"
,
tools
.
toArray
(
new
Tool
[
0
]));
"2022-05-05 1500000.00 首付 银行转账 YXSK20220505001 2 首付款30%\n"
+
" 2022-11-01 2550000.00 尾款 银行转账 YXSK20221101001 2 银行按揭放款\n"
+
"\n"
,
tools
.
toArray
(
new
Tool
[
0
]));
System
.
out
.
println
(
functionCallResult
);
System
.
out
.
println
(
functionCallResult
);
}
}
...
@@ -76,5 +110,10 @@ public class ChartGenerateFunctionTest {
...
@@ -76,5 +110,10 @@ public class ChartGenerateFunctionTest {
System
.
out
.
println
(
chartGenerateFunction
.
getLLMConfig
());
System
.
out
.
println
(
chartGenerateFunction
.
getLLMConfig
());
}
}
@Test
public
void
test_getSYSTEM_PROMPT
()
{
System
.
out
.
println
(
SYSTEM_PROMPT
);
}
}
}
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