Status | ||||
---|---|---|---|---|
|
PIPEFORCE AI is a set of tools and UI components seamless integrated into PIPEFORCE to boost your process automation and data integration tasks to a next level using artificial intelligence such as LLM (Large Language Models) for example.
Info |
---|
BETA Note that the AI Studio components including all |
Table of Contents | ||
---|---|---|
|
Configure AI Backend (secret)
Before you can start, an AI backend needs to be configured. Depending on your license, by default PIPEFORCE comes with it’s own built-in AI backend. The secret name of this is ai-default-secret
.
If you do not specify otherwise, this AI backend secret is used by default.
But you can switch this default backend or use multiple AI backends in parallel. To do so, you have to configure the credentials and settings for those AI backends as secrets of type secret-text and place a JSON into the secret value which has a structure like this:
Code Block | ||
---|---|---|
| ||
{
"base_url": "string",
"model": "string",
"api_token": "string",
"max_token": "integer",
"custom_headers": { "name": "value" }
} |
Whereas:
base_url
: The base url of the API (requried).model
: The AI model to be used (required).api_token
: The security token to be used.max_token
: The max token to be send (defaults to 800)custom_headers
: Key-value pairs to be passed along as HTTP headers on any request. This is handy for example in case basic authentication or any other additional header setting is required.
Connect to OpenAI (ChatGPT)
In case you would like to connect to the OpenAI services for example, you could use these settings in your secret:
PIPEFORCE is AI-native, meaning that every component of the platform is built from the ground up to integrate seamlessly with AI. You can easily forward any type of data through an automation pipeline to AI, allowing it to perform tasks such as analysis, transformation, validation, or detection. The results can then be effortlessly integrated back into your workflows. Additionally, PIPEFORCE allows you to leverage AI to automatically create, execute and optimize workflows.
Moreover, PIPEFORCE includes a suite of advanced AI tools and UI components designed to enhance your process automation and data integration. These tools utilize cutting-edge technologies such as Generative AI and Large Language Models (LLMs), providing you with powerful capabilities to optimize your operations.
Ready to Get Started
No special setup is required to use AI with PIPEFORCE. You can start leveraging AI capabilities right out of the box.Process Intelligence
PIPEFORCE comes with its own AI service, which integrates multiple pre-trained AI models optimized specifically for process automation and integration tasks. This service is as powerful as leading external AI platforms like OpenAI/ChatGPT or Google Gemini for process automation. In some specific use cases, it can even outperform these external services.Security and Privacy
Since PIPEFORCE Cloud runs on its own AI infrastructure, fully hosted in Germany, all AI tasks are entirely GDPR-compliant. Additionally, every AI interaction is monitored and logged to ensure compliance with enterprise standards and regulatory requirements.Flexibility
PIPEFORCE AI can also be integrated with other AI services, such as OpenAI/ChatGPT or Google Gemini, if needed, offering additional flexibility to meet specific requirements.
...
Table of Contents
Table of Contents | ||
---|---|---|
|
Configure AI Backend (secret)
Before you can start, an AI backend needs to be configured. Depending on your license, by default PIPEFORCE comes with it’s own built-in AI backend which uses the default secret ai-default-secret
.
If you do not specify otherwise, this AI backend secret is used by default in any AI conversation.
But you can switch this default backend or use multiple AI backends in parallel. To do so, you have to configure the credentials and settings for those AI backends as secrets of type secret-text and place a JSON into the secret value which has a structure like this:
Code Block | ||
---|---|---|
| ||
{ "base_url": "https://api.openai.com/v1string", "model": "gpt-3.5-turbostring", "api_token": "your_tokenstring", "max_token": 800"integer", } |
Prompting - Send a question or advice to AI
One of most generic and simplest use cases is to send a prompt (= question / advice) to the AI and use the response data in your pipeline. For this you can use the ai.prompt.send
command. Here is an example to return some data from the AI:
Code Block | ||
---|---|---|
| ||
pipeline: - ai.prompt.send: prompt: | Return the names of the 10 biggest cities in the world as "custom_headers": { "name": "value" } } |
Whereas:
base_url
: The base url of the API (requried).model
: The AI model to be used (required).api_token
: The security token to be used.max_token
: The max token to be send (defaults to 800)custom_headers
: Key-value pairs to be passed along as HTTP headers on any request. This is handy for example in case basic authentication or any other additional header setting is required.
Connect to OpenAI (ChatGPT)
In case you would like to connect to the OpenAI services for example, you could use these settings in your secret:
Code Block | ||
---|---|---|
| ||
{
"base_url": "https://api.openai.com/v1",
"model": "gpt-3.5-turbo",
"api_token": "your_token",
"max_token": 800
} |
Prompting - Send a question or advice to AI
One of most generic and simplest use cases is to send a prompt (= question / advice) to the AI and use the response data in your pipeline. For this you can use the ai.prompt.send
command. Here is an example to return some data from the AI:
Code Block | ||
---|---|---|
| ||
pipeline:
- ai.prompt.send: |
Return the names of the 10 biggest cities in the world as JSON array. |
This will result in an entry like this in the body:
...
Each intent has an prompt
in order to instruct the AI about the criteria to select this intent. In case such an intent is selected by AI, there is the targetCommand
field defining the name of the command which must be called. In this example this is the mail.send
command.
The parameter runDetectedCommand
defines whether the command should directly be executed (true
) or the intent JSON should be simply returned for further processing (false
).
Use Case Examples
Below you can find a list of most often requested use cases for AI in PIPEFORCE and the pipeline recipe to solve it.
UC1 - Reductive Prompt: Create a summary from an email attachment
Use Case: Given is an email with attachment as input. Create a summary from this email loaded from an IMAP inbox.
Code Block | ||
---|---|---|
| ||
pipeline:
- imap.get:
host: outlook.office365.com
secret: my-office365-secret
- ai.prompt.send:
prompt: |
Create a short summary of the attachment in the given email. |
Result:
Code Block |
---|
The attachment is an invoice from ABC Software (Germany) GmbH to Musterkunde AG,
detailing various services provided and their associated costs for the period from
01.02.2024 to 29.02.2024. The invoice includes information on user accounts,
transaction fees, VAT, and payment instructions. |
UC2 - Classifying Prompt: Classify the type of an email attachment
Use Case: Given is an email with attachment as input. Classify the attachment of this email based on a given set of classes.
Code Block | ||
---|---|---|
| ||
pipeline:
- imap.get:
host: outlook.office365.com
secret: my-office365-secret
- ai.prompt.send:
prompt: |
Given are these categories: invoice, quote, termination.
In which of these fits the given attachment?
Return only the name from the list. |
Result:
Code Block |
---|
invoice |
UC3 - Classifying Prompt: Classify the the mood of the sender of an email
Use Case: Given is an email as input. Based on a list of moods, classify the mood of the email’s sender.
Code Block | ||
---|---|---|
| ||
pipeline:
- imap.get:
host: outlook.office365.com
secret: my-office365-secret
- ai.prompt.send:
prompt: |
In which mood fits the given email?
Return only the one from this list which matches best:
happy, neutral, disappointed, angry, cannot detect |
Result:
Code Block |
---|
happy |
UC4 - Transformative Prompt: Extract information from an PDF as JSON
Use Case: Given is an invoice as attachment PDF to an email. The goal is to extract all required information from this PDF and provide it in a valid JSON format.
Code Block | ||
---|---|---|
| ||
pipeline:
- imap.get:
host: outlook.office365.com
secret: my-office365-secret
- ai.prompt.send:
prompt: |
Extract the invoice in the attachment to a JSON using this structure:
{
"invoiceNumber": "value",
"address": "value",
"invoiceDate": "value",
"positions": [
{
"description": "value",
"pieces": "value",
"price": value
}
]
} |
Result:
Code Block | ||
---|---|---|
| ||
{
"invoiceNumber": "123100401",
"address": "ABC Provider (Germany) GmbH - Weg 3 - 12345 Stadt",
"invoiceDate": "01.02.2025 - 29.02.2025",
"positions": [
{
"description": "Invoice WMACCESS Internet, 1 Month",
"pieces": 1,
"price": 130.00
},
{
"description": "Router Type 3 rental",
"pieces": 1,
"price": 5.00
}
]
} |
UC5 - Detect the intent and its parameters from an user email
Use Case: Given is an email with an attachment. Based on a given set of intents, the AI should detect the one which matches and additionally extract all required information from it.
Code Block | ||
---|---|---|
| ||
pipeline:
# Read email from inbox
- imap.get:
host: outlook.office365.com
secret: my-office365-secret
# Detect the intent in the email
- ai.intent.detect:
advice:
intentCandidates:
- intentId: "invoice"
prompt: "Use this intent in case the attachment is an invoice."
params:
supplierAddress:
prompt: "Extract the supplier address from the invoice."
invoiceNumber:
prompt: "Extract the invoice number from the invoice."
totalAmount:
prompt: "Extract the total amount of the invoice in cents without any currency chars, separators or other special characters."
- intentId: "termination"
prompt: "Use this intent in case the attachment is a termination of a contract."
params:
contractNumber:
prompt: "Extract the contract number."
customerNumber:
prompt: "Extract the customer number."
reason:
prompt: "Summarize in one sentence the reason for the termination."
- intentId: "documentation"
prompt: "Use this intent in case the attachment is a documentation."
params:
summary:
prompt: "Create a short summary what this documentation is about." |
Result:
Code Block | ||
---|---|---|
| ||
{
"params": {
"supplierAddress": {
"name": "supplierAddress",
"value": "ABC Software (Germany) GmbH - Im Weg 3 - 12345 Worth",
"required": false,
"pass": true,
"type": "string"
},
"invoiceNumber": {
"name": "invoiceNumber",
"value": "123100401",
"required": false,
"pass": true,
"type": "string"
},
"totalAmount": {
"name": "totalAmount",
"value": "45353",
"required": false,
"pass": true,
"type": "string"
}
},
"enabled": true,
"intentId": "invoice",
"command": null
} |
UC6 - Detect and start a command / workflow based on a user email
Use Case: Given is an email with attachments. The AI must detect the intent of this email and finally a command linked to this intent must be executed and all required parameters must be extracted from the input email and transformed and passed along to the command. Also the attachment file must be passed along.
Code Block | ||
---|---|---|
| ||
vars:
containerProp: "global/app/io.pipeforce.test/data/container-${@text.random(10)}"
pipeline:
# Read the email from inbox
- imap.get:
host: outlook.office365.com
secret: office365-testlab-secret2
subjectContains: test123
# Create the container property for the attachment
- property.schema.put:
path: ${vars.containerProp}
input: ""
output: false
# Save the attachment to the container property
- property.attachment.put:
path: ${vars.containerProp}
content: ${body[0].attachments[0]}
output: ${vars.attachment}
# Detect the command
- ai.intent.detect:
runDetectedCommand: true
advice:
intentCandidates:
- intentId: "startInvoiceWorkflow"
command: workflow.start
prompt: "Sender has submitted a payable invoice."
params:
invoiceNumber:
prompt: "Extract the invoice number."
pass: false
key:
value: io.pipeforce.test_invoice-wf
variables:
value:
"totalAmount": "{{intent.params.invoiceNumber}}"
"invoice": ${vars.attachment}
- intentId: "startTerminationWorkflow"
command: workflow.start
prompt: "Sender has submitted a contract termination."
params:
contractNumber:
prompt: "Extract the contract number."
pass: false
key:
value: io.pipeforce.test_termination-wf
variables:
value:
"contractNumber": "{{intent.params.contractNumber}}"
"terminationLetter": ${vars.attachment}
|
Result:
For an invoice given in attachments of the email, this will select a the startInvoiceWorkflow
intent with final workflow parameters as as listed below:
Code Block | ||
---|---|---|
| ||
{
"params": {
"invoiceNumber": {
"name": "invoiceNumber",
"value": "45353",
"required": false,
"pass": false,
"type": "string"
},
"key": {
"name": "key",
"value": "io.pipeforce.invoicetest_invoice-wf",
"required": false,
"pass": true,
"type": "string"
},
"variables": {
"name": "variables",
"value": {
"firstName": "Max",
"lastName": "Mustermann",
"invoiceNumber": "45353",
"invoice": "${vars.attachment}"
},
"required": false,
"pass": true,
"type": "string"
}
},
"enabled": true,
"intentId": "startInvoiceWorkflow",
"command": "workflow.start"
} |
This JSON will then cause the command ai.intent.detect
to auto-execute the command workflow.start and pass along all parameters marked "pass": true
, there is the targetCommand
field defining the name of the command which must be called. In this example this is the mail.send
command.
The parameter runDetectedCommand
defines whether the command should directly be executed (true
) or the intent JSON should be simply returned for further processing (false
).