Skip to content

Tavirutyutyu/PythonPersonalAssistant

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

127 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage and Customisation

About The Project

Python Personal Assistant Screen Shot

This is my pet project. It's a personal assistant written in python. It uses Ollama as an AI, Festival as TTS and the GUI is written with tkinter. You can chat with an AI both in text and in voice. There are custom voice-commands. And there is a coding assistant system where you can upload files for the AI to look at.

(back to top)

Built With

  • Python
  • Tkinter
  • Ollama
  • Festival

(back to top)

Getting Started

This program is only compatible with Linux and Mac YET.

Prerequisites

You will need python 3.13 or higher installed.

Installation

Clone the Python Personal Assistant repo:

git clone https://github.com/Tavirutyutyu/PythonPersonalAssistant.git

Then to create a virtual environment (.venv) and install dependencies run the setup.sh script like this:

bash setup.sh 

Note: For the application to run it will also need an installed Ollama, downloaded AI model and installed Festival to work. BUT!!! The application will attempt to install them on its own on the first run. You will be able to see the process in the terminal. If there is any error with the installation of either ollama or festival only then try to install them manually.

Running the application

Finally, you can run the project with this command when you are in the project root directory.

python3 main.py

(back to top)

Usage and Customisation

I designed this application in a way so it's easy to add your own voice commands. You just need to know a little bit of python. And if you are a little bit bigger of a python master, you could even add your own AI or TTS service. To add your own command you need to create a json file to hold the keywords that can trigger your command, and sub_options if you have. For example to run the browser I have keywords like: [browse, open browser, open firefox...] and I have sub-options like: [google, youtube, github...] to open these sites in the browser. And if your_command.json is in the resources folder you can write the class for it in python. It goes into the commands/commands.py just on the bottom. Here is an example:

from commands import Command


class MyCommand(Command):
    def __init__(self):
        super().__init__(name="the name of your command", file_name="your_command.json")

    def execute(self, text: str | None = None):
        """
        Implement your solution here...
        :param text: This is the chosen sub-option
        :type text: str | None
        """
        pass

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors