Skip to content

datastax/movies_plus_plus

Repository files navigation

Movies++

demo.mp4

Movies++ is a movie recommendation application that makes use of GenAI to recommend movies based on natural language input. It is built on DataStax Langflow and was demoed at CascadiaJS and DataStax's RAG++ AI Hack Night.

Getting Started

To get started with this project and run it locally, follow the steps below:

  1. Clone the repository
  2. Change directory (cd) into the cloned repository
  3. Install dependencies with pnpm install
  4. Rename .env.example to .env and fill in the required environment variables
  5. Finally, run the project with pnpm run dev

From here, you'll be able to run the project locally, develop against it, add features, or whatever you'd like.

Ingesting the Data

Once you've populated .env with your API keys, make sure you have a collection in your Astra database named "movies". Once all those pieces are in place, you can run the following command to ingest the data:

# Navigate to our scripts
cd ./scripts

# Install dependencies
pip install -r requirements.txt

# Run the script
python load_movies.py

When this script runs, it will ingest the data from TMDB into your Astra database. This will allow you to search for movies and get recommendations based on the data you've ingested.

Working with Langflow

This repo comes with a langflow.config file. Create a project in DataStax Langflow, and then import it from the Langflow UI.

Import a project in Langflow

From there, fill in any API keys required for OpenAI and such, and you should be able to run the flow. Finally, be sure to change the Langflow API endpoint to point to your instance in the Ai.tsx file.

Contributing

We accept pull requests and issues on this project. If you've got ideas, please open an issue first and discuss it with us and ideally it becomes a pull request that we open together. All contributions are welcome!

Contribution Ideas

If you'd like to contribute but don't know where to start, feel free to check out the open issues on this repository.