Skip to content

A chat-based recommendation application that revolutionizes the culinary experience.

License

MIT, MIT licenses found

Licenses found

MIT
LICENSE
MIT
LICENSE.md
Notifications You must be signed in to change notification settings

Azure-Samples/Cosmic-Food-RAG-app

name description languages products page_type urlFragment
Cosmic Food with Azure OpenAI and Azure Cosmos DB for MongoDB vCore
A Demo application for a streamlined ordering system tailored for various food categories. It allows users to request customized meals, such as "high protein dishes," with recommendations provided from our database. Users can further customize their choices before sending their orders from the app to the restaurant, including delivery details.
python
typescript
bicep
azdeveloper
azure
azure-app-service
azure-openai
cosmos-db
mongodb-vcore
sample
cosmic-food-rag-app

Cosmic Food with Azure OpenAI and Azure Cosmos DB for MongoDB vCore

A Demo application for a streamlined ordering system tailored for various food categories. It allows users to request customized meals, such as "high protein dishes," with recommendations provided from our database. Users can further customize their choices before sending their orders from the app to the restaurant, including delivery details. A unique feature of our system is its ability to remember user preferences for future orders, using vCore to store that data. With the help of Langchain, this setup can be easily adapted by ISVs with minimal modifications needed for other food chains.

App Screenshot

How to use?

  1. Create the following resources on Microsoft Azure:

    • Azure Cosmos DB for MongoDB vCore cluster. See the Quick Start guide here.
    • Azure OpenAI resource with:
      • Embedding model deployment. (ex. text-embedding-ada-002) See the guide here.
      • Chat model deployment. (ex. gpt-35-turbo)
  2. Open the repository in GitHub Codespaces:

    Open in GitHub Codespaces

  3. 📝 Start here 👉 CBD_Mongo_vCore.ipynb

Local development

  1. Download the project starter code locally

    git clone https://github.com/Azure-Samples/Cosmic-Food-RAG-app.git
    cd Cosmic-Food-RAG-app
  2. Initialize and activate a virtualenv using:

    python3 -m venv .venv
    source .venv/bin/activate

    Note - In Windows, the .venv does not have a bin directory. Therefore, you'd use the analogous command shown below:

    source .venv/Scripts/activate
  3. Install the development dependencies as an editable package:

    python3 -m pip install -e 'src[dev]'
  4. Run the notebook to generate the .env file and test out everything

Running the website locally

  1. Execute the following command to build the website inside the frontend/ folder and return to the root folder

    cd ./frontend
    npm install && npm run build
    cd ../
  2. Execute the following command in your terminal to start the quart app

    export QUART_APP=src.quartapp
    export QUART_ENV=development
    export QUART_DEBUG=true
    quart run -h localhost -p 50505

    For Windows, use setx command shown below:

     setx QUART_APP src.quartapp
     setx QUART_ENV development
     setx QUART_DEBUG true
     quart run -h localhost -p 50505
  3. Verify on the Browser

Navigate to project homepage http://127.0.0.1:50505/ or http://localhost:50505

azd Deployment

architecture-thumbnail

This repository is set up for deployment on Azure App Service (w/Azure Cosmos DB for MongoDB vCore) using the configuration files in the infra folder.

To deploy your own instance, follow these steps:

  1. Sign up for a free Azure account

  2. Install the Azure Dev CLI.

  3. Login to your Azure account:

    azd auth login
  4. Initialize a new azd environment:

    azd init

    It will prompt you to provide a name (like "quart-app") that will later be used in the name of the deployed resources.

  5. Provision and deploy all the resources:

    azd up

    It will prompt you to login, pick a subscription, and provide a location (like "eastus"). Then it will provision the resources in your account and deploy the latest code. If you get an error with deployment, changing the location (like to "centralus") can help, as there may be availability constraints for some of the resources.

When azd has finished deploying, you'll see an endpoint URI in the command output. Visit that URI to browse the app! 🎉

Note

If you make any changes to the app code, you can just run this command to redeploy it:

azd deploy

Add the Data

  1. Open the Azure portal and sign in.

  2. Navigate to your App Service page.

    Azure App service screenshot with the word SSH highlighted in a red box.

  3. Select SSH from the left menu then, select Go.

  4. In the SSH terminal, run python ./scripts/add_data.py --file="./data/food_items.json".

About

A chat-based recommendation application that revolutionizes the culinary experience.

Resources

License

MIT, MIT licenses found

Licenses found

MIT
LICENSE
MIT
LICENSE.md

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published