Documentation

    
{
    "$defs": {
        "SAMChatBotCustomDomain": {
            "description": "Smarter API Chatbot Manifest Chatbot.spec.config.customDomain",
            "properties": {
                "aws_hosted_zone_id": {
                    "description": "Chatbot.spec.configuration.customDomain.aws_hosted_zone_id[str]. Required. The AWS hosted zone ID for this domain name. Example: Z08678681MEAGNEVHT5I8",
                    "title": "Aws Hosted Zone Id",
                    "type": "string"
                },
                "domain_name": {
                    "description": "Chatbot.spec.configuration.customDomain.domain_name[str]. Required. The domain name. Example: example.com",
                    "title": "Domain Name",
                    "type": "string"
                }
            },
            "required": [
                "aws_hosted_zone_id",
                "domain_name"
            ],
            "title": "SAMChatBotCustomDomain",
            "type": "object"
        },
        "SAMChatbotMetadata": {
            "description": "Smarter API Chatbot Manifest - Metadata class.",
            "properties": {
                "name": {
                    "description": "The camelCase name of the manifest resource",
                    "title": "Name",
                    "type": "string"
                },
                "description": {
                    "description": "The description for this resource. Be brief. Keep it under 255 characters.",
                    "title": "Description",
                    "type": "string"
                },
                "version": {
                    "description": "The semantic version of the manifest. Example: 0.1.0",
                    "title": "Version",
                    "type": "string"
                },
                "tags": {
                    "anyOf": [
                        {
                            "items": {
                                "type": "string"
                            },
                            "type": "array"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "default": null,
                    "description": "The tags of the manifest. These are fully functional but are not currently used. Example: [tag1, tag2]",
                    "title": "Tags"
                },
                "annotations": {
                    "anyOf": [
                        {
                            "items": {
                                "type": "string"
                            },
                            "type": "array"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "default": null,
                    "description": "The manifest annotations. These are fully functional but are not currently used.",
                    "title": "Annotations"
                }
            },
            "required": [
                "name",
                "description",
                "version"
            ],
            "title": "SAMChatbotMetadata",
            "type": "object"
        },
        "SAMChatbotSpec": {
            "description": "Smarter API Chatbot Manifest Chatbot.spec",
            "properties": {
                "config": {
                    "$ref": "#/$defs/SAMChatbotSpecConfig",
                    "description": "Chatbot.spec.config[object]. The configuration for the Chatbot."
                },
                "plugins": {
                    "anyOf": [
                        {
                            "items": {
                                "type": "string"
                            },
                            "type": "array"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "default": null,
                    "description": "Chatbot.spec.searchTerms[list]. Optional. The Plugins to add to the Chatbot. Plugins are a proprietary extensibility model for tool calling and are not the same as OpenAI plugins. See https://platform.smarter.sh/docs/plugins/ for more information.",
                    "title": "Plugins"
                },
                "functions": {
                    "anyOf": [
                        {
                            "items": {
                                "type": "string"
                            },
                            "type": "array"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "default": null,
                    "description": "Chatbot.spec.functions[list]. Optional. The built-in Smarter Functions to add to the Chatbot. Example: [get_current_weather]. These are built-in backing functions written in Python that are fully compatible with OpenAI API-compatible function calling. These are not the same as OpenAI functions. See https://platform.smarter.sh/docs/functions/ for more information.",
                    "title": "Functions"
                },
                "apiKey": {
                    "anyOf": [
                        {
                            "type": "string"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "default": null,
                    "description": "Chatbot.spec.api_key[str]. Optional. The name of the API key that this chatbot uses for authentication. Example: my_api_key. API keys are only necessary for chatbots that are not public facing. This is the name of the API key that is used to authenticate the chatbot with the Smarter API. API keys are issued by a Smarter platform administrator and are used to authenticate the chatbot with the Smarter API.",
                    "title": "Apikey"
                }
            },
            "required": [
                "config"
            ],
            "title": "SAMChatbotSpec",
            "type": "object"
        },
        "SAMChatbotSpecConfig": {
            "description": "Smarter API Chatbot Manifest Chatbot.spec.config",
            "properties": {
                "subdomain": {
                    "anyOf": [
                        {
                            "type": "string"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "default": null,
                    "description": "Chatbot.spec.configuration.subdomain[str]. Optional. The subdomain to use for the chatbot for published public urls. Example: https://<subdomain>.3141-5926-5359.api.smarter.sh",
                    "title": "Subdomain"
                },
                "customDomain": {
                    "anyOf": [
                        {
                            "$ref": "#/$defs/SAMChatBotCustomDomain"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "default": null,
                    "description": "Chatbot.spec.configuration.custom_domain[str]. Optional. The custom domain to use for the chatbot. Example: example.com"
                },
                "deployed": {
                    "default": false,
                    "description": "Chatbot.spec.configuration.deployed[bool]. Required. Whether the chatbot is deployed. Deployed means that the chatbot is available for use outside the Smarter Prompt Engineer Workbench. Published chatbots have their own subdomain, Kubernetes ingress, and TLS/SSL certificate.",
                    "title": "Deployed",
                    "type": "boolean"
                },
                "provider": {
                    "anyOf": [
                        {
                            "type": "string"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "default": null,
                    "description": "Chatbot.spec.configuration.provider[str]. Optional. The provider to use for the chatbot. Options: openai, metaai, googleai. Default: openai.",
                    "title": "Provider"
                },
                "defaultModel": {
                    "anyOf": [
                        {
                            "type": "string"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "default": null,
                    "description": "Chatbot.spec.configuration.default_model[str]. Optional. The default model to use for the chatbot. This changes routinely and is currently defaults to gpt-4o-mini",
                    "title": "Defaultmodel"
                },
                "defaultSystemRole": {
                    "anyOf": [
                        {
                            "type": "string"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "default": null,
                    "description": "Chatbot.spec.configuration.default_system_role[str]. Optional. The default system prompt to use for the chatbot. This defaults to the following value:
You are a helpful chatbot. When given the opportunity to utilize function calling, you should always do so. This will allow you to provide the best possible responses to the user. If you are unable to provide a response, you should prompt the user for more information. If you are still unable to provide a response, you should inform the user that you are unable to help them at this time..
The system prompt is the first message in the conversation and is used to set the context for the chatbot. It is important to keep this prompt short, as it is included in the token count for each message. The maximum length of the system prompt is 2048 characters.",
                    "title": "Defaultsystemrole"
                },
                "defaultTemperature": {
                    "anyOf": [
                        {
                            "type": "number"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "default": null,
                    "description": "Chatbot.spec.configuration.default_temperature[float]. Optional. The default temperature to use for the chatbot. This defaults to 0.5.
The temperature is a floating point value between 0 and 1 that controls the randomness of the chatbots responses. A value of 0 means that the chatbot will always choose the most likely response, while a value of 1 means that the chatbot will choose a random response. Low values work better for information retrieval tasks, while high values work better for creative tasks.",
                    "title": "Defaulttemperature"
                },
                "defaultMaxTokens": {
                    "anyOf": [
                        {
                            "type": "integer"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "default": null,
                    "description": "Chatbot.spec.configuration.default_max_tokens[int]. Optional. The default max tokens to use for the chatbot. This defaults to 2048.
The max tokens is an integer value that controls the maximum number of tokens in the chatbots response. The maximum number of tokens is the sum of the tokens in the prompt and the tokens in the response. The maximum number of tokens varies by provider. Refer to vendor documentation as this value routinely changes as new models are released.",
                    "title": "Defaultmaxtokens"
                },
                "appName": {
                    "anyOf": [
                        {
                            "type": "string"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "default": null,
                    "description": "Chatbot.spec.configuration.app_name[str]. Optional. The name of the chatbot. Example: Sales Support Chatbot. This is the name that will be displayed to users in the Smarter Prompt Engineer Workbench, as well as any production UI that leverages the SmarterChat React.js Component - https://www.npmjs.com/package/@smarter.sh/ui-chat.",
                    "title": "Appname"
                },
                "appAssistant": {
                    "anyOf": [
                        {
                            "type": "string"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "default": null,
                    "description": "Chatbot.spec.configuration.app_assistant[str]. Optional. The assistant name of the chatbot. Example: Joe. This is the fictitious assistant name that will be displayed to users in the Smarter Prompt Engineer Workbench, as well as any production UI that leverages the SmarterChat React.js Component - https://www.npmjs.com/package/@smarter.sh/ui-chat.",
                    "title": "Appassistant"
                },
                "appWelcomeMessage": {
                    "anyOf": [
                        {
                            "type": "string"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "default": null,
                    "description": "Chatbot.spec.configuration.app_welcome_message[str]. Optional. The welcome message of the chatbot. Example: Welcome to Smarters sales support chatbot! The welcome messages will appear as the first assistant message in each message list from the Smarter Prompt Engineer Workbench, as well as any production UI that leverages the SmarterChat React.js Component - https://www.npmjs.com/package/@smarter.sh/ui-chat.",
                    "title": "Appwelcomemessage"
                },
                "appExamplePrompts": {
                    "anyOf": [
                        {
                            "items": {
                                "type": "string"
                            },
                            "type": "array"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "default": null,
                    "description": "Chatbot.spec.configuration.app_example_prompts[list]. Optional. A list of example prompts to add to new chat sessions. These are intended to be brief, and the list is assumed to include only a few examples. Example: [How do I get a refund?, What is the return policy?]. These are intended to help the user to understand the chatbots capabilities. These will be displayed to users in the Smarter Prompt Engineer Workbench, as well as any production UI that leverages the SmarterChat React.js Component - https://www.npmjs.com/package/@smarter.sh/ui-chat.",
                    "title": "Appexampleprompts"
                },
                "appPlaceholder": {
                    "anyOf": [
                        {
                            "type": "string"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "default": null,
                    "description": "Chatbot.spec.configuration.app_placeholder[str]. Optional. The text placeholder added to the chat input box for all new chat sessions. Example: ask me anything.... The place holder will be displayed to users in the Smarter Prompt Engineer Workbench, as well as any production UI that leverages the SmarterChat React.js Component - https://www.npmjs.com/package/@smarter.sh/ui-chat.",
                    "title": "Appplaceholder"
                },
                "appInfoUrl": {
                    "anyOf": [
                        {
                            "type": "string"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "default": null,
                    "description": "Chatbot.spec.configuration.app_info_url[str]. Optional. The custom info URL of the chatbot. This is a user control button located on the right-hand side of the header of the Smarter Prompt Engineer Workbench, as well as any production UI that leverages the SmarterChat React.js Component - https://www.npmjs.com/package/@smarter.sh/ui-chat.",
                    "title": "Appinfourl"
                },
                "appBackgroundImageUrl": {
                    "anyOf": [
                        {
                            "type": "string"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "default": null,
                    "description": "Chatbot.spec.configuration.app_background_image_url[str]. Optional. The image URL for the background image of the chat window in the Smarter Prompt Engineer Workbench, as well as any production UI that leverages the SmarterChat React.js Component - https://www.npmjs.com/package/@smarter.sh/ui-chat.",
                    "title": "Appbackgroundimageurl"
                },
                "appLogoUrl": {
                    "anyOf": [
                        {
                            "type": "string"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "default": null,
                    "description": "Chatbot.spec.configuration.app_logo_url[str]. Optional. The URL for the chatbot logo. This is future use and is anticipated to be used for meta presentation of this chatbot in UI collections.",
                    "title": "Applogourl"
                },
                "appFileAttachment": {
                    "anyOf": [
                        {
                            "type": "boolean"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "default": null,
                    "description": "Chatbot.spec.configuration.app_file_attachment[bool]. Optional. Whether the chatbot supports file attachments. Defaults to False. When set to True, a file attachment button will be displayed in the chat input box of the Smarter Prompt Engineer Workbench, as well as any production UI that leverages the SmarterChat React.js Component - https://www.npmjs.com/package/@smarter.sh/ui-chat.",
                    "title": "Appfileattachment"
                }
            },
            "title": "SAMChatbotSpecConfig",
            "type": "object"
        },
        "SAMChatbotStatus": {
            "description": "Smarter API Chatbot Manifest - Status class.",
            "properties": {
                "account_number": {
                    "default": null,
                    "description": "Chatbot.status.account_number: The account owner of this Chatbot. Read only.",
                    "title": "Account Number",
                    "type": "string"
                },
                "username": {
                    "default": null,
                    "description": "Chatbot.status.account_number: The Smarter user who created this Chatbot. Read only.",
                    "title": "Username",
                    "type": "string"
                },
                "created": {
                    "default": null,
                    "description": "Chatbot.status.created: The date in which this Chatbot was created. Read only.",
                    "format": "date-time",
                    "title": "Created",
                    "type": "string"
                },
                "modified": {
                    "default": null,
                    "description": "Chatbot.status.modified: The date in which this Chatbot was most recently changed. Read only.",
                    "format": "date-time",
                    "title": "Modified",
                    "type": "string"
                }
            },
            "title": "SAMChatbotStatus",
            "type": "object"
        }
    },
    "description": "Smarter API Manifest - Chatbot",
    "properties": {
        "apiVersion": {
            "description": "apiVersion[String]: Required. The API version of the AbstractSAMBase.",
            "title": "Apiversion",
            "type": "string"
        },
        "kind": {
            "description": "kind[String]: Required. The kind of resource described by the manifest.",
            "title": "Kind",
            "type": "string"
        },
        "metadata": {
            "$ref": "#/$defs/SAMChatbotMetadata",
            "description": "Chatbot.metadata[obj]: Required, the Chatbot metadata."
        },
        "spec": {
            "$ref": "#/$defs/SAMChatbotSpec",
            "description": "Chatbot.spec[obj]: Required, the Chatbot specification."
        },
        "status": {
            "anyOf": [
                {
                    "$ref": "#/$defs/SAMChatbotStatus"
                },
                {
                    "type": "null"
                }
            ],
            "description": "Chatbot.status[obj]: Optional, Read-only. Stateful status information about the Chatbot."
        }
    },
    "required": [
        "apiVersion",
        "kind",
        "metadata",
        "spec",
        "status"
    ],
    "title": "SAMChatbot",
    "type": "object"
}
    
  

We're


Hiring!

Let's do something amazing, together! We're currently hiring for Full Stack and React developers, devops, and prompt engineering positions.

Requirements

Pass an online skills assessment exam
Communication and time-management skills
Intellectual curiosity and a passion for learning
Willingness and ability to dedicate yourself full time to this position

Our Achievements

Patented technology
Developers of Stepwise AI technology
U.S. Dept of Education grant recipient
Explore More

Stay
Connected