Added personalities manipulation tools

This commit is contained in:
saloui 2023-06-08 08:58:02 +02:00
parent 0f8ae835da
commit 4dd666e54c
32 changed files with 241 additions and 99 deletions

View File

@ -18,7 +18,7 @@ jobs:
with:
context: .
push: false
tags: gpt4all-ui:latest
tags: lollms-webui:latest
lint:
runs-on: ubuntu-latest

View File

@ -24,7 +24,7 @@ jobs:
id: sync
uses: aormsby/Fork-Sync-With-Upstream-action@v3.4
with:
upstream_sync_repo: ParisNeo/Gpt4All-ui
upstream_sync_repo: ParisNeo/lollms-webui
upstream_sync_branch: main
target_sync_branch: main
target_repo_token: ${{ secrets.GITHUB_TOKEN }} # automatically generated, no need to set

View File

@ -1,4 +1,4 @@
# Contributing to GPT4All-ui
# Contributing to lollms-webui
Thank you for your interest in contributing to [Your Repository Name]! We appreciate your efforts to help make our project better.
@ -30,4 +30,4 @@ To submit a contribution, please follow these steps:
Once your pull request is approved, your changes will be merged into the main repository.
Thank you for your contributions to GPT4All-ui!
Thank you for your contributions to lollms-webui!

View File

@ -1,9 +1,9 @@
# Gpt4All Web UI
![GitHub license](https://img.shields.io/github/license/nomic-ai/GPT4All-ui)
![GitHub issues](https://img.shields.io/github/issues/nomic-ai/GPT4All-ui)
![GitHub stars](https://img.shields.io/github/stars/nomic-ai/GPT4All-ui)
![GitHub forks](https://img.shields.io/github/forks/nomic-ai/GPT4All-ui)
![GitHub license](https://img.shields.io/github/license/nomic-ai/lollms-webui)
![GitHub issues](https://img.shields.io/github/issues/nomic-ai/lollms-webui)
![GitHub stars](https://img.shields.io/github/stars/nomic-ai/lollms-webui)
![GitHub forks](https://img.shields.io/github/forks/nomic-ai/lollms-webui)
[![Discord](https://img.shields.io/discord/1092918764925882418?color=7289da&label=Discord&logo=discord&logoColor=ffffff)](https://discord.gg/4rR282WJb6)
[![Follow me on Twitter](https://img.shields.io/twitter/follow/SpaceNerduino?style=social)](https://twitter.com/SpaceNerduino)
[![Follow Me on YouTube](https://img.shields.io/badge/Follow%20Me%20on-YouTube-red?style=flat&logo=youtube)](https://www.youtube.com/user/Parisneo)
@ -58,8 +58,8 @@ If you use conda, you can create a virtual environment and install the required
First clone the project or download the zip file and unzip it:
```bash
git clone https://github.com/ParisNeo/gpt4all-ui.git
cd gpt4all-ui
git clone https://github.com/ParisNeo/lollms-webui.git
cd lollms-webui
```
Now create a new conda environment, activate it and install requirements
@ -100,7 +100,7 @@ Once the app is running, you can go to the application front link displayed in t
Contributions to GPT4ALL WebUI are welcome! If you encounter any issues, have ideas for improvements, or want to contribute code, please open an issue or submit a pull request on the GitHub repository.
# License
This project is licensed under the Apache 2.0 License. You are free to use this software commercially, build upon it, and integrate it into your own projects. See the [LICENSE](https://github.com/ParisNeo/GPT4All-ui/blob/main/LICENSE) file for details.
This project is licensed under the Apache 2.0 License. You are free to use this software commercially, build upon it, and integrate it into your own projects. See the [LICENSE](https://github.com/ParisNeo/lollms-webui/blob/main/LICENSE) file for details.
# Acknowledgements
Please note that GPT4ALL WebUI is not affiliated with the GPT4All application developed by Nomic AI. The latter is a separate professional application available at gpt4all.io, which has its own unique features and community.

View File

@ -1,14 +1,15 @@
######
# Project : GPT4ALL-UI
# Project : lollms-webui
# File : api.py
# Author : ParisNeo with the help of the community
# Supported by Nomic-AI
# license : Apache 2.0
# Description :
# A simple api to communicate with gpt4all-ui and its models.
# A simple api to communicate with lollms-webui and its models.
######
from datetime import datetime
from api.db import DiscussionsDB
from api.helpers import compare_lists
from pathlib import Path
import importlib
from lollms import AIPersonality, lollms_path, MSG_TYPE
@ -22,7 +23,7 @@ import traceback
import sys
__author__ = "parisneo"
__github__ = "https://github.com/ParisNeo/gpt4all-ui"
__github__ = "https://github.com/ParisNeo/lollms-webui"
__copyright__ = "Copyright 2023, "
__license__ = "Apache 2.0"
@ -110,7 +111,7 @@ class ModelProcess:
'status': 'succeeded',
'binding_status':True,
'model_status':True,
'personality_status':True,
'personalities_status':True,
'errors':[]
}
@ -245,44 +246,58 @@ class ModelProcess:
self._set_config_result['binding_status'] ='failed'
self._set_config_result['errors'].append(f"couldn't build binding:{ex}")
def rebuild_personality(self):
try:
personality = self.config['personalities'][self.config['default_personality_id']]
print(f" ******************* Building Personality {personality} from main Process *************************")
personality_path = lollms_path/f"personalities_zoo/{personality}"
personality = AIPersonality(personality_path, run_scripts=False)
print(f" ************ Personality {personality.name} is ready (Main process) ***************************")
except Exception as ex:
print(f"Personality file not found or is corrupted ({personality_path}).\nPlease verify that the personality you have selected exists or select another personality. Some updates may lead to change in personality name or category, so check the personality selection in settings to be sure.")
if self.config["debug"]:
print(ex)
personality = AIPersonality()
def rebuild_personalities(self):
mounted_personalities=[]
print(f" ******************* Building mounted Personalities from main Process *************************")
for personality in self.config['personalities']:
try:
print(f" {personality}")
personality_path = lollms_path/f"personalities_zoo/{personality}"
personality = AIPersonality(personality_path, run_scripts=False)
mounted_personalities.append(personality)
except Exception as ex:
print(f"Personality file not found or is corrupted ({personality_path}).\nPlease verify that the personality you have selected exists or select another personality. Some updates may lead to change in personality name or category, so check the personality selection in settings to be sure.")
if self.config["debug"]:
print(ex)
personality = AIPersonality()
return personality
print(f" ************ Personalities mounted (Main process) ***************************")
return mounted_personalities
def _rebuild_personality(self):
try:
self.reset_config_result()
personality = self.config['personalities'][self.config['default_personality_id']]
print(f" ******************* Building Personality {personality} from generation Process *************************")
personality_path = lollms_path/f"personalities_zoo/{personality}"
self.personality = AIPersonality(personality_path)
print(f" ************ Personality {self.personality.name} is ready (generation process) ***************************")
except Exception as ex:
print(f"Personality file not found or is corrupted ({personality_path}).")
print(f"Please verify that the personality you have selected exists or select another personality. Some updates may lead to change in personality name or category, so check the personality selection in settings to be sure.")
print(f"Exception: {ex}")
if self.config["debug"]:
print(ex)
self.personality = AIPersonality()
def _rebuild_personalities(self):
self.mounted_personalities=[]
failed_personalities=[]
self.reset_config_result()
print(f" ******************* Building mounted Personalities from generation Process *************************")
for personality in self.config['personalities']:
try:
print(f" {personality}")
personality_path = lollms_path/f"personalities_zoo/{personality}"
personality = AIPersonality(personality_path, run_scripts=True)
self.mounted_personalities.append(personality)
except Exception as ex:
print(f"Personality file not found or is corrupted ({personality_path}).\nPlease verify that the personality you have selected exists or select another personality. Some updates may lead to change in personality name or category, so check the personality selection in settings to be sure.")
if self.config["debug"]:
print(ex)
personality = AIPersonality()
failed_personalities.append(personality_path)
self._set_config_result['errors'].append(f"couldn't build personalities:{ex}")
print(f" ************ Personalities mounted (Generation process) ***************************")
if len(failed_personalities)==len(self.config['personalities']):
self._set_config_result['status'] ='failed'
self._set_config_result['binding_status'] ='failed'
self._set_config_result['errors'].append(f"couldn't build binding:{ex}")
self._set_config_result['personalities_status'] ='failed'
elif len(failed_personalities)>0:
self._set_config_result['status'] ='semi_failed'
self._set_config_result['personalities_status'] ='semi_failed'
self.personality = self.mounted_personalities[self.config['active_personality_id']]
print("Personality set successfully")
def _run(self):
self._rebuild_model()
self._rebuild_personality()
self._rebuild_personalities()
self.check_set_config_thread = threading.Thread(target=self._check_set_config_queue, args=())
print("Launching config verification thread")
self.check_set_config_thread.start()
@ -438,8 +453,9 @@ class ModelProcess:
self._rebuild_model()
# verify that the personality is the same
if self.config["personalities"][-1]!=bk_cfg["personalities"][-1]:
self._rebuild_personality()
if not compare_lists(self.config["personalities"], bk_cfg["personalities"]):
self._rebuild_personalities()
class LoLLMsAPPI():
@ -450,7 +466,8 @@ class LoLLMsAPPI():
self.config = config
self.binding = self.process.rebuild_binding(self.config)
self.personality = self.process.rebuild_personality()
self.personalities = self.process.rebuild_personalities()
self.personality = self.personalities[self.config["active_personality_id"]]
if config["debug"]:
print(print(f"{self.personality}"))
self.config_file_path = config_file_path

View File

@ -1,11 +1,11 @@
######
# Project : GPT4ALL-UI
# Project : lollms-webui
# File : binding.py
# Author : ParisNeo with the help of the community
# Supported by Nomic-AI
# license : Apache 2.0
# Description :
# This is an interface class for GPT4All-ui bindings.
# This is an interface class for lollms-webui bindings.
######
from pathlib import Path
from typing import Callable
@ -14,7 +14,7 @@ import yaml
import sys
__author__ = "parisneo"
__github__ = "https://github.com/ParisNeo/gpt4all-ui"
__github__ = "https://github.com/ParisNeo/lollms-webui"
__copyright__ = "Copyright 2023, "
__license__ = "Apache 2.0"

View File

@ -1,5 +1,5 @@
######
# Project : GPT4ALL-UI
# Project : lollms-webui
# File : config.py
# Author : ParisNeo with the help of the community
# Supported by Nomic-AI
@ -12,7 +12,7 @@
import yaml
__author__ = "parisneo"
__github__ = "https://github.com/ParisNeo/gpt4all-ui"
__github__ = "https://github.com/ParisNeo/lollms-webui"
__copyright__ = "Copyright 2023, "
__license__ = "Apache 2.0"

View File

@ -2,7 +2,7 @@
import sqlite3
__author__ = "parisneo"
__github__ = "https://github.com/ParisNeo/gpt4all-ui"
__github__ = "https://github.com/ParisNeo/lollms-webui"
__copyright__ = "Copyright 2023, "
__license__ = "Apache 2.0"

View File

@ -6,7 +6,7 @@
from config import load_config, save_config
__author__ = "parisneo"
__github__ = "https://github.com/ParisNeo/gpt4all-ui"
__github__ = "https://github.com/ParisNeo/lollms-webui"
__copyright__ = "Copyright 2023, "
__license__ = "Apache 2.0"

11
api/helpers.py Normal file
View File

@ -0,0 +1,11 @@
__author__ = "parisneo"
__github__ = "https://github.com/ParisNeo/lollms-webui"
__copyright__ = "Copyright 2023, "
__license__ = "Apache 2.0"
def compare_lists(list1, list2):
if len(list1) != len(list2):
return False
else:
return list1 == list2

60
app.py
View File

@ -1,5 +1,5 @@
######
# Project : GPT4ALL-UI
# Project : lollms-webui
# Author : ParisNeo with the help of the community
# Supported by Nomic-AI
# license : Apache 2.0
@ -10,7 +10,7 @@
######
__author__ = "parisneo"
__github__ = "https://github.com/ParisNeo/gpt4all-ui"
__github__ = "https://github.com/ParisNeo/lollms-webui"
__copyright__ = "Copyright 2023, "
__license__ = "Apache 2.0"
@ -25,7 +25,9 @@ from tqdm import tqdm
import subprocess
import signal
from lollms import AIPersonality, lollms_path, MSG_TYPE
from lollms.console import ASCIIColors
from api.db import DiscussionsDB, Discussion
from api.helpers import compare_lists
from flask import (
Flask,
Response,
@ -77,9 +79,9 @@ class LoLLMsWebUI(LoLLMsAPPI):
app.template_folder = "web/dist"
self.personality_language= config["personalities"][config["default_personality_id"]].split("/")[0]
self.personality_category= config["personalities"][config["default_personality_id"]].split("/")[1]
self.personality_name= config["personalities"][config["default_personality_id"]].split("/")[2]
self.personality_language= config["personalities"][config["active_personality_id"]].split("/")[0]
self.personality_category= config["personalities"][config["active_personality_id"]].split("/")[1]
self.personality_name= config["personalities"][config["active_personality_id"]].split("/")[2]
# =========================================================================================
# Endpoints
@ -87,6 +89,9 @@ class LoLLMsWebUI(LoLLMsAPPI):
self.add_endpoint("/add_reference_to_local_model", "add_reference_to_local_model", self.add_reference_to_local_model, methods=["POST"])
self.add_endpoint("/send_file", "send_file", self.send_file, methods=["POST"])
self.add_endpoint("/mount_personality", "mount_personality", self.mount_personality, methods=["POST"])
self.add_endpoint("/unmount_personality", "unmount_personality", self.unmount_personality, methods=["POST"])
self.add_endpoint("/select_personality", "select_personality", self.select_personality, methods=["POST"])
self.add_endpoint(
@ -669,6 +674,51 @@ class LoLLMsWebUI(LoLLMsAPPI):
else:
return jsonify({"status": True})
def mount_personality(self):
language = request.files['language']
category = request.files['category']
name = request.files['name']
package_path = f"{language}/{category}/{name}"
package_full_path = lollms_path/"personalities_zoo"/package_path
config_file = package_full_path / "config.yaml"
if not config_file.exists():
self.config["personalities"].append()
self.personalities = self.process.rebuild_personalities()
self.personality = self.personalities[self.config["active_personality_id"]]
self.apply_settings()
return jsonify({"status": True})
else:
return jsonify({"status": False, "error":"Personality not found"})
def unmount_personality(self):
language = request.files['language']
category = request.files['category']
name = request.files['name']
try:
index = self.config["personalities"].index(f"{language}/{category}/{name}")
self.config["personalities"].remove(f"{language}/{category}/{name}")
if self.config["active_personality_id"]>=index:
self.config["active_personality_id"]=0
self.personalities = self.process.rebuild_personalities()
self.personality = self.personalities[self.config["active_personality_id"]]
self.apply_settings()
return jsonify({"status": True})
except:
return jsonify({"status": False, "error":"Couldn't unmount personality"})
def select_personality(self):
id = request.files['id']
if id<len(self.config["personalities"]):
self.config["active_personality_id"]=id
self.personality = self.personalities[self.config["active_personality_id"]]
self.apply_settings()
return jsonify({"status": True})
else:
return jsonify({"status": False, "error":"Invalid ID"})
def send_file(self):
file = request.files['file']
Path("uploads").mkdir(exist_ok=True, parents=True)

View File

@ -1,5 +1,5 @@
# =================== Lord Of Large Language Models Configuration file ===========================
version: 6
version: 7
binding_name: llama_cpp_official
model_name: Wizard-Vicuna-7B-Uncensored.ggmlv3.q4_0.bin
@ -21,7 +21,7 @@ n_threads: 8
#Personality parameters
personalities: ["english/generic/lollms"]
default_personality_id: 0
active_personality_id: 0
override_personality_model_parameters: false #if true the personality parameters are overriden by those of the configuration (may affect personality behaviour)
user_name: user

View File

@ -476,3 +476,67 @@ The Flask backend API exposes various endpoints to interact with the application
**Output**: Imports the specified discussions.
## Active personalities manipulation endpoints
### Mount Personality
**Endpoint:** `/mount_personality`
**Method:** POST
**Parameters:**
- `language` (file): The language file associated with the personality.
- `category` (file): The category file associated with the personality.
- `name` (file): The name file associated with the personality.
**Description:**
This endpoint mounts a personality by adding it to the list of configured personalities and setting it as the active personality. The personality is specified by providing the language, category, and name files. The endpoint checks if the personality's configuration file exists and, if not, adds the personality to the configuration. After mounting the personality, the settings are applied.
**Returns:**
- If the personality is mounted successfully:
- `status` (boolean): `True`
- If the personality is not found:
- `status` (boolean): `False`
- `error` (string): "Personality not found"
### Unmount Personality
**Endpoint:** `/unmount_personality`
**Method:** POST
**Parameters:**
- `language` (file): The language file associated with the personality.
- `category` (file): The category file associated with the personality.
- `name` (file): The name file associated with the personality.
**Description:**
This endpoint unmounts a personality by removing it from the list of configured personalities. The personality is specified by providing the language, category, and name files. If the active personality is removed, the active personality ID is reset to `0`. After unmounting the personality, the settings are applied.
**Returns:**
- If the personality is unmounted successfully:
- `status` (boolean): `True`
- If the personality couldn't be unmounted:
- `status` (boolean): `False`
- `error` (string): "Couldn't unmount personality"
### Select Personality
**Endpoint:** `/select_personality`
**Method:** POST
**Parameters:**
- `id` (file): The ID of the personality to select.
**Description:**
This endpoint selects a personality from the list of configured personalities based on the provided ID. The ID represents the index of the personality in the list. After selecting the personality, the settings are applied.
**Returns:**
- If the personality is selected successfully:
- `status` (boolean): `True`
- If the ID is invalid:
- `status` (boolean): `False`
- `error` (string): "Invalid ID"

View File

@ -1,4 +1,4 @@
# GPT4ALL-UI Web interface VUE3 development log, todo's and more
# lollms-webui Web interface VUE3 development log, todo's and more
## Installation for development

View File

@ -8,7 +8,7 @@ Welcome to the GPT4ALL WebUI tutorial! In this tutorial, we will walk you throug
2. If you are using Conda, you can create a Conda virtual environment, install the dependencies mentioned in the `requirements.txt` file, and run the application using `python app.py`. For regular Python installations, follow the next steps.
## Download and Launch the Tool
1. Visit the GitHub repository page at [github.com/ParisNeo/gpt4all-ui](https://github.com/ParisNeo/gpt4all-ui).
1. Visit the GitHub repository page at [github.com/ParisNeo/lollms-webui](https://github.com/ParisNeo/lollms-webui).
2. Click on the "Latest Release" button.
3. Depending on your platform, download either `webui.bat` for Windows or `webui.sh` for Linux.
4. Choose a folder on your system to install the application launcher. For example, you can create a folder named `gpt4all-webui` in your `ai` directory.

View File

@ -19,7 +19,7 @@
2. Open Terminal/PowerShell and navigate to a folder you want to clone this repository.
```bash
git clone https://github.com/ParisNeo/gpt4all-ui.git
git clone https://github.com/ParisNeo/lollms-webui.git
```
4. Install/run application by double clicking on `webui.bat` file from Windows explorer as normal user.
@ -44,11 +44,11 @@ sudo pacman -S curl
```
2. Open terminal/console copy and paste this command and press enter:
```
mkdir -p ~/gpt4all-ui && curl -L https://raw.githubusercontent.com/nomic-ai/gpt4all-ui/main/webui.sh -o ~/gpt4all-ui/webui.sh && chmod +x ~/gpt4all-ui/webui.sh && cd ~/gpt4all-ui && ./webui.sh
mkdir -p ~/lollms-webui && curl -L https://raw.githubusercontent.com/nomic-ai/lollms-webui/main/webui.sh -o ~/lollms-webui/webui.sh && chmod +x ~/lollms-webui/webui.sh && cd ~/lollms-webui && ./webui.sh
```
> **Note**
>
> This command creates new directory `/gpt4all-ui/` in your /home/ direcory, downloads a file [webui.sh](https://raw.githubusercontent.com/nomic-ai/gpt4all-ui/main/webui.sh), makes file executable and executes webui.sh that downloads and installs everything that is needed.
> This command creates new directory `/lollms-webui/` in your /home/ direcory, downloads a file [webui.sh](https://raw.githubusercontent.com/nomic-ai/lollms-webui/main/webui.sh), makes file executable and executes webui.sh that downloads and installs everything that is needed.
3. Follow instructions on screen until it launches webui.
4. To relaunch application:
@ -87,10 +87,10 @@ sudo pacman -S curl git python3
2. Clone repository:
```bash
git clone https://github.com/ParisNeo/gpt4all-ui.git
git clone https://github.com/ParisNeo/lollms-webui.git
```
```bash
cd gpt4all-ui
cd lollms-webui
```
3. Install/run application:
@ -116,10 +116,10 @@ brew install git python3
3. Clone repository:
```bash
git clone https://github.com/ParisNeo/gpt4all-ui.git
git clone https://github.com/ParisNeo/lollms-webui.git
```
```bash
cd gpt4all-ui
cd lollms-webui
```
4. Install/run application:

View File

@ -21,7 +21,7 @@ Before installing this tool you need to install python 3.10 or higher as well as
Now let's cut to the chace. Let's start by installing the tool.
First, go to the github repository page at github.com/ParisNeo/gpt4all-ui then press the latest release button. Depending on your platform download webui.bat for windows or webui.sh for linux.
First, go to the github repository page at github.com/ParisNeo/lollms-webui then press the latest release button. Depending on your platform download webui.bat for windows or webui.sh for linux.
We call this file, the application launcher. Make sure you install the launcher in a folder you choose. For example I'll put it in my ai folder at gpt4all-webui.

2
package-lock.json generated
View File

@ -1,5 +1,5 @@
{
"name": "gpt4all-ui",
"name": "lollms-webui",
"lockfileVersion": 3,
"requires": true,
"packages": {}

View File

@ -23,7 +23,7 @@ setuptools.setup(
description="A web ui for running chat models with different bindings. Supports multiple personalities and extensions.",
long_description=long_description,
long_description_content_type="text/markdown",
url="https://github.com/ParisNeo/gpt4all-ui",
url="https://github.com/ParisNeo/lollms-webui",
packages=setuptools.find_packages(),
install_requires=requirements,
extras_require={"dev": requirements_dev},

View File

@ -1,4 +1,4 @@
// Project : GPT4ALL-ui
// Project : lollms-webui
// Author : ParisNeo
// Description :
// All websocket stuff can be found here.

View File

@ -4,7 +4,7 @@
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Help | GPT4All-ui</title>
<title>Help | lollms-webui</title>
<!-- Include Tailwind CSS -->
<link rel="stylesheet" href="{{ url_for('static', filename='css/utilities.min.css') }}">
<link rel="stylesheet" href="{{ url_for('static', filename='css/tailwind.min.css') }}">
@ -17,7 +17,7 @@
<body>
<!-- Navbar -->
<nav class="flex justify-between items-center bg-gray-200 dark:bg-gray-900 text-black dark:text-white p-4">
<a href="/" class="text-lg font-bold">GPT4All-ui</a>
<a href="/" class="text-lg font-bold">lollms-webui</a>
<!-- Dropdown menu -->
<div class="relative">
<button class="flex items-center text-lg font-bold">
@ -44,7 +44,7 @@
<ul class="list-disc list-inside mb-4">
<li>@ParisNeo : Creator of the project and Lead developer</li>
<li>@AndriyMulyar : CEO of Nomic-ai who offered to link the project as their official ui for GPT4All</li>
<li><a href="https://github.com/ParisNeo/gpt4all-ui/graphs/contributors" target="_blank" class="text-blue-900 dark:text-blue-600">A number of very talented open-source developers without whom this project wouldn't be as awesome as it is.</a></li>
<li><a href="https://github.com/ParisNeo/lollms-webui/graphs/contributors" target="_blank" class="text-blue-900 dark:text-blue-600">A number of very talented open-source developers without whom this project wouldn't be as awesome as it is.</a></li>
<li> We also appreciate the support of the users of this tool who have helped us in various ways.</li>
</ul>

File diff suppressed because one or more lines are too long

4
web/package-lock.json generated
View File

@ -1,11 +1,11 @@
{
"name": "gpt4all-ui-vue",
"name": "lollms-webui-vue",
"version": "0.0.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "gpt4all-ui-vue",
"name": "lollms-webui-vue",
"version": "0.0.0",
"dependencies": {
"axios": "^1.3.6",

View File

@ -1,5 +1,5 @@
{
"name": "gpt4all-ui-vue",
"name": "lollms-webui-vue",
"version": "0.0.0",
"private": true,
"scripts": {

View File

@ -2,7 +2,7 @@
<div class="sticky bottom-0 p-6 bg-bg-light-tone dark:bg-bg-dark-tone shadow-inner ">
<!-- <hr class="container flex flex-col sm:flex-row item-center py-0 h-0 border-bg-dark dark:border-bg-light"> -->
<div class="flex justify-center flex-row items-center gap-2 p-1 ">
Visit <a class=" hover:text-primary duration-150" href="https://github.com/ParisNeo/gpt4all-ui"
Visit <a class=" hover:text-primary duration-150" href="https://github.com/ParisNeo/lollms-webui"
target="_blank">github repository</a> to learn more
</div>

View File

@ -5,14 +5,14 @@
<!-- LOGO -->
<RouterLink :to="{ name: 'discussions' }">
<div class="flex items-center gap-3 flex-1">
<img class="w-12 hover:scale-95 duration-150 " title="GPT4ALL-UI" src="@/assets/logo.svg" alt="Logo">
<p class="text-2xl ">GPT4ALL-UI</p>
<img class="w-12 hover:scale-95 duration-150 " title="lollms-webui" src="@/assets/logo.svg" alt="Logo">
<p class="text-2xl ">lollms-webui</p>
</div>
</RouterLink>
<!-- GITHUB AND THEME BUTTONS -->
<div class="flex gap-3 flex-1 items-center justify-end">
<a href="https://github.com/ParisNeo/gpt4all-ui" target="_blank">
<a href="https://github.com/ParisNeo/lollms-webui" target="_blank">
<div class="text-2xl hover:text-primary duration-150" title="Visit repository page">
<i data-feather="github"></i>

View File

@ -4,8 +4,8 @@
<div class="flex flex-col text-center items-center">
<div class="flex items-center gap-3 text-5xl drop-shadow-md align-middle pt-24 ">
<img class="w-24 animate-bounce" title="GPT4ALL-UI" src="@/assets/logo.svg" alt="Logo">
<p class=" ">GPT4ALL-UI</p>
<img class="w-24 animate-bounce" title="lollms-webui" src="@/assets/logo.svg" alt="Logo">
<p class=" ">lollms-webui</p>
</div>

View File

@ -1,4 +1,4 @@
// Project : GPT4ALL-ui
// Project : lollms-webui
// Author : ParisNeo
// Description :
// All websocket stuff can be found here.

View File

@ -18,7 +18,7 @@
<div class="mt-8">
<h2 class="text-2xl font-bold mb-2">Credits</h2>
<p class="mb-4">This project is developed by <span class="font-bold">ParisNeo</span> With help from the community..</p>
<p class="mb-4"><span class="font-bold"><a href="https://github.com/ParisNeo/gpt4all-ui/graphs/contributors">Check out the full list of developers here and show them some love.</a></span></p>
<p class="mb-4"><span class="font-bold"><a href="https://github.com/ParisNeo/lollms-webui/graphs/contributors">Check out the full list of developers here and show them some love.</a></span></p>
<p>Check out the project on <a class="text-blue-500" :href="githubLink" target="_blank" rel="noopener noreferrer">GitHub</a>.</p>
</div>
</div>
@ -32,7 +32,7 @@
data() {
return {
faqs: [], // Array to store the loaded FAQs
githubLink: 'https://github.com/ParisNeo/gpt4all-ui', // Replace with your project's GitHub link
githubLink: 'https://github.com/ParisNeo/lollms-webui', // Replace with your project's GitHub link
};
},
mounted() {

View File

@ -720,7 +720,7 @@ export default {
this.settingsChanged = true
const res = this.update_setting('personality_folder', pers.personality.folder, () => {
this.$refs.toast.showToast("Selected personality:\n" + pers.personality.name, 4, true)
this.configFile.personalities[configFile.default_personality_id] = pers.personality.language + "/" + pers.personality.category + "/" + pers.personality.name
this.configFile.personalities[configFile.active_personality_id] = pers.personality.language + "/" + pers.personality.category + "/" + pers.personality.name
})
}
nextTick(() => {

View File

@ -116,7 +116,7 @@ if exist GPT4All (
) else (
echo Cloning repository...
rem Clone the Git repository into a temporary directory
git clone https://github.com/ParisNeo/gpt4all-ui.git ./GPT4All
git clone https://github.com/ParisNeo/lollms-webui.git ./GPT4All
cd GPT4All
echo Pulling latest changes
git pull

View File

@ -62,7 +62,7 @@ if ping -q -c 1 google.com >/dev/null 2>&1; then
else
echo Cloning repository...
rem Clone the Git repository into a temporary directory
git clone https://github.com/ParisNeo/gpt4all-ui.git ./GPT4All
git clone https://github.com/ParisNeo/lollms-webui.git ./GPT4All
cd GPT4All
fi
fi