Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
D
dify
Project
Project
Details
Activity
Releases
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
ai-tech
dify
Commits
4b367a43
Commit
4b367a43
authored
Feb 25, 2024
by
takatost
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix bugs
parent
09def349
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
26 additions
and
11 deletions
+26
-11
advanced_prompt_transform.py
api/core/prompt/advanced_prompt_transform.py
+25
-11
test_advanced_prompt_transform.py
.../unit_tests/core/prompt/test_advanced_prompt_transform.py
+1
-0
No files found.
api/core/prompt/advanced_prompt_transform.py
View file @
4b367a43
...
...
@@ -39,6 +39,7 @@ class AdvancedPromptTransform(PromptTransform):
prompt_messages
=
self
.
_get_completion_model_prompt_messages
(
prompt_template_entity
=
prompt_template_entity
,
inputs
=
inputs
,
query
=
query
,
files
=
files
,
context
=
context
,
memory
=
memory
,
...
...
@@ -60,6 +61,7 @@ class AdvancedPromptTransform(PromptTransform):
def
_get_completion_model_prompt_messages
(
self
,
prompt_template_entity
:
PromptTemplateEntity
,
inputs
:
dict
,
query
:
Optional
[
str
],
files
:
list
[
FileObj
],
context
:
Optional
[
str
],
memory
:
Optional
[
TokenBufferMemory
],
...
...
@@ -86,6 +88,9 @@ class AdvancedPromptTransform(PromptTransform):
model_config
=
model_config
)
if
query
:
prompt_inputs
=
self
.
_set_query_variable
(
query
,
prompt_template
,
prompt_inputs
)
prompt
=
prompt_template
.
format
(
prompt_inputs
)
...
...
@@ -147,21 +152,30 @@ class AdvancedPromptTransform(PromptTransform):
else
:
prompt_messages
.
append
(
UserPromptMessage
(
content
=
query
))
elif
files
:
# get last message
last_message
=
prompt_messages
[
-
1
]
if
prompt_messages
else
None
if
last_message
and
last_message
.
role
==
PromptMessageRole
.
USER
:
# get last user message content and add files
prompt_message_contents
=
[
TextPromptMessageContent
(
data
=
last_message
.
content
)]
for
file
in
files
:
prompt_message_contents
.
append
(
file
.
prompt_message_content
)
last_message
.
content
=
prompt_message_contents
if
not
query
:
# get last message
last_message
=
prompt_messages
[
-
1
]
if
prompt_messages
else
None
if
last_message
and
last_message
.
role
==
PromptMessageRole
.
USER
:
# get last user message content and add files
prompt_message_contents
=
[
TextPromptMessageContent
(
data
=
last_message
.
content
)]
for
file
in
files
:
prompt_message_contents
.
append
(
file
.
prompt_message_content
)
last_message
.
content
=
prompt_message_contents
else
:
prompt_message_contents
=
[
TextPromptMessageContent
(
data
=
''
)]
# not for query
for
file
in
files
:
prompt_message_contents
.
append
(
file
.
prompt_message_content
)
prompt_messages
.
append
(
UserPromptMessage
(
content
=
prompt_message_contents
))
else
:
prompt_message_contents
=
[
TextPromptMessageContent
(
data
=
''
)]
# not for query
prompt_message_contents
=
[
TextPromptMessageContent
(
data
=
query
)]
for
file
in
files
:
prompt_message_contents
.
append
(
file
.
prompt_message_content
)
prompt_messages
.
append
(
UserPromptMessage
(
content
=
prompt_message_contents
))
elif
query
:
prompt_messages
.
append
(
UserPromptMessage
(
content
=
query
))
return
prompt_messages
...
...
@@ -210,4 +224,4 @@ class AdvancedPromptTransform(PromptTransform):
else
:
prompt_inputs
[
'#histories#'
]
=
''
return
prompt_inputs
return
prompt_inputs
api/tests/unit_tests/core/prompt/test_advanced_prompt_transform.py
View file @
4b367a43
...
...
@@ -50,6 +50,7 @@ def test__get_completion_model_prompt_messages():
prompt_messages
=
prompt_transform
.
_get_completion_model_prompt_messages
(
prompt_template_entity
=
prompt_template_entity
,
inputs
=
inputs
,
query
=
None
,
files
=
files
,
context
=
context
,
memory
=
memory
,
...
...
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