Chatbot / README.md
sproducts's picture
Update README.md
c3160da verified
---
title: Chatbot for Project Guidance
emoji: 📚
colorFrom: yellow
colorTo: indigo
sdk: gradio
sdk_version: 5.14.0
app_file: app.py
pinned: false
short_description: Custom AI Chatbot for Project Guidance
license: osl-3.0
environment: conda
---
# Custom AI Chatbot for Project Guidance
This project implements a custom AI chatbot designed to guide users through complex projects based on predefined roadmaps and rules.
**Features:**
* **Roadmap-based Guidance:** Follows a structured roadmap defined in `roadmap.yaml`.
* **Rule Enforcement:** Adheres to project rules defined in `rules.yaml`.
* **Dynamic Response Generation:** Provides context-aware and step-by-step guidance.
* **Code Snippet Generation:** Generates complete code snippets for project phases using templates.
* **LLM Selection:** Integrates with Hugging Face Hub for flexible LLM selection (DeepSeek and Gemini models).
* **Model Switching:** Allows users to switch between available LLMs via the UI.
* **Basic LLM Responses:** Generates responses using the selected LLM for general queries.
* **Token Control:** Limits LLM response length using `max_response_tokens` in `configs/chatbot_config.yaml`.
* **Configuration Update Mode:** Allows authorized users to modify chatbot configuration (rules) via chat commands in a special "update mode".
* **Error Handling:** Includes error handling for model loading, switching, and configuration updates, with UI warnings.
* **Deployable on Hugging Face Spaces:** Built using Gradio for easy deployment.
**Important Notes on Safety Settings and Self-Update:**
* **Direct Safety Configuration Limited:** For the Hugging Face models used directly via `transformers` (DeepSeek and Gemini Flash), there are **no easily configurable, standardized "safety settings"**. Safety is model-dependent.
* **Model-Dependent Safety:** Safety behavior is primarily determined by how these models were trained.
* **Configuration-Based Self-Update:** The "self-update" feature is implemented as a *configuration modification* system. It allows authorized users to change the chatbot's rules by modifying the `rules.yaml` file via chat commands in "update mode." **It does not modify the core Python code itself.**
* **Security Warning:** The "self-update" feature, even in its configuration-based form, introduces security considerations. **Secret commands are NOT a robust security measure.** In a real deployment, stronger authentication and authorization would be essential. Use this feature with caution and only in trusted environments.
**Getting Started:**
1. **Clone this repository.**
2. **Install dependencies:** `pip install -r requirements.txt`
3. **Customize `roadmap.yaml` and `rules.yaml`** to define your project guidance.
4. **Configure `configs/chatbot_config.yaml`** to set up LLMs, token limits, and chatbot behavior.
5. **Run the Gradio app:** `python app.py`
6. **To enter update mode:** Type `sagor is python/start` in the chat.
7. **To get help in update mode:** Type `sagor is python/help`.
8. **To exit update mode:** Type `sagor is python/exit`.
9. **Deploy to Hugging Face Spaces** (refer to Hugging Face Spaces documentation).
**Available Models:**
* DeepSeek-R1-Distill-Llama-8B
* Gemini 2.0 Flash (Exp 01-21)
**Further Development:**
* Enhance LLM response generation for more context-aware and project-specific guidance.
* Implement more sophisticated state management to track user progress through the roadmap.
* Improve code generation with more dynamic templates and customization options.
* Develop a more advanced GUI or web-based interface for configuration management.
* Add more LLMs to the selection pool.
* Implement more robust error handling and logging.
* Explore and potentially integrate keyword-based output filtering for basic safety control.
* Investigate using commercial LLM APIs for more advanced safety settings and control.
* **Improve security and authorization for the configuration update mode.**
**License:** [Your License]