This is a chat bot based on the LangChain chat bot, packaged up and parameterized for easy re-use.
The app leverages LangChain’s streaming support and async API to update the page in real time for multiple users.
You can run the docker container with mounted volumes to modify the default behavior.
Run in docker (requires your OPENAI_API_KEY as an env variable)
docker run -p 9000:9000 -e OPENAI_API_KEY=${OPENAI_API_KEY} savantly/base-bot
Or deploy the Helm Chart chart info
Helm must be installed to use the charts. Please refer to Helm’s documentation to get started.
Once Helm has been set up correctly, add the repo as follows:
helm repo add base-bot https://savantly-net.github.io/base-bot/
If you had already added this repo earlier, run helm repo update
to retrieve
the latest versions of the packages. You can then run helm search repo
base-bot
to see the charts.
To install the base-bot chart:
helm install my-base-bot base-bot/base-bot
To uninstall the chart:
helm delete my-base-bot
The easiest way to get started is to copy the docker-compose.yml
to your project folder and create a data directory for your own domain.
You can get starter data here - ./data
The do docker compose up
.
Override other settings as needed.
pip install -r requirements.txt
ingest.sh
to ingest LangChain docs data into the vectorstore (only needs to be done once).
make start
Modify the settings.py
to customize the chat parameters.
Add a .secrets.py
file to hold your secret data.
Both of these files can be mounted in place if you’re using the pre-built Docker image.
If you’re running the docker image, you can easily customize the configurations by using environment variables.
Prefix the configuration items with SAVANTLY_CHAT_
to pass env vars directly to the base-bot configuration.
For example -
SAVANTLY_CHAT_UI_PAGE_TITLE="My Bot"
Use these parameters to modify the LLM configuration
LLM_REPRHASING_MODEL = "gpt-3.5-turbo"
LLM_REPHRASING_TEMPERATURE = 0.0
LLM_REPHRASING_VERBOSE = True
LLM_STREAMING_MODEL = "gpt-3.5-turbo"
LLM_STREAMING_TEMPERATURE = 0.0
LLM_STREAMING_VERBOSE = True
Use these settings to customize the branding -
UI_PAGE_TITLE = "Savantly Base Bot"
UI_PAGE_DESCRIPTION = "Savantly Base Bot"
UI_PAGE_FAVICON = "https://savantly.net/img/favicon.png"
UI_SHOW_HEADER = True
UI_HEADER_CENTER = True
UI_HEADER_TITLE = "BASEBOT"
UI_HEADER_LOGO_SRC = "https://savantly.net/img/logo.png"
UI_HEADER_LOGO_ALT = "Savantly Logo"
UI_HEADER_LOGO_HREF = "https://savantly.net"
UI_CHAT_BOT_NAME = "BaseBot"
There are two components: ingestion and question-answering.
Ingestion has the following steps:
./data/docs
folder for content to load. The scan ignores any files that begin with a dot.Question-Answering has the following steps
An endpoint is provided for Chatwoot webhook integration.
This allows Base-Bot to reply as an “Agent Bot” for any Chatwoot inbox.
Enable it with the setting CHATWOOT_ENABLED = True
Additional Settings
CHATWOOT_URL = "https://chatwoot.com"
CHATWOOT_BOT_TOKEN = ""
CHATWOOT_BOT_VARIANT = ""
The webhook URL for Base-Bot is /chatwoot/bot