A companion gardening app with Streamlit

This year, I built a Streamlit app called GRDN AI as a side project- https://youtu.be/ro-dM8hdK88

It’s all about optimizing gardens using the principles of companion planting, powered by a multidisciplinary data science approach and an AI bot, GrowBot.

GRDN AI utilizes a combination of generative AI, optimization (genetic algorithm), graph analytics, and NLP to create optimized garden layouts. Built with Python, Streamlit, LLMs (OpenAI), and LangChain. github repo: GitHub - 4dh/GRDN: GRDN.AI app for garden optimization

Side projects are a fun way to exercise and expand skillsets. A few takeaways from this project:

Generative AI/LLMs

  • LangChain has a lot to offer and I enjoyed getting more familiar with it.
  • I tried a few models from HuggingFace Hub including bloom and galactica. However, I found that the pretrained models lacked context for gardening resources
  • For the tasks in my workflow, OpenAI’s text-davinci-003 via LangChain made the most sense given its extensive training data and knowledge base

Optimization + Graph Analytics

  • The Genetic algorithm was neat to try and implement to maximize the positive relationships and minimize the negative relationships of the plants in each plant bed
  • Mixed integer program would typically be my go-to choice, but using the genetic algorithm brought a fun and unique dimension to the project
  • Runtime is very quick

Application and workflow

  • This was when I began using GitHub Copilot and wow- reduces tedious syntax googling and allowed me to focus on the algorithms and workflow
  • Developed in Streamlit- proven to be an economic and efficient choice for data and research scientists, as it allows seamless coding in Python

GRDN AI is still a work in progress, and any feedback or feature requests are welcome!


Great App

1 Like

As a fellow gardener, I appreciate this app alot! :slight_smile:

1 Like

thank you! I made some big updates this week and have it up and running on huggingface-


New updates-

➤ Custom, graph-based, AI-enhanced constrained genetic algorithm: I developed a specialized genetic algorithm for this use case, which uses AI to shape initial configurations (rather than arbitrary assignments) through its contextual knowledge of the plant compatibility matrix at hand.
➤ Enhanced AI workflow: now incorporating the Llama2 7b chat Hugging Face model
➤ Open source transition: leveraged LlamaIndex and LlamaCPP, which was key to pivot from proprietary to open source models
➤ Streamlit unbounded: discovered the agraph-component for network graph viz
➤ Image generation: wrote a preprocessing script to generate almost 100 plant images for my network graph viz with OpenAI’s Dall-E 3
➤ Simplified UI: moved away from the chat-centric interface to streamline user interaction with the algorithm. In this use case, the LLM serves primarily to enhance the genetic algorithm’s performance

Streamlit-agraph is awesome. Here are some screenshots from new version-

1 Like