Faisal Amir 2394c13065
ui: standalone UIKit and refactor (#557)
* Eslint import order

* Initial Uikit

* Rename file with camelCase

* Remove unused code

* Remove unused code

* Set position traficlight mac

* Grouping Ribbon, Topbar and Bottombar as layout

* Added image brand

* Moving feature toggle into context folder

* Fix active state of setting menu

* Cleanup downloadModel atom helper

* Cleanup useGetConfigureModel

* Added wave animation

* Create useMainViewState intead of import helper atom

* Remove unused code

* Take a back switch ui

* Toggle using switch component

* Add dynamic primary color

* Cleanup import

* Added uikit scroll area

* Add best practice form

* Added toaster container

* Fix loader container

* Add hooks useDownloadState

* Added tooltip on ribbon menu

* Added case user multiple download model

* Adjust input style with bigger ring

* Restyle my model screen

* Replace useStartStop model with useActiveModel

* Import icon using Icon name

* Fix missing login loading start and stop model

* WIP integrate with cmdk

* Move layout search bar on middle of app

* Added function cancel download

* Cleanup model explore

* Cleanup unused code

* Move app version in bototmbar or footer

* WIP chat screen

* WIP chat screen

* Cleanup style and remove unsed code

* Added command for showing downloaded model

* Fix missing keyframe loader dot animation

* Conditional loader of plugin setting

* WIP history list message

* chore: rebase main

* Adding script ui into root package

* Fix different version react hooks form

* Add close toaster

* Added status model active or not on list of command

* Conditional showing info if user don't have a model

* Disabled toolbar chat when user not yet have convo

* chore: fix state

* fix: get resource atom

* Fix conditional bottom bar

* fix: model download state

* Fix font

* Improve icon my model

* Add toaster delete chat

* Remove test classname

* Fix scroll chat body

* Fix scrolling chat body

* chore: add message update

* Add uikit into depedencies on root package

* Update chat flow

* Fix hot reload ui changes

* Increate background color chat screen light mode

* Added visual conversation active state

* Added build:uikit on gh actions

* chore: attempt to fix CI

* fix: deps

* fix: tests

* chore: attempt to fix CI

---------

Co-authored-by: Louis <louis@jan.ai>
2023-11-07 21:27:11 +07:00
2023-11-06 06:46:21 +00:00
2023-11-06 13:46:01 +07:00
2023-10-30 23:20:10 +07:00
2023-11-03 16:15:54 +07:00
2023-10-30 23:20:10 +07:00
2023-10-30 23:20:10 +07:00
2023-10-25 08:24:02 +07:00
2023-11-06 13:46:01 +07:00

Jan - Personal AI

Project Cover

GitHub commit activity Github Last Commit Github Contributors GitHub closed issues Discord

Getting Started - Docs - Changelog - Bug reports - Discord

⚠️ Jan is currently in Development: Expect breaking changes and bugs!

Jan is a tool to build your own Personal AI, that runs privately on your personal computer.

Jan is free and open source, under the AGPLv3 license.

Jan runs on any hardware. From PCs to multi-GPU clusters, Jan supports universal architectures:

  • Nvidia GPUs (fast)
  • Apple M-series (fast)
  • Apple Intel
  • Linux Debian
  • Windows x64

Download Jan at https://jan.ai/

Demo

Video: Jan v0.3.0 on Mac Air M2, 16GB Ventura

Plugins

Jan supports core & 3rd party extensions:

  • LLM chat: Self-hosted Llama2 and LLMs
  • Model Manager: 1-click to install, swap, and delete models with HuggingFace integration
  • Storage: Optionally save conversation history and other data in SQLite
  • 3rd-party AIs: Connect to ChatGPT, Claude via API Key (in progress)
  • Cross device support: Mobile & Web support for custom shared servers (in progress)
  • File retrieval: User can chat with docs
  • Multi-user support: Share a single server across a team/friends (planned)
  • Compliance: Auditing and flagging features (planned)

Nitro (Jan's AI engine)

In the background, Jan runs Nitro, an open source, C++ inference engine. It runs various model formats (GGUF/TensorRT) on various hardware (Mac M1/M2/Intel, Windows, Linux, and datacenter-grade Nvidia GPUs) with optional GPU acceleration.

See the open source Nitro codebase at https://nitro.jan.ai.

Troubleshooting

As Jan is development mode, you might get stuck on a broken build.

To reset your installation:

  1. Delete Jan Application from /Applications

  2. Clear cache: rm -rf /Users/$(whoami)/Library/Application\ Support/jan-electron OR rm -rf /Users/$(whoami)/Library/Application\ Support/jan


Contributing

Contributions are welcome! Please read the CONTRIBUTING.md file

Pre-requisites

  • node >= 20.0.0
  • yarn >= 1.22.0

Instructions

Note: This instruction is tested on MacOS only.

  1. Clone the Repository:
   git clone https://github.com/janhq/jan
   git checkout DESIRED_BRANCH
   cd jan
  1. Install dependencies:
   yarn install

   # Build core module
   yarn build:core

   # Packing base plugins
   yarn build:plugins
  1. Run development and Using Jan Desktop

    yarn dev
    

    This will start the development server and open the desktop app. In this step, there are a few notification about installing base plugin, just click OK and Next to continue.

For production build

# Do step 1 and 2 in previous section
git clone https://github.com/janhq/jan
cd jan
yarn install

# Build core module
yarn build:core

# Package base plugins
yarn build:plugins

# Build the app
yarn build

This will build the app MacOS m1/m2 for production (with code signing already done) and put the result in dist folder.

Acknowledgements

Jan builds on top of other open-source projects:

Contact

  • Bugs & requests: file a Github ticket
  • For discussion: join our Discord here
  • For business inquiries: email hello@jan.ai
  • For jobs: please email hr@jan.ai
Description
Languages
TypeScript 54.9%
JavaScript 34.1%
Rust 8.6%
Python 1.5%
Shell 0.4%
Other 0.5%