Here is a PowerPoint generator that uses python-pptx and local llm's using the Oobabooga Text Generation WebUI api to generate beautiful and informative presentations. PowerPointer "For Local LLMs" is a port from my main PowerPointer which uses the GPT 3.5 Turbo OpenAI API: Powerpointer
The goal was to have this running completely local with no costs using for example a LLaMA based model. You can support this by giving this repo a star!
- Powerpointer doesn't use MARP. It directly creates the powerpoints so you can easily make changes to them or finish it within PowerPoint
- It also makes placeholders for images
- You can select between 7 designs to make the PowerPoints more beautiful
- Runs locally on your computer so there are no privacy concerns
- It asks the user about the informations of the PowerPoint
- Then it generates the text for the PowerPoint using some optimized prompts and the text generation webui api
- The python-pptx library converts the generated text using my PowerPoint format into a PowerPoint presentation
To make this work, clone the repository and install the following packages:
pip install python-pptx regex collection
After this, start your oobabooga text generation webui instance with an instruct finetuned model and the api extension (--extensions api). 13B models and upwards work the best but you sometimes also receive good output with 7B models. When using 7B models, try instruct tuned Mistral models.
If you run oobabooga on a remote machine or not on a different port/ip, you have to open powerpointer.py and change the HOST or URL variable. While you are there, also make sure that the model_type (Prompt Template is set correctly.
Finally start the powerpoint generator by running:
python3 powerpointer.py
I optimized the prompts to work with instruction tuned models. You can select the prompt format type in the powerpointer.py file. If your desired format is missing, you can create a new prompt format template in the prompts.py file.
Following prompt templates are available out of the box:
- Alpaca
- ChatML
- Vicuna
- Llama2Chat
Feel free to PR new ones!
As of today (01.07.2024) I recommend to use Nous Hermes Mixtral 8x7b DPO as this yields the best results:
Keep in mind that this is quite a big model and requires a good computer to run. If you're looking for a smaller model, I can recommend Hermes Theta 8B:
Both model use ChatML as prompt templates.
Because of the limitation of "small and sometimes dumb" local models:
- the generator easily hallucinates things
- the generator sometimes ignores the selected slide count
- the generator sometimes forgets to include the additional info
Because of my "pro" code:
- it's complicated to add new templates. I'm searching for an easier way
Please report any issues and feel free to make a pull request to fix my code I wrote at night.
Made by CyberTimon ([email protected])
Here are some screenshots from the local generated powerpoints: