Skip to content

Chatbot

A chatbot is a component that responds to questions sent by users in chat format with answers in chat format.
By linking with resources built using external services, you can use chatbot functions and chatbot functions that utilize RAG.

Properties

NoItemInput ValueDefault ValueAction PropertyTypeAction Default ValueDescription
1IDStringAuto-generatedidstringAuto-generatedThe [id] property cannot be set by action.
2WidthNumber
String
640widthnumber/string640Component width
3HeightNumber
String
480heightnumber/string480Component height
4XNumber
String
xnumber/stringX coordinate position
5YNumber
String
ynumber/stringY coordinate position
6Background ColorString
Color Picker
backgroundColorstringComponent background color
7BorderBooleanONborderbooleantrueBorder display setting
8Border WidthNumber1borderWidthnumber1Border width
9Rounded SizeNumber0roundedSizenumber0Corner rounding
10Border ColorString
Color Picker
#DDDDDDborderColorstring#DDDDDDBorder color
11Agent Name ColorString
Color Picker
agentNameColorstringAgent name text color
12Agent Message ColorString
Color Picker
agentMessageColorstringAgent message text color
13Agent Message Background ColorString
Color Picker
agentMessageBackgroundColorstringAgent message background color
14User Name ColorString
Color Picker
userNameColorstringUser name text color
15User Message ColorString
Color Picker
userMessageColorstringUser message text color
16User Message Background ColorString
Color Picker
#BAD6F2userMessageBackgroundColorstring#BAD6F2User message background color
17Submit Button ColorString
Color Picker
submitButtonColorstringSubmit button color
18Message Form Input ColorString
Color Picker
messageFormInputColorstringInput form text color
19Message Form Background ColorString
Color Picker
messageFormBackgroundColorstringInput form background color
20Disclaimer ColorString
Color Picker
disclaimerColorstringDisclaimer text color
21Read OnlyBooleanOFFreadOnlybooleanfalseRead-only mode
22VisibilityBooleanONvisibilitybooleantrueVisibility state
23Agent NameStringAgentagentNamestringAgentAgent name
24User NameStringYouuserNamestringYouUser name
25Agent AvatarStringhttps://template-ui-image.webperformer.jp/image/Chatbot-Agent_alpha.svgagentAvatarstringhttps://template-ui-image.webperformer.jp/image/Chatbot-Agent_alpha.svgAgent avatar image URL
26User AvatarStringhttps://template-ui-image.webperformer.jp/image/Chatbot-User_alpha.svguserAvatarstringhttps://template-ui-image.webperformer.jp/image/Chatbot-User_alpha.svgUser avatar image URL
27RAGBooleanONRAG feature enablement (no action property)
28Service NameSelection
1. AWS Bedrock
2. Azure Open AI
3. GCP Vertex AI
AWS BedrockExternal service to integrate (no action property)
29AI SettingsJSONAI settings JSON (no action property)
30AI CredentialsString Selection DialogCredential file path (no action property)
31System PromptStringSystem prompt (no action property)
32Message Form ValueStringmessageFormValuestringInput form initial value
33Message Form PlaceholderStringType your message…messageFormPlaceholderstringType your message…Input form placeholder
34Message Form RowsNumber1messageFormRowsnumber1Input form row count
35MessagesTable[{“role”:“agent”,“content”:“Hello! How can I help you today?”}]messagesarray of object[{“role”:“agent”,“content”:“Hello! How can I help you today?”}]Chat messages
36DisclaimerStringAI-generated. May contain errors.disclaimerstringAI-generated. May contain errors.Disclaimer text

External Services

The following external services can be linked.

  • AWS Bedrock
  • Azure OpenAI
  • GCP VertexAI

The combinations of retrievers and embedding models supported for each service are shown in the table below.

ServiceRetrieverEmbedding model
AWS BedrockAmazon Bedrock Knowledge BasesNo setup required
PineconeAmazon Bedrock
Azure Open AIAzure AI SearchAzure Open AI
PineconeAzure Open AI
GCP Vertex AIVertex AI Vector SearchVertex AI
PineconeVertex AI

AI Settings Specifications

AI settings describe settings for using resources built with external services.
In addition, settings for controlling response content can be described as desired.
Please describe settings according to the specifications of the external services you use.

AWS Bedrock:
https://docs.aws.amazon.com/ja_jp/bedrock/latest/userguide/model-parameters.html

Azure OpenAI:
https://learn.microsoft.com/ja-jp/azure/ai-foundry/openai/reference

GCP Vertex AI:
https://cloud.google.com/vertex-ai/generative-ai/docs/model-reference/inference?hl=ja#request
https://ai.google.dev/gemini-api/docs/safety-settings?hl=ja#javascript
https://cloud.google.com/vertex-ai/docs/general/googleapi-access-methods?hl=ja

Service Pattern Setting items (* indicates required fields)
AWS Bedrock chat
{ 
    "chat": { 
        "region": <Region (string) *>, 
        "model": <AI model identifier (string) *>, 
        "topP": <Probability value (numerical value) that controls the diversity of generation>, 
        "temperature": <Random value (numerical value) of generation>, 
        "maxTokens": <Maximum number of tokens to output in response (numerical value)>, 
        "stop": <List of tokens or strings that stop output (string array)> 
    } 
}
chat + rag
Retriever:Amazon Bedrock Knowledge Bases
{ 
     "chat": { 
        "region": <Region(string)*>, 
        "model": <AI model identifier(string)* >, 
        "topP": <Probability value (numerical value) that controls the diversity of generation>, 
        "temperature": <Random values (numbers) generated>, 
        "maxTokens": <Maximum number of tokens to output in response (numerical value)>, 
        "stop": <List of tokens or strings (string array) to stop outputting>
     }, 
     "rag": { 
         "source": <Retriever name (string) *>, 
         "param": { 
             "topK": <Maximum number of documents to be retrieved (numerical value) * >, 
             "knowledgeBaseId": <Knowledge Base ID(string)*>, 
             "region": <Region(string)*> 
         } 
     } 
}
chat + rag
Retriever:Pinecone
{ 
     "chat": { 
        "region": <Region(string)*>, 
        "model": <AI model identifier(string)*>, 
        "topP": <Probability value (numerical value) that controls the diversity of generation>, 
        "temperature": <Random values (numbers) generated>, 
        "maxTokens": <Maximum number of tokens to output in response (numerical value)>, 
        "stop": <List of tokens or strings (string array) to stop outputting>
     }, 
     "rag": { 
         "source": <Retriever Name(string)*>, 
         "param": { 
             "indexName": <Index name (string) *>, 
             "namespace": <Namespace (string)>, 
         }, 
         "embedding": { 
             "region": <Region(string)*>, 
             "model": <Embedding model identifier (string) *>
         }, 
         "retriever": { 
             "k": <Maximum number of documents to be retrieved (numerical value) *> 
         } 
     } 
}
Azure OpenAI chat
{ 
     "chat":{ 
         "azureOpenAIApiDeploymentName": <Deployment name (string) *>, 
         "azureOpenAIApiInstanceName": <Resource name (string) *>, 
         "azureOpenAIApiVersion": <API version (string) *>, 
         "topP": <Probability value (number) that controls the diversity of generation>, 
         "temperature": <Random value (numerical value) for generation>, 
         "maxTokens": <Maximum number of tokens to output in response (number)>, 
         "stop": <List of tokens or strings to stop outputting (string array)>, 
         "frequencyPenalty": <Penalty value (number) to suppress repetition of the same word>, 
         "presencePenalty": <Penalty value (number) to encourage the introduction of new topics> 
     } 
}
chat+rag
Retriever:Azure AI Search

[Notes]
The index structure should be designed as follows
・ id (String) => Retrievable, searchable
・ content (String) => Retrievable, searchable
・ content_vector (SingleCollection) => Searchable
・ metadata (ComplexType)
  〇 source (String) => Retrievable, searchable
  〇 chunk (String) => Searchable
  〇 attributes (ComplexTypeCollection)
    ・ key (String) => Filterable
    ・ value (String) => Searchable
{ 
     "chat": {          
         "azureOpenAIApiDeploymentName": <Deployment name (string) *>, 
         "azureOpenAIApiInstanceName": <Resource name (string) *>, 
         "azureOpenAIApiVersion": <API version (string) *>, 
         "topP": <Probability value (numerical value) that controls the diversity of generation>, 
         "temperature": <Random values (numbers) generated>, 
         "maxTokens": <Maximum number of tokens to output in response (numerical value)>, 
         "stop": <List of tokens or strings (string array) to stop outputting>, 
         "frequencyPenalty": <Penalty value (numerical value) for suppressing repetition of the same word>, 
         "presencePenalty": <Penalty value (numerical value) to encourage the introduction of new topics> 
     }, 
     "rag": { 
         "source": <Retriever Name(string)*>, 
         "param": { 
             "endpoint": <End point(string)*>, 
             "indexName": <Index name (string)*>, 
             "search": { 
                 "type": <Search type(string)> 
             } 
         }, 
         "embedding": { 
             "azureOpenAIApiDeploymentName": <Deployment Name(string)*>, 
             "azureOpenAIApiInstanceName": <Resource name(string)*>, 
             "azureOpenAIApiVersion": <API Version(string)*>, 
             "dimensions": <Vectorisation dimension (numerical value)> 
         }, 
         "retriever": { 
             "k": <Maximum number of documents to be retrieved (numerical value) *> 
         } 
     } 
}
chat+rag
Retriever:Pinecone
{ 
     "chat": {          
         "azureOpenAIApiDeploymentName": <Deployment name (string) *>, 
         "azureOpenAIApiInstanceName": <Resource Name(string)*>, 
         "azureOpenAIApiVersion": <API version(string)*>, 
         "topP": <Probability value (numerical value) that controls the diversity of generation>, 
         "temperature": <Random value (numerical value) of generation>, 
         "maxTokens": <Maximum number of tokens to output in response (numerical value)>, 
         "stop": <List of tokens or strings that stop output (string array)>, 
         "frequencyPenalty": <Penalty value (numerical value) to suppress repetition of the same word>, 
         "presencePenalty": <Penalty value (numerical value) to encourage the introduction of new topics> 
     }, 
     "rag": { 
         "source": <Retriever Name(string)*>, 
         "param": { 
             "indexName": <Index Name(string)*>, 
             "namespace": <Namespace (string)> 
         }, 
         "embedding": { 
             "azureOpenAIApiDeploymentName": <Deployment Name(string)*>, 
             "azureOpenAIApiInstanceName": <Resource Name(string)*>, 
             "azureOpenAIApiVersion": <API Version(string)*>, 
             "dimensions": <Vectorisation dimension (numerical value)> 
         }, 
         "retriever": { 
             "k": <Maximum number of documents to be retrieved (numerical value) *> 
         } 
     } 
} 

[Supplement] Instead of azureOpenAIApiInstanceName, it is also possible to specify azureOpenAIEndpoint. { "azureOpenAIEndpoint": <Endpoint URL(string)*>, }
GCP Vertex AI chat
{ 
    "chat": { 
        "model": <AI model identifier (string) *>, 
        "topP": <Parameters for controlling output diversity (numerical values)>, 
        "topK": <Select from the top K tokens in terms of probability (numerical value)>, 
        "temperature": <Random value of output (the lower the value, the more deterministic) (numerical value)>, 
        "maxOutputTokens": <Maximum number of tokens output in response (numerical value)>, 
        "safetySettings": <Safety settings (array)>, 
        "stopSequences": <List of strings that stop response output (string array)> 
    } 
}
chat+rag
Retriever:Vertex AI Vector Search
{ 
    "chat": {          
        "model": <AI Model Identifier (string) *>, 
        "topP": <Parameters for controlling output diversity (numerical values)>, 
        "topK": <Select from the top K tokens in terms of probability (numerical value)>, 
        "temperature": <Random value of output (the lower the value, the more deterministic) (numerical value)>, 
        "maxOutputTokens": <Maximum number of tokens output in response (numerical value)>, 
        "safetySettings": <Safety settings (array)>, 
        "stopSequences": <List of strings that stop response output (string array)> 
    }, 
    "rag": { 
        "source": <Retriever Name(String)*>, 
        "param": { 
            "index": <Index ID (string) *>, 
            "indexEndpoint": <Index endpoint ID (string) *>, 
            "location": <Region (string) *>, 
            "endpoint": <API endpoint (string) *>, 
            "deployedIndexId": <Deployed index ID (string) *> 
        }, 
        "docstore": { 
            "bucket": <Cloud storage bucket name (string) *>, 
            "prefix": <Cloud storage prefix name (string) *> 
        }, 
        "embedding": { 
            "model": <Embedding model identifier (string) *> 
        }, 
        "retriever": { 
            "k": <Maximum number of documents to retrieve (numeric) *> 
        } 
    } 
}
chat+rag
Retriever:Pinecone
{ 
    "chat": {          
        "model": <AI model identifier (string) *>, 
        "topP": <Parameter to control the diversity of output (numerical value)>, 
        "topK": <Select from the top K tokens in terms of probability (numerical value)>, 
        "temperature": <Random value of output (the lower the value, the more deterministic) (numerical value)>, 
        "maxOutputTokens": <Maximum number of tokens to output in response (numeric value)>, 
        "safetySettings": <Security settings (array)>, 
        "stopSequences": <List of strings to stop response output (string array)> 
    }, 
    "rag": { 
        "source": <Retriever name (string) *>, 
        "param": { 
            "indexName": <Index name (string) *>, 
            "namespace": <Namespace (string)> 
        }, 
        "embedding": { 
            "model": <Embedding model identifier (string) *> 
        }, 
        "retriever": { 
            "k": <Maximum number of documents to be retrieved (numerical value) *> 
        } 
    } 
}

AI Credential File Specification

AI Credential files contain authentication information for using resources built by external services.

Services Patterns Setting items (* indicates required items)
AWS Bedrock chat
{ 
     "chat": { 
         "credentials": { 
             "accessKeyId": <Access Key ID (string) *>, 
             "secretAccessKey": <Secret Access Key (string) *> 
         } 
     } 
} 
chat + rag
Retriever:Amazon Bedrock Knowledge Bases
{ 
    "chat": {          
        "credentials": { 
            "accessKeyId": <Access Key ID (string) *>, 
            "secretAccessKey": <Secret access key (string) *> 
        } 
    }, 
    "rag": { 
        "param": { 
            "credentials": { 
                "accessKeyId": <Access Key ID (string) *>, 
                "secretAccessKey": <Secret access key (string) *> 
            } 
        } 
    } 
}
chat + rag
Retriever:Pinecone
{ 
    "chat": {          
        "credentials": { 
            "accessKeyId": <Access Key ID(string)*>, 
            "secretAccessKey": <Secret Access Key(string)*> 
        } 
    }, 
    "rag": { 
        "param": { 
            "config": { 
                "apiKey": <API Key(string)*> 
            } 
        }, 
        "embedding": { 
            "credentials": { 
                "accessKeyId": <Access Key ID(string)*>, 
                "secretAccessKey": <Secret Access Key(string)*> 
            } 
        } 
    } 
}
Azure OpenAI chat
{ 
    "chat":{ 
        "azureOpenAIApiKey": <API Key(string)*> 
    } 
}
chat+rag
Retriever:Azure AI Search
{ 
    "chat": {          
         "azureOpenAIApiKey": <API Key(string)*> 
    }, 
    "rag": { 
        "param": { 
            "key": <API Key(string)*> 
        }, 
        "embedding": { 
            "azureOpenAIApiKey": <API Key(string)*> 
        } 
    } 
}
chat+rag
Retriever:Pinecone
{ 
    "chat": {          
        "azureOpenAIApiKey": <API Key(string)*>
    }, 
    "rag": { 
        "param": { 
            "config": { 
                "apiKey": <API Key(string)*>
            } 
        }, 
        "embedding": { 
            "azureOpenAIApiKey": <API Key(string)*>
        } 
    } 
}
GCP Vertex AI chat
{ 
    "chat": { 
        "authOptions": { 
            "credentials": <Service account key file json (object) *>, 
            "projectId": <Project ID (string) *> 
        } 
    } 
}
chat+rag
Retriever:Vertex AI Vector Search
{ 
    "chat": {          
       "authOptions": { 
            "credentials": <Service account key file json (object) *>, 
            "projectId": <Project ID(string)*> 
        } 
    }, 
    "rag": { 
        "param": { 
            "authOptions": { 
                "credentials": <Service account key file json (object) *>, 
                "projectId": <Project ID(string)*>, 
                "scopes": <Scope (string array) *> 
            } 
        }, 
        "docstore": { 
            "authOptions": { 
                "credentials": <Service account key file json (object) *>, 
                "projectId": <Project ID(string)*> 
            } 
        }, 
        "embedding": { 
            "authOptions": { 
                "credentials": <Service account key file json (object) *>, 
                "projectId": <Project ID(string)*> 
            } 
        } 
    } 
}
chat+rag
Retriever:Pinecone
{ 
    "chat": {          
        "authOptions": { 
            "credentials": <Service account key file json (object) *>, 
            "projectId": <Project ID (string) *> 
        } 
    }, 
    "rag": { 
        "param": { 
            "config": { 
                "apiKey": <API Key(string)*> 
            } 
        }, 
        "embedding": { 
            "authOptions": { 
                "credentials": <Service account key file json (object) *>, 
                "projectId": <Project ID (string) *> 
            } 
        } 
    } 
}