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
964a0b97
Commit
964a0b97
authored
May 12, 2025
by
alex yao
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat:优化长文理解插件
parent
db979b24
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
25 additions
and
19 deletions
+25
-19
DocumentUnderstandIngFunction.java
...document_understanding/DocumentUnderstandIngFunction.java
+18
-12
LongDocumentReaderFunction.java
...tion/long_document_reader/LongDocumentReaderFunction.java
+7
-7
No files found.
src/main/java/cn/com/poc/thirdparty/resource/demand/ai/function/document_understanding/DocumentUnderstandIngFunction.java
View file @
964a0b97
...
@@ -30,11 +30,7 @@ public class DocumentUnderstandIngFunction extends AbstractLargeModelFunction {
...
@@ -30,11 +30,7 @@ public class DocumentUnderstandIngFunction extends AbstractLargeModelFunction {
private
final
String
MODEL
=
"qwen-long"
;
private
final
String
MODEL
=
"qwen-long"
;
private
final
String
TEMPLATE
=
"# 工作规范:\n 1.工作流程:①对提供的文档内容进行理解,支持信息检索、摘要总结、文本分析。②根据用户提出的问题,提取或者总结文档中与问题相关的内容。2.工作限制:①要将问题与文档内容精准匹配,在理解文档时要带着问题去理解 \n\n"
+
private
final
String
TEMPLATE
=
"# 工作规范:\n 1.工作流程:①对提供的文档内容进行理解,支持信息检索、摘要总结、文本分析。②根据用户提出的问题,提取或者总结文档中与问题相关的内容。2.工作限制:①要将问题与文档内容精准匹配,在理解文档时要带着问题去理解 \n\n"
;
"## 文档内容\n"
+
"${document_content}\n"
+
"## 用户问题\n"
+
"${question}"
;
private
final
String
DESC
=
"仅支持文档doc、docx、pdf、txt、md、xlsx、csv、xls,解析长文档内容理解,支持信息检索、摘要总结、文本分析能力,不可解析网页"
;
private
final
String
DESC
=
"仅支持文档doc、docx、pdf、txt、md、xlsx、csv、xls,解析长文档内容理解,支持信息检索、摘要总结、文本分析能力,不可解析网页"
;
...
@@ -52,15 +48,13 @@ public class DocumentUnderstandIngFunction extends AbstractLargeModelFunction {
...
@@ -52,15 +48,13 @@ public class DocumentUnderstandIngFunction extends AbstractLargeModelFunction {
@Override
@Override
public
AbstractFunctionResult
<
String
>
doFunction
(
String
content
,
String
identifier
)
{
public
AbstractFunctionResult
<
String
>
doFunction
(
String
content
,
String
identifier
)
{
AbstractFunctionResult
<
String
>
result
=
new
AbstractFunctionResult
<>();
AbstractFunctionResult
<
String
>
result
=
new
AbstractFunctionResult
<>();
if
(
StringUtils
.
isBlank
(
content
))
{
result
.
setFunctionResult
(
StringUtils
.
EMPTY
);
result
.
setFunctionResult
(
StringUtils
.
EMPTY
);
result
.
setPromptContent
(
StringUtils
.
EMPTY
);
result
.
setPromptContent
(
StringUtils
.
EMPTY
);
if
(
StringUtils
.
isBlank
(
content
))
{
return
result
;
return
result
;
}
}
JSONObject
jsonObject
=
JSON
.
parseObject
(
content
);
JSONObject
jsonObject
=
JSON
.
parseObject
(
content
);
if
(!
jsonObject
.
containsKey
(
"question"
)
||
!
jsonObject
.
containsKey
(
"file_url"
)){
if
(!
jsonObject
.
containsKey
(
"question"
)
||
!
jsonObject
.
containsKey
(
"file_url"
)){
result
.
setFunctionResult
(
StringUtils
.
EMPTY
);
result
.
setPromptContent
(
StringUtils
.
EMPTY
);
return
result
;
return
result
;
}
}
...
@@ -70,16 +64,28 @@ public class DocumentUnderstandIngFunction extends AbstractLargeModelFunction {
...
@@ -70,16 +64,28 @@ public class DocumentUnderstandIngFunction extends AbstractLargeModelFunction {
String
documentContent
;
String
documentContent
;
try
{
try
{
documentContent
=
DocumentLoad
.
documentToText
(
file
);
documentContent
=
DocumentLoad
.
documentToText
(
file
);
if
(
StringUtils
.
isBlank
(
documentContent
)){
return
result
;
}
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
documentContent
=
StringUtils
.
EMPTY
;
return
result
;
}
}
Message
systemMessage
=
new
Message
();
systemMessage
.
setRole
(
"system"
);
systemMessage
.
setContent
(
TEMPLATE
);
Message
fileContentMessage
=
new
Message
();
fileContentMessage
.
setRole
(
"system"
);
fileContentMessage
.
setContent
(
documentContent
);
Message
message
=
new
Message
();
Message
message
=
new
Message
();
message
.
setRole
(
"user"
);
message
.
setRole
(
"user"
);
message
.
setContent
(
TEMPLATE
.
replace
(
"${document_content}"
,
documentContent
).
replace
(
"${question}"
,
question
));
message
.
setContent
(
question
));
LargeModelResponse
largeModelResponse
=
new
LargeModelResponse
();
LargeModelResponse
largeModelResponse
=
new
LargeModelResponse
();
largeModelResponse
.
setModel
(
MODEL
);
largeModelResponse
.
setModel
(
MODEL
);
largeModelResponse
.
setMessages
(
new
Message
[]{
message
});
largeModelResponse
.
setMessages
(
new
Message
[]{
systemMessage
,
fileContentMessage
,
message
});
largeModelResponse
.
setStream
(
false
);
largeModelResponse
.
setStream
(
false
);
largeModelResponse
.
setUser
(
"Document_Understanding"
);
largeModelResponse
.
setUser
(
"Document_Understanding"
);
LargeModelDemandResult
largeModelDemandResult
=
llmService
.
chat
(
largeModelResponse
);
LargeModelDemandResult
largeModelDemandResult
=
llmService
.
chat
(
largeModelResponse
);
...
...
src/main/java/cn/com/poc/thirdparty/resource/demand/ai/function/long_document_reader/LongDocumentReaderFunction.java
View file @
964a0b97
...
@@ -36,6 +36,8 @@ public class LongDocumentReaderFunction extends AbstractLargeModelFunction {
...
@@ -36,6 +36,8 @@ public class LongDocumentReaderFunction extends AbstractLargeModelFunction {
private
final
String
DESC
=
"长文档理解,适合用于文档内容长、文件大的文档,结合用户问题与文档理解的插件,仅支持文档doc、docx、pdf、txt、md、xlsx、csv、xls"
;
private
final
String
DESC
=
"长文档理解,适合用于文档内容长、文件大的文档,结合用户问题与文档理解的插件,仅支持文档doc、docx、pdf、txt、md、xlsx、csv、xls"
;
private
final
String
SYSTEM_PROMPT
=
"# 工作规范:\n 1.工作流程:①对提供的文档内容进行理解,支持信息检索、摘要总结、文本分析。②根据用户提出的问题,提取或者总结文档中与问题相关的内容。2.工作限制:①要将问题与文档内容精准匹配,在理解文档时要带着问题去理解 \n\n"
;
private
final
FunctionLLMConfig
functionLLMConfig
=
new
FunctionLLMConfig
private
final
FunctionLLMConfig
functionLLMConfig
=
new
FunctionLLMConfig
.
FunctionLLMConfigBuilder
()
.
FunctionLLMConfigBuilder
()
.
name
(
"long_document_reader"
)
.
name
(
"long_document_reader"
)
...
@@ -49,15 +51,13 @@ public class LongDocumentReaderFunction extends AbstractLargeModelFunction {
...
@@ -49,15 +51,13 @@ public class LongDocumentReaderFunction extends AbstractLargeModelFunction {
@Override
@Override
public
AbstractFunctionResult
<
String
>
doFunction
(
String
content
,
String
identifier
)
{
public
AbstractFunctionResult
<
String
>
doFunction
(
String
content
,
String
identifier
)
{
AbstractFunctionResult
<
String
>
result
=
new
AbstractFunctionResult
<>();
AbstractFunctionResult
<
String
>
result
=
new
AbstractFunctionResult
<>();
if
(
StringUtils
.
isBlank
(
content
))
{
result
.
setFunctionResult
(
StringUtils
.
EMPTY
);
result
.
setFunctionResult
(
StringUtils
.
EMPTY
);
result
.
setPromptContent
(
StringUtils
.
EMPTY
);
result
.
setPromptContent
(
StringUtils
.
EMPTY
);
if
(
StringUtils
.
isBlank
(
content
))
{
return
result
;
return
result
;
}
}
JSONObject
jsonObject
=
JSON
.
parseObject
(
content
);
JSONObject
jsonObject
=
JSON
.
parseObject
(
content
);
if
(!
jsonObject
.
containsKey
(
"question"
)
||
!
jsonObject
.
containsKey
(
"file_url"
))
{
if
(!
jsonObject
.
containsKey
(
"question"
)
||
!
jsonObject
.
containsKey
(
"file_url"
))
{
result
.
setFunctionResult
(
StringUtils
.
EMPTY
);
result
.
setPromptContent
(
StringUtils
.
EMPTY
);
return
result
;
return
result
;
}
}
...
@@ -68,11 +68,11 @@ public class LongDocumentReaderFunction extends AbstractLargeModelFunction {
...
@@ -68,11 +68,11 @@ public class LongDocumentReaderFunction extends AbstractLargeModelFunction {
try
{
try
{
documentContent
=
DocumentLoad
.
documentToText
(
file
);
documentContent
=
DocumentLoad
.
documentToText
(
file
);
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
documentContent
=
StringUtils
.
EMPTY
;
return
result
;
}
}
Message
systemMessage
=
new
Message
();
Message
systemMessage
=
new
Message
();
systemMessage
.
setRole
(
"system"
);
systemMessage
.
setRole
(
"system"
);
systemMessage
.
setContent
(
"任务是对文档和用户问题进行分析"
);
systemMessage
.
setContent
(
SYSTEM_PROMPT
);
Message
documentMessage
=
new
Message
();
Message
documentMessage
=
new
Message
();
documentMessage
.
setRole
(
"system"
);
documentMessage
.
setRole
(
"system"
);
...
@@ -87,7 +87,7 @@ public class LongDocumentReaderFunction extends AbstractLargeModelFunction {
...
@@ -87,7 +87,7 @@ public class LongDocumentReaderFunction extends AbstractLargeModelFunction {
largeModelResponse
.
setModel
(
MODEL
);
largeModelResponse
.
setModel
(
MODEL
);
largeModelResponse
.
setMessages
(
messages
);
largeModelResponse
.
setMessages
(
messages
);
largeModelResponse
.
setStream
(
false
);
largeModelResponse
.
setStream
(
false
);
largeModelResponse
.
setUser
(
"
Document_Understanding
"
);
largeModelResponse
.
setUser
(
"
Long_Document_Reader
"
);
LargeModelDemandResult
largeModelDemandResult
=
llmService
.
chat
(
largeModelResponse
);
LargeModelDemandResult
largeModelDemandResult
=
llmService
.
chat
(
largeModelResponse
);
if
(
largeModelDemandResult
==
null
)
{
if
(
largeModelDemandResult
==
null
)
{
result
.
setFunctionResult
(
StringUtils
.
EMPTY
);
result
.
setFunctionResult
(
StringUtils
.
EMPTY
);
...
...
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