Điểm qua wandb/wandbot: 310 sao trên GitHub, viết chủ yếu bằng Python, thuộc nhóm AI Tools. wandbot is a technical support bot for Weights & Biases' AI developer tools that can run in Discord, Slack, ChatGPT and Zendesk
Tóm tắt dựng từ metadata GitHub của chính dự án — chưa có bài review TopGit. Trang sẽ tự động cập nhật khi bài review đầy đủ được xuất bản.
VÌ SAO CHƯA CÓ REVIEW
TopGit viết bài đầy đủ cho repo có nhiều sao nhất và được yêu cầu nhiều nhất. Trang này là snapshot trong thời gian chờ — xem README gốc ở tab READ ME.
WandBot is a support assistant designed for Weights & Biases' Experiment Tracking and Weave.
What's New
wandbot v1.3.0
Up to date wandb docs + code, weave docs + code, example colabs, edu content - using chroma_index:v50
Gemini flash-2.0 for query expansion (was gpt-4o)
GPT-4o for composing the response (was gpt-4o)
Cohere rerank-v3.5 (was rerank-v2.0)
Hosted Chroma (was locally hosted chroma)
Turned off web-search for now
Moved all configs to configs folder
Removed most langchain dependencies
Implemented LLM and EmbeddingModel classes
More robust evaluation pipeline, added retries, error handling and cli args
Move package management to use uv
Update to use python 3.12
Add dotenv for env loading, while developing
Add new endpoint, removed retriever endpoint for now
Improved error handling and retries for all apis
wandbot v1.2.0
This release introduces a number of exciting updates and improvements:
Parallel LLM Calls: Replaced the llama-index with the LECL, enabling parallel LLM calls for increased efficiency.
ChromaDB Integration: Transitioned from FAISS to ChromaDB to leverage metadata filtering and speed.
Query Enhancer Optimization: Improved the query enhancer to operate with a single LLM call.
Modular RAG Pipeline: Split the RAG pipeline into three distinct modules: query enhancement, retrieval, and response synthesis, for improved clarity and maintenance.
Parent Document Retrieval: Introduced parent document retrieval functionality within the retrieval module to enhance contextuality.
Sub-query Answering: Added sub-query answering capabilities in the response synthesis module to handle complex queries more effectively.
API Restructuring: Redesigned the API into separate routers for retrieval, database, and chat operations.
These updates are part of our ongoing commitment to improve performance and usability.
Evaluation
English
wandbot version
Comment
Response Correctness
Num Trials
Data ingestion Report
1.0.0
baseline wandbot
53.8 %
1
1.1.0
improvement over baseline; in production for the longest
72.5 %
1
1.2.0
our new enhanced wandbot
81.6 %
1
1.3.0rc
1.3.0rc with gpt-4-preview judge
71.3 %
5
v50
1.3.0rc
1.3.0rc with gpt-4o judge
88.8 %
5
v50
1.3.0
v1.3.0 prod, v50 index, gpt-4o judge
91.2 %
5
v50
1.3.1
v1.3.1 prod, v52 index, gpt-4o judge
91.2 %
5
v52
1.3.2
v1.3.2 prod, v54 index, gpt-4o judge. Knowledge base update
90.4 %
5
v54
1.3.3
v1.3.3 prod, v61 index, 500 tok Flash thinking, Flash Lite stable, gpt-4o judge. Knowledge base update
82 %
5
v61
Note
v1.3.1 uses:
claude Sonnet-3.7 for the response synthesizer, updated from gpt-4o-2024-11-20
an updated index that exludes korean and japanese versions of the docs as well as excludes the blog posts from Fully Connected.
1.3.0rc with gpt-4-preview judge and 1.3.0rc with gpt-4o judge are the same wandbot system evaluated with different judges.
The ~2.5% improvement between 1.3.0rc (gpt-4o judge) and 1.3.0 prod is mostly due to using reranker-v3.5 (from 2.0) and flash-2.0-001 (from gpt-4o). However evals previous to the v1.3.0 prod eval had 10-12 errors (out of 490 total calls), so there might be some noise in the results.
Japanese
wandbot version
Comment
response accuracy
1.2.0
our new enhanced wandbot
56.3 %
1.2.1
add translation process
71.9 %
Features
WandBot uses:
a hosted ChromaDB vector store
OpenAI's v3 embeddings
Gemini flash-2.0 for query enhancement
GPT-4o for response synthesis
Cohere's re-ranking model
It features periodic data ingestion and report generation, contributing to the bot's continuous improvement. You can view the latest data ingestion report here.
The bot is integrated with Discord and Slack, facilitating seamless integration with these popular collaboration platforms.
Performance monitoring and continuous improvement are made possible through logging and analysis with Weights & Biases Weave
Has a fallback mechanism for model selection
Installation
The project is built with Python version 3.12 and utilizes uv for dependency management. Follow the steps below to install the necessary dependencies:
Then install the app to install all dependencies in a virtual env:
uv pip install .
Local Development
Start the wandbot locally using the following commands:
# Run API server only with uvicorn
uv run uvicorn wandbot.api.app:app --host 0.0.0.0 --port 8000
# Run Slack and Discord bots locally (requires API to be running)
# Make sure to activate your virtual environment first
source wandbot_venv/bin/activate # or wherever your venv is located
($VIRTUAL_ENV/bin/python -m wandbot.apps.slack -l en) & \
($VIRTUAL_ENV/bin/python -m wandbot.apps.slack -l ja) & \
($VIRTUAL_ENV/bin/python -m wandbot.apps.discord)
The app will initialize automatically when started.
Modal Deployment
Wandbot can be deployed on Modal for serverless hosting with auto-scaling and low latency. The deployment is split into two separate Modal apps:
wandbot-api: The FastAPI server
wandbot-bots: Discord and Slack bots
The modal api url is set in modal_config.py and you can also overwrite this by settting WANDBOT_MODAL_API_URL in .env.
# Set up your environment
uv venv
uv sync
# Deploy everything (API server and bots)
./modal/deploy_all.sh
# Or deploy individually from project root
modal deploy modal/modal_app.py # Deploy API only
modal deploy modal/modal_bots.py # Deploy bots only
The deploy_all.sh script will:
Deploy the API server
Deploy the bot application
Start the bots immediately (they run for 24 hours)
Set up an hourly cron job to ensure bots stay running
See MODAL_DEPLOYMENT.md for detailed Modal deployment instructions.
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.
Running the Evaluation pipeline
Eval Config
The eval config can be found here and includes cli args to set the number of trials, weave parallelism, weave logging details and debug mode : wandbot/src/wandbot/evaluation/eval_config.py
Ensure wandbot is installed by installing the production depenencies, activate the virtual env that was created and then install the evaluation dependencies
Make sure to set the environment variables (i.e. LLM provider keys etc) from the .env file.
Launch the wandbot app
You can either use uvicorn or gunicorn to launch N workers to be able to serve eval requests in parallel. Note that weave Evaluations also have a limit on the number of parallel calls make, set via the WEAVE_PARALLELISM env variable, which is set further down in the eval.py file using the n_weave_parallelism flag. Launch wandbot with 8 workers for faster evaluation.
Testing: You can test that the app is running correctly by making a request to the chat/query endpoint, you should receive a response payload back from wandbot after 30 - 90 seconds:
curl -X POST \
http://localhost:8000/chat/query \
-H 'Content-Type: application/json' \
-d '{"question": "How do I log a W&B artifact?"}'
Debugging
For debugging purposes during evaluation you can run a single instance of the app by chaning the uvicorn command above to use --workers 1
Run the evaluation
Launch W&B Weave evaluation in the root wandbot directory. Ensure that you're virtual envionment is active. By default, a sample will be evaluated 3 times in order to account for both the stochasticity of wandbot and our LLM judge.
For debugging, pass the --debug flag to only evaluate on a small number of samples.
To adjust the number of parallel evaluation calls weave makes use the --n_weave_parallelism flag when calling eval.py
see eval_config.py for all evaluation options.
source wandbot_venv/bin/activate
uv run src/wandbot/evaluation/eval.py
When running evals before prod, we always run 5 trials per eval sample. It can also be a good idea to reduce weave parallelism in order to avoid api rate limiting issues which might skew eval results:
Debugging, only running evals on 1 sample and for 1 trial:
uv run src/wandbot/evaluation/eval.py --debug --n_debug_samples=1 --n_trials=1
Evaluate on Japanese dataset:
uv run src/wandbot/evaluation/eval.py --lang ja
To only evaluate each sample once:
uv run src/wandbot/evaluation/eval.py --n_trials 1
Data Ingestion
The data ingestion module pulls code and markdown from Weights & Biases repositories and ingests them into vectorstores for the retrieval augmented generation pipeline.
Ensure that the api keys for the embeddings model provider and the remote vector store provider are set before running the script. See debugging steps below for more tips.
To clone the repos you will need to have a .ssh key at ~/.ssh/id_rsa or generate one if you don't have one already:
ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa
Then run the ingestion pipeline script:
uv run src/wandbot/ingestion/__main__.py
Note:
Pay special attention to the configs in src/wandbot/configs/vector_store_config.py and src/wandbot/configs/ingestion_config as this is where important settings such as the embedding model, embedding dimensions and hosted vs local vector db are set. Ensure your VECTOR_STORE_API_KEY env var is set in .env.
You 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.
Ingestion pipeline debugging
To help with debugging, you can use the steps and include_sources flags to specify only sub-components of the pipeline and only certain documents sources to run. For example if you wanted to stop the pipeline before it creates the vector db and creates the artifacts and W&B report AND you only wanted to process the Weave documentation, you would do the following:
uv run src/wandbot/ingestion/__main__.py --steps prepare preprocess --include_sources "weave_documentation" --debug
Note on updating hosted Chroma vector db
A. If you compute a diff between the old dev docs and the new ones
You could use delete() then add(), on the same ids if you have consistent ids across updates
You could call update() or upsert() on the same ids, but if you changed any metadata schemas and want to drop old keys, you'll have to explicitly do that.
B. If you don't compute a diff or want a simple way to do this
You could delete everything in the collection and add it
You could create a new collection and insert the new data into that.
Release Checklist
[] Evaluation: Run evaluations, ensure no performance drop or justify why drop is acceptable/expected
[] Evaluation: Prefix eval name in Weave evals with "Prod vX.X.X -" for easy identification (in wandbot/wandbot-eval)
[] Knowlege Update: If knowlege base is updated then update the ingestion report with "Prod vX.X.X -" for easy identification (in wandbot/wandbot-dev)
[] Deployment Testing: Clone the repo to a staging env (e.g. test Replit app). Install and run via shell, sure no issues, ping local endpoint and ensure no errors.
[] Deployment Testing: Then create a staged deployment and again ensure no errors. Ping staged endpoint to ensure correct response is received.
[] Deployment: Clone the repo to a prod environment. Deploy updated version. Test via cli and slackbot that the endpoint is working and the correctg response is received.
[] [] GitHub: Update evaluation table at top of README with latest eval score, weave Eval link and data ingestion Report link
[] GitHub: Update git tag
[] GitHub: Create gthub release
TopGit xếp wandb/wandbot vào nhóm AI Tools dựa trên GitHub topics và mô tả của repo (gắn thẻ: "ai", "chat", "discord"). Việc phân loại dựa trên metadata thật của repo, không phải đoán theo cảm tính biên tập.
wandb/wandbot có bao nhiêu sao?
wandb/wandbot có 310 sao GitHub — tải lại trang để xem số mới nhất, hoặc xem trực tiếp github.com/wandb/wandbot. TopGit phản chiếu số sao của GitHub nhưng không cam kết đến từng phút.
wandb/wandbot có những chủ đề gì?
GitHub topics của wandb/wandbot: "ai", "chat", "discord", "gpt", "gpt-4", "openai", "slack", "support-bot", "wandb", "zendesk". TopGit xếp repo vào nhóm AI Tools.
wandb/wandbot còn đang phát triển không?
Commit gần nhất trên wandb/wandbot là 2 tháng trước (theo timestamp GitHub). Repo có 56 fork — một chỉ báo về mức độ quan tâm của cộng đồng.
wandb/wandbot là gì?
wandb/wandbot (wandb/wandbot) là dự án Python trên GitHub. Theo mô tả gốc: wandbot is a technical support bot for Weights & Biases' AI developer tools that can run in Discord, Slack, ChatGPT and Zendesk
wandb/wandbot so với các dự án AI Tools khác thế nào?
wandb/wandbot được TopGit xếp vào nhóm AI Tools, với 310 sao GitHub và viết bằng Python. Xem trang chủ đề AI Tools trên TopGit để so sánh với các dự án tương tự theo số sao và mức độ hoạt động.
wandb/wandbot viết bằng ngôn ngữ gì?
wandb/wandbot chủ yếu viết bằng Python. Trường "language" của GitHub dựa trên phần lớn byte ở nhánh mặc định.
Đọc đầy đủ README ở tab phía trên.
Muốn nghe thêm một ý kiến về wandbot?
Hỏi một AI đọc được trang này — một cú bấm là có ngay nhận định về wandbot.