TL;DR: chat with AI, code with AI, speak to AI (voice-to-text + vice versa), have AI search huge corpora or websites for you, all via an interface of collaborating on a text doc together in the editor you use now.

Motivation

I find the last year of AI incredibly heartening. Researchers are still regularly releasing SoTA models in disparate domains. Meta is releasing powerful Llama under generous provisions (As is the UAE with Falcon?!). And the Open Source community has shown a tidal wave of interest and effort into building things out of these tools (112k repos on GH mentioning ML!).

Facing this deluge of valuable things that communities are shepherding into the world, I wanted to incorporate them into my workflows, which as a software engineer, means my text editor.

UniteAI

So I started UniteAI https://github.com/freckletonj/uniteai, an Apache-2.0 licensed tool.

Check out the screencasts: https://github.com/freckletonj/uniteai#some-core-features

This project:

* Ties in to any editor via Language Server Protocol. Like collaborating in G-Docs, you collab with whatever AI directly in the document, all of you writing alongside each other concurrently.

* Like Copilot / Cursor, it can write code/text right in your doc.

* It supports any Locally runnable model (Llama family, Falcon, Finetunes, the 21k available models on HF, etc.)

* It supports OpenAI/ChatGPT via API key.

* Speech-to-Text, useful for writing prompts to your LLM

* You can do Semantic Search (Retrieval Augmented Generation) on many sources: local files, Arxiv, youtube transcripts, Project Gutenberg books, any online HTML, basically if you give it a URI, it can probably use it.

* You can trigger features easily via [key combos](https://github.com/freckletonj/uniteai#keycombos).

* Written in Python, so, much more generic than writing a bespoke `some_specific_editor` plugin.

Caveat

Since it always comes up, AI is not perfect. AI is a tool to augment your time, not replace it. It hallucinates, it lies, it bullshits, it writes bad code, it gives dangerous advice.

But can still do many useful things, and for me it is a huge force multiplier.

You need a Human In The Loop, which is why it's nice to work together iteratively on a text document, per, this project. You keep it on track.

Why is this interesting

These tools play well when used together:

* Code example: I can Voice-to-Text a function comment then send that to an LLM to write the function.

* Code example 2: I can chit chat about project architecture plans, and strategies, and libraries I should consider.

* Documentation example: I can retrieve relevant sections of my city's building code with a natural language query, then send that to an LLM to expound upon.

* Authorship example: I can have my story arcs and character dossiers in some markdown file, and use that guidance to contextualize an AI as it works with me for writing a story.

* Entertainment example: I told my AI it was a Dungeon Master, then over breakfast with friends, used Voice-to-Text and Text-to-Wizened-Wizard-Voice, and played a hillarious game. I still had to drive all this via a text doc, and handy key combos.

RFC

Installation instructions are on the repo: https://github.com/freckletonj/uniteai#quickstart-installing...

This is still nascent, and I welcome all feedback, positive or critical.

We have a community linked on the repo which you're invited to join.

I'd love love to chat with people who like this idea, use it, want to see other features, want to contribute their effort, want to file bug reports, etc.

A big part of my motivation in this is to socialize with like-minds, and build something cool.

Thanks for checking this out!