MarketingAI is a sophisticated software application designed to empower users in creating impactful marketing materials. MarketingAI caters to marketers, content creators, and anyone looking for an automated, creative solution for their advertising needs.
Our goal: A software application is that allows users to input specific themes or topics for a meme or Marketing poster. Following this input, the application should be capable of autonomously generating relevant imagery and accompanying text. Subsequently, it should seamlessly integrate these elements to produce a cohesive poster
To setup the project, one needs to have all the prerequisites installed. Then one needs to clone the repository, setup a virtual environment, and install the dependencies. This is described in more detail below.
- Ensure Python 3.9 or newer is installed on your machine. Download Python
- Familiarity with basic Python package management and virtual environments is beneficial.
git clone https://github.com/CogitoNTNU/MarketingAI.git
cd MarketingAI
🚀 A better way to set up repositories
A virtual environment in Python is a self-contained directory that contains a Python installation for a particular version of Python, plus a number of additional packages. Using a virtual environment for your project ensures that the project's dependencies are isolated from the system-wide Python and other Python projects. This is especially useful when working on multiple projects with differing dependencies, as it prevents potential conflicts between packages and allows for easy management of requirements.
-
To set up and use a virtual environment for MarketingAI: First, install the virtualenv package using pip. This tool helps create isolated Python environments.
pip install virtualenv
-
Create virtual environment Next, create a new virtual environment in the project directory. This environment is a directory containing a complete Python environment (interpreter and other necessary files).
python -m venv venv
-
Activate virtual environment To activate the environment, run the following command:
-
For windows:
./venv/Scripts/activate
-
For Linux / MacOS:
source venv/bin/activate
-
With VSCode opened press Ctrl+Shift+P
and search for python: Select Interpreter
and click on it
Then select the relevant virtual environment as shown
Now you can utilize all the installed goodies from the environment ;)
With the virtual environment activated, install the project dependencies:
pip install -r requirements.txt
The requirements.txt file contains a list of packages necessary to run MarketingAI. Installing them in an activated virtual environment ensures they are available to the project without affecting other Python projects or system settings.
For secure and efficient management of environment-specific variables, MarketingAI utilizes a .env
file. This file is used to store sensitive information, such as API keys, which should not be hard-coded into the source code or shared publicly. The .env
file is particularly crucial for maintaining the confidentiality of your API keys and other sensitive data.
Important: The .env
file should never be committed to version control (e.g., GitHub). Always include .env
in your .gitignore
file to prevent accidental upload of sensitive information.
-
Create the .env File: In the root directory of the project, create a new file named
.env
. This file will be used to store environment variables.touch .env
-
Add Environment Variables:
echo "API_KEY=YOUR_API_KEY" > .env # Remember to change YOUR_API_KEY to your actual API key
-
Obtaining an API Key: If you don't have an API key from OpenAI, you can obtain one by visiting OpenAI API Keys. Follow their instructions to generate a new API key.
By following these steps, you'll ensure that your application has all the necessary environment-specific configurations, while keeping sensitive data secure and out of version control.
To run MarketingAI, navigate to the project's root directory in your command line interface and execute the following command:
python main.py
To run the full test suit, run the following command:
pytest
To run all tests except api tests, run the following command:
pytest -m "not apitest"
-
docs/: Store all your documentation here. Architectural diagrams, architectural decisions reasoning, and API references.
-
src/: Main source code directory.
- assembler/: Code that takes the generated text and image and assembles the picture.
- fine_tuning/: Code for fine-tuning the GPT model, and data used for it.
- function_calling/: All code for letting agents call the functions and agent chains.
- gpt/: Code related to chat Completion.
- image_generation/: Code for generating images from prompts.
-
tests/: Unit tests, integration tests, and any other testing code.
-
images/: All images created by the program both raw images and the assembled images.
Daniel Neukirch Hansen |
Eduard Prokhorikhin |
Håvard Fossdal |
Jørgen Haugdal Jore |
Kristoffer Nohr Olaisen |
Olav Selnes Lorentzen |
Sveinung Myhre |
Sverre Nystad |
Simon Sandvik Lee |
This project could not have been possible without all of the wonderful contributors. Thank you all for your hard work!
This project is licensed under the MIT License - see the LICENSE file for details.
Dive into a new era of marketing creativity! Download MarketingAI now and start crafting compelling marketing materials with ease.
Your thoughts and experiences are invaluable to us. If you have any feedback or suggestions, please open an issue or a discussion. We're excited to hear your ideas on how we can improve MarketingAI!
Join our vibrant community of contributors! Whether you're fixing bugs, adding features, or improving documentation, your contributions are warmly welcomed. Check out our Contributing Guidelines for more information on how to get started.
Follow us on GitHub to stay updated with the latest releases, features, and updates. Star us to show your support and keep track of our progress!
Love MarketingAI? Share your experiences on social media and with your network. Your support helps us grow and improve!
Thank you for exploring MarketingAI - where creativity meets automation in marketing!