feat: add nix flake
This commit is contained in:
parent
ae761f6e7b
commit
1587918ff5
76
0001-remove-gpt4all-support.patch
Normal file
76
0001-remove-gpt4all-support.patch
Normal file
@ -0,0 +1,76 @@
|
||||
diff --git a/src/main.py b/src/main.py
|
||||
index 79f5401..f82cd0f 100644
|
||||
--- a/src/main.py
|
||||
+++ b/src/main.py
|
||||
@@ -35,7 +35,6 @@ from .constants import app_id
|
||||
from .providers import PROVIDERS
|
||||
|
||||
import json
|
||||
-from gpt4all import GPT4All
|
||||
import os
|
||||
|
||||
user_config_dir = os.environ.get(
|
||||
@@ -306,15 +305,7 @@ class BavarderApplication(Adw.Application):
|
||||
def setup_chat(self):
|
||||
if not self.models:
|
||||
self.list_models()
|
||||
-
|
||||
- if not self.models:
|
||||
- return False
|
||||
- else:
|
||||
- if self.model is None:
|
||||
- if self.model_name not in self.models:
|
||||
- self.download_model(self.model_name)
|
||||
- self.model = GPT4All(self.model_name, model_path=model_path)
|
||||
- return True
|
||||
+ return bool(self.models)
|
||||
|
||||
def download_model(self, model=None):
|
||||
if model:
|
||||
diff --git a/src/views/preferences_window.py b/src/views/preferences_window.py
|
||||
index e057aff..73e4ea3 100644
|
||||
--- a/src/views/preferences_window.py
|
||||
+++ b/src/views/preferences_window.py
|
||||
@@ -5,8 +5,6 @@ from bavarder.providers.provider_item import Provider
|
||||
from bavarder.widgets.model_item import Model
|
||||
from bavarder.widgets.download_row import DownloadRow
|
||||
|
||||
-from gpt4all import GPT4All
|
||||
-
|
||||
@Gtk.Template(resource_path=f"{rootdir}/ui/preferences_window.ui")
|
||||
class PreferencesWindow(Adw.PreferencesWindow):
|
||||
__gtype_name__ = "Preferences"
|
||||
@@ -34,7 +32,6 @@ class PreferencesWindow(Adw.PreferencesWindow):
|
||||
def setup(self):
|
||||
self.setup_signals()
|
||||
self.load_providers()
|
||||
- self.load_models()
|
||||
|
||||
self.bot_name.set_text(self.app.bot_name)
|
||||
self.user_name.set_text(self.app.user_name)
|
||||
@@ -47,25 +44,6 @@ class PreferencesWindow(Adw.PreferencesWindow):
|
||||
p = Provider(self.app, self, provider)
|
||||
self.provider_group.add(p)
|
||||
|
||||
- def load_models(self):
|
||||
- self.general_page.remove(self.model_group)
|
||||
- self.model_group = Adw.PreferencesGroup()
|
||||
- self.model_group.set_title(_("Models"))
|
||||
-
|
||||
- for model in self.app.models:
|
||||
- p = Model(self.app, self, model)
|
||||
- self.model_group.add(p)
|
||||
- else:
|
||||
- self.no_models_available = Adw.ExpanderRow()
|
||||
- self.no_models_available.set_title(_("List of available models"))
|
||||
-
|
||||
- for model in GPT4All.list_models():
|
||||
- self.no_models_available.add_row(DownloadRow(self.app, self, model))
|
||||
-
|
||||
- self.model_group.add(self.no_models_available)
|
||||
-
|
||||
- self.general_page.add(self.model_group)
|
||||
-
|
||||
@Gtk.Template.Callback()
|
||||
def clear_all_chats_clicked(self, widget, *args):
|
||||
dialog = Adw.MessageDialog(
|
61
flake.lock
generated
Normal file
61
flake.lock
generated
Normal file
@ -0,0 +1,61 @@
|
||||
{
|
||||
"nodes": {
|
||||
"flake-utils": {
|
||||
"inputs": {
|
||||
"systems": "systems"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1705309234,
|
||||
"narHash": "sha256-uNRRNRKmJyCRC/8y1RqBkqWBLM034y4qN7EprSdmgyA=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "1ef2e671c3b0c19053962c07dbda38332dcebf26",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1708751719,
|
||||
"narHash": "sha256-0uWOKSpXJXmXswOvDM5Vk3blB74apFB6rNGWV5IjoN0=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "f63ce824cd2f036216eb5f637dfef31e1a03ee89",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixpkgs-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils",
|
||||
"nixpkgs": "nixpkgs"
|
||||
}
|
||||
},
|
||||
"systems": {
|
||||
"locked": {
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"type": "github"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
"version": 7
|
||||
}
|
73
flake.nix
Normal file
73
flake.nix
Normal file
@ -0,0 +1,73 @@
|
||||
{
|
||||
description = "Bavarder";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
|
||||
flake-utils.url = "github:numtide/flake-utils";
|
||||
};
|
||||
|
||||
outputs = {
|
||||
self,
|
||||
nixpkgs,
|
||||
flake-utils,
|
||||
...
|
||||
}: let
|
||||
systems = ["aarch64-linux" "x86_64-linux"];
|
||||
in
|
||||
flake-utils.lib.eachSystem systems (
|
||||
system: let
|
||||
pkgs = nixpkgs.legacyPackages.${system};
|
||||
|
||||
bavarder = pkgs.python3Packages.buildPythonApplication rec {
|
||||
pname = "bavarder";
|
||||
version = self.rev or "dirty";
|
||||
pyproject = false;
|
||||
|
||||
src = ./.;
|
||||
|
||||
patches = [
|
||||
# Removes gpt4all support. It would be lots of work to package it properly
|
||||
# and we already have ollama with working ROCm + CUDA in nixpkgs.
|
||||
./0001-remove-gpt4all-support.patch
|
||||
];
|
||||
|
||||
nativeBuildInputs = with pkgs; [
|
||||
appstream-glib
|
||||
blueprint-compiler
|
||||
desktop-file-utils
|
||||
gettext
|
||||
gtk4
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
wrapGAppsHook4
|
||||
];
|
||||
|
||||
buildInputs = with pkgs; [
|
||||
gtksourceview5
|
||||
libadwaita
|
||||
libportal
|
||||
];
|
||||
|
||||
propagatedBuildInputs = with pkgs.python3Packages; [
|
||||
babel
|
||||
gst-python
|
||||
lxml
|
||||
openai
|
||||
pygobject3
|
||||
requests
|
||||
];
|
||||
|
||||
};
|
||||
in {
|
||||
formatter = pkgs.alejandra;
|
||||
|
||||
checks.bavarder = bavarder;
|
||||
packages.default = bavarder;
|
||||
|
||||
devShells.default = pkgs.mkShell.override {stdenv = pkgs.python3Packages.stdenv;} {
|
||||
inherit (bavarder) nativeBuildInputs buildInputs propagatedBuildInputs;
|
||||
};
|
||||
}
|
||||
);
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user