Giter Club home page Giter Club logo

agn-ai's Introduction

AgnAIstic

AI Agnostic Chat, Self-hosted or Multi-tenant

AI Agnostic Chat

Try it out!

Based upon the early work of https://github.com/PygmalionAI/galatea-ui.

Features

  • Group Conversations: Multiple users with one character/bot
  • Multiple AI services: Support for Kobold, Novel, AI Horde, Chai, LuminAI, OpenAI
  • Multiple persona schema formats (W++, Square bracket format, Boostyle)
  • Multi-tenancy:
    • User authentication
    • Individual user settings: Which AI service to use and their own service configuration
    • Individual user generation settings
  • Chat specific overrides:
    • Choose the AI service for a specific chat
    • Personalise the character for a specific chat
    • Customise the generation preset/settings for a specific chat
  • Image generation (IN PROGRESS)

Roadmap

See the roadmap here.

Quick Start for Users

You can visit the hosted version at agnai.chat

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:

Using Docker

  1. Clone the project
  2. With MongoDB: docker compose -p agnai -f self-host.docker-compose.yml up -d
  3. Without MongoDB: docker run -dt --restart=always -p 3001:3001 agnaistic:latest
    • -dt Run the container detached
    • --restart=always Restart at start up or if the server crashes
    • -p 3001:3001 Expose port 3001. Access the app at http://localhost:3001

Manually

  1. Install Node.js
  2. Install MongoDB Optional
    • The database is optional. Agnaistic will run in anonymous-only mode if there is no database available.
  3. Download the project: git clone https://github.com/luminai-companion/agn-ai or download it
  4. From inside the cloned/unpacked folder in your terminal/console:
    • npm install
    • Build and run the project in watch mode:
      • Mac/Linux: npm run start
      • Windows: npm run start:win
    • Build and run the project with Local Tunnel:
      • Mac/Linux: npm run start:public
      • Windows: npm run start:public:win

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
  • AI Services: Transparently use a variety of AI models and services to converse with
    • Initial AI services: Kobold, AI Horde, and Novel
  • Supporting additional AI services 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

Recommended Development Tooling

I'd highly recommend using VSCode with the following extensions:

  • Prettier - Code formatter: For auto-formatting
  • Tailwind CSS Intellisense: For auto-completion and intellisense with Tailwind CSS classes
  • And adding "editor.formatOnSave": true to your VSCode settings.json to auto-format with Prettier

When using pnpm start, the Node.JS server is run using --inspect. This means you can use various Inspector Clients for debugging.

Tech Stack

The important parts of the stack are:

Quick Start

If you have Node and pnpm installed and working, you can start the development server with:

# Install dependencies
> pnpm install --lockfile

# Run MongoDB using Docker
> pnpm run up

# Start the frontend, backend, and python service
# Mac/Linux
> pnpm start

# Windows
> pnpm start:win

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:

# auto-fixes any style problems
$ pnpm run format:fix

# runs the TypeScript compiler so any type errors will be shown
$ pnpm run typecheck

agn-ai's People

Contributors

0x000011b avatar ahme-dev avatar alpindale avatar cncanon1 avatar ewof avatar gramedcart avatar sceuick avatar silver-f0x avatar teargosling avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.