Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents
stylenone

What is the AI Studio?

Status
colourBlue
titleSince 11 - BETA

The AI Studio 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.

...

BETA

...

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
stylenone

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 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:

...

  • 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
languagejson
{
  "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
languageyaml
pipeline:
  - ai.prompt.send:
      prompt: |
        Return the names of the 10 biggest cities in the world as JSON array.

...

Code Block
languagejson
[
    "Tokyo",
    "Delhi",
    "Shanghai",
    "Sao Paulo",
    "Mumbai",
    "Beijing",
    "Mexico City",
    "Osaka",
    "Cairo",
    "Dhaka"
]

Adding context data (input) to the prompt

You can also apply the prompt with context data. This context data can be set as input to the command:

...

Code Block
languagejson
{
    "person": {
        "firstName": "p_Alex",
        "lastName": "p_Johnson",
        "age": 48
    }
}

Avanced prompting: Send multiple messages

In case you need to send multiple messages in one prompt, you can use the parameter messages like this:

...

The parameter content can be a plain text or any AI convertable object (like a PDF file for example). The conversion and preparation to an AI compatible format is done by PIPEFORCE automatically.

Intent Detection - Detect what the user wants

Another feature of the AI studio is the ability to detect the intent of the user or to classify a given information and extract additional information based on the detected intent.

...

Code Block
languageyaml
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"
            instructionprompt: "Use this intent in case the attachment is an invoice."
            params:
              supplierAddress:
                instructionprompt: Extract the supplier address from the invoice.
              invoiceNumber:
                instructionprompt: Extract the invoice number from the invoice.
              totalAmount:
                instructionprompt: Extract the total amount of the invoice in cents without any currency chars, separators or other special characters.
          - intentId: "temination"
            instructionprompt: "Use this intent in case the attachment is a termination of a contract."
            params:
                contractNumber:
                  instructionprompt: Extract the contract number.
                customerNumber:
                  instructionprompt: Extract the customer number.
                reason:
                  instructionprompt: Summarize in one sentence the reason for the termination.
          - intentId: "documentation"
            instructionprompt: "Use this intent in case the attachment is a documentation."
            params:
                summary:
                  instructionprompt: Create a short summary what this documentation is about.

...

  • intentId
    This attribute is mandatory and gives the intent a unique id. This should be an explainatory, unique name without special charaters or whitespaces.

  • instructionprompt
    Each intent has an instruction prompt in order to instruct the AI about the criteria to select this intent. In case such an intent is selected by AI, additionally the parameters will be extracted from the input. This parameter is mandatory.

  • params
    The list of optional parameters to be detected in case this intent was selected.

  • command
    The optional name of the command to be executed in case this intent was detected. Note: Additionally rundDetectecCommand must be set to true on the ai.intent.detect command which is false by default.

  • enabled
    An intent can optionally be disabled by setting enabled = false. This is useful mainly for testing purposes for example. In this case only the other intents will be considered by the AI.

Intent Parameters

The params section on each intent lists the parameters of the intent. These parameters will be automatically set in case the given intent was detected. They can later be used for further processing by calling a command of by passing them to external systems for example.

Each parameter can have a fixed/templated value or its value can be detected by AI using the instruction prompt attribute.

All parameter attributes are explained below.

name (optional)

The name of the parameter.

This attribute is optional. If not set, the params id will be used.

required (optional)

Defines whether this parameter is required. In case it is required and its value is finally missing or cannot be detected by AI, an error is thrown and further execution stops.

The default value is false.

type (optional)

The data type of the parameter such as string, boolean, integer, number, json

...

The default value is string.

value (optional)

The value of the intent parameter.

This can be a fixed value (literal) or a template.

Templated values

The value can also be template string. By default the Mustache template syntax can be used which starts with {{ and ends with }}. The variables advice and intent are passed as model context to the template. This way you can access for example settings and values of other parameters after they have been resolved by the AI in order to formulate the final parameter for a command.

...

Code Block
languageyaml
...
params:
  customerId:
    value: "1234567"
  message:
    value: "The customerId is: {{intent.params.customerId}}"
  ...

...

prompt (optional)

For each parameter, an attribute instruction prompt instead of a value can be set. Not both!

In this case the AI will auto-detect the value of the parameter by reading and applying this instruction prompt on the input and setting the result on the value field automatically.

...

Code Block
languageyaml
...
params:
  subject:
    instructionprompt: "Use the subject from initial sender email"
  ...

As you can see in this example, there is no fixed value for parameter subject set. Instead the AI was instructured to extract the value from the given email input.

Text-to-Command - Let the AI auto-start a business process

This is the next level of automation where the AI can start a command and with this, start a business process fully automated. For this, the AI takes a non-structured text such as an email, a chat message or a PDF document for example, analyses it and then automatically detects and executes the according PIPEFORCE command in order to take action and fulfill the user’s request.

...

  • Automatically forward emails with a summary to internal team
    Scan any email sent to a given inbox such as info@mycompany.tld for example, find out the intention of the sender, then forward the email to the internal team such as support, sales, … which can handle the request. The AI can find out the type of request, whether it is a support request, an order request, a question regarding an invoice or any other type just by writing an advice to the AI and without any programming. It can also detect and extract all required data such as customerId, invoiceNumber and more from the sender’s email. Furthermore, it can also create a short summary about what the core intent of the sender is to make it easier for the internal team to process the request.

  • Automatically start an internal workflow by email
    Scan any email sent to a given inbox such as invoice@mycompany.tld for example and if this email matches to an existing workflow, extract all variables required for this workflow from the email, start the workflow and pass these variables along with it. For example to start an accounts payable workflow based on an given payable invoice. The AI can validate whether all required data exist and is valid in order to start the workflow.

  • Automatically call endpoints of other systems by email
    Scan any email sent to a given inbox such as info@mycompany.tld for example and if this email is related to a service, offered by a third party system which provides an remote API, call this remote API (for example REST) and pass along parameters extracted from the email. For example create a new ticket on an external ticket system.

Using the command ai.intent.detect

In order to integrate Text-to-Command functionality into your automation pipelines, you can use the command ai.intent.detect. It will

  1. take a text, for example like an email as input,

  2. will apply the given AI instructions prompts on this text and

  3. finally will select a command to be executed and passes the detected parameters to this command.

...

Code Block
languageyaml
body: |
  From: customer@somedomain.tld
  Subject: I have a problem with your product
  Hello,
  I have a big problem with your product and need support.
  My customer id is 123456.
  Cheers, Valued Customer
  
pipeline:
  - ai.command.detect:
      runDetectedCommand: true
      advice:
        intentCandidates:
          - intentId: "forwardToSupport"
            instructionprompt: "Use this intent in case the sender needs product support."
            command: "mail.send"
            params:
              to:
                value: "support@internal.tld"
              from:
                instructionprompt: "The email address of the sender."
              subject:
                instructionprompt: "Use the subject of the sender's email."
              message:
                instructionprompt: "Use the message of the sender's email."
          - intentId: "forwardToInfo"
            instructionprompt: >
              Use this intent in case the sender's intent could not be detected.
            command: "mail.send"
            params:
              to:
                value: "info@internal.tld"
              from:
                instructionprompt: "The email address of the sender."
              subject:
                instructionprompt: "Use the subject of the sender's email."
              message:
                instructionprompt: "Use the message of the sender's email."

...

  • One intent will forward the customer email to the support team (=forwardToSupport) and

  • the other one to the info team in case it is related to any other topic (= forwardToInfo).

Each intent has an instruction 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.

...