There are two versions of the chatbot widget available:
<div id="ae-chatbot-widget" ></div>
<script>
const ae_widget_config_params = {
botname: "YourBotName",
widget_popup_text: "Hello! How can I help you today?",
styles: {
"chatbot-brand-primary-color": "#000000",
},
}
</script>
<script src="https://chat.ask.thiaplatform.ai/static/js/widget-loader.js"></script>
<div id="ae-chatbot-fullscreen"></div>
<script>
const ae_widget_config_params = {
botname: "YourBotName",
widget_popup_text: "Hello! How can I help you today?",
styles: {
"chatbot-brand-primary-color": "green",
},
}
</script>
<script src="https://chat.ask.thiaplatform.ai/static/js/fullscreen-loader.js"></script>
Customize the appearance of your chatbot widget using these CSS variables:
| Parameter | Description | Default / Example |
|---|---|---|
--chatbot-brand-primary-color |
Primary brand color used throughout the widget | #f47b28 |
--chatbot-font-size |
Base font size for the widget | 15px |
--chatbot-header-color |
Color of the header when chatbot is open | #ffffff |
--chatbot-header-text-color |
Color used for header text | #000000 |
--chatbot-header-text-weight |
Boldness of header text, (ie 'normal', 'bold', 'lighter') | normal |
--chatbot-footer-text-color |
Color used for footer text, semi-transparent until hovered | #ffffff |
--chatbot-reference-background |
Color used for inline citation background | #f0721f; |
--chatbot-reference-text-color |
Color used for inline citation text | #ffffff |
--chatbot-reference-link-background |
Background color used for reference links at the bottom of the message | #f0721f |
--chatbot-reference-link-text-color |
Text color used for reference links at the bottom of the message | #ffffff |
--chatbot-icon-img |
URL to the chatbot's avatar image | url(./assets/chatbotAvatar.png) |
--chatbot-icon-background-color |
Color fill behind the icon | var(--chatbot-brand-primary-color) |
--chatbot-icon-size |
Size of the chat icon | 50px |
--chatbot-icon-roundness |
Corner radius of the icon | 20% |
--chatbot-icon-border |
Border style for the icon | none |
--chatbot-icon-shadow |
Drop shadow for the icon | none |
--chatbot-icon-offset |
Distance from bottom and right sides | var(--chatbot-font-size) |
--chatbot-icon-hover-color |
Fill color on hover | var(--chatbot-brand-primary-color) |
--chatbot-icon-hover-border |
Border style on hover | none |
--chatbot-icon-hover-shadow |
Drop shadow on hover | -2px 4px 2px rgba(0, 0, 0, 0.2) |
--chatbot-modal-width |
Chat window width | 450px |
--chatbot-modal-margin |
Distance from screen edges | 0px |
--chatbot-modal-radius |
Window corner radius | 0 |
--chatbot-modal-border |
Window border style | none |
--chatbot-modal-background |
Main window background color | white |
--chatbot-modal-shadow |
Window drop shadow | -2px 4px 8px rgba(0, 0, 0, 0.1) |
--chatbot-modal-button-radius |
Button corner radius | 4px |
--chatbot-message-radius |
Message bubble corner radius | var(--chatbot-font-size) |
--chatbot-bot-text-color |
Bot message text color | black |
--chatbot-bot-text-background |
Bot message background color | hsl(0, 0%, 96%) |
--chatbot-user-text-color |
User message text color | white |
--chatbot-feedback-icon-color |
Changes the color of the icons at the bottom of messages | black |
--chatbot-user-text-background |
User message background color | var(--chatbot-brand-primary-color) |
--chatbot-icon-face-color |
Fullscreen icon face color | #f47b28 |
--chatbot-icon-hat-color |
Fullscreen icon hat color | #81858b |
--chatbot-icon-eye-color |
Fullscreen icon eye color | #045db3 |
--chatbot-link-color |
Hyper link text color | #3366cc |
Pass these via ae_widget_config_params at page load, or
update them mid-conversation by sending an
update_config frame over the WebSocket. Options listed
for weighting fields are case-insensitive.
| Parameter | Description | Default / Options |
|---|---|---|
| Bot Identity | ||
botname |
Display name for the bot. Used by the frontend in default greeting text. | "ExtensionBot" |
widget_popup_text |
Banner text shown beside the closed widget. |
"Hi, I'm ${botname}. đź‘‹ How can I help you?"
|
greeting_text |
Initial bot bubble shown when the widget opens. The backend reads this only to decide whether to suppress its own default greeting. |
"Hi! My name is ${botname}. I can help you with your
extension-related questions…"
|
| Locality & Source | ||
state |
User's home state. Full name, case-insensitive. Drives
retrieval localization and the extension-office contact
directory when extension_office_url is unset.
|
"" |
list_of_states |
Array of state names to prefer during retrieval. Full names,
case-insensitive. state is appended automatically
if set.
|
[] |
source |
Preferred source domain (root domain, e.g.
okstate.edu). Honored when
local_weighting is anything other than
"none".
|
"" |
local_weighting |
High-level locality preference. none = no
preference; slight/moderate/strong
progressively downweight out-of-state / off-source chunks;
complete = only matching chunks are retrieved.
|
"none"none · slight · moderate · strong · complete |
date_weighting |
How heavily to prefer recent content.
none disables date decay;
slight through complete apply a
sigmoid decay around the 5-year mark.
|
"slight"none · slight · moderate · strong · complete |
| Retrieval & Generation | ||
max_num_resources_returned |
Upper bound on the number of references returned per turn. Clamped server-side to [3, 20]. | 10 |
streaming |
Stream the final answer token-by-token over the WebSocket. Has
no effect on POST /api/chat, which always returns
a single buffered response.
|
true |
| Tool Gating | ||
use_rlm |
Force-enable or force-disable the RLM director pipeline for this conversation. Omit to inherit the server default. | true |
use_cowculator |
Allow the RLM director to build cowculator forms (beef-cattle ration evaluation). | true |
use_web_search |
Allow the RLM director to use Brave web search as a backup to
the knowledge base. Automatically skipped when
local_weighting or
topic_weighting is "complete".
|
true |
| Contact | ||
extension_office_url |
Override URL for the user's local extension office contact page. When set, the bot uses this directly instead of the state-keyed contact directory. | "" |
| Fullscreen Mode | ||
fullscreen_header_text |
Header copy on the fullscreen variant. | "How can I help you?" |
fullscreen_icon_image_url |
URL of the icon to display in the fullscreen application. | "" |
fullscreen_default_questions |
Default question cards shown when the fullscreen widget opens.
Array of { header, question } objects.
|
[ { header: "Lawn and Garden", question: "What is the best
fertilizer to use on my lawn?" }, { header: "Local Extension
Office", question: "How do I contact my local extension
office?" }, { header: "Crop Management", question: "What are
some effective ways to manage my crops?" }, { header: "Pest
Management", question: "Can I use Bacillus thuringiensis and
spinosad together…?" }, ]
|
ExtensionBot is a LLM Agnostic chatbot that is built and deployed by the Extension Foundation. We are working closely with Thia Corporation on the development and deployment of the technology. ExtensionBot is backed by an LLM (Large Language Model) that is trained exclusively on data provided by Cooperative Extension institutions and Ask Extension. Learn more at https://extension.org/tools/extbot/
Recent ExtensionBot releases, newest first.