d365stuff-chat / README.md
mafzaal's picture
Add metadata section to README for D365stuff Chat, including title, emoji, color scheme, and SDK information.
0df8c58
metadata
title: D365stuff Chat
emoji: πŸ¦€
colorFrom: yellow
colorTo: red
sdk: docker
pinned: false

D365Stuff Chat

A conversational AI interface for the D365Stuff blog, built by TheDataGuy.pro using the Let's Talk framework. This application allows users to interact with the blog's content in a natural, conversational way.

Features

  • πŸ€– AI-powered chat interface for D365Stuff blog content
  • πŸ” Smart search and retrieval of relevant blog posts
  • πŸ’» Code examples with syntax highlighting
  • 🌐 Multi-language support
  • 🎨 Dark/Light theme support
  • πŸ“€ File upload capabilities
  • πŸ”’ Privacy-focused (no permanent conversation storage)

Prerequisites

  • Python 3.13 or higher
  • Docker (optional, for containerized deployment)
  • UV package manager

Installation

  1. Clone the repository:
git clone https://github.com/mafzaal/d365stuff-chat.git
cd d365stuff-chat
  1. Install dependencies using UV:
uv sync
  1. Set up environment variables:
cp .env.example .env
# Edit .env with your configuration

Running the Application

Local Development

uv run chainlit run app.py --port 8000

Docker Deployment

docker build -t d365stuff-chat .
docker run -p 7860:7860 d365stuff-chat

Project Structure

.
β”œβ”€β”€ app.py              # Main application entry point
β”œβ”€β”€ prompt.py           # Chat prompt configuration
β”œβ”€β”€ pipeline.py        # Blog data processing pipeline
β”œβ”€β”€ data/             # Blog post data
β”œβ”€β”€ stats/            # Processing statistics
└── .chainlit/        # Chainlit configuration

Configuration

The application can be configured through:

  • .env file for environment variables
  • .chainlit/config.toml for UI settings

Blog Data Processing

The application includes a pipeline for processing blog posts:

python pipeline.py [--force-recreate] [--data-dir DATA_DIR] [--output-dir OUTPUT_DIR]

Options:

  • --force-recreate: Force recreation of the vector store
  • --data-dir: Directory containing blog posts
  • --output-dir: Directory for stats and artifacts
  • --no-chunking: Process whole documents without chunking
  • --no-save-stats: Skip saving document statistics

Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Built With

Acknowledgments

License

This project is licensed under the MIT License - see the LICENSE file for details.