* hackathon: Refactor Jan into an Electron app * chore: correct NextJS export output path * chore: build electron app for all production targets * fix: correct assetPrefix for production build * chore: preferences shortcut * chore: refactor * chore: refactor into ts * feature/#52-compile-plugin-with-webpack * chore: introduce renderer <=> plugins <=> main invocation * chore: suppress errors - deprecate graphql & next-auth * chore: data plugin functions * add llm support Signed-off-by: James <james@jan.ai> * chore: update plugin * chore: introduce data-plugin * chore: plugin invokes main with args and synchronously * chore: install db plugin should setup db * feature: Data Driver Plugin - Load conversations and messages from data plugin * chore: store text message sent * chore: shared core services * feature: inference service * chore: conversations ordering * adding model management service Signed-off-by: James <james@jan.ai> * chore: strict type * feature: abstract plugin preferences * chore: abstract plugin preference * Revert "chore: strict type" This reverts commit 9be188d827a0b2e081e9e04b192c323799de5bb5. * chore: base-plugin styling * feature: create and delete conversation * chore: fix plugin search & clean messages * chore: typing indicator * chore: refactor useSendChatMessage * chore: persists inserted id to in-memory messages * chore: search conversation history * add delete and download model (#189) Signed-off-by: James <james@jan.ai> Co-authored-by: James <james@jan.ai> * chore: add empty state for conversation list * chore: prompt missing extension function & fix app crashes * chore: prompt user to install required plugins * chore: add launch background * chore: relaunch app on model downloaded * Jan app add installation instruction (#191) Co-authored-by: Hien To <> * Chore: rename folder web-client to app (#192) * Chore: rename folder web-client to app --------- Co-authored-by: Hien To <> * revert: add pre-install package * add progress for downloading model Signed-off-by: James <james@jan.ai> * feature: production bundle * add download progress Signed-off-by: James <james@jan.ai> * chore: add new chat function * fix: electron asar unpack modules & dynamic import * chore: fix unpack * chore: fix dev pack * Add instruction to build dmg file to README.md * init model dynamically Signed-off-by: James <james@jan.ai> --------- Signed-off-by: James <james@jan.ai> Co-authored-by: James <james@jan.ai> Co-authored-by: NamH <NamNh0122@gmail.com> Co-authored-by: hiento09 <136591877+hiento09@users.noreply.github.com> Co-authored-by: Hien To <>
96 lines
3.1 KiB
Markdown
96 lines
3.1 KiB
Markdown
# App
|
|
|
|
Jan Desktop is an Electron application designed to allow users to interact with the Language Model (LLM) through chat or create art using Stable Diffusion.
|
|
|
|
## Features
|
|
|
|
- Chat with the Language Model: Engage in interactive conversations with the Language Model. Ask questions, seek information, or simply have a chat.
|
|
|
|
- Generate Art with Stable Diffusion: Utilize the power of Stable Diffusion to generate unique and captivating pieces of art. Experiment with various parameters to achieve desired results.
|
|
|
|
## Installation and Usage
|
|
|
|
### Pre-requisites
|
|
- node >= 20.0.0
|
|
- yarn >= 1.22.0
|
|
|
|
### Use as complete suite (in progress)
|
|
|
|
### For interactive development
|
|
|
|
Note: This instruction is tested on MacOS only.
|
|
|
|
1. **Clone the Repository:**
|
|
|
|
```
|
|
git clone https://github.com/janhq/jan
|
|
git checkout feature/hackathon-refactor-jan-into-electron-app
|
|
cd jan/app
|
|
```
|
|
|
|
2. **Install dependencies:**
|
|
|
|
```
|
|
yarn install
|
|
```
|
|
|
|
3. **Download Model and copy to userdata directory** (this is a hacky step, will be remove in future versions)
|
|
|
|
```
|
|
# Determining the path to save model with /Users/<username>/Library/Application Support/jan-web/
|
|
mkdir /Users/<username>/Library/Application Support/jan-web
|
|
|
|
# Now download the model to correct location by running command
|
|
wget -O /Users/<username>/Library/Application Support/jan-web/llama-2-7b-chat.gguf.q4_0.bin https://huggingface.co/TheBloke/Llama-2-7b-Chat-GGUF/resolve/main/llama-2-7b-chat.Q4_0.gguf
|
|
```
|
|
|
|
4. **Run development and Using Jan Desktop**
|
|
|
|
```
|
|
yarn electron:start
|
|
```
|
|
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.
|
|

|
|

|
|

|
|
|
|
After that, you can use Jan Desktop as normal.
|
|

|
|

|
|

|
|
|
|
### For production build
|
|
|
|
```bash
|
|
# Do step 1 and 2 in previous section
|
|
git clone https://github.com/janhq/jan
|
|
git checkout feature/hackathon-refactor-jan-into-electron-app
|
|
cd jan/app
|
|
yarn install
|
|
|
|
# Build the app
|
|
yarn electron:build:all
|
|
```
|
|
|
|
This will build the app MacOS m1/m2 for production (with code signing already done) and put the result in `dist` folder.
|
|
|
|
## Configuration
|
|
|
|
TO DO
|
|
|
|
## Dependencies
|
|
|
|
TO DO
|
|
|
|
## Contributing
|
|
|
|
Contributions are welcome! If you find a bug or have suggestions for improvements, feel free to open an issue or submit a pull request on the [GitHub repository](https://github.com/janhq/jan).
|
|
|
|
## License
|
|
|
|
This project is licensed under the Fair-code License - see the [License](https://faircode.io/#licenses) for more details.
|
|
|
|
---
|
|
|
|
Feel free to reach out [Discord](https://jan.ai/discord) if you have any questions or need further assistance. Happy coding with Jan Web and exploring the capabilities of the Language Model and Stable Diffusion! 🚀🎨🤖 |