diff --git a/MANIFEST.in b/MANIFEST.in new file mode 100644 index 0000000000000000000000000000000000000000..c97c607865c02a84d774df837144c47e26d8e74b --- /dev/null +++ b/MANIFEST.in @@ -0,0 +1,6 @@ +include src/slidedeckai/strings.json +recursive-include src/slidedeckai/prompts *.txt +recursive-include src/slidedeckai/pptx_templates *.pptx +recursive-include src/slidedeckai/icons *.png +recursive-include src/slidedeckai/icons *.txt +recursive-include src/slidedeckai/file_embeddings *.npy diff --git a/app.py b/app.py index 2da869a100efad83810ebdc1cbe73fc43ee81f6d..c073f68cac1cec8c031e8cf774958cd2df2b96f5 100644 --- a/app.py +++ b/app.py @@ -6,6 +6,7 @@ import logging import os import pathlib import random +import sys import tempfile from typing import List, Union @@ -17,13 +18,35 @@ import requests import streamlit as st from dotenv import load_dotenv -import global_config as gcfg -import helpers.file_manager as filem -from global_config import GlobalConfig -from helpers import chat_helper, llm_helper, pptx_helper, text_helper +sys.path.insert(0, os.path.abspath('src')) +from slidedeckai.core import SlideDeckAI +from slidedeckai import global_config as gcfg +from slidedeckai.global_config import GlobalConfig +from slidedeckai.helpers import llm_helper, text_helper +import slidedeckai.helpers.file_manager as filem +from slidedeckai.helpers.chat_helper import ChatMessage, HumanMessage, AIMessage +from slidedeckai.helpers import chat_helper load_dotenv() +class StreamlitChatMessageHistory: + """Chat message history stored in Streamlit session state.""" + + def __init__(self, key: str): + self.key = key + if key not in st.session_state: + st.session_state[key] = [] + + @property + def messages(self): + return st.session_state[self.key] + + def add_user_message(self, content: str): + st.session_state[self.key].append(HumanMessage(content)) + + def add_ai_message(self, content: str): + st.session_state[self.key].append(AIMessage(content)) + RUN_IN_OFFLINE_MODE = os.getenv('RUN_IN_OFFLINE_MODE', 'False').lower() == 'true' @@ -368,99 +391,38 @@ def set_up_chat_ui(): st.session_state[PDF_FILE_KEY], (st.session_state['start_page'], st.session_state['end_page']) ) - provider, llm_name = llm_helper.get_provider_model( - llm_provider_to_use, - use_ollama=RUN_IN_OFFLINE_MODE - ) - # Validate that provider and model were parsed successfully - if not provider or not llm_name: - handle_error( - f'Failed to parse provider and model from: "{llm_provider_to_use}". ' - f'Please select a valid LLM from the dropdown.', - True - ) - return - - user_key = api_key_token.strip() - az_deployment = azure_deployment.strip() - az_endpoint = azure_endpoint.strip() - api_ver = api_version.strip() - - if not are_all_inputs_valid( - prompt_text, provider, llm_name, user_key, - az_deployment, az_endpoint, api_ver - ): - return - - logger.info( - 'User input: %s | #characters: %d | LLM: %s', - prompt_text, len(prompt_text), llm_name - ) st.chat_message('user').write(prompt_text) - if _is_it_refinement(): - user_messages = _get_user_messages() - user_messages.append(prompt_text) - list_of_msgs = [ - f'{idx + 1}. {msg}' for idx, msg in enumerate(user_messages) - ] - formatted_template = prompt_template.format( - **{ - 'instructions': '\n'.join(list_of_msgs), - 'previous_content': _get_last_response(), - 'additional_info': st.session_state.get(ADDITIONAL_INFO, ''), - } - ) - else: - formatted_template = prompt_template.format( - **{ - 'question': prompt_text, - 'additional_info': st.session_state.get(ADDITIONAL_INFO, ''), - } - ) + slide_generator = SlideDeckAI( + model=llm_provider_to_use, + topic=prompt_text, + api_key=api_key_token.strip(), + template_idx=list(GlobalConfig.PPTX_TEMPLATE_FILES.keys()).index(pptx_template), + ) progress_bar = st.progress(0, 'Preparing to call LLM...') - response = '' + + def progress_callback(current_progress): + progress_bar.progress(min(current_progress / gcfg.get_max_output_tokens(llm_provider_to_use), 0.95), text='Streaming content...this might take a while...') try: - llm = llm_helper.get_litellm_llm( - provider=provider, - model=llm_name, - max_new_tokens=gcfg.get_max_output_tokens(llm_provider_to_use), - api_key=user_key, - azure_endpoint_url=az_endpoint, - azure_deployment_name=az_deployment, - azure_api_version=api_ver, - ) + if _is_it_refinement(): + path = slide_generator.revise(instructions=prompt_text, progress_callback=progress_callback) + else: + path = slide_generator.generate(progress_callback=progress_callback) - if not llm: - handle_error( - 'Failed to create an LLM instance! Make sure that you have selected the' - ' correct model from the dropdown list and have provided correct API key' - ' or access token.', - False - ) - return + progress_bar.progress(1.0, text='Done!') + + if path: + st.session_state[DOWNLOAD_FILE_KEY] = str(path) + history.add_user_message(prompt_text) + history.add_ai_message(slide_generator.last_response) + st.chat_message('ai').code(slide_generator.last_response, language='json') + _display_download_button(path) + else: + handle_error("Failed to generate slide deck.", True) - for chunk in llm.stream(formatted_template): - if isinstance(chunk, str): - response += chunk - else: - content = getattr(chunk, 'content', None) - if content is not None: - response += content - else: - response += str(chunk) - - # Update the progress bar with an approx progress percentage - progress_bar.progress( - min( - len(response) / gcfg.get_max_output_tokens(llm_provider_to_use), - 0.95 - ), - text='Streaming content...this might take a while...' - ) except (httpx.ConnectError, requests.exceptions.ConnectionError): handle_error( 'A connection error occurred while streaming content from the LLM endpoint.' @@ -469,22 +431,19 @@ def set_up_chat_ui(): ' using Ollama, make sure that Ollama is already running on your system.', True ) - return except huggingface_hub.errors.ValidationError as ve: handle_error( f'An error occurred while trying to generate the content: {ve}' '\nPlease try again with a significantly shorter input text.', True ) - return except ollama.ResponseError: handle_error( - f'The model `{llm_name}` is unavailable with Ollama on your system.' - f' Make sure that you have provided the correct LLM name or pull it using' - f' `ollama pull {llm_name}`. View LLMs available locally by running `ollama list`.', + f'The model is unavailable with Ollama on your system.' + f' Make sure that you have provided the correct LLM name or pull it.' + f' View LLMs available locally by running `ollama list`.', True ) - return except Exception as ex: _msg = str(ex) if 'payment required' in _msg.lower(): @@ -509,101 +468,6 @@ def set_up_chat_ui(): ' Read **[how to get free LLM API keys](https://github.com/barun-saha/slide-deck-ai?tab=readme-ov-file#summary-of-the-llms)**.', True ) - return - - history.add_user_message(prompt_text) - history.add_ai_message(response) - - # The content has been generated as JSON - # There maybe trailing ``` at the end of the response -- remove them - # To be careful: ``` may be part of the content as well when code is generated - response = text_helper.get_clean_json(response) - logger.info( - 'Cleaned JSON length: %d', len(response) - ) - - # Now create the PPT file - progress_bar.progress( - GlobalConfig.LLM_PROGRESS_MAX, - text='Finding photos online and generating the slide deck...' - ) - progress_bar.progress(1.0, text='Done!') - st.chat_message('ai').code(response, language='json') - - if path := generate_slide_deck(response): - _display_download_button(path) - - logger.info( - '#messages in history / 2: %d', - len(st.session_state[CHAT_MESSAGES]) / 2 - ) - - -def generate_slide_deck(json_str: str) -> Union[pathlib.Path, None]: - """ - Create a slide deck and return the file path. In case there is any error creating the slide - deck, the path may be to an empty file. - - :param json_str: The content in *valid* JSON format. - :return: The path to the .pptx file or `None` in case of error. - """ - - try: - parsed_data = json5.loads(json_str) - except ValueError: - handle_error( - 'Encountered error while parsing JSON...will fix it and retry', - True - ) - try: - parsed_data = json5.loads(text_helper.fix_malformed_json(json_str)) - except ValueError: - handle_error( - 'Encountered an error again while fixing JSON...' - 'the slide deck cannot be created, unfortunately ☹' - '\nPlease try again later.', - True - ) - return None - except RecursionError: - handle_error( - 'Encountered a recursion error while parsing JSON...' - 'the slide deck cannot be created, unfortunately ☹' - '\nPlease try again later.', - True - ) - return None - except Exception: - handle_error( - 'Encountered an error while parsing JSON...' - 'the slide deck cannot be created, unfortunately ☹' - '\nPlease try again later.', - True - ) - return None - - if DOWNLOAD_FILE_KEY in st.session_state: - path = pathlib.Path(st.session_state[DOWNLOAD_FILE_KEY]) - else: - temp = tempfile.NamedTemporaryFile(delete=False, suffix='.pptx') - path = pathlib.Path(temp.name) - st.session_state[DOWNLOAD_FILE_KEY] = str(path) - - if temp: - temp.close() - - try: - logger.debug('Creating PPTX file: %s...', st.session_state[DOWNLOAD_FILE_KEY]) - pptx_helper.generate_powerpoint_presentation( - parsed_data, - slides_template=pptx_template, - output_file_path=path - ) - except Exception as ex: - st.error(APP_TEXT['content_generation_error']) - logger.exception('Caught a generic exception: %s', str(ex)) - - return path def _is_it_refinement() -> bool: @@ -643,9 +507,6 @@ def _get_last_response() -> str: :return: The response text. """ - return st.session_state[CHAT_MESSAGES][-1].content - - def _display_messages_history(view_messages: st.expander): """ Display the history of messages. diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000000000000000000000000000000000000..bf24fa060a8a00e571e4b88be548fa10bd149f07 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,39 @@ +[build-system] +requires = ["setuptools>=77.0.3"] +build-backend = "setuptools.build_meta" + +[project] +name = "slidedeckai" +authors = [ + { name="Barun Saha", email="author@example.com" } +] +description = "A Python package to generate slide decks using AI." +readme = "README.md" +requires-python = ">=3.10" +classifiers = [ + "Programming Language :: Python :: 3", + "License :: OSI Approved :: MIT License", + "Operating System :: OS Independent" +] +dynamic = ["dependencies", "version"] + +[tool.setuptools] +package-dir = {"" = "src"} +include-package-data = true + +[tool.setuptools.packages.find] +where = ["src"] + +[tool.setuptools.dynamic] +dependencies = {file = ["requirements.txt"]} +version = {attr = "slidedeckai._version.__version__"} + +[tool.setuptools.package-data] +slidedeckai = ["prompts/**/*.txt", "strings.json", "pptx_templates/*.pptx", "icons/png128/*.png", "icons/svg_repo.txt", "file_embeddings/*.npy"] + +[project.urls] +"Homepage" = "https://github.com/barun-saha/slide-deck-ai" +"Bug Tracker" = "https://github.com/barun-saha/slide-deck-ai/issues" + +[project.scripts] +slidedeckai = "slidedeckai.cli:main" diff --git a/helpers/__init__.py b/src/slidedeckai/__init__.py similarity index 100% rename from helpers/__init__.py rename to src/slidedeckai/__init__.py diff --git a/src/slidedeckai/_version.py b/src/slidedeckai/_version.py new file mode 100644 index 0000000000000000000000000000000000000000..73d4c8be5497b9ac6e87f45b471623e569cb73ac --- /dev/null +++ b/src/slidedeckai/_version.py @@ -0,0 +1 @@ +__version__ = "8.0.0" diff --git a/src/slidedeckai/cli.py b/src/slidedeckai/cli.py new file mode 100644 index 0000000000000000000000000000000000000000..697ce559ae959a36cc6c963849467afa05ce7bce --- /dev/null +++ b/src/slidedeckai/cli.py @@ -0,0 +1,36 @@ +""" +Command-line interface for SlideDeckAI. +""" +import argparse +from .core import SlideDeckAI + +def main(): + """ + The main function for the CLI. + """ + parser = argparse.ArgumentParser(description='Generate slide decks with SlideDeckAI.') + parser.add_argument('--model', required=True, help='The name of the LLM model to use.') + parser.add_argument('--topic', required=True, help='The topic of the slide deck.') + parser.add_argument('--api-key', help='The API key for the LLM provider.') + parser.add_argument('--template-id', type=int, default=0, help='The index of the PowerPoint template to use.') + parser.add_argument('--output-path', help='The path to save the generated .pptx file.') + args = parser.parse_args() + + slide_generator = SlideDeckAI( + model=args.model, + topic=args.topic, + api_key=args.api_key, + template_idx=args.template_id, + ) + + pptx_path = slide_generator.generate() + + if args.output_path: + import shutil + shutil.move(str(pptx_path), args.output_path) + print(f"Slide deck saved to {args.output_path}") + else: + print(f"Slide deck saved to {pptx_path}") + +if __name__ == '__main__': + main() diff --git a/src/slidedeckai/core.py b/src/slidedeckai/core.py new file mode 100644 index 0000000000000000000000000000000000000000..c3342c16dc8004cebd7b4ebca84a0546b7736da0 --- /dev/null +++ b/src/slidedeckai/core.py @@ -0,0 +1,198 @@ +""" +Core classes for SlideDeckAI. +""" +import logging +import os +import pathlib +import tempfile +from typing import Union + +import json5 +from dotenv import load_dotenv + +from . import global_config as gcfg +from .global_config import GlobalConfig +from .helpers import llm_helper, pptx_helper, text_helper +from .helpers.chat_helper import ChatMessageHistory + +load_dotenv() + +RUN_IN_OFFLINE_MODE = os.getenv('RUN_IN_OFFLINE_MODE', 'False').lower() == 'true' + +logger = logging.getLogger(__name__) + +class SlideDeckAI: + """ + The main class for generating slide decks. + """ + + def __init__(self, model, topic, api_key=None, pdf_file_path=None, pdf_page_range=None, template_idx=0): + """ + Initializes the SlideDeckAI object. + + :param model: The name of the LLM model to use. + :param topic: The topic of the slide deck. + :param api_key: The API key for the LLM provider. + :param pdf_file_path: The path to a PDF file to use as a source for the slide deck. + :param pdf_page_range: A tuple representing the page range to use from the PDF file. + :param template_idx: The index of the PowerPoint template to use. + """ + self.model = model + self.topic = topic + self.api_key = api_key + self.pdf_file_path = pdf_file_path + self.pdf_page_range = pdf_page_range + self.template_idx = template_idx + self.chat_history = ChatMessageHistory() + self.last_response = None + + def _get_prompt_template(self, is_refinement: bool) -> str: + """ + Return a prompt template. + + :param is_refinement: Whether this is the initial or refinement prompt. + :return: The prompt template as f-string. + """ + if is_refinement: + with open(GlobalConfig.REFINEMENT_PROMPT_TEMPLATE, 'r', encoding='utf-8') as in_file: + template = in_file.read() + else: + with open(GlobalConfig.INITIAL_PROMPT_TEMPLATE, 'r', encoding='utf-8') as in_file: + template = in_file.read() + return template + + def generate(self, progress_callback=None): + """ + Generates the initial slide deck. + :return: The path to the generated .pptx file. + """ + self.chat_history.add_user_message(self.topic) + prompt_template = self._get_prompt_template(is_refinement=False) + formatted_template = prompt_template.format(question=self.topic, additional_info='') + + provider, llm_name = llm_helper.get_provider_model(self.model, use_ollama=RUN_IN_OFFLINE_MODE) + + llm = llm_helper.get_litellm_llm( + provider=provider, + model=llm_name, + max_new_tokens=gcfg.get_max_output_tokens(self.model), + api_key=self.api_key, + ) + + response = "" + for chunk in llm.stream(formatted_template): + if isinstance(chunk, str): + response += chunk + else: + content = getattr(chunk, 'content', None) + if content is not None: + response += content + else: + response += str(chunk) + if progress_callback: + progress_callback(len(response)) + + self.last_response = text_helper.get_clean_json(response) + self.chat_history.add_ai_message(self.last_response) + + return self._generate_slide_deck(self.last_response) + + def revise(self, instructions, progress_callback=None): + """ + Revises the slide deck with new instructions. + + :param instructions: The instructions for revising the slide deck. + :return: The path to the revised .pptx file. + """ + if not self.last_response: + raise ValueError("You must generate a slide deck before you can revise it.") + + if len(self.chat_history.messages) >= 16: + raise ValueError("Chat history is full. Please reset to continue.") + + self.chat_history.add_user_message(instructions) + + prompt_template = self._get_prompt_template(is_refinement=True) + + list_of_msgs = [f'{idx + 1}. {msg.content}' for idx, msg in enumerate(self.chat_history.messages) if msg.role == 'user'] + + formatted_template = prompt_template.format( + instructions='\n'.join(list_of_msgs), + previous_content=self.last_response, + additional_info='', + ) + + provider, llm_name = llm_helper.get_provider_model(self.model, use_ollama=RUN_IN_OFFLINE_MODE) + + llm = llm_helper.get_litellm_llm( + provider=provider, + model=llm_name, + max_new_tokens=gcfg.get_max_output_tokens(self.model), + api_key=self.api_key, + ) + + response = "" + for chunk in llm.stream(formatted_template): + if isinstance(chunk, str): + response += chunk + else: + content = getattr(chunk, 'content', None) + if content is not None: + response += content + else: + response += str(chunk) + if progress_callback: + progress_callback(len(response)) + + self.last_response = text_helper.get_clean_json(response) + self.chat_history.add_ai_message(self.last_response) + + return self._generate_slide_deck(self.last_response) + + def _generate_slide_deck(self, json_str: str) -> Union[pathlib.Path, None]: + """ + Create a slide deck and return the file path. + + :param json_str: The content in *valid* JSON format. + :return: The path to the .pptx file or `None` in case of error. + """ + try: + parsed_data = json5.loads(json_str) + except (ValueError, RecursionError) as e: + logger.error("Error parsing JSON: %s", e) + try: + parsed_data = json5.loads(text_helper.fix_malformed_json(json_str)) + except (ValueError, RecursionError) as e2: + logger.error("Error parsing fixed JSON: %s", e2) + return None + + temp = tempfile.NamedTemporaryFile(delete=False, suffix='.pptx') + path = pathlib.Path(temp.name) + temp.close() + + try: + pptx_helper.generate_powerpoint_presentation( + parsed_data, + slides_template=list(GlobalConfig.PPTX_TEMPLATE_FILES.keys())[self.template_idx], + output_file_path=path + ) + except Exception as ex: + logger.exception('Caught a generic exception: %s', str(ex)) + return None + + return path + + def set_template(self, idx): + """ + Sets the PowerPoint template to use. + + :param idx: The index of the template to use. + """ + self.template_idx = idx + + def reset(self): + """ + Resets the chat history. + """ + self.chat_history = ChatMessageHistory() + self.last_response = None diff --git a/file_embeddings/embeddings.npy b/src/slidedeckai/file_embeddings/embeddings.npy similarity index 100% rename from file_embeddings/embeddings.npy rename to src/slidedeckai/file_embeddings/embeddings.npy diff --git a/file_embeddings/icons.npy b/src/slidedeckai/file_embeddings/icons.npy similarity index 100% rename from file_embeddings/icons.npy rename to src/slidedeckai/file_embeddings/icons.npy diff --git a/global_config.py b/src/slidedeckai/global_config.py similarity index 91% rename from global_config.py rename to src/slidedeckai/global_config.py index 0dda8960201523ee9f9be257f79775c13f442a1f..8d337d996e026d3fdfc83a24021717dc09b57fcb 100644 --- a/global_config.py +++ b/src/slidedeckai/global_config.py @@ -4,6 +4,7 @@ A set of configurations used by the app. import logging import os import re +from pathlib import Path from dataclasses import dataclass from dotenv import load_dotenv @@ -11,6 +12,7 @@ from dotenv import load_dotenv load_dotenv() +_SRC_DIR = Path(__file__).resolve().parent @dataclass(frozen=True) class GlobalConfig: @@ -128,32 +130,32 @@ class GlobalConfig: LOG_LEVEL = 'DEBUG' COUNT_TOKENS = False - APP_STRINGS_FILE = 'strings.json' - PRELOAD_DATA_FILE = 'examples/example_02.json' - INITIAL_PROMPT_TEMPLATE = 'prompts/initial_template_v4_two_cols_img.txt' - REFINEMENT_PROMPT_TEMPLATE = 'prompts/refinement_template_v4_two_cols_img.txt' + APP_STRINGS_FILE = _SRC_DIR / 'strings.json' + PRELOAD_DATA_FILE = _SRC_DIR / 'examples/example_02.json' + INITIAL_PROMPT_TEMPLATE = _SRC_DIR / 'prompts/initial_template_v4_two_cols_img.txt' + REFINEMENT_PROMPT_TEMPLATE = _SRC_DIR / 'prompts/refinement_template_v4_two_cols_img.txt' LLM_PROGRESS_MAX = 90 - ICONS_DIR = 'icons/png128/' + ICONS_DIR = _SRC_DIR / 'icons/png128/' TINY_BERT_MODEL = 'gaunernst/bert-mini-uncased' - EMBEDDINGS_FILE_NAME = 'file_embeddings/embeddings.npy' - ICONS_FILE_NAME = 'file_embeddings/icons.npy' + EMBEDDINGS_FILE_NAME = _SRC_DIR / 'file_embeddings/embeddings.npy' + ICONS_FILE_NAME = _SRC_DIR / 'file_embeddings/icons.npy' PPTX_TEMPLATE_FILES = { 'Basic': { - 'file': 'pptx_templates/Blank.pptx', + 'file': _SRC_DIR / 'pptx_templates/Blank.pptx', 'caption': 'A good start (Uses [photos](https://unsplash.com/photos/AFZ-qBPEceA) by [cetteup](https://unsplash.com/@cetteup?utm_content=creditCopyText&utm_medium=referral&utm_source=unsplash) on [Unsplash](https://unsplash.com/photos/a-foggy-forest-filled-with-lots-of-trees-d3ci37Gcgxg?utm_content=creditCopyText&utm_medium=referral&utm_source=unsplash)) 🟧' }, 'Ion Boardroom': { - 'file': 'pptx_templates/Ion_Boardroom.pptx', + 'file': _SRC_DIR / 'pptx_templates/Ion_Boardroom.pptx', 'caption': 'Make some bold decisions 🟥' }, 'Minimalist Sales Pitch': { - 'file': 'pptx_templates/Minimalist_sales_pitch.pptx', + 'file': _SRC_DIR / 'pptx_templates/Minimalist_sales_pitch.pptx', 'caption': 'In high contrast ⬛' }, 'Urban Monochrome': { - 'file': 'pptx_templates/Urban_monochrome.pptx', + 'file': _SRC_DIR / 'pptx_templates/Urban_monochrome.pptx', 'caption': 'Marvel in a monochrome dream ⬜' }, } diff --git a/src/slidedeckai/helpers/__init__.py b/src/slidedeckai/helpers/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/helpers/chat_helper.py b/src/slidedeckai/helpers/chat_helper.py similarity index 70% rename from helpers/chat_helper.py rename to src/slidedeckai/helpers/chat_helper.py index ec94a9c59a47dcc5f508e77b8385334c76151d81..eb94e8a49d7eabbb3a33cbd1a7f39c8bdc84f0c9 100644 --- a/helpers/chat_helper.py +++ b/src/slidedeckai/helpers/chat_helper.py @@ -27,24 +27,17 @@ class AIMessage(ChatMessage): super().__init__(content, 'ai') -class StreamlitChatMessageHistory: - """Chat message history stored in Streamlit session state.""" +class ChatMessageHistory: + """Chat message history stored in a list.""" - def __init__(self, key: str): - self.key = key - if key not in st.session_state: - st.session_state[key] = [] - - @property - def messages(self): - return st.session_state[self.key] + def __init__(self): + self.messages = [] def add_user_message(self, content: str): - st.session_state[self.key].append(HumanMessage(content)) + self.messages.append(HumanMessage(content)) def add_ai_message(self, content: str): - st.session_state[self.key].append(AIMessage(content)) - + self.messages.append(AIMessage(content)) class ChatPromptTemplate: """Template for chat prompts.""" diff --git a/helpers/file_manager.py b/src/slidedeckai/helpers/file_manager.py similarity index 95% rename from helpers/file_manager.py rename to src/slidedeckai/helpers/file_manager.py index c1b89b72e8d87bf94d2f6b9741858a0d3991859e..41b80c6729d4d74acf4c9ca7e019e4a8ce9cef28 100644 --- a/helpers/file_manager.py +++ b/src/slidedeckai/helpers/file_manager.py @@ -8,10 +8,7 @@ import sys import streamlit as st from pypdf import PdfReader -sys.path.append('..') -sys.path.append('../..') - -from global_config import GlobalConfig +from ..global_config import GlobalConfig logger = logging.getLogger(__name__) diff --git a/helpers/icons_embeddings.py b/src/slidedeckai/helpers/icons_embeddings.py similarity index 95% rename from helpers/icons_embeddings.py rename to src/slidedeckai/helpers/icons_embeddings.py index 048a921ba99056dfd1f84e3651c3b20203359547..5fa7fb0b9f82494e567e51d43b06407f79b7a0cf 100644 --- a/helpers/icons_embeddings.py +++ b/src/slidedeckai/helpers/icons_embeddings.py @@ -11,10 +11,7 @@ import numpy as np from sklearn.metrics.pairwise import cosine_similarity from transformers import BertTokenizer, BertModel -sys.path.append('..') -sys.path.append('../..') - -from global_config import GlobalConfig +from ..global_config import GlobalConfig tokenizer = BertTokenizer.from_pretrained(GlobalConfig.TINY_BERT_MODEL) @@ -28,9 +25,9 @@ def get_icons_list() -> List[str]: :return: The icons file names. """ - items = pathlib.Path('../' + GlobalConfig.ICONS_DIR).glob('*.png') + items = GlobalConfig.ICONS_DIR.glob('*.png') items = [ - os.path.basename(str(item)).removesuffix('.png') for item in items + item.stem for item in items ] return items diff --git a/helpers/image_search.py b/src/slidedeckai/helpers/image_search.py similarity index 100% rename from helpers/image_search.py rename to src/slidedeckai/helpers/image_search.py diff --git a/helpers/llm_helper.py b/src/slidedeckai/helpers/llm_helper.py similarity index 99% rename from helpers/llm_helper.py rename to src/slidedeckai/helpers/llm_helper.py index fd87843622872dbfc37ea76e9395b90069a27d79..fdfecc0cdb33dd00fbc22c44242d380e888163ac 100644 --- a/helpers/llm_helper.py +++ b/src/slidedeckai/helpers/llm_helper.py @@ -8,9 +8,7 @@ import urllib3 from typing import Tuple, Union, Iterator, Optional -sys.path.append('..') - -from global_config import GlobalConfig +from ..global_config import GlobalConfig try: import litellm diff --git a/helpers/pptx_helper.py b/src/slidedeckai/helpers/pptx_helper.py similarity index 99% rename from helpers/pptx_helper.py rename to src/slidedeckai/helpers/pptx_helper.py index d92243583d35e43803762420eb654d50b28be199..9d6f5135bf2e154e1e4b1b10f456a77a2c079b3f 100644 --- a/helpers/pptx_helper.py +++ b/src/slidedeckai/helpers/pptx_helper.py @@ -16,12 +16,9 @@ from dotenv import load_dotenv from pptx.enum.shapes import MSO_AUTO_SHAPE_TYPE from pptx.shapes.placeholder import PicturePlaceholder, SlidePlaceholder -sys.path.append('..') -sys.path.append('../..') - -import helpers.icons_embeddings as ice -import helpers.image_search as ims -from global_config import GlobalConfig +from . import icons_embeddings as ice +from . import image_search as ims +from ..global_config import GlobalConfig load_dotenv() diff --git a/helpers/text_helper.py b/src/slidedeckai/helpers/text_helper.py similarity index 100% rename from helpers/text_helper.py rename to src/slidedeckai/helpers/text_helper.py diff --git a/icons/png128/0-circle.png b/src/slidedeckai/icons/png128/0-circle.png similarity index 100% rename from icons/png128/0-circle.png rename to src/slidedeckai/icons/png128/0-circle.png diff --git a/icons/png128/1-circle.png b/src/slidedeckai/icons/png128/1-circle.png similarity index 100% rename from icons/png128/1-circle.png rename to src/slidedeckai/icons/png128/1-circle.png diff --git a/icons/png128/123.png b/src/slidedeckai/icons/png128/123.png similarity index 100% rename from icons/png128/123.png rename to src/slidedeckai/icons/png128/123.png diff --git a/icons/png128/2-circle.png b/src/slidedeckai/icons/png128/2-circle.png similarity index 100% rename from icons/png128/2-circle.png rename to src/slidedeckai/icons/png128/2-circle.png diff --git a/icons/png128/3-circle.png b/src/slidedeckai/icons/png128/3-circle.png similarity index 100% rename from icons/png128/3-circle.png rename to src/slidedeckai/icons/png128/3-circle.png diff --git a/icons/png128/4-circle.png b/src/slidedeckai/icons/png128/4-circle.png similarity index 100% rename from icons/png128/4-circle.png rename to src/slidedeckai/icons/png128/4-circle.png diff --git a/icons/png128/5-circle.png b/src/slidedeckai/icons/png128/5-circle.png similarity index 100% rename from icons/png128/5-circle.png rename to src/slidedeckai/icons/png128/5-circle.png diff --git a/icons/png128/6-circle.png b/src/slidedeckai/icons/png128/6-circle.png similarity index 100% rename from icons/png128/6-circle.png rename to src/slidedeckai/icons/png128/6-circle.png diff --git a/icons/png128/7-circle.png b/src/slidedeckai/icons/png128/7-circle.png similarity index 100% rename from icons/png128/7-circle.png rename to src/slidedeckai/icons/png128/7-circle.png diff --git a/icons/png128/8-circle.png b/src/slidedeckai/icons/png128/8-circle.png similarity index 100% rename from icons/png128/8-circle.png rename to src/slidedeckai/icons/png128/8-circle.png diff --git a/icons/png128/9-circle.png b/src/slidedeckai/icons/png128/9-circle.png similarity index 100% rename from icons/png128/9-circle.png rename to src/slidedeckai/icons/png128/9-circle.png diff --git a/icons/png128/activity.png b/src/slidedeckai/icons/png128/activity.png similarity index 100% rename from icons/png128/activity.png rename to src/slidedeckai/icons/png128/activity.png diff --git a/icons/png128/airplane.png b/src/slidedeckai/icons/png128/airplane.png similarity index 100% rename from icons/png128/airplane.png rename to src/slidedeckai/icons/png128/airplane.png diff --git a/icons/png128/alarm.png b/src/slidedeckai/icons/png128/alarm.png similarity index 100% rename from icons/png128/alarm.png rename to src/slidedeckai/icons/png128/alarm.png diff --git a/icons/png128/alien-head.png b/src/slidedeckai/icons/png128/alien-head.png similarity index 100% rename from icons/png128/alien-head.png rename to src/slidedeckai/icons/png128/alien-head.png diff --git a/icons/png128/alphabet.png b/src/slidedeckai/icons/png128/alphabet.png similarity index 100% rename from icons/png128/alphabet.png rename to src/slidedeckai/icons/png128/alphabet.png diff --git a/icons/png128/amazon.png b/src/slidedeckai/icons/png128/amazon.png similarity index 100% rename from icons/png128/amazon.png rename to src/slidedeckai/icons/png128/amazon.png diff --git a/icons/png128/amritsar-golden-temple.png b/src/slidedeckai/icons/png128/amritsar-golden-temple.png similarity index 100% rename from icons/png128/amritsar-golden-temple.png rename to src/slidedeckai/icons/png128/amritsar-golden-temple.png diff --git a/icons/png128/amsterdam-canal.png b/src/slidedeckai/icons/png128/amsterdam-canal.png similarity index 100% rename from icons/png128/amsterdam-canal.png rename to src/slidedeckai/icons/png128/amsterdam-canal.png diff --git a/icons/png128/amsterdam-windmill.png b/src/slidedeckai/icons/png128/amsterdam-windmill.png similarity index 100% rename from icons/png128/amsterdam-windmill.png rename to src/slidedeckai/icons/png128/amsterdam-windmill.png diff --git a/icons/png128/android.png b/src/slidedeckai/icons/png128/android.png similarity index 100% rename from icons/png128/android.png rename to src/slidedeckai/icons/png128/android.png diff --git a/icons/png128/angkor-wat.png b/src/slidedeckai/icons/png128/angkor-wat.png similarity index 100% rename from icons/png128/angkor-wat.png rename to src/slidedeckai/icons/png128/angkor-wat.png diff --git a/icons/png128/apple.png b/src/slidedeckai/icons/png128/apple.png similarity index 100% rename from icons/png128/apple.png rename to src/slidedeckai/icons/png128/apple.png diff --git a/icons/png128/archive.png b/src/slidedeckai/icons/png128/archive.png similarity index 100% rename from icons/png128/archive.png rename to src/slidedeckai/icons/png128/archive.png diff --git a/icons/png128/argentina-obelisk.png b/src/slidedeckai/icons/png128/argentina-obelisk.png similarity index 100% rename from icons/png128/argentina-obelisk.png rename to src/slidedeckai/icons/png128/argentina-obelisk.png diff --git a/icons/png128/artificial-intelligence-brain.png b/src/slidedeckai/icons/png128/artificial-intelligence-brain.png similarity index 100% rename from icons/png128/artificial-intelligence-brain.png rename to src/slidedeckai/icons/png128/artificial-intelligence-brain.png diff --git a/icons/png128/atlanta.png b/src/slidedeckai/icons/png128/atlanta.png similarity index 100% rename from icons/png128/atlanta.png rename to src/slidedeckai/icons/png128/atlanta.png diff --git a/icons/png128/austin.png b/src/slidedeckai/icons/png128/austin.png similarity index 100% rename from icons/png128/austin.png rename to src/slidedeckai/icons/png128/austin.png diff --git a/icons/png128/automation-decision.png b/src/slidedeckai/icons/png128/automation-decision.png similarity index 100% rename from icons/png128/automation-decision.png rename to src/slidedeckai/icons/png128/automation-decision.png diff --git a/icons/png128/award.png b/src/slidedeckai/icons/png128/award.png similarity index 100% rename from icons/png128/award.png rename to src/slidedeckai/icons/png128/award.png diff --git a/icons/png128/balloon.png b/src/slidedeckai/icons/png128/balloon.png similarity index 100% rename from icons/png128/balloon.png rename to src/slidedeckai/icons/png128/balloon.png diff --git a/icons/png128/ban.png b/src/slidedeckai/icons/png128/ban.png similarity index 100% rename from icons/png128/ban.png rename to src/slidedeckai/icons/png128/ban.png diff --git a/icons/png128/bandaid.png b/src/slidedeckai/icons/png128/bandaid.png similarity index 100% rename from icons/png128/bandaid.png rename to src/slidedeckai/icons/png128/bandaid.png diff --git a/icons/png128/bangalore.png b/src/slidedeckai/icons/png128/bangalore.png similarity index 100% rename from icons/png128/bangalore.png rename to src/slidedeckai/icons/png128/bangalore.png diff --git a/icons/png128/bank.png b/src/slidedeckai/icons/png128/bank.png similarity index 100% rename from icons/png128/bank.png rename to src/slidedeckai/icons/png128/bank.png diff --git a/icons/png128/bar-chart-line.png b/src/slidedeckai/icons/png128/bar-chart-line.png similarity index 100% rename from icons/png128/bar-chart-line.png rename to src/slidedeckai/icons/png128/bar-chart-line.png diff --git a/icons/png128/barcelona.png b/src/slidedeckai/icons/png128/barcelona.png similarity index 100% rename from icons/png128/barcelona.png rename to src/slidedeckai/icons/png128/barcelona.png diff --git a/icons/png128/basilica-of-the-sacred-heart.png b/src/slidedeckai/icons/png128/basilica-of-the-sacred-heart.png similarity index 100% rename from icons/png128/basilica-of-the-sacred-heart.png rename to src/slidedeckai/icons/png128/basilica-of-the-sacred-heart.png diff --git a/icons/png128/basket.png b/src/slidedeckai/icons/png128/basket.png similarity index 100% rename from icons/png128/basket.png rename to src/slidedeckai/icons/png128/basket.png diff --git a/icons/png128/battery-charging.png b/src/slidedeckai/icons/png128/battery-charging.png similarity index 100% rename from icons/png128/battery-charging.png rename to src/slidedeckai/icons/png128/battery-charging.png diff --git a/icons/png128/beijing-municipal.png b/src/slidedeckai/icons/png128/beijing-municipal.png similarity index 100% rename from icons/png128/beijing-municipal.png rename to src/slidedeckai/icons/png128/beijing-municipal.png diff --git a/icons/png128/beijing-tower.png b/src/slidedeckai/icons/png128/beijing-tower.png similarity index 100% rename from icons/png128/beijing-tower.png rename to src/slidedeckai/icons/png128/beijing-tower.png diff --git a/icons/png128/bell-slash.png b/src/slidedeckai/icons/png128/bell-slash.png similarity index 100% rename from icons/png128/bell-slash.png rename to src/slidedeckai/icons/png128/bell-slash.png diff --git a/icons/png128/bell.png b/src/slidedeckai/icons/png128/bell.png similarity index 100% rename from icons/png128/bell.png rename to src/slidedeckai/icons/png128/bell.png diff --git a/icons/png128/berlin-cathedral.png b/src/slidedeckai/icons/png128/berlin-cathedral.png similarity index 100% rename from icons/png128/berlin-cathedral.png rename to src/slidedeckai/icons/png128/berlin-cathedral.png diff --git a/icons/png128/berlin-tower.png b/src/slidedeckai/icons/png128/berlin-tower.png similarity index 100% rename from icons/png128/berlin-tower.png rename to src/slidedeckai/icons/png128/berlin-tower.png diff --git a/icons/png128/bicycle.png b/src/slidedeckai/icons/png128/bicycle.png similarity index 100% rename from icons/png128/bicycle.png rename to src/slidedeckai/icons/png128/bicycle.png diff --git a/icons/png128/bing.png b/src/slidedeckai/icons/png128/bing.png similarity index 100% rename from icons/png128/bing.png rename to src/slidedeckai/icons/png128/bing.png diff --git a/icons/png128/binoculars.png b/src/slidedeckai/icons/png128/binoculars.png similarity index 100% rename from icons/png128/binoculars.png rename to src/slidedeckai/icons/png128/binoculars.png diff --git a/icons/png128/blockchain.png b/src/slidedeckai/icons/png128/blockchain.png similarity index 100% rename from icons/png128/blockchain.png rename to src/slidedeckai/icons/png128/blockchain.png diff --git a/icons/png128/bluetooth.png b/src/slidedeckai/icons/png128/bluetooth.png similarity index 100% rename from icons/png128/bluetooth.png rename to src/slidedeckai/icons/png128/bluetooth.png diff --git a/icons/png128/book.png b/src/slidedeckai/icons/png128/book.png similarity index 100% rename from icons/png128/book.png rename to src/slidedeckai/icons/png128/book.png diff --git a/icons/png128/bookmark.png b/src/slidedeckai/icons/png128/bookmark.png similarity index 100% rename from icons/png128/bookmark.png rename to src/slidedeckai/icons/png128/bookmark.png diff --git a/icons/png128/bootstrap.png b/src/slidedeckai/icons/png128/bootstrap.png similarity index 100% rename from icons/png128/bootstrap.png rename to src/slidedeckai/icons/png128/bootstrap.png diff --git a/icons/png128/boston-zakim-bridge.png b/src/slidedeckai/icons/png128/boston-zakim-bridge.png similarity index 100% rename from icons/png128/boston-zakim-bridge.png rename to src/slidedeckai/icons/png128/boston-zakim-bridge.png diff --git a/icons/png128/brain.png b/src/slidedeckai/icons/png128/brain.png similarity index 100% rename from icons/png128/brain.png rename to src/slidedeckai/icons/png128/brain.png diff --git a/icons/png128/bread.png b/src/slidedeckai/icons/png128/bread.png similarity index 100% rename from icons/png128/bread.png rename to src/slidedeckai/icons/png128/bread.png diff --git a/icons/png128/briefcase.png b/src/slidedeckai/icons/png128/briefcase.png similarity index 100% rename from icons/png128/briefcase.png rename to src/slidedeckai/icons/png128/briefcase.png diff --git a/icons/png128/broadcast-pin.png b/src/slidedeckai/icons/png128/broadcast-pin.png similarity index 100% rename from icons/png128/broadcast-pin.png rename to src/slidedeckai/icons/png128/broadcast-pin.png diff --git a/icons/png128/browser-chrome.png b/src/slidedeckai/icons/png128/browser-chrome.png similarity index 100% rename from icons/png128/browser-chrome.png rename to src/slidedeckai/icons/png128/browser-chrome.png diff --git a/icons/png128/browser-edge.png b/src/slidedeckai/icons/png128/browser-edge.png similarity index 100% rename from icons/png128/browser-edge.png rename to src/slidedeckai/icons/png128/browser-edge.png diff --git a/icons/png128/browser-firefox.png b/src/slidedeckai/icons/png128/browser-firefox.png similarity index 100% rename from icons/png128/browser-firefox.png rename to src/slidedeckai/icons/png128/browser-firefox.png diff --git a/icons/png128/browser-safari.png b/src/slidedeckai/icons/png128/browser-safari.png similarity index 100% rename from icons/png128/browser-safari.png rename to src/slidedeckai/icons/png128/browser-safari.png diff --git a/icons/png128/brush.png b/src/slidedeckai/icons/png128/brush.png similarity index 100% rename from icons/png128/brush.png rename to src/slidedeckai/icons/png128/brush.png diff --git a/icons/png128/bucket.png b/src/slidedeckai/icons/png128/bucket.png similarity index 100% rename from icons/png128/bucket.png rename to src/slidedeckai/icons/png128/bucket.png diff --git a/icons/png128/budapest.png b/src/slidedeckai/icons/png128/budapest.png similarity index 100% rename from icons/png128/budapest.png rename to src/slidedeckai/icons/png128/budapest.png diff --git a/icons/png128/bug-fill.png b/src/slidedeckai/icons/png128/bug-fill.png similarity index 100% rename from icons/png128/bug-fill.png rename to src/slidedeckai/icons/png128/bug-fill.png diff --git a/icons/png128/bug.png b/src/slidedeckai/icons/png128/bug.png similarity index 100% rename from icons/png128/bug.png rename to src/slidedeckai/icons/png128/bug.png diff --git a/icons/png128/building.png b/src/slidedeckai/icons/png128/building.png similarity index 100% rename from icons/png128/building.png rename to src/slidedeckai/icons/png128/building.png diff --git a/icons/png128/bullseye.png b/src/slidedeckai/icons/png128/bullseye.png similarity index 100% rename from icons/png128/bullseye.png rename to src/slidedeckai/icons/png128/bullseye.png diff --git a/icons/png128/burger.png b/src/slidedeckai/icons/png128/burger.png similarity index 100% rename from icons/png128/burger.png rename to src/slidedeckai/icons/png128/burger.png diff --git a/icons/png128/bus-front.png b/src/slidedeckai/icons/png128/bus-front.png similarity index 100% rename from icons/png128/bus-front.png rename to src/slidedeckai/icons/png128/bus-front.png diff --git a/icons/png128/cafe.png b/src/slidedeckai/icons/png128/cafe.png similarity index 100% rename from icons/png128/cafe.png rename to src/slidedeckai/icons/png128/cafe.png diff --git a/icons/png128/cairo-giza-plateau.png b/src/slidedeckai/icons/png128/cairo-giza-plateau.png similarity index 100% rename from icons/png128/cairo-giza-plateau.png rename to src/slidedeckai/icons/png128/cairo-giza-plateau.png diff --git a/icons/png128/cake2.png b/src/slidedeckai/icons/png128/cake2.png similarity index 100% rename from icons/png128/cake2.png rename to src/slidedeckai/icons/png128/cake2.png diff --git a/icons/png128/calculator.png b/src/slidedeckai/icons/png128/calculator.png similarity index 100% rename from icons/png128/calculator.png rename to src/slidedeckai/icons/png128/calculator.png diff --git a/icons/png128/calendar.png b/src/slidedeckai/icons/png128/calendar.png similarity index 100% rename from icons/png128/calendar.png rename to src/slidedeckai/icons/png128/calendar.png diff --git a/icons/png128/camera.png b/src/slidedeckai/icons/png128/camera.png similarity index 100% rename from icons/png128/camera.png rename to src/slidedeckai/icons/png128/camera.png diff --git a/icons/png128/capitol.png b/src/slidedeckai/icons/png128/capitol.png similarity index 100% rename from icons/png128/capitol.png rename to src/slidedeckai/icons/png128/capitol.png diff --git a/icons/png128/card-image.png b/src/slidedeckai/icons/png128/card-image.png similarity index 100% rename from icons/png128/card-image.png rename to src/slidedeckai/icons/png128/card-image.png diff --git a/icons/png128/cardiogram.png b/src/slidedeckai/icons/png128/cardiogram.png similarity index 100% rename from icons/png128/cardiogram.png rename to src/slidedeckai/icons/png128/cardiogram.png diff --git a/icons/png128/cart.png b/src/slidedeckai/icons/png128/cart.png similarity index 100% rename from icons/png128/cart.png rename to src/slidedeckai/icons/png128/cart.png diff --git a/icons/png128/certificate.png b/src/slidedeckai/icons/png128/certificate.png similarity index 100% rename from icons/png128/certificate.png rename to src/slidedeckai/icons/png128/certificate.png diff --git a/icons/png128/christ-the-redeemer.png b/src/slidedeckai/icons/png128/christ-the-redeemer.png similarity index 100% rename from icons/png128/christ-the-redeemer.png rename to src/slidedeckai/icons/png128/christ-the-redeemer.png diff --git a/icons/png128/clipboard-check.png b/src/slidedeckai/icons/png128/clipboard-check.png similarity index 100% rename from icons/png128/clipboard-check.png rename to src/slidedeckai/icons/png128/clipboard-check.png diff --git a/icons/png128/clock.png b/src/slidedeckai/icons/png128/clock.png similarity index 100% rename from icons/png128/clock.png rename to src/slidedeckai/icons/png128/clock.png diff --git a/icons/png128/cloud-moon.png b/src/slidedeckai/icons/png128/cloud-moon.png similarity index 100% rename from icons/png128/cloud-moon.png rename to src/slidedeckai/icons/png128/cloud-moon.png diff --git a/icons/png128/cloud-sun.png b/src/slidedeckai/icons/png128/cloud-sun.png similarity index 100% rename from icons/png128/cloud-sun.png rename to src/slidedeckai/icons/png128/cloud-sun.png diff --git a/icons/png128/cloud.png b/src/slidedeckai/icons/png128/cloud.png similarity index 100% rename from icons/png128/cloud.png rename to src/slidedeckai/icons/png128/cloud.png diff --git a/icons/png128/clusters.png b/src/slidedeckai/icons/png128/clusters.png similarity index 100% rename from icons/png128/clusters.png rename to src/slidedeckai/icons/png128/clusters.png diff --git a/icons/png128/code.png b/src/slidedeckai/icons/png128/code.png similarity index 100% rename from icons/png128/code.png rename to src/slidedeckai/icons/png128/code.png diff --git a/icons/png128/compass.png b/src/slidedeckai/icons/png128/compass.png similarity index 100% rename from icons/png128/compass.png rename to src/slidedeckai/icons/png128/compass.png diff --git a/icons/png128/computer-tv.png b/src/slidedeckai/icons/png128/computer-tv.png similarity index 100% rename from icons/png128/computer-tv.png rename to src/slidedeckai/icons/png128/computer-tv.png diff --git a/icons/png128/cone-striped.png b/src/slidedeckai/icons/png128/cone-striped.png similarity index 100% rename from icons/png128/cone-striped.png rename to src/slidedeckai/icons/png128/cone-striped.png diff --git a/icons/png128/conversation.png b/src/slidedeckai/icons/png128/conversation.png similarity index 100% rename from icons/png128/conversation.png rename to src/slidedeckai/icons/png128/conversation.png diff --git a/icons/png128/cpu-fill.png b/src/slidedeckai/icons/png128/cpu-fill.png similarity index 100% rename from icons/png128/cpu-fill.png rename to src/slidedeckai/icons/png128/cpu-fill.png diff --git a/icons/png128/cpu.png b/src/slidedeckai/icons/png128/cpu.png similarity index 100% rename from icons/png128/cpu.png rename to src/slidedeckai/icons/png128/cpu.png diff --git a/icons/png128/credit-card.png b/src/slidedeckai/icons/png128/credit-card.png similarity index 100% rename from icons/png128/credit-card.png rename to src/slidedeckai/icons/png128/credit-card.png diff --git a/icons/png128/csv.png b/src/slidedeckai/icons/png128/csv.png similarity index 100% rename from icons/png128/csv.png rename to src/slidedeckai/icons/png128/csv.png diff --git a/icons/png128/cup.png b/src/slidedeckai/icons/png128/cup.png similarity index 100% rename from icons/png128/cup.png rename to src/slidedeckai/icons/png128/cup.png diff --git a/icons/png128/currency-bitcoin.png b/src/slidedeckai/icons/png128/currency-bitcoin.png similarity index 100% rename from icons/png128/currency-bitcoin.png rename to src/slidedeckai/icons/png128/currency-bitcoin.png diff --git a/icons/png128/currency-dollar.png b/src/slidedeckai/icons/png128/currency-dollar.png similarity index 100% rename from icons/png128/currency-dollar.png rename to src/slidedeckai/icons/png128/currency-dollar.png diff --git a/icons/png128/currency-euro.png b/src/slidedeckai/icons/png128/currency-euro.png similarity index 100% rename from icons/png128/currency-euro.png rename to src/slidedeckai/icons/png128/currency-euro.png diff --git a/icons/png128/currency-exchange.png b/src/slidedeckai/icons/png128/currency-exchange.png similarity index 100% rename from icons/png128/currency-exchange.png rename to src/slidedeckai/icons/png128/currency-exchange.png diff --git a/icons/png128/currency-pound.png b/src/slidedeckai/icons/png128/currency-pound.png similarity index 100% rename from icons/png128/currency-pound.png rename to src/slidedeckai/icons/png128/currency-pound.png diff --git a/icons/png128/currency-rupee.png b/src/slidedeckai/icons/png128/currency-rupee.png similarity index 100% rename from icons/png128/currency-rupee.png rename to src/slidedeckai/icons/png128/currency-rupee.png diff --git a/icons/png128/currency-yen.png b/src/slidedeckai/icons/png128/currency-yen.png similarity index 100% rename from icons/png128/currency-yen.png rename to src/slidedeckai/icons/png128/currency-yen.png diff --git a/icons/png128/dash-circle.png b/src/slidedeckai/icons/png128/dash-circle.png similarity index 100% rename from icons/png128/dash-circle.png rename to src/slidedeckai/icons/png128/dash-circle.png diff --git a/icons/png128/data-document.png b/src/slidedeckai/icons/png128/data-document.png similarity index 100% rename from icons/png128/data-document.png rename to src/slidedeckai/icons/png128/data-document.png diff --git a/icons/png128/database.png b/src/slidedeckai/icons/png128/database.png similarity index 100% rename from icons/png128/database.png rename to src/slidedeckai/icons/png128/database.png diff --git a/icons/png128/deep-learning.png b/src/slidedeckai/icons/png128/deep-learning.png similarity index 100% rename from icons/png128/deep-learning.png rename to src/slidedeckai/icons/png128/deep-learning.png diff --git a/icons/png128/delhi-humayun-tomb.png b/src/slidedeckai/icons/png128/delhi-humayun-tomb.png similarity index 100% rename from icons/png128/delhi-humayun-tomb.png rename to src/slidedeckai/icons/png128/delhi-humayun-tomb.png diff --git a/icons/png128/delhi-jama-masjid.png b/src/slidedeckai/icons/png128/delhi-jama-masjid.png similarity index 100% rename from icons/png128/delhi-jama-masjid.png rename to src/slidedeckai/icons/png128/delhi-jama-masjid.png diff --git a/icons/png128/delhi-jantar-mantar.png b/src/slidedeckai/icons/png128/delhi-jantar-mantar.png similarity index 100% rename from icons/png128/delhi-jantar-mantar.png rename to src/slidedeckai/icons/png128/delhi-jantar-mantar.png diff --git a/icons/png128/delhi-lotus-temple.png b/src/slidedeckai/icons/png128/delhi-lotus-temple.png similarity index 100% rename from icons/png128/delhi-lotus-temple.png rename to src/slidedeckai/icons/png128/delhi-lotus-temple.png diff --git a/icons/png128/delhi-red-fort.png b/src/slidedeckai/icons/png128/delhi-red-fort.png similarity index 100% rename from icons/png128/delhi-red-fort.png rename to src/slidedeckai/icons/png128/delhi-red-fort.png diff --git a/icons/png128/device-ssd.png b/src/slidedeckai/icons/png128/device-ssd.png similarity index 100% rename from icons/png128/device-ssd.png rename to src/slidedeckai/icons/png128/device-ssd.png diff --git a/icons/png128/display.png b/src/slidedeckai/icons/png128/display.png similarity index 100% rename from icons/png128/display.png rename to src/slidedeckai/icons/png128/display.png diff --git a/icons/png128/dna.png b/src/slidedeckai/icons/png128/dna.png similarity index 100% rename from icons/png128/dna.png rename to src/slidedeckai/icons/png128/dna.png diff --git a/icons/png128/doctor-patient.png b/src/slidedeckai/icons/png128/doctor-patient.png similarity index 100% rename from icons/png128/doctor-patient.png rename to src/slidedeckai/icons/png128/doctor-patient.png diff --git a/icons/png128/donut.png b/src/slidedeckai/icons/png128/donut.png similarity index 100% rename from icons/png128/donut.png rename to src/slidedeckai/icons/png128/donut.png diff --git a/icons/png128/drone.png b/src/slidedeckai/icons/png128/drone.png similarity index 100% rename from icons/png128/drone.png rename to src/slidedeckai/icons/png128/drone.png diff --git a/icons/png128/dublin-castle.png b/src/slidedeckai/icons/png128/dublin-castle.png similarity index 100% rename from icons/png128/dublin-castle.png rename to src/slidedeckai/icons/png128/dublin-castle.png diff --git a/icons/png128/ecuador-quito.png b/src/slidedeckai/icons/png128/ecuador-quito.png similarity index 100% rename from icons/png128/ecuador-quito.png rename to src/slidedeckai/icons/png128/ecuador-quito.png diff --git a/icons/png128/eiffel-tower-travel.png b/src/slidedeckai/icons/png128/eiffel-tower-travel.png similarity index 100% rename from icons/png128/eiffel-tower-travel.png rename to src/slidedeckai/icons/png128/eiffel-tower-travel.png diff --git a/icons/png128/envelope.png b/src/slidedeckai/icons/png128/envelope.png similarity index 100% rename from icons/png128/envelope.png rename to src/slidedeckai/icons/png128/envelope.png diff --git a/icons/png128/escalator-up.png b/src/slidedeckai/icons/png128/escalator-up.png similarity index 100% rename from icons/png128/escalator-up.png rename to src/slidedeckai/icons/png128/escalator-up.png diff --git a/icons/png128/ev-station.png b/src/slidedeckai/icons/png128/ev-station.png similarity index 100% rename from icons/png128/ev-station.png rename to src/slidedeckai/icons/png128/ev-station.png diff --git a/icons/png128/exclamation-triangle.png b/src/slidedeckai/icons/png128/exclamation-triangle.png similarity index 100% rename from icons/png128/exclamation-triangle.png rename to src/slidedeckai/icons/png128/exclamation-triangle.png diff --git a/icons/png128/eye.png b/src/slidedeckai/icons/png128/eye.png similarity index 100% rename from icons/png128/eye.png rename to src/slidedeckai/icons/png128/eye.png diff --git a/icons/png128/facebook.png b/src/slidedeckai/icons/png128/facebook.png similarity index 100% rename from icons/png128/facebook.png rename to src/slidedeckai/icons/png128/facebook.png diff --git a/icons/png128/fairness.png b/src/slidedeckai/icons/png128/fairness.png similarity index 100% rename from icons/png128/fairness.png rename to src/slidedeckai/icons/png128/fairness.png diff --git a/icons/png128/farmer.png b/src/slidedeckai/icons/png128/farmer.png similarity index 100% rename from icons/png128/farmer.png rename to src/slidedeckai/icons/png128/farmer.png diff --git a/icons/png128/feather.png b/src/slidedeckai/icons/png128/feather.png similarity index 100% rename from icons/png128/feather.png rename to src/slidedeckai/icons/png128/feather.png diff --git a/icons/png128/finance-strategy.png b/src/slidedeckai/icons/png128/finance-strategy.png similarity index 100% rename from icons/png128/finance-strategy.png rename to src/slidedeckai/icons/png128/finance-strategy.png diff --git a/icons/png128/fingerprint.png b/src/slidedeckai/icons/png128/fingerprint.png similarity index 100% rename from icons/png128/fingerprint.png rename to src/slidedeckai/icons/png128/fingerprint.png diff --git a/icons/png128/fire.png b/src/slidedeckai/icons/png128/fire.png similarity index 100% rename from icons/png128/fire.png rename to src/slidedeckai/icons/png128/fire.png diff --git a/icons/png128/flag.png b/src/slidedeckai/icons/png128/flag.png similarity index 100% rename from icons/png128/flag.png rename to src/slidedeckai/icons/png128/flag.png diff --git a/icons/png128/flask.png b/src/slidedeckai/icons/png128/flask.png similarity index 100% rename from icons/png128/flask.png rename to src/slidedeckai/icons/png128/flask.png diff --git a/icons/png128/floppy.png b/src/slidedeckai/icons/png128/floppy.png similarity index 100% rename from icons/png128/floppy.png rename to src/slidedeckai/icons/png128/floppy.png diff --git a/icons/png128/flower.png b/src/slidedeckai/icons/png128/flower.png similarity index 100% rename from icons/png128/flower.png rename to src/slidedeckai/icons/png128/flower.png diff --git a/icons/png128/folder.png b/src/slidedeckai/icons/png128/folder.png similarity index 100% rename from icons/png128/folder.png rename to src/slidedeckai/icons/png128/folder.png diff --git a/icons/png128/french.png b/src/slidedeckai/icons/png128/french.png similarity index 100% rename from icons/png128/french.png rename to src/slidedeckai/icons/png128/french.png diff --git a/icons/png128/fried.png b/src/slidedeckai/icons/png128/fried.png similarity index 100% rename from icons/png128/fried.png rename to src/slidedeckai/icons/png128/fried.png diff --git a/icons/png128/funnel.png b/src/slidedeckai/icons/png128/funnel.png similarity index 100% rename from icons/png128/funnel.png rename to src/slidedeckai/icons/png128/funnel.png diff --git a/icons/png128/game-controller.png b/src/slidedeckai/icons/png128/game-controller.png similarity index 100% rename from icons/png128/game-controller.png rename to src/slidedeckai/icons/png128/game-controller.png diff --git a/icons/png128/gate-of-india-mumbai.png b/src/slidedeckai/icons/png128/gate-of-india-mumbai.png similarity index 100% rename from icons/png128/gate-of-india-mumbai.png rename to src/slidedeckai/icons/png128/gate-of-india-mumbai.png diff --git a/icons/png128/gear-wide.png b/src/slidedeckai/icons/png128/gear-wide.png similarity index 100% rename from icons/png128/gear-wide.png rename to src/slidedeckai/icons/png128/gear-wide.png diff --git a/icons/png128/gem.png b/src/slidedeckai/icons/png128/gem.png similarity index 100% rename from icons/png128/gem.png rename to src/slidedeckai/icons/png128/gem.png diff --git a/icons/png128/geo-alt.png b/src/slidedeckai/icons/png128/geo-alt.png similarity index 100% rename from icons/png128/geo-alt.png rename to src/slidedeckai/icons/png128/geo-alt.png diff --git a/icons/png128/github.png b/src/slidedeckai/icons/png128/github.png similarity index 100% rename from icons/png128/github.png rename to src/slidedeckai/icons/png128/github.png diff --git a/icons/png128/glasses.png b/src/slidedeckai/icons/png128/glasses.png similarity index 100% rename from icons/png128/glasses.png rename to src/slidedeckai/icons/png128/glasses.png diff --git a/icons/png128/globe.png b/src/slidedeckai/icons/png128/globe.png similarity index 100% rename from icons/png128/globe.png rename to src/slidedeckai/icons/png128/globe.png diff --git a/icons/png128/gloves.png b/src/slidedeckai/icons/png128/gloves.png similarity index 100% rename from icons/png128/gloves.png rename to src/slidedeckai/icons/png128/gloves.png diff --git a/icons/png128/google.png b/src/slidedeckai/icons/png128/google.png similarity index 100% rename from icons/png128/google.png rename to src/slidedeckai/icons/png128/google.png diff --git a/icons/png128/graph-down-arrow.png b/src/slidedeckai/icons/png128/graph-down-arrow.png similarity index 100% rename from icons/png128/graph-down-arrow.png rename to src/slidedeckai/icons/png128/graph-down-arrow.png diff --git a/icons/png128/graph-up-arrow.png b/src/slidedeckai/icons/png128/graph-up-arrow.png similarity index 100% rename from icons/png128/graph-up-arrow.png rename to src/slidedeckai/icons/png128/graph-up-arrow.png diff --git a/icons/png128/graphene-carbon.png b/src/slidedeckai/icons/png128/graphene-carbon.png similarity index 100% rename from icons/png128/graphene-carbon.png rename to src/slidedeckai/icons/png128/graphene-carbon.png diff --git a/icons/png128/great-buddha-of-thailand-thailand.png b/src/slidedeckai/icons/png128/great-buddha-of-thailand-thailand.png similarity index 100% rename from icons/png128/great-buddha-of-thailand-thailand.png rename to src/slidedeckai/icons/png128/great-buddha-of-thailand-thailand.png diff --git a/icons/png128/great-wall-of-china.png b/src/slidedeckai/icons/png128/great-wall-of-china.png similarity index 100% rename from icons/png128/great-wall-of-china.png rename to src/slidedeckai/icons/png128/great-wall-of-china.png diff --git a/icons/png128/grid-3x3-gap.png b/src/slidedeckai/icons/png128/grid-3x3-gap.png similarity index 100% rename from icons/png128/grid-3x3-gap.png rename to src/slidedeckai/icons/png128/grid-3x3-gap.png diff --git a/icons/png128/hammer.png b/src/slidedeckai/icons/png128/hammer.png similarity index 100% rename from icons/png128/hammer.png rename to src/slidedeckai/icons/png128/hammer.png diff --git a/icons/png128/handbag.png b/src/slidedeckai/icons/png128/handbag.png similarity index 100% rename from icons/png128/handbag.png rename to src/slidedeckai/icons/png128/handbag.png diff --git a/icons/png128/handshake.png b/src/slidedeckai/icons/png128/handshake.png similarity index 100% rename from icons/png128/handshake.png rename to src/slidedeckai/icons/png128/handshake.png diff --git a/icons/png128/hassan-mosque-morocco.png b/src/slidedeckai/icons/png128/hassan-mosque-morocco.png similarity index 100% rename from icons/png128/hassan-mosque-morocco.png rename to src/slidedeckai/icons/png128/hassan-mosque-morocco.png diff --git a/icons/png128/headset.png b/src/slidedeckai/icons/png128/headset.png similarity index 100% rename from icons/png128/headset.png rename to src/slidedeckai/icons/png128/headset.png diff --git a/icons/png128/heart.png b/src/slidedeckai/icons/png128/heart.png similarity index 100% rename from icons/png128/heart.png rename to src/slidedeckai/icons/png128/heart.png diff --git a/icons/png128/heartbreak.png b/src/slidedeckai/icons/png128/heartbreak.png similarity index 100% rename from icons/png128/heartbreak.png rename to src/slidedeckai/icons/png128/heartbreak.png diff --git a/icons/png128/hong-kong.png b/src/slidedeckai/icons/png128/hong-kong.png similarity index 100% rename from icons/png128/hong-kong.png rename to src/slidedeckai/icons/png128/hong-kong.png diff --git a/icons/png128/hospital.png b/src/slidedeckai/icons/png128/hospital.png similarity index 100% rename from icons/png128/hospital.png rename to src/slidedeckai/icons/png128/hospital.png diff --git a/icons/png128/hotdog.png b/src/slidedeckai/icons/png128/hotdog.png similarity index 100% rename from icons/png128/hotdog.png rename to src/slidedeckai/icons/png128/hotdog.png diff --git a/icons/png128/hourglass-split.png b/src/slidedeckai/icons/png128/hourglass-split.png similarity index 100% rename from icons/png128/hourglass-split.png rename to src/slidedeckai/icons/png128/hourglass-split.png diff --git a/icons/png128/house.png b/src/slidedeckai/icons/png128/house.png similarity index 100% rename from icons/png128/house.png rename to src/slidedeckai/icons/png128/house.png diff --git a/icons/png128/html.png b/src/slidedeckai/icons/png128/html.png similarity index 100% rename from icons/png128/html.png rename to src/slidedeckai/icons/png128/html.png diff --git a/icons/png128/ice-cream.png b/src/slidedeckai/icons/png128/ice-cream.png similarity index 100% rename from icons/png128/ice-cream.png rename to src/slidedeckai/icons/png128/ice-cream.png diff --git a/icons/png128/image.png b/src/slidedeckai/icons/png128/image.png similarity index 100% rename from icons/png128/image.png rename to src/slidedeckai/icons/png128/image.png diff --git a/icons/png128/india-ganges.png b/src/slidedeckai/icons/png128/india-ganges.png similarity index 100% rename from icons/png128/india-ganges.png rename to src/slidedeckai/icons/png128/india-ganges.png diff --git a/icons/png128/jaipur-hawa-mahal.png b/src/slidedeckai/icons/png128/jaipur-hawa-mahal.png similarity index 100% rename from icons/png128/jaipur-hawa-mahal.png rename to src/slidedeckai/icons/png128/jaipur-hawa-mahal.png diff --git a/icons/png128/jelly-jar.png b/src/slidedeckai/icons/png128/jelly-jar.png similarity index 100% rename from icons/png128/jelly-jar.png rename to src/slidedeckai/icons/png128/jelly-jar.png diff --git a/icons/png128/journal-text.png b/src/slidedeckai/icons/png128/journal-text.png similarity index 100% rename from icons/png128/journal-text.png rename to src/slidedeckai/icons/png128/journal-text.png diff --git a/icons/png128/kebab.png b/src/slidedeckai/icons/png128/kebab.png similarity index 100% rename from icons/png128/kebab.png rename to src/slidedeckai/icons/png128/kebab.png diff --git a/icons/png128/key.png b/src/slidedeckai/icons/png128/key.png similarity index 100% rename from icons/png128/key.png rename to src/slidedeckai/icons/png128/key.png diff --git a/icons/png128/knowledge-graph.png b/src/slidedeckai/icons/png128/knowledge-graph.png similarity index 100% rename from icons/png128/knowledge-graph.png rename to src/slidedeckai/icons/png128/knowledge-graph.png diff --git a/icons/png128/kuala-lumpur.png b/src/slidedeckai/icons/png128/kuala-lumpur.png similarity index 100% rename from icons/png128/kuala-lumpur.png rename to src/slidedeckai/icons/png128/kuala-lumpur.png diff --git a/icons/png128/laptop.png b/src/slidedeckai/icons/png128/laptop.png similarity index 100% rename from icons/png128/laptop.png rename to src/slidedeckai/icons/png128/laptop.png diff --git a/icons/png128/leaning-tower-of-pisa.png b/src/slidedeckai/icons/png128/leaning-tower-of-pisa.png similarity index 100% rename from icons/png128/leaning-tower-of-pisa.png rename to src/slidedeckai/icons/png128/leaning-tower-of-pisa.png diff --git a/icons/png128/lightbulb.png b/src/slidedeckai/icons/png128/lightbulb.png similarity index 100% rename from icons/png128/lightbulb.png rename to src/slidedeckai/icons/png128/lightbulb.png diff --git a/icons/png128/lightning.png b/src/slidedeckai/icons/png128/lightning.png similarity index 100% rename from icons/png128/lightning.png rename to src/slidedeckai/icons/png128/lightning.png diff --git a/icons/png128/linkedin.png b/src/slidedeckai/icons/png128/linkedin.png similarity index 100% rename from icons/png128/linkedin.png rename to src/slidedeckai/icons/png128/linkedin.png diff --git a/icons/png128/lock.png b/src/slidedeckai/icons/png128/lock.png similarity index 100% rename from icons/png128/lock.png rename to src/slidedeckai/icons/png128/lock.png diff --git a/icons/png128/london-big-ben.png b/src/slidedeckai/icons/png128/london-big-ben.png similarity index 100% rename from icons/png128/london-big-ben.png rename to src/slidedeckai/icons/png128/london-big-ben.png diff --git a/icons/png128/machine-learning.png b/src/slidedeckai/icons/png128/machine-learning.png similarity index 100% rename from icons/png128/machine-learning.png rename to src/slidedeckai/icons/png128/machine-learning.png diff --git a/icons/png128/madrid-cathedral.png b/src/slidedeckai/icons/png128/madrid-cathedral.png similarity index 100% rename from icons/png128/madrid-cathedral.png rename to src/slidedeckai/icons/png128/madrid-cathedral.png diff --git a/icons/png128/magic.png b/src/slidedeckai/icons/png128/magic.png similarity index 100% rename from icons/png128/magic.png rename to src/slidedeckai/icons/png128/magic.png diff --git a/icons/png128/magnet.png b/src/slidedeckai/icons/png128/magnet.png similarity index 100% rename from icons/png128/magnet.png rename to src/slidedeckai/icons/png128/magnet.png diff --git a/icons/png128/map.png b/src/slidedeckai/icons/png128/map.png similarity index 100% rename from icons/png128/map.png rename to src/slidedeckai/icons/png128/map.png diff --git a/icons/png128/megaphone-loudspeaker.png b/src/slidedeckai/icons/png128/megaphone-loudspeaker.png similarity index 100% rename from icons/png128/megaphone-loudspeaker.png rename to src/slidedeckai/icons/png128/megaphone-loudspeaker.png diff --git a/icons/png128/meta.png b/src/slidedeckai/icons/png128/meta.png similarity index 100% rename from icons/png128/meta.png rename to src/slidedeckai/icons/png128/meta.png diff --git a/icons/png128/mexico-city-angel-of-independence.png b/src/slidedeckai/icons/png128/mexico-city-angel-of-independence.png similarity index 100% rename from icons/png128/mexico-city-angel-of-independence.png rename to src/slidedeckai/icons/png128/mexico-city-angel-of-independence.png diff --git a/icons/png128/microphone.png b/src/slidedeckai/icons/png128/microphone.png similarity index 100% rename from icons/png128/microphone.png rename to src/slidedeckai/icons/png128/microphone.png diff --git a/icons/png128/microscope.png b/src/slidedeckai/icons/png128/microscope.png similarity index 100% rename from icons/png128/microscope.png rename to src/slidedeckai/icons/png128/microscope.png diff --git a/icons/png128/microsoft.png b/src/slidedeckai/icons/png128/microsoft.png similarity index 100% rename from icons/png128/microsoft.png rename to src/slidedeckai/icons/png128/microsoft.png diff --git a/icons/png128/milan-duomo-di-milano.png b/src/slidedeckai/icons/png128/milan-duomo-di-milano.png similarity index 100% rename from icons/png128/milan-duomo-di-milano.png rename to src/slidedeckai/icons/png128/milan-duomo-di-milano.png diff --git a/icons/png128/milan-skyscrapers.png b/src/slidedeckai/icons/png128/milan-skyscrapers.png similarity index 100% rename from icons/png128/milan-skyscrapers.png rename to src/slidedeckai/icons/png128/milan-skyscrapers.png diff --git a/icons/png128/mobile-smartphone.png b/src/slidedeckai/icons/png128/mobile-smartphone.png similarity index 100% rename from icons/png128/mobile-smartphone.png rename to src/slidedeckai/icons/png128/mobile-smartphone.png diff --git a/icons/png128/modem.png b/src/slidedeckai/icons/png128/modem.png similarity index 100% rename from icons/png128/modem.png rename to src/slidedeckai/icons/png128/modem.png diff --git a/icons/png128/moon-stars.png b/src/slidedeckai/icons/png128/moon-stars.png similarity index 100% rename from icons/png128/moon-stars.png rename to src/slidedeckai/icons/png128/moon-stars.png diff --git a/icons/png128/moon.png b/src/slidedeckai/icons/png128/moon.png similarity index 100% rename from icons/png128/moon.png rename to src/slidedeckai/icons/png128/moon.png diff --git a/icons/png128/morse-code.png b/src/slidedeckai/icons/png128/morse-code.png similarity index 100% rename from icons/png128/morse-code.png rename to src/slidedeckai/icons/png128/morse-code.png diff --git a/icons/png128/mortarboard.png b/src/slidedeckai/icons/png128/mortarboard.png similarity index 100% rename from icons/png128/mortarboard.png rename to src/slidedeckai/icons/png128/mortarboard.png diff --git a/icons/png128/moscow.png b/src/slidedeckai/icons/png128/moscow.png similarity index 100% rename from icons/png128/moscow.png rename to src/slidedeckai/icons/png128/moscow.png diff --git a/icons/png128/motherboard.png b/src/slidedeckai/icons/png128/motherboard.png similarity index 100% rename from icons/png128/motherboard.png rename to src/slidedeckai/icons/png128/motherboard.png diff --git a/icons/png128/munich.png b/src/slidedeckai/icons/png128/munich.png similarity index 100% rename from icons/png128/munich.png rename to src/slidedeckai/icons/png128/munich.png diff --git a/icons/png128/music-note.png b/src/slidedeckai/icons/png128/music-note.png similarity index 100% rename from icons/png128/music-note.png rename to src/slidedeckai/icons/png128/music-note.png diff --git a/icons/png128/newspaper.png b/src/slidedeckai/icons/png128/newspaper.png similarity index 100% rename from icons/png128/newspaper.png rename to src/slidedeckai/icons/png128/newspaper.png diff --git a/icons/png128/no-smoking.png b/src/slidedeckai/icons/png128/no-smoking.png similarity index 100% rename from icons/png128/no-smoking.png rename to src/slidedeckai/icons/png128/no-smoking.png diff --git a/icons/png128/noodle.png b/src/slidedeckai/icons/png128/noodle.png similarity index 100% rename from icons/png128/noodle.png rename to src/slidedeckai/icons/png128/noodle.png diff --git a/icons/png128/nyc-brooklyn.png b/src/slidedeckai/icons/png128/nyc-brooklyn.png similarity index 100% rename from icons/png128/nyc-brooklyn.png rename to src/slidedeckai/icons/png128/nyc-brooklyn.png diff --git a/icons/png128/nyc-statue-of-liberty.png b/src/slidedeckai/icons/png128/nyc-statue-of-liberty.png similarity index 100% rename from icons/png128/nyc-statue-of-liberty.png rename to src/slidedeckai/icons/png128/nyc-statue-of-liberty.png diff --git a/icons/png128/nyc-world-trade-center.png b/src/slidedeckai/icons/png128/nyc-world-trade-center.png similarity index 100% rename from icons/png128/nyc-world-trade-center.png rename to src/slidedeckai/icons/png128/nyc-world-trade-center.png diff --git a/icons/png128/oil-pump.png b/src/slidedeckai/icons/png128/oil-pump.png similarity index 100% rename from icons/png128/oil-pump.png rename to src/slidedeckai/icons/png128/oil-pump.png diff --git a/icons/png128/oil-rig.png b/src/slidedeckai/icons/png128/oil-rig.png similarity index 100% rename from icons/png128/oil-rig.png rename to src/slidedeckai/icons/png128/oil-rig.png diff --git a/icons/png128/okinawa.png b/src/slidedeckai/icons/png128/okinawa.png similarity index 100% rename from icons/png128/okinawa.png rename to src/slidedeckai/icons/png128/okinawa.png diff --git a/icons/png128/onigiri.png b/src/slidedeckai/icons/png128/onigiri.png similarity index 100% rename from icons/png128/onigiri.png rename to src/slidedeckai/icons/png128/onigiri.png diff --git a/icons/png128/palette.png b/src/slidedeckai/icons/png128/palette.png similarity index 100% rename from icons/png128/palette.png rename to src/slidedeckai/icons/png128/palette.png diff --git a/icons/png128/pancake.png b/src/slidedeckai/icons/png128/pancake.png similarity index 100% rename from icons/png128/pancake.png rename to src/slidedeckai/icons/png128/pancake.png diff --git a/icons/png128/paperclip.png b/src/slidedeckai/icons/png128/paperclip.png similarity index 100% rename from icons/png128/paperclip.png rename to src/slidedeckai/icons/png128/paperclip.png diff --git a/icons/png128/paris-louvre.png b/src/slidedeckai/icons/png128/paris-louvre.png similarity index 100% rename from icons/png128/paris-louvre.png rename to src/slidedeckai/icons/png128/paris-louvre.png diff --git a/icons/png128/paris-notre-dame.png b/src/slidedeckai/icons/png128/paris-notre-dame.png similarity index 100% rename from icons/png128/paris-notre-dame.png rename to src/slidedeckai/icons/png128/paris-notre-dame.png diff --git a/icons/png128/parliament.png b/src/slidedeckai/icons/png128/parliament.png similarity index 100% rename from icons/png128/parliament.png rename to src/slidedeckai/icons/png128/parliament.png diff --git a/icons/png128/pencil.png b/src/slidedeckai/icons/png128/pencil.png similarity index 100% rename from icons/png128/pencil.png rename to src/slidedeckai/icons/png128/pencil.png diff --git a/icons/png128/people.png b/src/slidedeckai/icons/png128/people.png similarity index 100% rename from icons/png128/people.png rename to src/slidedeckai/icons/png128/people.png diff --git a/icons/png128/person.png b/src/slidedeckai/icons/png128/person.png similarity index 100% rename from icons/png128/person.png rename to src/slidedeckai/icons/png128/person.png diff --git a/icons/png128/peru-machu-picchu.png b/src/slidedeckai/icons/png128/peru-machu-picchu.png similarity index 100% rename from icons/png128/peru-machu-picchu.png rename to src/slidedeckai/icons/png128/peru-machu-picchu.png diff --git a/icons/png128/phone-vibrate.png b/src/slidedeckai/icons/png128/phone-vibrate.png similarity index 100% rename from icons/png128/phone-vibrate.png rename to src/slidedeckai/icons/png128/phone-vibrate.png diff --git a/icons/png128/piggy-bank.png b/src/slidedeckai/icons/png128/piggy-bank.png similarity index 100% rename from icons/png128/piggy-bank.png rename to src/slidedeckai/icons/png128/piggy-bank.png diff --git a/icons/png128/pin-angle.png b/src/slidedeckai/icons/png128/pin-angle.png similarity index 100% rename from icons/png128/pin-angle.png rename to src/slidedeckai/icons/png128/pin-angle.png diff --git a/icons/png128/pizza.png b/src/slidedeckai/icons/png128/pizza.png similarity index 100% rename from icons/png128/pizza.png rename to src/slidedeckai/icons/png128/pizza.png diff --git a/icons/png128/police.png b/src/slidedeckai/icons/png128/police.png similarity index 100% rename from icons/png128/police.png rename to src/slidedeckai/icons/png128/police.png diff --git a/icons/png128/popcorn.png b/src/slidedeckai/icons/png128/popcorn.png similarity index 100% rename from icons/png128/popcorn.png rename to src/slidedeckai/icons/png128/popcorn.png diff --git a/icons/png128/porcelain-tower-of-nanjing.png b/src/slidedeckai/icons/png128/porcelain-tower-of-nanjing.png similarity index 100% rename from icons/png128/porcelain-tower-of-nanjing.png rename to src/slidedeckai/icons/png128/porcelain-tower-of-nanjing.png diff --git a/icons/png128/prague-charles-bridge-tower.png b/src/slidedeckai/icons/png128/prague-charles-bridge-tower.png similarity index 100% rename from icons/png128/prague-charles-bridge-tower.png rename to src/slidedeckai/icons/png128/prague-charles-bridge-tower.png diff --git a/icons/png128/prescription.png b/src/slidedeckai/icons/png128/prescription.png similarity index 100% rename from icons/png128/prescription.png rename to src/slidedeckai/icons/png128/prescription.png diff --git a/icons/png128/printer.png b/src/slidedeckai/icons/png128/printer.png similarity index 100% rename from icons/png128/printer.png rename to src/slidedeckai/icons/png128/printer.png diff --git a/icons/png128/pulse.png b/src/slidedeckai/icons/png128/pulse.png similarity index 100% rename from icons/png128/pulse.png rename to src/slidedeckai/icons/png128/pulse.png diff --git a/icons/png128/python.png b/src/slidedeckai/icons/png128/python.png similarity index 100% rename from icons/png128/python.png rename to src/slidedeckai/icons/png128/python.png diff --git a/icons/png128/question.png b/src/slidedeckai/icons/png128/question.png similarity index 100% rename from icons/png128/question.png rename to src/slidedeckai/icons/png128/question.png diff --git a/icons/png128/qutb-minar.png b/src/slidedeckai/icons/png128/qutb-minar.png similarity index 100% rename from icons/png128/qutb-minar.png rename to src/slidedeckai/icons/png128/qutb-minar.png diff --git a/icons/png128/radioactive.png b/src/slidedeckai/icons/png128/radioactive.png similarity index 100% rename from icons/png128/radioactive.png rename to src/slidedeckai/icons/png128/radioactive.png diff --git a/icons/png128/recycle.png b/src/slidedeckai/icons/png128/recycle.png similarity index 100% rename from icons/png128/recycle.png rename to src/slidedeckai/icons/png128/recycle.png diff --git a/icons/png128/refinery.png b/src/slidedeckai/icons/png128/refinery.png similarity index 100% rename from icons/png128/refinery.png rename to src/slidedeckai/icons/png128/refinery.png diff --git a/icons/png128/restaurant-spoon.png b/src/slidedeckai/icons/png128/restaurant-spoon.png similarity index 100% rename from icons/png128/restaurant-spoon.png rename to src/slidedeckai/icons/png128/restaurant-spoon.png diff --git a/icons/png128/robot-ai.png b/src/slidedeckai/icons/png128/robot-ai.png similarity index 100% rename from icons/png128/robot-ai.png rename to src/slidedeckai/icons/png128/robot-ai.png diff --git a/icons/png128/robotics.png b/src/slidedeckai/icons/png128/robotics.png similarity index 100% rename from icons/png128/robotics.png rename to src/slidedeckai/icons/png128/robotics.png diff --git a/icons/png128/rocket-takeoff.png b/src/slidedeckai/icons/png128/rocket-takeoff.png similarity index 100% rename from icons/png128/rocket-takeoff.png rename to src/slidedeckai/icons/png128/rocket-takeoff.png diff --git a/icons/png128/rome.png b/src/slidedeckai/icons/png128/rome.png similarity index 100% rename from icons/png128/rome.png rename to src/slidedeckai/icons/png128/rome.png diff --git a/icons/png128/router.png b/src/slidedeckai/icons/png128/router.png similarity index 100% rename from icons/png128/router.png rename to src/slidedeckai/icons/png128/router.png diff --git a/icons/png128/salad.png b/src/slidedeckai/icons/png128/salad.png similarity index 100% rename from icons/png128/salad.png rename to src/slidedeckai/icons/png128/salad.png diff --git a/icons/png128/san-francisco-fog.png b/src/slidedeckai/icons/png128/san-francisco-fog.png similarity index 100% rename from icons/png128/san-francisco-fog.png rename to src/slidedeckai/icons/png128/san-francisco-fog.png diff --git a/icons/png128/sandwich.png b/src/slidedeckai/icons/png128/sandwich.png similarity index 100% rename from icons/png128/sandwich.png rename to src/slidedeckai/icons/png128/sandwich.png diff --git a/icons/png128/sao-paulo.png b/src/slidedeckai/icons/png128/sao-paulo.png similarity index 100% rename from icons/png128/sao-paulo.png rename to src/slidedeckai/icons/png128/sao-paulo.png diff --git a/icons/png128/satellite.png b/src/slidedeckai/icons/png128/satellite.png similarity index 100% rename from icons/png128/satellite.png rename to src/slidedeckai/icons/png128/satellite.png diff --git a/icons/png128/scissors.png b/src/slidedeckai/icons/png128/scissors.png similarity index 100% rename from icons/png128/scissors.png rename to src/slidedeckai/icons/png128/scissors.png diff --git a/icons/png128/screwdriver.png b/src/slidedeckai/icons/png128/screwdriver.png similarity index 100% rename from icons/png128/screwdriver.png rename to src/slidedeckai/icons/png128/screwdriver.png diff --git a/icons/png128/search.png b/src/slidedeckai/icons/png128/search.png similarity index 100% rename from icons/png128/search.png rename to src/slidedeckai/icons/png128/search.png diff --git a/icons/png128/seattle.png b/src/slidedeckai/icons/png128/seattle.png similarity index 100% rename from icons/png128/seattle.png rename to src/slidedeckai/icons/png128/seattle.png diff --git a/icons/png128/shield-check.png b/src/slidedeckai/icons/png128/shield-check.png similarity index 100% rename from icons/png128/shield-check.png rename to src/slidedeckai/icons/png128/shield-check.png diff --git a/icons/png128/shuffle.png b/src/slidedeckai/icons/png128/shuffle.png similarity index 100% rename from icons/png128/shuffle.png rename to src/slidedeckai/icons/png128/shuffle.png diff --git a/icons/png128/singapore.png b/src/slidedeckai/icons/png128/singapore.png similarity index 100% rename from icons/png128/singapore.png rename to src/slidedeckai/icons/png128/singapore.png diff --git a/icons/png128/solar-panel.png b/src/slidedeckai/icons/png128/solar-panel.png similarity index 100% rename from icons/png128/solar-panel.png rename to src/slidedeckai/icons/png128/solar-panel.png diff --git a/icons/png128/soundwave.png b/src/slidedeckai/icons/png128/soundwave.png similarity index 100% rename from icons/png128/soundwave.png rename to src/slidedeckai/icons/png128/soundwave.png diff --git a/icons/png128/speedometer.png b/src/slidedeckai/icons/png128/speedometer.png similarity index 100% rename from icons/png128/speedometer.png rename to src/slidedeckai/icons/png128/speedometer.png diff --git a/icons/png128/sphinx-monuments.png b/src/slidedeckai/icons/png128/sphinx-monuments.png similarity index 100% rename from icons/png128/sphinx-monuments.png rename to src/slidedeckai/icons/png128/sphinx-monuments.png diff --git a/icons/png128/stars.png b/src/slidedeckai/icons/png128/stars.png similarity index 100% rename from icons/png128/stars.png rename to src/slidedeckai/icons/png128/stars.png diff --git a/icons/png128/stethoscope.png b/src/slidedeckai/icons/png128/stethoscope.png similarity index 100% rename from icons/png128/stethoscope.png rename to src/slidedeckai/icons/png128/stethoscope.png diff --git a/icons/png128/stockholm.png b/src/slidedeckai/icons/png128/stockholm.png similarity index 100% rename from icons/png128/stockholm.png rename to src/slidedeckai/icons/png128/stockholm.png diff --git a/icons/png128/strategy.png b/src/slidedeckai/icons/png128/strategy.png similarity index 100% rename from icons/png128/strategy.png rename to src/slidedeckai/icons/png128/strategy.png diff --git a/icons/png128/suitcase.png b/src/slidedeckai/icons/png128/suitcase.png similarity index 100% rename from icons/png128/suitcase.png rename to src/slidedeckai/icons/png128/suitcase.png diff --git a/icons/png128/sushi.png b/src/slidedeckai/icons/png128/sushi.png similarity index 100% rename from icons/png128/sushi.png rename to src/slidedeckai/icons/png128/sushi.png diff --git a/icons/png128/sydney-opera-house.png b/src/slidedeckai/icons/png128/sydney-opera-house.png similarity index 100% rename from icons/png128/sydney-opera-house.png rename to src/slidedeckai/icons/png128/sydney-opera-house.png diff --git a/icons/png128/table.png b/src/slidedeckai/icons/png128/table.png similarity index 100% rename from icons/png128/table.png rename to src/slidedeckai/icons/png128/table.png diff --git a/icons/png128/taj-mahal.png b/src/slidedeckai/icons/png128/taj-mahal.png similarity index 100% rename from icons/png128/taj-mahal.png rename to src/slidedeckai/icons/png128/taj-mahal.png diff --git a/icons/png128/tap-hands-and-gestures.png b/src/slidedeckai/icons/png128/tap-hands-and-gestures.png similarity index 100% rename from icons/png128/tap-hands-and-gestures.png rename to src/slidedeckai/icons/png128/tap-hands-and-gestures.png diff --git a/icons/png128/taxi-front.png b/src/slidedeckai/icons/png128/taxi-front.png similarity index 100% rename from icons/png128/taxi-front.png rename to src/slidedeckai/icons/png128/taxi-front.png diff --git a/icons/png128/tea-coffee-cup.png b/src/slidedeckai/icons/png128/tea-coffee-cup.png similarity index 100% rename from icons/png128/tea-coffee-cup.png rename to src/slidedeckai/icons/png128/tea-coffee-cup.png diff --git a/icons/png128/telemarketer-customer-service.png b/src/slidedeckai/icons/png128/telemarketer-customer-service.png similarity index 100% rename from icons/png128/telemarketer-customer-service.png rename to src/slidedeckai/icons/png128/telemarketer-customer-service.png diff --git a/icons/png128/telephone.png b/src/slidedeckai/icons/png128/telephone.png similarity index 100% rename from icons/png128/telephone.png rename to src/slidedeckai/icons/png128/telephone.png diff --git a/icons/png128/temple-of-heaven-in-beijing.png b/src/slidedeckai/icons/png128/temple-of-heaven-in-beijing.png similarity index 100% rename from icons/png128/temple-of-heaven-in-beijing.png rename to src/slidedeckai/icons/png128/temple-of-heaven-in-beijing.png diff --git a/icons/png128/teotihuacan-aztec.png b/src/slidedeckai/icons/png128/teotihuacan-aztec.png similarity index 100% rename from icons/png128/teotihuacan-aztec.png rename to src/slidedeckai/icons/png128/teotihuacan-aztec.png diff --git a/icons/png128/thermometer.png b/src/slidedeckai/icons/png128/thermometer.png similarity index 100% rename from icons/png128/thermometer.png rename to src/slidedeckai/icons/png128/thermometer.png diff --git a/icons/png128/tokyo-gates.png b/src/slidedeckai/icons/png128/tokyo-gates.png similarity index 100% rename from icons/png128/tokyo-gates.png rename to src/slidedeckai/icons/png128/tokyo-gates.png diff --git a/icons/png128/tokyo-temple.png b/src/slidedeckai/icons/png128/tokyo-temple.png similarity index 100% rename from icons/png128/tokyo-temple.png rename to src/slidedeckai/icons/png128/tokyo-temple.png diff --git a/icons/png128/tools.png b/src/slidedeckai/icons/png128/tools.png similarity index 100% rename from icons/png128/tools.png rename to src/slidedeckai/icons/png128/tools.png diff --git a/icons/png128/toronto.png b/src/slidedeckai/icons/png128/toronto.png similarity index 100% rename from icons/png128/toronto.png rename to src/slidedeckai/icons/png128/toronto.png diff --git a/icons/png128/translate.png b/src/slidedeckai/icons/png128/translate.png similarity index 100% rename from icons/png128/translate.png rename to src/slidedeckai/icons/png128/translate.png diff --git a/icons/png128/trash.png b/src/slidedeckai/icons/png128/trash.png similarity index 100% rename from icons/png128/trash.png rename to src/slidedeckai/icons/png128/trash.png diff --git a/icons/png128/trophy.png b/src/slidedeckai/icons/png128/trophy.png similarity index 100% rename from icons/png128/trophy.png rename to src/slidedeckai/icons/png128/trophy.png diff --git a/icons/png128/truck.png b/src/slidedeckai/icons/png128/truck.png similarity index 100% rename from icons/png128/truck.png rename to src/slidedeckai/icons/png128/truck.png diff --git a/icons/png128/txt.png b/src/slidedeckai/icons/png128/txt.png similarity index 100% rename from icons/png128/txt.png rename to src/slidedeckai/icons/png128/txt.png diff --git a/icons/png128/ubuntu.png b/src/slidedeckai/icons/png128/ubuntu.png similarity index 100% rename from icons/png128/ubuntu.png rename to src/slidedeckai/icons/png128/ubuntu.png diff --git a/icons/png128/umbrella.png b/src/slidedeckai/icons/png128/umbrella.png similarity index 100% rename from icons/png128/umbrella.png rename to src/slidedeckai/icons/png128/umbrella.png diff --git a/icons/png128/unlock.png b/src/slidedeckai/icons/png128/unlock.png similarity index 100% rename from icons/png128/unlock.png rename to src/slidedeckai/icons/png128/unlock.png diff --git a/icons/png128/value.png b/src/slidedeckai/icons/png128/value.png similarity index 100% rename from icons/png128/value.png rename to src/slidedeckai/icons/png128/value.png diff --git a/icons/png128/venezuela-national-pantheon-of-venezuela.png b/src/slidedeckai/icons/png128/venezuela-national-pantheon-of-venezuela.png similarity index 100% rename from icons/png128/venezuela-national-pantheon-of-venezuela.png rename to src/slidedeckai/icons/png128/venezuela-national-pantheon-of-venezuela.png diff --git a/icons/png128/virus.png b/src/slidedeckai/icons/png128/virus.png similarity index 100% rename from icons/png128/virus.png rename to src/slidedeckai/icons/png128/virus.png diff --git a/icons/png128/wallet.png b/src/slidedeckai/icons/png128/wallet.png similarity index 100% rename from icons/png128/wallet.png rename to src/slidedeckai/icons/png128/wallet.png diff --git a/icons/png128/warehouse.png b/src/slidedeckai/icons/png128/warehouse.png similarity index 100% rename from icons/png128/warehouse.png rename to src/slidedeckai/icons/png128/warehouse.png diff --git a/icons/png128/washington-dc-capitol.png b/src/slidedeckai/icons/png128/washington-dc-capitol.png similarity index 100% rename from icons/png128/washington-dc-capitol.png rename to src/slidedeckai/icons/png128/washington-dc-capitol.png diff --git a/icons/png128/washington-dc-monument.png b/src/slidedeckai/icons/png128/washington-dc-monument.png similarity index 100% rename from icons/png128/washington-dc-monument.png rename to src/slidedeckai/icons/png128/washington-dc-monument.png diff --git a/icons/png128/watch.png b/src/slidedeckai/icons/png128/watch.png similarity index 100% rename from icons/png128/watch.png rename to src/slidedeckai/icons/png128/watch.png diff --git a/icons/png128/webcam-video-chat.png b/src/slidedeckai/icons/png128/webcam-video-chat.png similarity index 100% rename from icons/png128/webcam-video-chat.png rename to src/slidedeckai/icons/png128/webcam-video-chat.png diff --git a/icons/png128/whatsapp.png b/src/slidedeckai/icons/png128/whatsapp.png similarity index 100% rename from icons/png128/whatsapp.png rename to src/slidedeckai/icons/png128/whatsapp.png diff --git a/icons/png128/wifi.png b/src/slidedeckai/icons/png128/wifi.png similarity index 100% rename from icons/png128/wifi.png rename to src/slidedeckai/icons/png128/wifi.png diff --git a/icons/png128/windmill.png b/src/slidedeckai/icons/png128/windmill.png similarity index 100% rename from icons/png128/windmill.png rename to src/slidedeckai/icons/png128/windmill.png diff --git a/icons/png128/wrecking-ball.png b/src/slidedeckai/icons/png128/wrecking-ball.png similarity index 100% rename from icons/png128/wrecking-ball.png rename to src/slidedeckai/icons/png128/wrecking-ball.png diff --git a/icons/png128/xml.png b/src/slidedeckai/icons/png128/xml.png similarity index 100% rename from icons/png128/xml.png rename to src/slidedeckai/icons/png128/xml.png diff --git a/icons/png128/yin-yang.png b/src/slidedeckai/icons/png128/yin-yang.png similarity index 100% rename from icons/png128/yin-yang.png rename to src/slidedeckai/icons/png128/yin-yang.png diff --git a/icons/png128/yml.png b/src/slidedeckai/icons/png128/yml.png similarity index 100% rename from icons/png128/yml.png rename to src/slidedeckai/icons/png128/yml.png diff --git a/icons/png128/youtube.png b/src/slidedeckai/icons/png128/youtube.png similarity index 100% rename from icons/png128/youtube.png rename to src/slidedeckai/icons/png128/youtube.png diff --git a/icons/svg_repo.txt b/src/slidedeckai/icons/svg_repo.txt similarity index 100% rename from icons/svg_repo.txt rename to src/slidedeckai/icons/svg_repo.txt diff --git a/pptx_templates/Blank.pptx b/src/slidedeckai/pptx_templates/Blank.pptx similarity index 100% rename from pptx_templates/Blank.pptx rename to src/slidedeckai/pptx_templates/Blank.pptx diff --git a/pptx_templates/Ion_Boardroom.pptx b/src/slidedeckai/pptx_templates/Ion_Boardroom.pptx similarity index 100% rename from pptx_templates/Ion_Boardroom.pptx rename to src/slidedeckai/pptx_templates/Ion_Boardroom.pptx diff --git a/pptx_templates/Minimalist_sales_pitch.pptx b/src/slidedeckai/pptx_templates/Minimalist_sales_pitch.pptx similarity index 100% rename from pptx_templates/Minimalist_sales_pitch.pptx rename to src/slidedeckai/pptx_templates/Minimalist_sales_pitch.pptx diff --git a/pptx_templates/Urban_monochrome.pptx b/src/slidedeckai/pptx_templates/Urban_monochrome.pptx similarity index 100% rename from pptx_templates/Urban_monochrome.pptx rename to src/slidedeckai/pptx_templates/Urban_monochrome.pptx diff --git a/prompts/initial_template_v4_two_cols_img.txt b/src/slidedeckai/prompts/initial_template_v4_two_cols_img.txt similarity index 100% rename from prompts/initial_template_v4_two_cols_img.txt rename to src/slidedeckai/prompts/initial_template_v4_two_cols_img.txt diff --git a/prompts/refinement_template_v4_two_cols_img.txt b/src/slidedeckai/prompts/refinement_template_v4_two_cols_img.txt similarity index 100% rename from prompts/refinement_template_v4_two_cols_img.txt rename to src/slidedeckai/prompts/refinement_template_v4_two_cols_img.txt diff --git a/strings.json b/src/slidedeckai/strings.json similarity index 100% rename from strings.json rename to src/slidedeckai/strings.json