Skip to content

Commit

Permalink
Rename to simmis. Fixes.
Browse files Browse the repository at this point in the history
  • Loading branch information
whilo committed Nov 12, 2024
1 parent c75b2a6 commit 89fd5da
Show file tree
Hide file tree
Showing 40 changed files with 941 additions and 948 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -34,3 +34,4 @@ downloads/
.clj-kondo/
resources/config.edn
*.log
files
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
# Simmie
# Simmis

Simmie is a conversational AI framework that tries to blend in to human conversations as much as possible while doing useful background research and thinking ahead. It is trying to simulate what you need to know or decide next. The goal is to have both a principled organizational framework to structure problem solving and processes for humans and machines (i.e. a unified computational framework for intelligence) and a la carte abstractions that can be picked up from something as trivial as a group chat on a popular chat platform such as Telegram, WhatsApp, Slack, ... A concrete first example of this is a notion/wiki-like note taking system that is used by the conversational AI both as a memory and as a shared interface with humans.
Simmis is an interactive AGI system that tries to blend in to human environments as much as possible while doing useful background research and thinking ahead. It is trying to simulate what you need to know or decide next. The goal is to have both a principled organizational framework to structure problem solving and processes for humans and machines (i.e. a unified computational framework for intelligence) and a la carte abstractions that can be picked up from something as trivial as a group chat on a popular chat platform such as Telegram, WhatsApp, Slack, ... A concrete first example of this is a notion/wiki-like note taking system that is used by the conversational AI both as a memory and as a shared interface with humans.

At the moment Telegram is supported including automatic voice transcription. The system is also intended to support payments, e.g. through the Telegram API, and general resource awareness to guide its planning and computation. This code base is currently exploring design decisions and used in private betas with the Telegram bot interface. If you want to participate join our [Telegram group](https://t.me/+ANfiXz-khkpiOTg0) or open an issue on this repository.

# Design

The framework is based on communicating sequential processes (CSP) through [superv.async](https://github.com/replikativ/superv.async) and aims at decoupled asynchronous binding between parallel processes in [runtimes](./src/ie/simm/runtimes/) and high-level [language](./src/ie/simm/languages/) abstractions that send messages to these runtimes. The message flow follows [kabel](https://github.com/replikativ/kabel) which is a [ring](https://github.com/ring-clojure/ring)-like, continuous, bidirectional processing framework that allows separation of concerns between different middlewares. Middlewares can initiate events at any time and create multiple "return" messages. The system is therefore *not* purely reactive and goes beyond the standard lambda calculus employed in ring. A more functional perspective could be provided by FRP through [missionary](https://github.com/leonoel/missionary).
The framework is based on communicating sequential processes (CSP) through [superv.async](https://github.com/replikativ/superv.async) and aims at decoupled asynchronous binding between parallel processes in [runtimes](./src/is/simm/runtimes/) and high-level [language](./src/is/simm/languages/) abstractions that send messages to these runtimes. The message flow follows [kabel](https://github.com/replikativ/kabel) which is a [ring](https://github.com/ring-clojure/ring)-like, continuous, bidirectional processing framework that allows separation of concerns between different middlewares. Middlewares can initiate events at any time and create multiple "return" messages. The system is therefore *not* purely reactive and goes beyond the standard lambda calculus employed in ring. A more functional perspective could be provided by FRP through [missionary](https://github.com/leonoel/missionary).

The goal is to build a compositional framework of building blocks that can be easily integrated into JVM based backends. The backend uses HTMX by default to render implementations easy for backend developers, but a React frontend might make sense at some point. [libython-clj](https://github.com/clj-python/libpython-clj) is used for all data science, machine learning and generative AI related APIs and in general is useful for effects that can be invoked through stateless remote procedure calls (RPCs), while all state is managed by Clojure and [Datahike](https://github.com/replikativ/datahike) to keep a persistent, git-like memory model that is ideal for simulation environments. Future versions could leverage the GraalVM with [graalpython](https://github.com/oracle/graalpython) and node.js exposure to render the Clojure code easier to integrate into popular backends. The Clojure code itself including Datahike also is fairly portable and could be moved to frontends, e.g. browser, Android or maybe iOS through GraalVM native compilation.

Expand All @@ -16,7 +16,7 @@ Make sure to define your credentials in `resources/config.edn`. Prompts are stor

## Usage

Just start a REPL and explore the [assistance](./src/ie/simm/runtimes/assistance.clj) namespace.
Just start a REPL and explore the [assistance](./src/is/simm/runtimes/assistance.clj) namespace.

## License

Expand Down
4 changes: 2 additions & 2 deletions build.clj
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@
(:refer-clojure :exclude [test])
(:require [clojure.tools.build.api :as b]))

(def lib 'ie.simm/simmie)
(def lib 'is.simm/simmie)
(def version "0.1.0-SNAPSHOT")
(def main 'ie.simm.simmie)
(def main 'is.simm.simmie)
(def class-dir "target/classes")

(defn test "Run all the tests." [opts]
Expand Down
10 changes: 6 additions & 4 deletions deps.edn
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{:paths ["src" "resources"]
:deps {org.clojure/clojure {:mvn/version "1.11.1"}
io.replikativ/datahike {:mvn/version "0.6.1584"}
io.replikativ/datahike {:mvn/version "0.6.1592"}
clj-python/libpython-clj {:mvn/version "2.025"}
morse/morse {:mvn/version "0.4.3"}
io.replikativ/kabel {:mvn/version "0.2.2"}
Expand All @@ -18,12 +18,14 @@

;; exploratory
missionary/missionary {:mvn/version "b.34"}
io.github.jbellis/jvector {:mvn/version "3.0.2"}
pangloss/pattern {:git/url "https://github.com/pangloss/pattern"
:sha "affc7f3ac907f5b98de6638574a741e4693f1648"}
:sha #_"affc7f3ac907f5b98de6638574a741e4693f1648"
"93fb43e3223bbcfe08c4e37414709021d8a99604"}
anglican/anglican {:mvn/version "1.1.0"}}
:jvm-opts ["-Xmx1g"]
:jvm-opts ["-Xmx1g" "--add-modules jdk.incubator.vector"]
:aliases
{:run {:main-opts ["-m" "ie.simm.simmie" "--middleware" "[cider.nrepl/cider-middleware]"]}
{:run {:main-opts ["-m" "is.simm.simmis" "--middleware" "[cider.nrepl/cider-middleware]"]}
:build {:deps {io.github.clojure/tools.build
{:mvn/version "0.9.6"}}
:ns-default build}
Expand Down
2 changes: 1 addition & 1 deletion doc/intro.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
# Introduction to ie.simm/simmie
# Introduction to is.simm/simmis

TODO: write [great documentation](http://jacobian.org/writing/what-to-write/)
38 changes: 31 additions & 7 deletions resources/public/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Simmie</title>
<title>Simmis</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bulma@1.0.0/css/bulma.min.css">
</head>
<body>
Expand All @@ -13,14 +13,14 @@
<div class="container">
<div id="navbarMenu" class="navbar-menu">
<div class="navbar-start">
<a class="navbar-item" href="#">Home</a>
<a class="navbar-item" href="#">Features</a>
<a class="navbar-item" href="#">About</a>
<a class="navbar-item" href="#home">Home</a>
<a class="navbar-item" href="#features">Features</a>
<a class="navbar-item" href="#about">About</a>
</div>
</div>
<div class="navbar-brand">
<a class="navbar-item" href="/">
<img src="simmie.png" alt="Simmie logo">
<img src="simmis.png" alt="Simmis logo">
</a>
<span class="navbar-burger" data-target="navbarMenu">
<span></span>
Expand All @@ -32,10 +32,34 @@
</header>
</div>
<div class="hero-body">
<div class="container has-text-centered">
<div class="container has-text-centered" id="home">
<div class="content">
<h1>Hey!</h1>
<p>Simmie is a conversational AI system that combines different forms of intelligence to help you pursue your goals or just have fun.<br/> To access the bot on Telegram join <a href="https://t.me/+ANfiXz-khkpiOTg0">https://t.me/+ANfiXz-khkpiOTg0</a></p>
<p>Simmis is an interactive, open-source, self-organizing system that coordinates the different forms of intelligence in your life (human and otherwise) to help you pursue your goals or just have fun.<br/> To access the bot on Telegram join <a href="https://t.me/+ANfiXz-khkpiOTg0">https://t.me/+ANfiXz-khkpiOTg0</a></p>
</div>
</div>
</div>
<div class="hero-body"></div>
<div class="container has-text-centered" id="features">
<div class="content">
<h2>Features</h2>
<p>Here are some of the features that Simmis offers:</p>
<div>Screensharing and recording</div>
<div>Chatbot</div>
<div>Auto journaling</div>
<div>Goal setting</div>
<div>Calendar (TODO)</div>
<div>Task management (TODO)</div>
<div>Time tracking (TODO)</div>
<div>And more...</div>
</div>
</div>
</div>
<div class="hero-body"></div>
<div class="container has-text-centered" id="about">
<div class="content">
<h2>About</h2>
<p>Simmis is a project by Christian Weilbach. It is a work in progress and is constantly being improved. If you have any feedback or suggestions, please let me know.</p>
</div>
</div>
</div>
Expand Down
File renamed without changes
16 changes: 0 additions & 16 deletions src/ie/simm/languages/chat.clj

This file was deleted.

119 changes: 0 additions & 119 deletions src/ie/simm/processes/build_accounting.clj

This file was deleted.

Loading

0 comments on commit 89fd5da

Please sign in to comment.