Merge branch 'feature/deploy_chatbot_widget' into 'master'

feat(all): deployed chatbot widget

See merge request espressif/esp-idf!37541
This commit is contained in:
Krzysztof Budzynski
2025-04-10 14:02:32 +08:00
6 changed files with 81 additions and 4 deletions

9
docs/_static/js/chatbot_widget.css vendored Normal file
View File

@@ -0,0 +1,9 @@
#kapa-widget-container {
z-index: 10000 !important;
position: absolute !important;
}
.mantine-Modal-root {
z-index: 10000;
position: absolute;
}

31
docs/_static/js/chatbot_widget_cn.js vendored Normal file
View File

@@ -0,0 +1,31 @@
document.addEventListener("DOMContentLoaded", function () {
var script = document.createElement("script");
script.src = "https://widget.kapa.ai/kapa-widget.bundle.js";
script.setAttribute("data-bot-protection-mechanism", "hcaptcha");
script.setAttribute("data-website-id", "6b18f5e5-d883-4ccd-9a24-371457cc0d7b");
script.setAttribute("data-modal-title", "ESP-IDF 编程指南文档 AI 助手");
script.setAttribute("data-project-color", "#C62817");
script.setAttribute("data-project-logo", "https://dl.espressif.com/public/logo.png");
script.setAttribute("data-button-image", "https://dl.espressif.com/chatbot/Chatbot.png");
script.setAttribute("data-button-text-font-size", "0px");
script.setAttribute("data-button-border-radius", "50%");
script.setAttribute("data-button-bg-color", "#38393a");
script.setAttribute("data-button-border", "#38393a");
script.setAttribute("data-button-height", "45px");
script.setAttribute("data-button-width", "45px");
script.setAttribute("data-button-animation-enabled", "false");
script.setAttribute("data-button-image-height", "100%");
script.setAttribute("data-button-image-width", "100%");
script.setAttribute("data-button-padding", "0");
script.setAttribute("data-button-hover-animation-enabled", "false");
script.setAttribute("data-button-position-top", "50px");
script.setAttribute("data-button-position-left", "305px");
script.setAttribute("data-button-box-shadow", "0px 6px 12px 1px rgba(0,0,0,0.16)");
script.setAttribute("data-modal-override-open-class", "test-ai");
script.setAttribute("data-user-analytics-fingerprint-enabled", "true");
script.setAttribute("data-modal-example-questions-title", "问题示例");
script.setAttribute("data-modal-disclaimer", "欢迎使用乐鑫文档智能问答助手!本助手基于乐鑫的公开文档,旨在为您提供产品和服务的技术支持与解答。如有任何意见或建议,欢迎留下反馈!\n\n**注意**:本回答由 AI 生成,可能存在不准确之处,请核实重要信息。");
script.setAttribute("data-modal-example-questions", "esp-idf 是什么?,我如何使用 esp-idf");
script.async = true;
document.head.appendChild(script);
});

30
docs/_static/js/chatbot_widget_en.js vendored Normal file
View File

@@ -0,0 +1,30 @@
document.addEventListener("DOMContentLoaded", function () {
var script = document.createElement("script");
script.src = "https://widget.kapa.ai/kapa-widget.bundle.js";
script.setAttribute("data-bot-protection-mechanism", "hcaptcha");
script.setAttribute("data-website-id", "e569d308-b8f4-43d1-a0d2-bebc1ece63de");
script.setAttribute("data-project-name", "ESP-IDF Programming Guide");
script.setAttribute("data-project-color", "#C62817");
script.setAttribute("data-project-logo", "https://dl.espressif.com/public/logo.png");
script.setAttribute("data-button-image", "https://dl.espressif.com/chatbot/Chatbot.png");
script.setAttribute("data-button-text-font-size", "0px");
script.setAttribute("data-button-border-radius", "50%");
script.setAttribute("data-button-bg-color", "#38393a");
script.setAttribute("data-button-border", "#38393a");
script.setAttribute("data-button-height", "45px");
script.setAttribute("data-button-width", "45px");
script.setAttribute("data-button-animation-enabled", "false");
script.setAttribute("data-button-image-height", "100%");
script.setAttribute("data-button-image-width", "100%");
script.setAttribute("data-button-padding", "0");
script.setAttribute("data-button-hover-animation-enabled", "false");
script.setAttribute("data-button-position-top", "50px");
script.setAttribute("data-button-position-left", "305px");
script.setAttribute("data-button-box-shadow", "0px 6px 12px 1px rgba(0,0,0,0.16)");
script.setAttribute("data-modal-override-open-class", "test-ai");
script.setAttribute("data-user-analytics-fingerprint-enabled", "true");
script.setAttribute("data-modal-disclaimer", "This custom large language model (LLM), trained on official documentation from espressif.com, is designed to provide technical support and answers related to Espressifs products and services. Give it a try, share your thoughts, and let us know your feedback—we truly appreciate it! \n\n**Note**: AI-generated information may be incomplete or inaccurate. Always verify critical information with official sources.");
script.setAttribute("data-modal-example-questions", "What is esp-idf?,How do I get started with esp-idf?");
script.async = true;
document.head.appendChild(script);
});

View File

@@ -450,6 +450,7 @@ with open('../page_redirects.txt') as f:
html_redirect_pages = [tuple(line.split(' ')) for line in lines]
html_static_path = ['../_static']
html_css_files = ['js/chatbot_widget.css']
idf_build_system = {
'doxygen_component_info': True,

View File

@@ -11,6 +11,7 @@ try:
except ImportError:
import os
import sys
sys.path.insert(0, os.path.abspath('../'))
from conf_common import * # noqa: F403,F401
@@ -19,11 +20,13 @@ import datetime
current_year = datetime.datetime.now().year
# General information about the project.
project = u'ESP-IDF Programming Guide'
copyright = u'2016 - {}, Espressif Systems (Shanghai) Co., Ltd'.format(current_year)
project = 'ESP-IDF Programming Guide'
copyright = '2016 - {}, Espressif Systems (Shanghai) Co., Ltd'.format(current_year) # noqa: A001
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
language = 'en'
html_zip = f'esp-idf-{language}-{release}' # noqa: F405
html_js_files = ['js/chatbot_widget_en.js']

View File

@@ -11,6 +11,7 @@ try:
except ImportError:
import os
import sys
sys.path.insert(0, os.path.abspath('..'))
from conf_common import * # noqa: F403,F401
@@ -19,11 +20,13 @@ import datetime
current_year = datetime.datetime.now().year
# General information about the project.
project = u'ESP-IDF 编程指南'
copyright = u'2016 - {} 乐鑫信息科技(上海)股份有限公司'.format(current_year)
project = 'ESP-IDF 编程指南'
copyright = '2016 - {} 乐鑫信息科技(上海)股份有限公司'.format(current_year) # noqa: A001
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
language = 'zh_CN'
html_zip = f'esp-idf-{language}-{release}' # noqa: F405
html_js_files = ['js/chatbot_widget_cn.js']