Metadata-Version: 2.1
Name: persyn
Version: 0.0.2
Summary: Personality Syndrome. Persyn for short.
Author-email: Rob Flickenger <rob@hackerfriendly.com>
Project-URL: Homepage, https://persyn.io
Project-URL: Bug Tracker, https://github.com/hackerfriendly/persyn/issues
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.8
Description-Content-Type: text/markdown
Provides-Extra: dev
Provides-Extra: stable_diffusion
Provides-Extra: all
License-File: LICENSE.txt

# persyn: Personality Syndrome

Persyn makes it easy to integrate cutting-edge machine learning research projects into a single microservices framework. Each project implements a component of a greater personality (language model, long-term memory, visualizations, logic) that is tied together into an interactive group chat interface.

The resulting gestalt can be executed on any combination of local compute resources (CPU + GPU) and third-party APIs (OpenAI, Wikipedia, etc.)

The name "Personality Syndrome" was chosen by the first proto-Persyn instance itself, @AnnaTheBot @mas.to.

Major features:

  * Chat with any large language model over Slack, Discord, or Mastodon
  * Maintain a consistent and arbitrarily long train of thought
  * Short-term and long-term memory
  * Opinions
  * Auto-wikipedia
  * Auto-summarization of previous conversations over time or as the prompt size grows too long
  * Generate images on demand
  * Identify images dropped into the chat with CLIP Interrogator
  * Optional automatic image enhancement with Prompt Parrot

# Installation

Persyn in intended to run from inside a python virtualenv.

On first launch it will download required models and install necessary packages inside the virtualenv.

```
$ virtualenv --python=python3.8 env
$ . env/bin/activate
(env) $ pip install --upgrade pip # best practice
(env) $ pip install persyn
```

The default install only includes chat support. If you'd also like to generate and post images:

```
(env) $ pip install persyn[all]
```

Tmux is also highly recommended, and is required for using the bot launcher.

# Running a bot

```
(env) $ launch_bot config/my_config.yaml
```

# List running bots

```
(env) $ tmux ls
```

# Terminate a bot

```
(env) $ kill_bot mybotsession
```
