Skip to content

WesternFriend/george-fox-rag-chat

 
 

Repository files navigation

George Fox Writings Chat Application

This project is a RAG (Retrieval-Augmented Generation) based chat application focused on George Fox and Quakerism. It uses FastAPI for the backend and HTMX for dynamic frontend updates, creating a responsive chat interface that provides information about George Fox's writings and Quaker history.

Features

  • Interactive chat interface with a bot that answers questions about George Fox and Quakerism
  • RAG (Retrieval-Augmented Generation) architecture that retrieves information from a knowledge base
  • Citation management showing the sources of information provided
  • Smooth animations for messages with typing indicators
  • Responsive design with Bootstrap styling

Prerequisites

  • Python 3.10 or higher
  • pip (Python package installer)
  • OpenAI API key (for GPT-4o or other specified model)

Setup Instructions

Follow these steps to set up and run the project on your local machine.

1. Clone the Repository

git clone https://github.com/WesternFriend/george-fox-rag-chat.git
cd george-fox-rag-chat

2. Create a Virtual Environment

Windows

python -m venv venv

macOS and Linux

python3 -m venv venv

3. Activate the Virtual Environment

Windows

venv\Scripts\activate

macOS and Linux

source venv/bin/activate

4. Install Dependencies

With the virtual environment activated, install the project dependencies:

pip install -r requirements.txt

5. Run the Application

Start the FastAPI server using Uvicorn:

uvicorn chat:app --reload

The --reload flag enables auto-reloading on code changes, which is useful for development.

6. Access the Application

Open your web browser and navigate to:

http://127.0.0.1:8000

You should now see the chat interface and be able to interact with the chatbot.

Development

  • The main application code is in chat.py.
  • HTML templates are stored in the templates directory.
  • Static files (CSS, JavaScript) are in the static directory.

Running Tests

To run tests, use the following command:

pytest

This will execute all tests in the tests/ directory. For measuring test coverage, you can use pytest-cov by running:

pytest --cov=app

This command will provide a report on the test coverage for the application.

Troubleshooting

If you encounter any issues:

  1. Ensure you're using Python 3.10 or higher.
  2. Make sure your virtual environment is activated when installing dependencies and running the app.
  3. Check that all required dependencies are installed correctly.
  4. If you encounter any "Module not found" errors, try reinstalling the dependencies.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

MIT License

About

Chat application using the writings of George Fox

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 74.6%
  • HTML 10.2%
  • CSS 8.5%
  • JavaScript 6.5%
  • Procfile 0.2%