Skip to main content

Cooles locally run AI assistant

Project description

I.S.A.A.C - Intelligent System for Advanced Assistance and Companionship

Demo Image

I.S.A.A.C is a on-terminal AI assistant that lets you use ChatGPT-like features on the terminal so you don't have to switch windows every 2 minutes, it comes with a set of commands and features that you can turn on or off to get the most out of it, I.S.A.A.C can talk to you using locally run speech-to-text and text-to-speech models allowing you to put your fingers to better use.

  • Run pip install py-isaac.
  • Run isaac.
  • Type :commands to list all available commands.
  • Type hello and you will be prompted to choose a language model provider.
  • Select a provider from Gemini and Groq.
  • Now, you will be prompted for an API key.
  • Create a Gemini API key if you selected Gemini or a Groq API key if you selected Groq.
  • Paste the API key to the prompt.
  • Done.

Available commands

  • :toggle- toggles features on/off.
    • :toggle speech to toggle the assistant's speech.
    • :toggle context to toggle the use of conversation history for coherent responses, uses the last 5 or less user-assistant exchanges.
    • :toggle hearing to toggle the assistant's ability to hear you.
    • NOTE: The textual input (REPL) is disabled when you enable hearing, so to run commands, you can either press ctrl + C and you'd be able to type one command or say one of the one-word commands like 'exit', 'status' etc and they will be processed as commands and not natural language text.

NOTE: for interacting with the assistant only using your voice, turn on both speech and hearing.


  • :select - selects from available options.
    • :select lm_provider to select the language model provider.
    • :select lm to select the model for generating responses.
    • :select voice to select a Piper text-to-speech model for the assistant to speak with or supply a .wav file to have your own custom voice via Pocket TTS's voice cloning feature.
    • :select whisper to select a Whisper speech-to-text model for the assistant to interpret your voice with.

  • !<shell-command> runs shell commands without launching a shell session, .e.g. !ls.
  • :key sets the LLM API key for the selected provider, run this when the assistant can't process your queries, it means the key most proabably expired.
  • :instruct instructs the model to behave a certain way, using the system message.
  • :status to see status, selected settings and resource consumption.
  • :mute to mute the assistant while it's speaking.
  • :cmd to launch a shell session and pauses the assistant, powershell on windows and /bin/sh on linux, run the exit command in the shell session to get back to the assistant.
  • :commands to see all available commands.
  • :clear to clear the terminal.
  • :exit to turn the assistant off.

Features

  • Free LLM APIs to process natural language queries.
  • Voice-only conversations, assistant listens to you and speaks to you.
  • Dozens of voice options, custom voice(cloning) and multiple options for the listening ability.
  • Runs shell commands using the '!' (bang) prefix.
  • Assistant mutes when user starts speaking
  • Runs on both CPUs and GPUs.
  • Commands to control the assistant's behavior.
  • Other utllity commands to clear the screen, show resource consumption etc.

Tasks

  • add ollama support, user should be able to choose locally running ollama API as language model provider.
  • User profiling, store general likes and dislikes, e.g. "concise answers", "a project they're working on" etc.

Contributing

If you don't know where to start, pick one of the pending tasks and start with that. If if you want to fix a bug or add other enhancements, please raise an issue first.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

py_isaac-0.3.5.tar.gz (31.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

py_isaac-0.3.5-py3-none-any.whl (35.7 kB view details)

Uploaded Python 3

File details

Details for the file py_isaac-0.3.5.tar.gz.

File metadata

  • Download URL: py_isaac-0.3.5.tar.gz
  • Upload date:
  • Size: 31.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for py_isaac-0.3.5.tar.gz
Algorithm Hash digest
SHA256 122fd03c7eb999a4bbfc3775d2edc4074098e6500ac339bda3fbca4a6a1ac50e
MD5 69337ebe2de030660edd36eef525a430
BLAKE2b-256 d115c69d6a5c2649c9fc10f6d637c83e4bb09a7aafd3c27f763b67e4640f3b0a

See more details on using hashes here.

File details

Details for the file py_isaac-0.3.5-py3-none-any.whl.

File metadata

  • Download URL: py_isaac-0.3.5-py3-none-any.whl
  • Upload date:
  • Size: 35.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for py_isaac-0.3.5-py3-none-any.whl
Algorithm Hash digest
SHA256 bbb39b921e8357ba3f559d6933428864b27fb8f399c731d8174eb166e9a85500
MD5 deee1c1564464a2bc7ad294bb500782c
BLAKE2b-256 1aec05798df257cdbff105ecd35a03924609b0a88b49942c8f83c4d4516882c1

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page