Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/sceuick/agn-ai
AI Agnostic Chat
https://github.com/sceuick/agn-ai
ai chatbot
Last synced: about 1 month ago
JSON representation
AI Agnostic Chat
- Host: GitHub
- URL: https://github.com/sceuick/agn-ai
- Owner: sceuick
- License: agpl-3.0
- Created: 2023-02-21T02:48:33.000Z (almost 2 years ago)
- Default Branch: dev
- Last Pushed: 2023-05-29T15:59:56.000Z (over 1 year ago)
- Last Synced: 2024-05-31T15:18:42.446Z (8 months ago)
- Topics: ai, chatbot
- Language: TypeScript
- Homepage:
- Size: 1.31 MB
- Stars: 4
- Watchers: 4
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# AgnAIstic
> Agnai: AI Agnostic, Self-hosted or Multi-tenant
AI Agnostic Chat
Based upon the early work of https://github.com/PygmalionAI/galatea-ui.
## Features
- Multiple AI adapters: Support for Kobold, Novel, AI Horde, Chai
- Group Conversations: Multiple users with one character/bot
- Multiple persona schema formats (W++, Square bracket format, Boostyle)
- Multi-tenancy:
- User authentication
- Individual user settings: Which adapter to use and their own adapter configuration
- Individual user generation settings (_In progress_)
- Chat overrides:
- Change the AI adapter for a specific chat
- Change the character for a specific chat## Roadmap
See the [roadmap here](https://github.com/users/sceuick/projects/1).
## Quick Start for Users
> CAUTION: This project is in an early stage of development. You may experience breaking changes between updates.
If you're only looking to run AgnAI without contributing:
1. Install [Node.js](https://nodejs.org/en/download/)
2. Install [MongoDB](https://www.mongodb.com/docs/manual/installation/)
3. Clone the project: `git clone https://github.com/sceuick/agn-ai` or [download it](https://github.com/sceuick/agn-ai/archive/refs/heads/dev.zip)
4. From inside the project folder in your terminal/console:
- `npm install`
- `npm build:all`
- `npm start`
5. If you wish to run a public facing version:
- `npm run start:public`## Design Goals
This project quickly deviated from the upstream project. This project is not intended to be a SaaS nor be centered around the Pygmalion model.
Ultimately the design goals for this project are my own.- High quality codebase
- Adapters: Transparently use a variety of AI models and services to converse with
- Initial adapters: Kobold, Kobold Horde, and Novel
- Implementing adapters should be low friction
- Lightweight to self-host
- Avoiding native dependencies and Docker to be easy for non-technical people to install and run## For Developers
### Tech Stack
The important parts of the stack are:
- [MongoDB](https://www.mongodb.com/docs/manual/installation/) for persistence
- [SolidJS](https://www.solidjs.com/) for interactivity
- [TailwindCSS](https://tailwindcss.com/) for styling
- [pnpm](https://pnpm.io/) for dependency management### Quick Start
If you have Node and `pnpm` installed and working, you can start the development server with:
```bash
# Install dependencies
> pnpm install --lockfile# Start the frontend, backend, and python service
> pnpm start# Run MongoDB using Docker
> pnpm run up# Start the public facing version:
> pnpm start:public
```### Developer Tooling
- Redux Dev Tools
- The front-end application state is wired up to the Redux Dev Tools chrome extension.
- NodeJS debugger
- The `start` script launchs the NodeJS API using the `--inspect` flag
- Go to the url `chrome://inspect` to use the debugger### Format and Type Checking
The project uses ESLint for linting, Prettier for enforcing code style and TypeScript to check for type errors. When opening a PR, please make sure you're not introducing any new errors in any of these checks by running:
```bash
# auto-fixes any style problems
$ pnpm run format:fix# runs the TypeScript compiler so any type errors will be shown
$ pnpm run typecheck
```