Wandbot is a question-answering bot designed specifically for Weights & Biases documentation.
This release introduces a number of exciting updates and improvements:
These updates are part of our ongoing commitment to improve performance and usability.
English
| wandbot version | Comment | response accuracy |
|---|---|---|
| 1.0.0 | our baseline wandbot | 53.8 % |
| 1.1.0 | improvement over baseline; in production for the longest | 72.5 % |
| 1.2.0 | our new enhanced wandbot | 81.6 % |
Japanese
| wandbot version | Comment | response accuracy |
|---|---|---|
| 1.2.0 | our new enhanced wandbot | 56.3 % |
| 1.2.1 | add translation process | 71.9 % |
The project is built with Python version >=3.10.0,<3.11 and utilizes poetry for managing dependencies. Follow the steps below to install the necessary dependencies:
git clone [email protected]:wandb/wandbot.git
pip install poetry
cd wandbot
poetry install --all-extras
# Depending on which platform you want to run on run the following command:
# poetry install --extras discord # for discord
# poetry install --extras slack # for slack
# poetry install --extras api # for apiThe data ingestion module pulls code and markdown from Weights & Biases repositories docodile and examples ingests them into vectorstores for the retrieval augmented generation pipeline. To ingest the data run the following command from the root of the repository
poetry run python -m src.wandbot.ingestionYou will notice that the data is ingested into the data/cache directory and stored in three different directories raw_data, vectorstore with individual files for each step of the ingestion process.
These datasets are also stored as wandb artifacts in the project defined in the environment variable WANDB_PROJECT and can be accessed from the wandb dashboard.
Before running the Q&A bot, ensure the following environment variables are set:
OPENAI_API_KEY
COHERE_API_KEY
SLACK_EN_APP_TOKEN
SLACK_EN_BOT_TOKEN
SLACK_EN_SIGNING_SECRET
SLACK_JA_APP_TOKEN
SLACK_JA_BOT_TOKEN
SLACK_JA_SIGNING_SECRET
WANDB_API_KEY
DISCORD_BOT_TOKEN
COHERE_API_KEY
WANDBOT_API_URL="http://localhost:8000"
WANDB_TRACING_ENABLED="true"
WANDB_PROJECT="wandbot-dev"
WANDB_ENTITY="wandbot"Once these environment variables are set, you can start the Q&A bot application using the following commands:
(poetry run uvicorn wandbot.api.app:app --host="0.0.0.0" --port=8000 > api.log 2>&1) &
(poetry run python -m wandbot.apps.slack -l en > slack_en_app.log 2>&1) &
(poetry run python -m wandbot.apps.slack -l ja > slack_ja_app.log 2>&1) &
(poetry run python -m wandbot.apps.discord > discord_app.log 2>&1)You might need to then call the endpoint to trigger the final wandbot app initialisation:
curl http://localhost:8000/For more detailed instructions on installing and running the bot, please refer to the run.sh file located in the root of the repository.
Executing these commands will launch the API, Slackbot, and Discord bot applications, enabling you to interact with the bot and ask questions related to the Weights & Biases documentation.
Make sure to set the environments in your terminal.
set -o allexport; source .env; set +o allexport
Launch the wandbot with 8 workers. This speeds up evaluation
WANDBOT_EVALUATION=1 gunicorn wandbot.api.app:app --bind 0.0.0.0:8000 --timeout=200 --workers=8 --worker-class uvicorn.workers.UvicornWorker
Set up for evaluation
wandbot/src/wandbot/evaluation/config.py
evaluation_strategy_name : attribute name in Weave Evaluation dashboardeval_dataset :
eval_judge_model : model used for judgewandb_entity : wandb entity name for recordwandb_project : wandb project name for recordLaunch W&B Weave evaluation
python src/wandbot/evaluation/weave_eval/main.py
You can monitor the usage of the bot in the following project: https://wandb.ai/wandbot/wandbot_public