rminz / ai-typing-assistant

AI powered local typing assistant built with Ollama

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

AI powered typing assistant with Ollama

A script that can run in the background and listen to hotkeys, then uses a Large Language Model to fix the text. Less than 100 lines of code.

Inspired by this tweet:

https://twitter.com/karpathy/status/1725553780878647482

"GPT is surprisingly good at correcting minor typos, so you can write really really fast, ignore mistakes and keep going, and it comes out just fine." - Andrej Karpathy

Get Started

1. Set up Ollama

Ollama Installation: https://github.com/ollama/ollama

Run ollama run mistral:7b-instruct-v0.2-q4_K_S

Mistal 7B Instruct works well for this task, but feel free to try other models, too :)

2. Install dependencies

pip install pynput pyperclip httpx

3. Run it

Start the assistant:

python main.py

Hotkeys you can then press:

  • F9: Fixes the current line (without having to select the text)
  • F10: Fixes the current selection

Note: The code works on macOS. The underlying shortcuts in the code like Cmd+Shift+Left, Cmd+C, Cmd+V might have to be changed for Linux & Windows (e.g. Key.cmd -> Key.ctrl).

Customize

Hotkeys, prompt, and Ollama config can be easily customized and extended in the code.

For example, here are some prompt templates you can try:

from string import Template

PROMPT_TEMPLATE_FIX_TEXT = Template(
    """Fix all typos and casing and punctuation in this text, but preserve all new line characters:

$text

Return only the corrected text."""
)

PROMPT_TEMPLATE_GENERATE_TEXT = Template(
    """Generate a snarky paragraph with 3 sentences about the following topic:

$text

Return only the corrected text."""
)

PROMPT_TEMPLATE_SUMMARIZE_TEXT = Template(
    """Summarize the following text in 3 sentences:

$text

Return only the corrected text."""
)

About

AI powered local typing assistant built with Ollama


Languages

Language:Python 100.0%