Skip to content

brylie/langflow-fastapi-htmx

Repository files navigation

Chat Application with FastAPI and HTMX

This project is a simple chat application built with FastAPI for the backend and HTMX for dynamic frontend updates.

Prerequisites

  • Python 3.10 or higher
  • pip (Python package installer)

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/brylie/langflow-fastapi-htmx.git
cd langflow-fastapi-htmx

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.

Continuous Integration (CI) Process

We use GitHub Actions to automatically run our pytest suite on every pull request to the main branch. This ensures that all tests pass before changes can be merged.

CI Status Badge

CI Status

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