mirror of
https://github.com/dogkeeper886/ollama-k80-lab.git
synced 2025-12-10 07:46:59 +00:00
Add workflows.
This commit is contained in:
143
dify/BugBlitz.yml
Normal file
143
dify/BugBlitz.yml
Normal file
@@ -0,0 +1,143 @@
|
||||
app:
|
||||
description: ''
|
||||
icon: 🐛
|
||||
icon_background: '#FFEAD5'
|
||||
mode: completion
|
||||
name: BugBlitz
|
||||
use_icon_as_answer_icon: false
|
||||
dependencies:
|
||||
- current_identifier: null
|
||||
type: marketplace
|
||||
value:
|
||||
marketplace_plugin_unique_identifier: langgenius/ollama:0.0.6@7d66a960a68cafdcdf5589fdf5d01a995533f956853c69c54eddcf797006fa37
|
||||
kind: app
|
||||
model_config:
|
||||
agent_mode:
|
||||
enabled: false
|
||||
max_iteration: 5
|
||||
strategy: react
|
||||
tools: []
|
||||
annotation_reply:
|
||||
enabled: false
|
||||
chat_prompt_config: {}
|
||||
completion_prompt_config: {}
|
||||
dataset_configs:
|
||||
datasets:
|
||||
datasets:
|
||||
- dataset:
|
||||
enabled: true
|
||||
id: 452a673c-ebd1-44fd-be64-fcd0ece799f0
|
||||
metadata_filtering_mode: automatic
|
||||
metadata_model_config:
|
||||
completion_params:
|
||||
temperature: 0.7
|
||||
mode: chat
|
||||
name: gemma3:12b
|
||||
provider: langgenius/ollama/ollama
|
||||
reranking_enable: true
|
||||
reranking_mode: weighted_score
|
||||
reranking_model:
|
||||
reranking_model_name: ''
|
||||
reranking_provider_name: ''
|
||||
retrieval_model: multiple
|
||||
top_k: 4
|
||||
weights:
|
||||
keyword_setting:
|
||||
keyword_weight: 0.3
|
||||
vector_setting:
|
||||
embedding_model_name: nomic-embed-text
|
||||
embedding_provider_name: langgenius/ollama/ollama
|
||||
vector_weight: 0.7
|
||||
dataset_query_variable: description
|
||||
external_data_tools: []
|
||||
file_upload:
|
||||
allowed_file_extensions:
|
||||
- .JPG
|
||||
- .JPEG
|
||||
- .PNG
|
||||
- .GIF
|
||||
- .WEBP
|
||||
- .SVG
|
||||
- .MP4
|
||||
- .MOV
|
||||
- .MPEG
|
||||
- .MPGA
|
||||
allowed_file_types: []
|
||||
allowed_file_upload_methods:
|
||||
- remote_url
|
||||
- local_file
|
||||
enabled: false
|
||||
image:
|
||||
detail: high
|
||||
enabled: false
|
||||
number_limits: 3
|
||||
transfer_methods:
|
||||
- remote_url
|
||||
- local_file
|
||||
number_limits: 3
|
||||
model:
|
||||
completion_params:
|
||||
num_ctx: 4096
|
||||
stop: []
|
||||
mode: chat
|
||||
name: gemma3:12b
|
||||
provider: langgenius/ollama/ollama
|
||||
more_like_this:
|
||||
enabled: false
|
||||
opening_statement: null
|
||||
pre_prompt: 'Here is my request:
|
||||
|
||||
Create a bug report in Jira format with easy words.
|
||||
|
||||
|
||||
Here is the problem:
|
||||
|
||||
{{title}}
|
||||
|
||||
|
||||
Here is the description:
|
||||
|
||||
{{description}}
|
||||
|
||||
|
||||
Here is the note:
|
||||
|
||||
{{note}}
|
||||
|
||||
'
|
||||
prompt_type: simple
|
||||
retriever_resource:
|
||||
enabled: true
|
||||
sensitive_word_avoidance:
|
||||
configs: []
|
||||
enabled: false
|
||||
type: ''
|
||||
speech_to_text:
|
||||
enabled: false
|
||||
suggested_questions: []
|
||||
suggested_questions_after_answer:
|
||||
enabled: false
|
||||
text_to_speech:
|
||||
enabled: false
|
||||
language: ''
|
||||
voice: ''
|
||||
user_input_form:
|
||||
- text-input:
|
||||
default: ''
|
||||
label: 'Write Problem/Title Here:'
|
||||
max_length: 128
|
||||
required: false
|
||||
variable: title
|
||||
- paragraph:
|
||||
default: ''
|
||||
label: 'Description:'
|
||||
max_length: 4096
|
||||
required: true
|
||||
variable: description
|
||||
- paragraph:
|
||||
default: ''
|
||||
label: 'Note:'
|
||||
max_length: 2048
|
||||
required: false
|
||||
variable: note
|
||||
version: 0.3.0
|
||||
370
dify/ER2Summary.yml
Normal file
370
dify/ER2Summary.yml
Normal file
@@ -0,0 +1,370 @@
|
||||
app:
|
||||
description: ''
|
||||
icon: japanese_ogre
|
||||
icon_background: '#FFEAD5'
|
||||
mode: workflow
|
||||
name: ER2Summary
|
||||
use_icon_as_answer_icon: false
|
||||
dependencies:
|
||||
- current_identifier: null
|
||||
type: marketplace
|
||||
value:
|
||||
marketplace_plugin_unique_identifier: langgenius/jira:0.0.1@6e48c77165a5bf21ad2a7fa2c73599468acc528706bc5dcbdd5e44d57e01c50b
|
||||
- current_identifier: null
|
||||
type: marketplace
|
||||
value:
|
||||
marketplace_plugin_unique_identifier: langgenius/ollama:0.0.6@7d66a960a68cafdcdf5589fdf5d01a995533f956853c69c54eddcf797006fa37
|
||||
kind: app
|
||||
version: 0.3.0
|
||||
workflow:
|
||||
conversation_variables: []
|
||||
environment_variables: []
|
||||
features:
|
||||
file_upload:
|
||||
allowed_file_extensions:
|
||||
- .JPG
|
||||
- .JPEG
|
||||
- .PNG
|
||||
- .GIF
|
||||
- .WEBP
|
||||
- .SVG
|
||||
allowed_file_types:
|
||||
- image
|
||||
allowed_file_upload_methods:
|
||||
- local_file
|
||||
- remote_url
|
||||
enabled: false
|
||||
fileUploadConfig:
|
||||
audio_file_size_limit: 50
|
||||
batch_count_limit: 5
|
||||
file_size_limit: 15
|
||||
image_file_size_limit: 10
|
||||
video_file_size_limit: 100
|
||||
workflow_file_upload_limit: 10
|
||||
image:
|
||||
enabled: false
|
||||
number_limits: 3
|
||||
transfer_methods:
|
||||
- local_file
|
||||
- remote_url
|
||||
number_limits: 3
|
||||
opening_statement: ''
|
||||
retriever_resource:
|
||||
enabled: true
|
||||
sensitive_word_avoidance:
|
||||
enabled: false
|
||||
speech_to_text:
|
||||
enabled: false
|
||||
suggested_questions: []
|
||||
suggested_questions_after_answer:
|
||||
enabled: false
|
||||
text_to_speech:
|
||||
enabled: false
|
||||
language: ''
|
||||
voice: ''
|
||||
graph:
|
||||
edges:
|
||||
- data:
|
||||
isInIteration: false
|
||||
isInLoop: false
|
||||
sourceType: start
|
||||
targetType: tool
|
||||
id: 1747817616323-source-1747883690530-target
|
||||
source: '1747817616323'
|
||||
sourceHandle: source
|
||||
target: '1747883690530'
|
||||
targetHandle: target
|
||||
type: custom
|
||||
zIndex: 0
|
||||
- data:
|
||||
isInLoop: false
|
||||
sourceType: tool
|
||||
targetType: code
|
||||
id: 1747883690530-source-1747819131717-target
|
||||
source: '1747883690530'
|
||||
sourceHandle: source
|
||||
target: '1747819131717'
|
||||
targetHandle: target
|
||||
type: custom
|
||||
zIndex: 0
|
||||
- data:
|
||||
isInIteration: false
|
||||
isInLoop: false
|
||||
sourceType: code
|
||||
targetType: llm
|
||||
id: 1747819131717-source-1747895800944-target
|
||||
source: '1747819131717'
|
||||
sourceHandle: source
|
||||
target: '1747895800944'
|
||||
targetHandle: target
|
||||
type: custom
|
||||
zIndex: 0
|
||||
- data:
|
||||
isInIteration: false
|
||||
isInLoop: false
|
||||
sourceType: code
|
||||
targetType: end
|
||||
id: 1747905952533-source-1747817691653-target
|
||||
source: '1747905952533'
|
||||
sourceHandle: source
|
||||
target: '1747817691653'
|
||||
targetHandle: target
|
||||
type: custom
|
||||
zIndex: 0
|
||||
- data:
|
||||
isInLoop: false
|
||||
sourceType: llm
|
||||
targetType: code
|
||||
id: 1747895800944-source-1747905952533-target
|
||||
source: '1747895800944'
|
||||
sourceHandle: source
|
||||
target: '1747905952533'
|
||||
targetHandle: target
|
||||
type: custom
|
||||
zIndex: 0
|
||||
nodes:
|
||||
- data:
|
||||
desc: ''
|
||||
selected: false
|
||||
title: Start
|
||||
type: start
|
||||
variables:
|
||||
- label: Key
|
||||
max_length: 48
|
||||
options: []
|
||||
required: true
|
||||
type: text-input
|
||||
variable: key
|
||||
height: 90
|
||||
id: '1747817616323'
|
||||
position:
|
||||
x: -122
|
||||
y: -10
|
||||
positionAbsolute:
|
||||
x: -122
|
||||
y: -10
|
||||
selected: false
|
||||
sourcePosition: right
|
||||
targetPosition: left
|
||||
type: custom
|
||||
width: 244
|
||||
- data:
|
||||
desc: ''
|
||||
outputs:
|
||||
- value_selector:
|
||||
- '1747905952533'
|
||||
- result
|
||||
variable: result
|
||||
selected: false
|
||||
title: End
|
||||
type: end
|
||||
height: 90
|
||||
id: '1747817691653'
|
||||
position:
|
||||
x: 501.22702660966024
|
||||
y: 79.53306314182922
|
||||
positionAbsolute:
|
||||
x: 501.22702660966024
|
||||
y: 79.53306314182922
|
||||
selected: false
|
||||
sourcePosition: right
|
||||
targetPosition: left
|
||||
type: custom
|
||||
width: 244
|
||||
- data:
|
||||
code: "import re\n\n\ndef atlassian_to_markdown(text: str) -> str:\n \"\
|
||||
\"\"\n Converts Atlassian wiki-style markup to standard Markdown.\n \
|
||||
\ \"\"\"\n\n # Normalize line breaks\n text = text.replace('\\\\\
|
||||
n', '\\n').replace('\\r\\n', '\\n')\n\n # Bold text: +*text*+ → **text**\n\
|
||||
\ text = re.sub(r'\\+\\*(.+?)\\*\\+', r'**\\1**', text)\n\n # Headings:\
|
||||
\ h1. → #, h2. → ##, etc.\n text = re.sub(r'^h([1-6])\\.\\s+', lambda\
|
||||
\ m: '#' *\n int(m.group(1)) + ' ', text, flags=re.MULTILINE)\n\
|
||||
\n # Blockquotes: > lines\n text = re.sub(r'^\\s*>', '>', text, flags=re.MULTILINE)\n\
|
||||
\n # Image conversion: !URL|params! → \n text = re.sub(r'!([^\\\
|
||||
|!]+)\\|[^!]*!', r'', text)\n\n # Escaped dividers to markdown\
|
||||
\ horizontal rules\n text = re.sub(r'\\\\[-]+', '---', text)\n\n #\
|
||||
\ Remove extra Unicode whitespace characters (e.g., non-breaking spaces)\n\
|
||||
\ # note: the space before \\t is a non-breaking space\n text = re.sub(r'[ \\\
|
||||
t]+', ' ', text)\n\n # Collapse multiple blank lines to a maximum of\
|
||||
\ 2\n text = re.sub(r'\\n{3,}', '\\n\\n', text)\n\n # Strip trailing\
|
||||
\ spaces\n text = '\\n'.join(line.rstrip() for line in text.splitlines())\n\
|
||||
\n return text.strip()\n\n\ndef format_comments_display(comments: list)\
|
||||
\ -> str:\n \"\"\"\n Format a list of comments to simple markdown\
|
||||
\ with display name and converted body.\n \"\"\"\n output = []\n \
|
||||
\ for comment in comments:\n name = comment.get(\"author\", {}).get(\"\
|
||||
displayName\", \"Unknown Author\")\n body_raw = comment.get(\"body\"\
|
||||
, \"\")\n body_md = atlassian_to_markdown(body_raw)\n output.append(f\"\
|
||||
### {name}\\n\\n{body_md}\\n\")\n return \"\\n---\\n\".join(output)\n\
|
||||
\n\ndef main(jira_response: list) -> dict:\n \"\"\"Formats JSON data\
|
||||
\ into a Jira-style ticket string (simplified format).\"\"\"\n issue\
|
||||
\ = jira_response[0][\"issue\"]\n jira_ticket = issue[\"key\"]\n root_cause\
|
||||
\ = atlassian_to_markdown(issue[\"fields\"][\"customfield_10205\"])\n \
|
||||
\ description = atlassian_to_markdown(issue[\"fields\"][\"description\"\
|
||||
])\n comments = format_comments_display(issue[\"fields\"][\"comment\"\
|
||||
][\"comments\"])\n summary = issue[\"fields\"][\"summary\"]\n ticket\
|
||||
\ = f\"\"\"\n## Jira Ticket\n{jira_ticket}\n\n## Title\n{summary}\n\n##\
|
||||
\ Root Cause\n{root_cause}\n\n## Description\n{description}\n\n## Comment\n\
|
||||
{comments}\n\"\"\"\n\n return {\n \"result\": ticket\n }\n"
|
||||
code_language: python3
|
||||
desc: ''
|
||||
outputs:
|
||||
result:
|
||||
children: null
|
||||
type: string
|
||||
selected: false
|
||||
title: Format Jira response
|
||||
type: code
|
||||
variables:
|
||||
- value_selector:
|
||||
- '1747883690530'
|
||||
- json
|
||||
variable: jira_response
|
||||
height: 54
|
||||
id: '1747819131717'
|
||||
position:
|
||||
x: -11.190539821206812
|
||||
y: 171.25540547079942
|
||||
positionAbsolute:
|
||||
x: -11.190539821206812
|
||||
y: 171.25540547079942
|
||||
selected: false
|
||||
sourcePosition: right
|
||||
targetPosition: left
|
||||
type: custom
|
||||
width: 244
|
||||
- data:
|
||||
desc: ''
|
||||
is_team_authorization: true
|
||||
output_schema: null
|
||||
paramSchemas:
|
||||
- auto_generate: null
|
||||
default: null
|
||||
form: llm
|
||||
human_description:
|
||||
en_US: The Key of the Jira issue to retrieve details for (e.g., 'PROJ-123').
|
||||
ja_JP: The Key of the Jira issue to retrieve details for (e.g., 'PROJ-123').
|
||||
pt_BR: O ID ou a chave da issue a ser recuperada.
|
||||
zh_Hans: 要获取详情的 Jira 问题的 Key (例如 'PROJ-123')。
|
||||
label:
|
||||
en_US: Issue Key
|
||||
ja_JP: Issue Key
|
||||
pt_BR: ID ou Chave da Issue
|
||||
zh_Hans: 问题 Key
|
||||
llm_description: The unique key (e.g., 'PROJ-123') for the Jira issue for
|
||||
which details are requested. This field is mandatory.
|
||||
max: null
|
||||
min: null
|
||||
name: issue_key
|
||||
options: []
|
||||
placeholder: null
|
||||
precision: null
|
||||
required: true
|
||||
scope: null
|
||||
template: null
|
||||
type: string
|
||||
params:
|
||||
issue_key: ''
|
||||
provider_id: langgenius/jira/jira
|
||||
provider_name: langgenius/jira/jira
|
||||
provider_type: builtin
|
||||
selected: false
|
||||
title: Get Jira Issue Details
|
||||
tool_configurations: {}
|
||||
tool_description: Retrieves details for a specific Jira issue.
|
||||
tool_label: Get Jira Issue Details
|
||||
tool_name: get_issue
|
||||
tool_parameters:
|
||||
issue_key:
|
||||
type: mixed
|
||||
value: '{{#1747817616323.key#}}'
|
||||
type: tool
|
||||
height: 54
|
||||
id: '1747883690530'
|
||||
position:
|
||||
x: -64.33288254138103
|
||||
y: 98.39009010462206
|
||||
positionAbsolute:
|
||||
x: -64.33288254138103
|
||||
y: 98.39009010462206
|
||||
selected: false
|
||||
sourcePosition: right
|
||||
targetPosition: left
|
||||
type: custom
|
||||
width: 244
|
||||
- data:
|
||||
context:
|
||||
enabled: false
|
||||
variable_selector: []
|
||||
desc: ''
|
||||
model:
|
||||
completion_params:
|
||||
num_ctx: 8192
|
||||
temperature: 0
|
||||
mode: chat
|
||||
name: gemma3:12b
|
||||
provider: langgenius/ollama/ollama
|
||||
prompt_template:
|
||||
- id: 779cc54c-a30d-4bab-9e59-402591b89081
|
||||
role: system
|
||||
text: Summary a customer issue. Response summary only, no opening words.
|
||||
- id: e02c0dbc-6515-4667-8b6a-870455d2f15c
|
||||
role: user
|
||||
text: 'Customer issue: {{#1747819131717.result#}}'
|
||||
selected: true
|
||||
title: SUMMARY CUSTOMER ISSUE
|
||||
type: llm
|
||||
variables: []
|
||||
vision:
|
||||
enabled: false
|
||||
height: 90
|
||||
id: '1747895800944'
|
||||
position:
|
||||
x: 53.64684795127846
|
||||
y: 243.68108125546502
|
||||
positionAbsolute:
|
||||
x: 53.64684795127846
|
||||
y: 243.68108125546502
|
||||
selected: true
|
||||
sourcePosition: right
|
||||
targetPosition: left
|
||||
type: custom
|
||||
width: 244
|
||||
- data:
|
||||
code: "\ndef main(summary: str, customer_issue: str) -> dict:\n output\
|
||||
\ = f\"\"\"\n# Summary\n{summary}\n\n# Customer Issue\n{customer_issue}\n\
|
||||
\"\"\"\n return {\n \"result\": output\n }\n"
|
||||
code_language: python3
|
||||
desc: ''
|
||||
outputs:
|
||||
result:
|
||||
children: null
|
||||
type: string
|
||||
selected: false
|
||||
title: Format output
|
||||
type: code
|
||||
variables:
|
||||
- value_selector:
|
||||
- '1747895800944'
|
||||
- text
|
||||
variable: summary
|
||||
- value_selector:
|
||||
- '1747819131717'
|
||||
- result
|
||||
variable: customer_issue
|
||||
height: 54
|
||||
id: '1747905952533'
|
||||
position:
|
||||
x: 427.66710480323854
|
||||
y: -10
|
||||
positionAbsolute:
|
||||
x: 427.66710480323854
|
||||
y: -10
|
||||
selected: false
|
||||
sourcePosition: right
|
||||
targetPosition: left
|
||||
type: custom
|
||||
width: 244
|
||||
viewport:
|
||||
x: 232.8226952008705
|
||||
y: 256.5781340693524
|
||||
zoom: 1.0111520808513048
|
||||
346
dify/HLD2Summary.yml
Normal file
346
dify/HLD2Summary.yml
Normal file
@@ -0,0 +1,346 @@
|
||||
app:
|
||||
description: ''
|
||||
icon: 🧙
|
||||
icon_background: '#FFEAD5'
|
||||
mode: workflow
|
||||
name: HLD2Summary
|
||||
use_icon_as_answer_icon: false
|
||||
dependencies:
|
||||
- current_identifier: null
|
||||
type: marketplace
|
||||
value:
|
||||
marketplace_plugin_unique_identifier: langgenius/ollama:0.0.6@7d66a960a68cafdcdf5589fdf5d01a995533f956853c69c54eddcf797006fa37
|
||||
- current_identifier: null
|
||||
type: marketplace
|
||||
value:
|
||||
marketplace_plugin_unique_identifier: langgenius/confluence:0.0.1@dc070d3c98c38288e19ea8baadbbc94b55aed731d8a3bf045eeb771d475c9d7d
|
||||
kind: app
|
||||
version: 0.3.0
|
||||
workflow:
|
||||
conversation_variables: []
|
||||
environment_variables: []
|
||||
features:
|
||||
file_upload:
|
||||
allowed_file_extensions:
|
||||
- .JPG
|
||||
- .JPEG
|
||||
- .PNG
|
||||
- .GIF
|
||||
- .WEBP
|
||||
- .SVG
|
||||
allowed_file_types:
|
||||
- image
|
||||
allowed_file_upload_methods:
|
||||
- local_file
|
||||
- remote_url
|
||||
enabled: false
|
||||
fileUploadConfig:
|
||||
audio_file_size_limit: 50
|
||||
batch_count_limit: 5
|
||||
file_size_limit: 15
|
||||
image_file_size_limit: 10
|
||||
video_file_size_limit: 100
|
||||
workflow_file_upload_limit: 10
|
||||
image:
|
||||
enabled: false
|
||||
number_limits: 3
|
||||
transfer_methods:
|
||||
- local_file
|
||||
- remote_url
|
||||
number_limits: 3
|
||||
opening_statement: ''
|
||||
retriever_resource:
|
||||
enabled: true
|
||||
sensitive_word_avoidance:
|
||||
enabled: false
|
||||
speech_to_text:
|
||||
enabled: false
|
||||
suggested_questions: []
|
||||
suggested_questions_after_answer:
|
||||
enabled: false
|
||||
text_to_speech:
|
||||
enabled: false
|
||||
language: ''
|
||||
voice: ''
|
||||
graph:
|
||||
edges:
|
||||
- data:
|
||||
isInIteration: false
|
||||
isInLoop: false
|
||||
sourceType: code
|
||||
targetType: llm
|
||||
id: 1747819131717-source-1747895800944-target
|
||||
source: '1747819131717'
|
||||
sourceHandle: source
|
||||
target: '1747895800944'
|
||||
targetHandle: target
|
||||
type: custom
|
||||
zIndex: 0
|
||||
- data:
|
||||
isInIteration: false
|
||||
isInLoop: false
|
||||
sourceType: code
|
||||
targetType: end
|
||||
id: 1747905952533-source-1747817691653-target
|
||||
source: '1747905952533'
|
||||
sourceHandle: source
|
||||
target: '1747817691653'
|
||||
targetHandle: target
|
||||
type: custom
|
||||
zIndex: 0
|
||||
- data:
|
||||
isInLoop: false
|
||||
sourceType: llm
|
||||
targetType: code
|
||||
id: 1747895800944-source-1747905952533-target
|
||||
source: '1747895800944'
|
||||
sourceHandle: source
|
||||
target: '1747905952533'
|
||||
targetHandle: target
|
||||
type: custom
|
||||
zIndex: 0
|
||||
- data:
|
||||
isInIteration: false
|
||||
isInLoop: false
|
||||
sourceType: start
|
||||
targetType: tool
|
||||
id: 1747817616323-source-1748333434335-target
|
||||
source: '1747817616323'
|
||||
sourceHandle: source
|
||||
target: '1748333434335'
|
||||
targetHandle: target
|
||||
type: custom
|
||||
zIndex: 0
|
||||
- data:
|
||||
isInLoop: false
|
||||
sourceType: tool
|
||||
targetType: code
|
||||
id: 1748333434335-source-1747819131717-target
|
||||
source: '1748333434335'
|
||||
sourceHandle: source
|
||||
target: '1747819131717'
|
||||
targetHandle: target
|
||||
type: custom
|
||||
zIndex: 0
|
||||
nodes:
|
||||
- data:
|
||||
desc: ''
|
||||
selected: false
|
||||
title: Start
|
||||
type: start
|
||||
variables:
|
||||
- label: Page
|
||||
max_length: 48
|
||||
options: []
|
||||
required: true
|
||||
type: text-input
|
||||
variable: page_id
|
||||
height: 90
|
||||
id: '1747817616323'
|
||||
position:
|
||||
x: -121.99999999999997
|
||||
y: -10.988970916380921
|
||||
positionAbsolute:
|
||||
x: -121.99999999999997
|
||||
y: -10.988970916380921
|
||||
selected: false
|
||||
sourcePosition: right
|
||||
targetPosition: left
|
||||
type: custom
|
||||
width: 244
|
||||
- data:
|
||||
desc: ''
|
||||
outputs:
|
||||
- value_selector:
|
||||
- '1747905952533'
|
||||
- result
|
||||
variable: result
|
||||
selected: false
|
||||
title: End
|
||||
type: end
|
||||
height: 90
|
||||
id: '1747817691653'
|
||||
position:
|
||||
x: 517.050561271755
|
||||
y: 196.23163127477906
|
||||
positionAbsolute:
|
||||
x: 517.050561271755
|
||||
y: 196.23163127477906
|
||||
selected: false
|
||||
sourcePosition: right
|
||||
targetPosition: left
|
||||
type: custom
|
||||
width: 244
|
||||
- data:
|
||||
code: "import html2text\n\ndef html_to_markdown(html_data: str) -> str:\n\
|
||||
\ \"\"\"Convert HTML string to Markdown format.\"\"\"\n converter\
|
||||
\ = html2text.HTML2Text()\n converter.ignore_links = False # Set to\
|
||||
\ True to remove hyperlinks\n markdown = converter.handle(html_data)\n\
|
||||
\ return markdown\n\ndef main(response: list) -> dict:\n \"\"\"Formats\
|
||||
\ JSON data into a Jira-style ticket string (simplified format).\"\"\"\n\
|
||||
\ content = response[0]\n title = content[\"title\"]\n body = html_to_markdown(content[\"\
|
||||
body\"][\"storage\"][\"value\"])\n page = f\"\"\"\n* {title}\n\n{body}\n\
|
||||
\"\"\"\n\n return {\n \"result\": page\n }\n"
|
||||
code_language: python3
|
||||
desc: ''
|
||||
outputs:
|
||||
result:
|
||||
children: null
|
||||
type: string
|
||||
selected: false
|
||||
title: Format Jira Response
|
||||
type: code
|
||||
variables:
|
||||
- value_selector:
|
||||
- '1748333434335'
|
||||
- json
|
||||
variable: response
|
||||
height: 54
|
||||
id: '1747819131717'
|
||||
position:
|
||||
x: 68.91610440564858
|
||||
y: 196.23163127477906
|
||||
positionAbsolute:
|
||||
x: 68.91610440564858
|
||||
y: 196.23163127477906
|
||||
selected: false
|
||||
sourcePosition: right
|
||||
targetPosition: left
|
||||
type: custom
|
||||
width: 244
|
||||
- data:
|
||||
context:
|
||||
enabled: false
|
||||
variable_selector: []
|
||||
desc: ''
|
||||
model:
|
||||
completion_params:
|
||||
num_ctx: 8192
|
||||
temperature: 0
|
||||
mode: chat
|
||||
name: gemma3:12b
|
||||
provider: langgenius/ollama/ollama
|
||||
prompt_template:
|
||||
- id: 779cc54c-a30d-4bab-9e59-402591b89081
|
||||
role: system
|
||||
text: Summary a design document. Response summary only, no opening words.
|
||||
- id: e02c0dbc-6515-4667-8b6a-870455d2f15c
|
||||
role: user
|
||||
text: 'Customer issue: {{#1747819131717.result#}}'
|
||||
selected: true
|
||||
title: Summary Design Document
|
||||
type: llm
|
||||
variables: []
|
||||
vision:
|
||||
enabled: false
|
||||
height: 90
|
||||
id: '1747895800944'
|
||||
position:
|
||||
x: 344.40429736727214
|
||||
y: -18.39621158548165
|
||||
positionAbsolute:
|
||||
x: 344.40429736727214
|
||||
y: -18.39621158548165
|
||||
selected: true
|
||||
sourcePosition: right
|
||||
targetPosition: left
|
||||
type: custom
|
||||
width: 244
|
||||
- data:
|
||||
code: "\ndef main(wiki_page: str, summary: str) -> dict:\n data = f\"\"\
|
||||
\"\n# Summary\n{summary}\n\n# Wiki Page\n{wiki_page}\n\"\"\"\n return\
|
||||
\ {\n \"result\": data\n }\n"
|
||||
code_language: python3
|
||||
desc: ''
|
||||
outputs:
|
||||
result:
|
||||
children: null
|
||||
type: string
|
||||
selected: false
|
||||
title: Format output
|
||||
type: code
|
||||
variables:
|
||||
- value_selector:
|
||||
- '1747819131717'
|
||||
- result
|
||||
variable: wiki_page
|
||||
- value_selector:
|
||||
- '1747895800944'
|
||||
- text
|
||||
variable: summary
|
||||
height: 54
|
||||
id: '1747905952533'
|
||||
position:
|
||||
x: 436.5678430506666
|
||||
y: 107.98931176551164
|
||||
positionAbsolute:
|
||||
x: 436.5678430506666
|
||||
y: 107.98931176551164
|
||||
selected: false
|
||||
sourcePosition: right
|
||||
targetPosition: left
|
||||
type: custom
|
||||
width: 244
|
||||
- data:
|
||||
desc: ''
|
||||
is_team_authorization: true
|
||||
output_schema: null
|
||||
paramSchemas:
|
||||
- auto_generate: null
|
||||
default: null
|
||||
form: llm
|
||||
human_description:
|
||||
en_US: The unique ID of the Confluence page to retrieve.
|
||||
ja_JP: The unique ID of the Confluence page to retrieve.
|
||||
pt_BR: The unique ID of the Confluence page to retrieve.
|
||||
zh_Hans: 要检索的 Confluence 页面的唯一 ID。
|
||||
label:
|
||||
en_US: Page ID
|
||||
ja_JP: Page ID
|
||||
pt_BR: Page ID
|
||||
zh_Hans: 页面 ID
|
||||
llm_description: The unique identifier for the Confluence page you want
|
||||
to fetch.
|
||||
max: null
|
||||
min: null
|
||||
name: page_id
|
||||
options: []
|
||||
placeholder: null
|
||||
precision: null
|
||||
required: true
|
||||
scope: null
|
||||
template: null
|
||||
type: string
|
||||
params:
|
||||
page_id: ''
|
||||
provider_id: langgenius/confluence/confluence
|
||||
provider_name: langgenius/confluence/confluence
|
||||
provider_type: builtin
|
||||
selected: false
|
||||
title: Get the content of a Confluence page
|
||||
tool_configurations: {}
|
||||
tool_description: Retrieves details of a specific Confluence page by its ID.
|
||||
tool_label: Get the content of a Confluence page
|
||||
tool_name: get_page
|
||||
tool_parameters:
|
||||
page_id:
|
||||
type: mixed
|
||||
value: '{{#1747817616323.page_id#}}'
|
||||
type: tool
|
||||
height: 54
|
||||
id: '1748333434335'
|
||||
position:
|
||||
x: -2.9375613632340674
|
||||
y: 107.98931176551164
|
||||
positionAbsolute:
|
||||
x: -2.9375613632340674
|
||||
y: 107.98931176551164
|
||||
selected: false
|
||||
sourcePosition: right
|
||||
targetPosition: left
|
||||
type: custom
|
||||
width: 244
|
||||
viewport:
|
||||
x: 153.928130482148
|
||||
y: 147.90923715287454
|
||||
zoom: 1.0111520808513048
|
||||
370
dify/Jira2Summary.yml
Normal file
370
dify/Jira2Summary.yml
Normal file
@@ -0,0 +1,370 @@
|
||||
app:
|
||||
description: ''
|
||||
icon: 🐛
|
||||
icon_background: '#FFE4E8'
|
||||
mode: workflow
|
||||
name: Jira2Summary
|
||||
use_icon_as_answer_icon: false
|
||||
dependencies:
|
||||
- current_identifier: null
|
||||
type: marketplace
|
||||
value:
|
||||
marketplace_plugin_unique_identifier: langgenius/jira:0.0.1@6e48c77165a5bf21ad2a7fa2c73599468acc528706bc5dcbdd5e44d57e01c50b
|
||||
- current_identifier: null
|
||||
type: marketplace
|
||||
value:
|
||||
marketplace_plugin_unique_identifier: langgenius/ollama:0.0.6@7d66a960a68cafdcdf5589fdf5d01a995533f956853c69c54eddcf797006fa37
|
||||
kind: app
|
||||
version: 0.3.0
|
||||
workflow:
|
||||
conversation_variables: []
|
||||
environment_variables: []
|
||||
features:
|
||||
file_upload:
|
||||
allowed_file_extensions:
|
||||
- .JPG
|
||||
- .JPEG
|
||||
- .PNG
|
||||
- .GIF
|
||||
- .WEBP
|
||||
- .SVG
|
||||
allowed_file_types:
|
||||
- image
|
||||
allowed_file_upload_methods:
|
||||
- local_file
|
||||
- remote_url
|
||||
enabled: false
|
||||
fileUploadConfig:
|
||||
audio_file_size_limit: 50
|
||||
batch_count_limit: 5
|
||||
file_size_limit: 15
|
||||
image_file_size_limit: 10
|
||||
video_file_size_limit: 100
|
||||
workflow_file_upload_limit: 10
|
||||
image:
|
||||
enabled: false
|
||||
number_limits: 3
|
||||
transfer_methods:
|
||||
- local_file
|
||||
- remote_url
|
||||
number_limits: 3
|
||||
opening_statement: ''
|
||||
retriever_resource:
|
||||
enabled: true
|
||||
sensitive_word_avoidance:
|
||||
enabled: false
|
||||
speech_to_text:
|
||||
enabled: false
|
||||
suggested_questions: []
|
||||
suggested_questions_after_answer:
|
||||
enabled: false
|
||||
text_to_speech:
|
||||
enabled: false
|
||||
language: ''
|
||||
voice: ''
|
||||
graph:
|
||||
edges:
|
||||
- data:
|
||||
isInIteration: false
|
||||
isInLoop: false
|
||||
sourceType: start
|
||||
targetType: tool
|
||||
id: 1747817616323-source-1747883690530-target
|
||||
source: '1747817616323'
|
||||
sourceHandle: source
|
||||
target: '1747883690530'
|
||||
targetHandle: target
|
||||
type: custom
|
||||
zIndex: 0
|
||||
- data:
|
||||
isInLoop: false
|
||||
sourceType: tool
|
||||
targetType: code
|
||||
id: 1747883690530-source-1747819131717-target
|
||||
source: '1747883690530'
|
||||
sourceHandle: source
|
||||
target: '1747819131717'
|
||||
targetHandle: target
|
||||
type: custom
|
||||
zIndex: 0
|
||||
- data:
|
||||
isInIteration: false
|
||||
isInLoop: false
|
||||
sourceType: code
|
||||
targetType: llm
|
||||
id: 1747819131717-source-1747895800944-target
|
||||
source: '1747819131717'
|
||||
sourceHandle: source
|
||||
target: '1747895800944'
|
||||
targetHandle: target
|
||||
type: custom
|
||||
zIndex: 0
|
||||
- data:
|
||||
isInIteration: false
|
||||
isInLoop: false
|
||||
sourceType: llm
|
||||
targetType: code
|
||||
id: 1747895800944-source-1748315215726-target
|
||||
source: '1747895800944'
|
||||
sourceHandle: source
|
||||
target: '1748315215726'
|
||||
targetHandle: target
|
||||
type: custom
|
||||
zIndex: 0
|
||||
- data:
|
||||
isInIteration: false
|
||||
isInLoop: false
|
||||
sourceType: code
|
||||
targetType: end
|
||||
id: 1748315215726-source-1747817691653-target
|
||||
source: '1748315215726'
|
||||
sourceHandle: source
|
||||
target: '1747817691653'
|
||||
targetHandle: target
|
||||
type: custom
|
||||
zIndex: 0
|
||||
nodes:
|
||||
- data:
|
||||
desc: ''
|
||||
selected: false
|
||||
title: Start
|
||||
type: start
|
||||
variables:
|
||||
- label: Key
|
||||
max_length: 48
|
||||
options: []
|
||||
required: true
|
||||
type: text-input
|
||||
variable: key
|
||||
height: 89
|
||||
id: '1747817616323'
|
||||
position:
|
||||
x: -122
|
||||
y: -10
|
||||
positionAbsolute:
|
||||
x: -122
|
||||
y: -10
|
||||
selected: false
|
||||
sourcePosition: right
|
||||
targetPosition: left
|
||||
type: custom
|
||||
width: 243
|
||||
- data:
|
||||
desc: ''
|
||||
outputs:
|
||||
- value_selector:
|
||||
- '1748315215726'
|
||||
- result
|
||||
variable: result
|
||||
selected: false
|
||||
title: End
|
||||
type: end
|
||||
height: 89
|
||||
id: '1747817691653'
|
||||
position:
|
||||
x: 442.58237102178646
|
||||
y: 64.41148294948663
|
||||
positionAbsolute:
|
||||
x: 442.58237102178646
|
||||
y: 64.41148294948663
|
||||
selected: true
|
||||
sourcePosition: right
|
||||
targetPosition: left
|
||||
type: custom
|
||||
width: 243
|
||||
- data:
|
||||
code: "import re\n\n\ndef atlassian_to_markdown(text: str) -> str:\n \"\
|
||||
\"\"\n Converts Atlassian wiki-style markup to standard Markdown.\n \
|
||||
\ \"\"\"\n\n # Normalize line breaks\n text = text.replace('\\\\\
|
||||
n', '\\n').replace('\\r\\n', '\\n')\n\n # Bold text: +*text*+ → **text**\n\
|
||||
\ text = re.sub(r'\\+\\*(.+?)\\*\\+', r'**\\1**', text)\n\n # Headings:\
|
||||
\ h1. → #, h2. → ##, etc.\n text = re.sub(r'^h([1-6])\\.\\s+', lambda\
|
||||
\ m: '#' *\n int(m.group(1)) + ' ', text, flags=re.MULTILINE)\n\
|
||||
\n # Blockquotes: > lines\n text = re.sub(r'^\\s*>', '>', text, flags=re.MULTILINE)\n\
|
||||
\n # Image conversion: !URL|params! → \n text = re.sub(r'!([^\\\
|
||||
|!]+)\\|[^!]*!', r'', text)\n\n # Escaped dividers to markdown\
|
||||
\ horizontal rules\n text = re.sub(r'\\\\[-]+', '---', text)\n\n #\
|
||||
\ Remove extra Unicode whitespace characters (e.g., non-breaking spaces)\n\
|
||||
\ # note: the space before \\t is a non-breaking space\n text = re.sub(r'[ \\\
|
||||
t]+', ' ', text)\n\n # Collapse multiple blank lines to a maximum of\
|
||||
\ 2\n text = re.sub(r'\\n{3,}', '\\n\\n', text)\n\n # Strip trailing\
|
||||
\ spaces\n text = '\\n'.join(line.rstrip() for line in text.splitlines())\n\
|
||||
\n return text.strip()\n\n\ndef format_comments_display(comments: list)\
|
||||
\ -> str:\n \"\"\"\n Format a list of comments to simple markdown\
|
||||
\ with display name and converted body.\n \"\"\"\n output = []\n \
|
||||
\ for comment in comments:\n name = comment.get(\"author\", {}).get(\"\
|
||||
displayName\", \"Unknown Author\")\n body_raw = comment.get(\"body\"\
|
||||
, \"\")\n body_md = atlassian_to_markdown(body_raw)\n output.append(f\"\
|
||||
### {name}\\n\\n{body_md}\\n\")\n return \"\\n---\\n\".join(output)\n\
|
||||
\n\ndef main(jira_response: list) -> dict:\n \"\"\"Formats JSON data\
|
||||
\ into a Jira-style ticket string (simplified format).\"\"\"\n issue\
|
||||
\ = jira_response[0][\"issue\"]\n jira_ticket = issue[\"key\"]\n description\
|
||||
\ = atlassian_to_markdown(issue[\"fields\"][\"description\"])\n comments\
|
||||
\ = format_comments_display(issue[\"fields\"][\"comment\"][\"comments\"\
|
||||
])\n summary = issue[\"fields\"][\"summary\"]\n ticket = f\"\"\"\n\
|
||||
## Jira Ticket\n{jira_ticket}\n\n## Title\n{summary}\n\n## Description\n\
|
||||
{description}\n\n## Comment\n{comments}\n\"\"\"\n\n return {\n \
|
||||
\ \"result\": ticket\n }\n"
|
||||
code_language: python3
|
||||
desc: ''
|
||||
outputs:
|
||||
result:
|
||||
children: null
|
||||
type: string
|
||||
selected: false
|
||||
title: FORMAT RAW DATA
|
||||
type: code
|
||||
variables:
|
||||
- value_selector:
|
||||
- '1747883690530'
|
||||
- json
|
||||
variable: jira_response
|
||||
height: 53
|
||||
id: '1747819131717'
|
||||
position:
|
||||
x: -11.190539821206812
|
||||
y: 171.25540547079942
|
||||
positionAbsolute:
|
||||
x: -11.190539821206812
|
||||
y: 171.25540547079942
|
||||
selected: false
|
||||
sourcePosition: right
|
||||
targetPosition: left
|
||||
type: custom
|
||||
width: 243
|
||||
- data:
|
||||
desc: ''
|
||||
is_team_authorization: true
|
||||
output_schema: null
|
||||
paramSchemas:
|
||||
- auto_generate: null
|
||||
default: null
|
||||
form: llm
|
||||
human_description:
|
||||
en_US: The Key of the Jira issue to retrieve details for (e.g., 'PROJ-123').
|
||||
ja_JP: The Key of the Jira issue to retrieve details for (e.g., 'PROJ-123').
|
||||
pt_BR: O ID ou a chave da issue a ser recuperada.
|
||||
zh_Hans: 要获取详情的 Jira 问题的 Key (例如 'PROJ-123')。
|
||||
label:
|
||||
en_US: Issue Key
|
||||
ja_JP: Issue Key
|
||||
pt_BR: ID ou Chave da Issue
|
||||
zh_Hans: 问题 Key
|
||||
llm_description: The unique key (e.g., 'PROJ-123') for the Jira issue for
|
||||
which details are requested. This field is mandatory.
|
||||
max: null
|
||||
min: null
|
||||
name: issue_key
|
||||
options: []
|
||||
placeholder: null
|
||||
precision: null
|
||||
required: true
|
||||
scope: null
|
||||
template: null
|
||||
type: string
|
||||
params:
|
||||
issue_key: ''
|
||||
provider_id: langgenius/jira/jira
|
||||
provider_name: langgenius/jira/jira
|
||||
provider_type: builtin
|
||||
selected: false
|
||||
title: Get Jira Issue Details
|
||||
tool_configurations: {}
|
||||
tool_description: Retrieves details for a specific Jira issue.
|
||||
tool_label: Get Jira Issue Details
|
||||
tool_name: get_issue
|
||||
tool_parameters:
|
||||
issue_key:
|
||||
type: mixed
|
||||
value: '{{#1747817616323.key#}}'
|
||||
type: tool
|
||||
height: 53
|
||||
id: '1747883690530'
|
||||
position:
|
||||
x: -64.33288254138103
|
||||
y: 98.39009010462206
|
||||
positionAbsolute:
|
||||
x: -64.33288254138103
|
||||
y: 98.39009010462206
|
||||
selected: false
|
||||
sourcePosition: right
|
||||
targetPosition: left
|
||||
type: custom
|
||||
width: 243
|
||||
- data:
|
||||
context:
|
||||
enabled: false
|
||||
variable_selector: []
|
||||
desc: ''
|
||||
model:
|
||||
completion_params:
|
||||
num_ctx: 8192
|
||||
temperature: 0
|
||||
mode: chat
|
||||
name: gemma3:12b
|
||||
provider: langgenius/ollama/ollama
|
||||
prompt_template:
|
||||
- id: 779cc54c-a30d-4bab-9e59-402591b89081
|
||||
role: system
|
||||
text: Summary a customer issue. Response summary only, no opening words.
|
||||
- id: e02c0dbc-6515-4667-8b6a-870455d2f15c
|
||||
role: user
|
||||
text: 'Customer issue: {{#1747819131717.result#}}'
|
||||
selected: false
|
||||
title: SUMMARY CUSTOMER ISSUE
|
||||
type: llm
|
||||
variables: []
|
||||
vision:
|
||||
enabled: false
|
||||
height: 89
|
||||
id: '1747895800944'
|
||||
position:
|
||||
x: 53.64684795127846
|
||||
y: 243.68108125546502
|
||||
positionAbsolute:
|
||||
x: 53.64684795127846
|
||||
y: 243.68108125546502
|
||||
selected: false
|
||||
sourcePosition: right
|
||||
targetPosition: left
|
||||
type: custom
|
||||
width: 243
|
||||
- data:
|
||||
code: "\ndef main(issue: str, summary: str) -> dict:\n report = f\"\"\"\
|
||||
\n# Summary\n{summary}\n\n# Issue\n{issue}\n\"\"\"\n return {\n \
|
||||
\ \"result\": report,\n }\n"
|
||||
code_language: python3
|
||||
desc: ''
|
||||
outputs:
|
||||
result:
|
||||
children: null
|
||||
type: string
|
||||
selected: false
|
||||
title: Format Result
|
||||
type: code
|
||||
variables:
|
||||
- value_selector:
|
||||
- '1747819131717'
|
||||
- result
|
||||
variable: issue
|
||||
- value_selector:
|
||||
- '1747895800944'
|
||||
- text
|
||||
variable: summary
|
||||
height: 53
|
||||
id: '1748315215726'
|
||||
position:
|
||||
x: 367.8279410310432
|
||||
y: -10
|
||||
positionAbsolute:
|
||||
x: 367.8279410310432
|
||||
y: -10
|
||||
selected: false
|
||||
sourcePosition: right
|
||||
targetPosition: left
|
||||
type: custom
|
||||
width: 243
|
||||
viewport:
|
||||
x: 421.03690934437714
|
||||
y: 191.19077918077414
|
||||
zoom: 0.9944701686732147
|
||||
Reference in New Issue
Block a user