Giter Site home page Giter Site logo

kagamma / satania-buddy Goto Github PK

View Code? Open in Web Editor NEW
46.0 5.0 2.0 1.55 MB

Virtual Desktop Assistant in the form of Satania Mcdowell

License: GNU General Public License v3.0

Shell 0.22% Makefile 0.03% Pascal 99.75%
anime virtual-assistant lazarus free-pascal pascal fpc llm

satania-buddy's Introduction

This repo only contains code. For resources, see https://github.com/Kagamma/satania-buddy-data

satania-buddy

Open source virtual desktop assistant / LLM frontend in the form of Satanichia Kurumizawa McDowell, developed using Free Pascal and Castle Game Engine.

Download page: https://kgm.itch.io/satania-buddy

Current features:

  • AI backend integration: ChatGPT, KoboldCPP, Oobabooga, WolframAlpha.
  • Customizable commands, based on a simple rule-based chat system.
  • Alarms & Reminders.
  • Speech recognizing.
  • Check for emails via IMAP protocol.
  • Easy to add new characters.
  • Easy to mod. Pretty much all actions are scriptable via it’s own scripting language (refer to as Evil Scheme).
  • Low resource consuming, makes it suitable as an actual desktop assistant that can be available all the time.

Q & A

Q: Overall system requirements?

A:

  • CPU: Any decent x86_64 CPU should be able to run. I personally run it on an i7-6700HQ and it barely reach 1% CPU usage (around 2% - 3% with Speech Recognition enable).
  • RAM: The app consumes 100MB without Speech Recognition disabled, and 300MB with Speech Recognition (Vosk) enabled.
  • GPU: Any decent intel iGPU with support for OpenGL 2.0 should be enough to run the app.
Q: Windows requirements?

A: Windows Vista or above with Aero enabled.

Q: Linux requirements?

A: x11, qt5, qt5pas, freetype, openssl, openal, vorbis

You also need a compositor, or else the app will show black screen.

Q: Why X11? Where’s wayland support?

A: Wayland’s “security” measurements makes this kind of software impossible to develop. Things you just can’t do in wayland:

  • Ability to manually control Satania’s position on screen. This is needed if we want to drag her around, move her to other monitors/virtual desktops, or put her onto other windows.
  • Can’t access to other applications’s window position (so no Sit On Window).
  • Can we even be able to tell wayland to make Satania’s window always stay on top of everything else?
Q: OS X support when

A:https://user-images.githubusercontent.com/7451778/155552903-936f2ff1-a32b-4fe2-bbbd-0403d169808a.gif

(Joking aside OS X has a much higher chance to get ported over compare to Linux’s wayland)/

Q: Privacy?

A: Satania Buddy works completely offline without any connections to remote servers.

Q: Scripting API?

A: https://github.com/Kagamma/satania-buddy/wiki/Scripting-Reference

Q: Chat features?

A: Type >app_name to execute external applications, for example: >echo Hello

Type an expression, for example 5+3*2 and she will answer with 11

By default she has a simple rule-based chat system (note: Rules need to be enabled), you can configure patterns and responses in Rules, then tell her to learn the rules by pressing the Learn button.

If none of the above apply, then she will use external services (WolframAlpha, ChatGPT, KoboldCPP, etc) for potential answers.

Q: How can I change her size?

A: Base Scaling in Settings.

Q: How can I make her stay silent?

A: Silent menu.

Q: Why don’t you contribute to existing satania-buddy projects instead of creating new one?

A: I suck at C/Rust/whatever shiny, “modern” programming languages out there. I also suck at pixel arts.

Q: Uoooooooohhh?

A: Uoooooooohhh?

satania-buddy's People

Contributors

kagamma avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

satania-buddy's Issues

Adds support for native plugins

Allows to write plugins in languages like C. Plugins should be able to do 2 things:

  • Register additional script functions.
  • Control character by sending it's own Evil Scheme strings.

Rework on Satania animations

Kinda unhappy with current implementation so a rework is scheduled. Also working on a gym uniform version of Satania.

[FUNCTIONAL] Cannot make makefile file in Linux

Description:

I tried to install the dependencies but after installing the required dependencies to run the makefile, the make install run command returns an error Error: (lazerus) invalid Lazarus directory "": directory lcl not found

Steps to reproduce:

  1. Extract .zip file
  2. install all dependencies required to run the makefile
  3. cd inside the downloaded folder
  4. Run the command: sudo make
  5. Observe the result!

Expected result:

The user can compile the makefile

Actual result:

The user gets:
Error: (lazerus) invalid Lazarus directory "": directory lcl not found

Notes:

OS: Linux Manjaro KDE Plasma, Arch
Version: Latest (aka installed the same date as this report was created)

Workaround: Tried to symlink lcl to /usr/local/lib/fpc/3.1.1/units/x86_64-linux/* but it gave the same error.

Alternative scripting languages

Evil Scheme will always be Satania's main scripting language, but that doesnt mean we limit to only 1. Lua is best candidate at the moment.

[FUNCTIONAL] Desktop pet keeps printing "0.1 is an invalid float" on Itch.io version (Linux)

Description:

As far as I can check I have installed all the required + optional dependines and as far as I boot and chat with the ddesktop pet, it keeps printing the same error "0.1 is an invalid float".

Steps to Repro:

  1. Install all dependencies
  2. chmod both .sh files
  3. Start the satania-buddy.sh
  4. Observe the result

Expected result:

Desktop pet should work as intentional/programmed

Actual result:

Desktop pet keeps prompting "0.1 is an invalid float"

Note:

OS used: Linux OS Manjaro KDE Plasma, Arch
Version: Latest (aka updated as the date this issue was created)

Workaround:

Tried the Git version, and I will create a new issue ticket for specifically it.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.