gpt4all: bleeding edge

This commit is contained in:
Simon Gardling 2024-09-19 10:21:06 -04:00
parent d4fef2c256
commit 6786cc9092
Signed by: titaniumtown
GPG Key ID: 9AB28AC10ECE533D
4 changed files with 163 additions and 78 deletions

View File

@ -316,11 +316,11 @@
},
"nixos-hardware": {
"locked": {
"lastModified": 1726650330,
"narHash": "sha256-UbHzmaOQ18O/kCizipU70N0UQVFIfv8AiFKXw07oZ9Y=",
"lastModified": 1726724509,
"narHash": "sha256-sVeAM1tgVi52S1e29fFBTPUAFSzgQwgLon3CrztXGm8=",
"owner": "NixOS",
"repo": "nixos-hardware",
"rev": "abb448608a56a60075468e90d8acec2a7cb689b1",
"rev": "10d5e0ecc32984c1bf1a9a46586be3451c42fd94",
"type": "github"
},
"original": {
@ -332,11 +332,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1726668270,
"narHash": "sha256-+N9ASvTufNJ6VAkkvSgXMtd+0RrzjXF83AMyamQlX9Y=",
"lastModified": 1726751368,
"narHash": "sha256-UaLaS+LAGslTFnQOZs16Y90ybdA6rXoznqu2HvO5ykU=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "50470da36ef2c4448b23285257de4be40acd5c7c",
"rev": "fa09c7cca3aa8685ca69198b4510d54ef1fa7f73",
"type": "github"
},
"original": {

View File

@ -33,11 +33,11 @@
]
},
"locked": {
"lastModified": 1726574742,
"narHash": "sha256-eWANP6s59C3tAMrExHwL7Sap51XUz/0f1cfGysXGnxA=",
"lastModified": 1726674526,
"narHash": "sha256-eKAUZRSynuVmNxCmyj4X3TrpI7uOggP+WNd4r1wnhSM=",
"owner": "orhun",
"repo": "binsider",
"rev": "31797519bd6ff5df0a4d9d530a25411597ca2915",
"rev": "fd2f7d2b46b34916009040d78fd6b170728d1338",
"type": "github"
},
"original": {
@ -201,11 +201,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1726669401,
"narHash": "sha256-HuyEQH0VI3m5DlCNbDafhBaOOBZTYmuTiikqr/gbNO0=",
"lastModified": 1726701516,
"narHash": "sha256-0xr+2k66e5g+SPXgHceaFZJlqq9kkAbahHE3vdYVZ3I=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "8f86e59bbb9ea7447f3aff57d67444cd1113e646",
"rev": "db8da26fb9e7a031f2882c14d86e705b853e6104",
"type": "github"
},
"original": {

View File

@ -0,0 +1,53 @@
commit 425b33877c819dd88f3692aae37452c767371f6b
Author: Simon Gardling <titaniumtown@proton.me>
Date: Thu Sep 19 10:00:39 2024 -0400
use locally downloaded embeddings
diff --git a/gpt4all-chat/CMakeLists.txt b/gpt4all-chat/CMakeLists.txt
index 900307ae..802fc31a 100644
--- a//CMakeLists.txt
+++ b/CMakeLists.txt
@@ -120,6 +120,7 @@ elseif (APPLE)
endif()
# Embedding model
+#[[
set(LOCAL_EMBEDDING_MODEL "nomic-embed-text-v1.5.f16.gguf")
set(LOCAL_EMBEDDING_MODEL_MD5 "a5401e7f7e46ed9fcaed5b60a281d547")
set(LOCAL_EMBEDDING_MODEL_PATH "${CMAKE_BINARY_DIR}/resources/${LOCAL_EMBEDDING_MODEL}")
@@ -134,6 +135,7 @@ message(STATUS "Embedding model downloaded to ${LOCAL_EMBEDDING_MODEL_PATH}")
if (APPLE)
list(APPEND CHAT_EXE_RESOURCES "${LOCAL_EMBEDDING_MODEL_PATH}")
endif()
+]]
set(QAPPLICATION_CLASS QGuiApplication)
add_subdirectory(deps/SingleApplication)
@@ -348,11 +350,13 @@ if (LLMODEL_CUDA)
endif()
endif()
+#[[
if (NOT APPLE)
install(FILES "${LOCAL_EMBEDDING_MODEL_PATH}"
DESTINATION resources
COMPONENT ${COMPONENT_NAME_MAIN})
endif()
+]]
set(CPACK_GENERATOR "IFW")
set(CPACK_VERBATIM_VARIABLES YES)
diff --git a/gpt4all-chat/src/embllm.cpp b/gpt4all-chat/src/embllm.cpp
index 81b1e9e1..e3266cc7 100644
--- a/src/embllm.cpp
+++ b/src/embllm.cpp
@@ -84,7 +84,7 @@ bool EmbeddingLLMWorker::loadModel()
QString filePath = embPathFmt.arg(QCoreApplication::applicationDirPath(), LOCAL_EMBEDDING_MODEL);
if (!QFileInfo::exists(filePath)) {
- qWarning() << "embllm WARNING: Local embedding model not found";
+ qWarning() << "embllm WARNING: Local embedding model not found: " << filePath;
return false;
}

View File

@ -17,96 +17,128 @@
"factorio-alpha"
];
home.packages = with pkgs; [
#calculator
gnome-calculator
home.packages =
let
#stolen from: https://stackoverflow.com/a/42398526
optimizeWithFlags =
pkg: flags:
pkgs.lib.overrideDerivation pkg (
old:
let
newflags = pkgs.lib.foldl' (acc: x: "${acc} ${x}") "" flags;
oldflags = if (pkgs.lib.hasAttr "NIX_CFLAGS_COMPILE" old) then "${old.NIX_CFLAGS_COMPILE}" else "";
in
{
NIX_CFLAGS_COMPILE = "${oldflags} ${newflags}";
}
);
in
with pkgs;
[
#calculator
gnome-calculator
#productivity stuff
libreoffice
hunspell # spellcheck
hunspellDicts.en_US # spellcheck dictionary
#productivity stuff
libreoffice
hunspell # spellcheck
hunspellDicts.en_US # spellcheck dictionary
#video and audio downloading
parabolic
#video and audio downloading
parabolic
#soulseek client
nicotine-plus
#soulseek client
nicotine-plus
#dark web browsing deep web browsing
tor-browser
#dark web browsing deep web browsing
tor-browser
#audio editing
audacity
#audio editing
audacity
#fonts
noto-fonts
noto-fonts-emoji
liberation_ttf
nerdfonts
jetbrains-mono
#fonts
noto-fonts
noto-fonts-emoji
liberation_ttf
nerdfonts
jetbrains-mono
#for ebook reading
foliate
#for ebook reading
foliate
#audio mixer (pavucontrol but for pipewire)
pwvucontrol
#audio mixer (pavucontrol but for pipewire)
pwvucontrol
#minecraft launcher
prismlauncher
#minecraft launcher
prismlauncher
mpv
mumble
system76-keyboard-configurator
mission-center
mpv
mumble
system76-keyboard-configurator
mission-center
#jellyfin
finamp # music player
delfin # jellyfin client
#jellyfin
finamp # music player
delfin # jellyfin client
signal-desktop
signal-desktop
#accounting
gnucash
#accounting
gnucash
imagemagick
inkscape
nomacs
imagemagick
inkscape
nomacs
nautilus
nautilus
darktable
lrcget
lrcget
#openstreetmap contributing
josm
#openstreetmap contributing
josm
easyeffects
gparted
easyeffects
gparted
#small nicities
wl-clipboard # wl-copy & wl-paste
libnotify # notifications library
xdg-utils # xdg utils
gpt4all
gnome-disk-utility
#small nicities
wl-clipboard # wl-copy & wl-paste
libnotify # notifications library
xdg-utils # xdg utils
puddletag
gnome-disk-utility
inputs.zen-browser.packages."${pkgs.system}".specific
puddletag
(factorio.override (
let
data = import ./secrets/factorio.nix;
in
{
username = data.username;
token = data.token;
}
))
inputs.zen-browser.packages."${pkgs.system}".specific
(factorio.override (
let
data = import ./secrets/factorio.nix;
in
{
username = data.username;
token = data.token;
}
))
];
(optimizeWithFlags
(pkgs.gpt4all.overrideAttrs {
src = pkgs.fetchFromGitHub {
fetchSubmodules = true;
owner = "nomic-ai";
repo = "gpt4all";
rev = "HEAD";
sha256 = "S8yWNjylDaXbOviUd7Nhk7mfT0jjBsZq7XAGX38USpc=";
};
patches = [ ./gpt4all-HEAD-embeddings-model.patch ];
})
[
"-Ofast"
"-march=native"
"-mtune=native"
"-fno-finite-math-only" # https://github.com/ggerganov/llama.cpp/pull/7154#issuecomment-2143844461
]
)
];
# make chromium-based stuff use wayland
home.file.".config/chromium-flags.conf".text = "--ozone-platform-hint=auto";