mirror of
https://codeberg.org/guix/guix.git
synced 2026-01-25 03:55:08 -06:00
gnu: Add koboldcpp.
* gnu/packages/machine-learning.scm (koboldcpp): New variable. Merges guix/guix#5108 Change-Id: I0ad8bee1ad7934eb90e16f50877ba2b6f96976af Modified-by: Cayetano Santos <csantosb@inventati.org> Signed-off-by: Cayetano Santos <csantosb@inventati.org>
This commit is contained in:
parent
9256d8ad94
commit
4aa418e1c6
1 changed files with 93 additions and 1 deletions
|
|
@ -28,7 +28,7 @@
|
||||||
;;; Copyright © 2024 Timothee Mathieu <timothee.mathieu@inria.fr>
|
;;; Copyright © 2024 Timothee Mathieu <timothee.mathieu@inria.fr>
|
||||||
;;; Copyright © 2024 Spencer King <spencer.king@geneoscopy.com>
|
;;; Copyright © 2024 Spencer King <spencer.king@geneoscopy.com>
|
||||||
;;; Copyright © 2024, 2025 David Elsing <david.elsing@posteo.net>
|
;;; Copyright © 2024, 2025 David Elsing <david.elsing@posteo.net>
|
||||||
;;; Copyright © 2024 Andy Tai <atai@atai.org>
|
;;; Copyright © 2024, 2025 Andy Tai <atai@atai.org>
|
||||||
;;; Copyright © 2025 Lapearldot <lapearldot@disroot.org>
|
;;; Copyright © 2025 Lapearldot <lapearldot@disroot.org>
|
||||||
;;; Copyright © 2025 Cayetano Santos <csantosb@inventati.org>
|
;;; Copyright © 2025 Cayetano Santos <csantosb@inventati.org>
|
||||||
;;; Copyright © 2025 Janneke Nieuwenhuizen <janneke@gnu.org>
|
;;; Copyright © 2025 Janneke Nieuwenhuizen <janneke@gnu.org>
|
||||||
|
|
@ -4322,6 +4322,98 @@ TVM works with deep learning frameworks to provide end to end compilation to
|
||||||
different backends")
|
different backends")
|
||||||
(license license:asl2.0))))
|
(license license:asl2.0))))
|
||||||
|
|
||||||
|
(define-public koboldcpp
|
||||||
|
(package
|
||||||
|
(name "koboldcpp")
|
||||||
|
(version "1.105.4")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method git-fetch)
|
||||||
|
(uri (git-reference
|
||||||
|
(url "https://github.com/LostRuins/koboldcpp")
|
||||||
|
(commit (string-append "v" version))))
|
||||||
|
(file-name (git-file-name name version))
|
||||||
|
(sha256
|
||||||
|
(base32 "13ihvqxbf1gl3bnml4cn403z9nvwwc8vfc26a18wzanbkszfjylv"))))
|
||||||
|
(build-system gnu-build-system)
|
||||||
|
(arguments
|
||||||
|
(list
|
||||||
|
#:tests? #f ;no tests
|
||||||
|
#:imported-modules `(,@%default-gnu-imported-modules
|
||||||
|
(guix build python-build-system))
|
||||||
|
#:modules '((guix build gnu-build-system)
|
||||||
|
((guix build python-build-system) #:prefix python:)
|
||||||
|
(guix build utils))
|
||||||
|
#:make-flags
|
||||||
|
#~(list (string-append "CC=" #$(cc-for-target))
|
||||||
|
"LLAMA_VULKAN=1"
|
||||||
|
"LLAMA_PORTABLE=1"
|
||||||
|
"LLAMA_USE_BUNDLED_GLSLC=0") ;; TODO: add CLBLAS
|
||||||
|
#:phases
|
||||||
|
(with-extensions (list (pyproject-guile-json))
|
||||||
|
#~(modify-phases %standard-phases
|
||||||
|
(delete 'configure)
|
||||||
|
(replace 'install
|
||||||
|
(lambda _
|
||||||
|
(for-each
|
||||||
|
(lambda (f)
|
||||||
|
(install-file f (string-append #$output "/bin")))
|
||||||
|
(append (list "koboldcpp.py"
|
||||||
|
"vulkan-shaders-gen"
|
||||||
|
"vulkan-shaders-gen-noext")
|
||||||
|
;; koboldcpp.py expects .so's
|
||||||
|
;; to be in the same directory
|
||||||
|
(find-files "." "\\.so$")))))
|
||||||
|
(add-after 'install 'python-wrap
|
||||||
|
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||||
|
(wrap-program (search-input-file outputs "bin/koboldcpp.py")
|
||||||
|
`("GUIX_PYTHONPATH" =
|
||||||
|
(,(getenv "GUIX_PYTHONPATH")
|
||||||
|
,(python:site-packages inputs outputs))))))))))
|
||||||
|
(inputs
|
||||||
|
(list bash-minimal
|
||||||
|
openblas
|
||||||
|
python
|
||||||
|
python-customtkinter
|
||||||
|
spirv-headers
|
||||||
|
spirv-tools
|
||||||
|
vulkan-headers
|
||||||
|
vulkan-loader)) ;TODO: add OpenCL
|
||||||
|
(native-inputs
|
||||||
|
(list shaderc))
|
||||||
|
(properties '((tunable? . #t)))
|
||||||
|
(home-page "https://github.com/lostruins/koboldcpp")
|
||||||
|
(synopsis "AI text-generation software for GGML and GGUF models")
|
||||||
|
(description "KoboldCpp is an easy-to-use AI text-generation software for
|
||||||
|
GGML and GGUF models, builds off llama.cpp and adds many additional features:
|
||||||
|
|
||||||
|
@itemize
|
||||||
|
@item Runs on CPU or GPU, supports full or partial offloaded
|
||||||
|
@item LLM text generation (Supports all GGML and GGUF models, backwards
|
||||||
|
compatibility with ALL past models)
|
||||||
|
@item Image Generation (Stable Diffusion 1.5, SDXL, SD3, Flux)
|
||||||
|
@item Speech-To-Text (Voice Recognition) via Whisper
|
||||||
|
@item Text-To-Speech (Voice Generation) via OuteTTS, Kokoro, Parler and Dia
|
||||||
|
@item Provides many compatible APIs endpoints for many popular webservices
|
||||||
|
(KoboldCppApi OpenAiApi OllamaApi A1111ForgeApi ComfyUiApi
|
||||||
|
WhisperTranscribeApi XttsApi OpenAiSpeechApi)
|
||||||
|
@item Bundled KoboldAI Lite UI with editing tools, save formats, memory,
|
||||||
|
world info, author's note, characters, scenarios
|
||||||
|
@item Includes multiple modes (chat, adventure, instruct, storywriter)
|
||||||
|
and UI Themes (aesthetic roleplay, classic writer, corporate assistant
|
||||||
|
messsenger)
|
||||||
|
@item Supports loading Tavern Character Cards, importing many different
|
||||||
|
data formats from various sites, reading or exporting JSON savefiles
|
||||||
|
and persistent stories
|
||||||
|
@item Many other features including new samplers, regex support
|
||||||
|
websearch, RAG via TextDB, image recognition/vision and more
|
||||||
|
@end itemize
|
||||||
|
|
||||||
|
All up-to-date GGUF models are supported, and KoboldCpp also includes backward
|
||||||
|
compatibility for older versions/legacy GGML models.")
|
||||||
|
(license (list license:agpl3 license:expat))))
|
||||||
|
|
||||||
|
|
||||||
(define-public foxi
|
(define-public foxi
|
||||||
(let
|
(let
|
||||||
((commit "c278588e34e535f0bb8f00df3880d26928038cad")
|
((commit "c278588e34e535f0bb8f00df3880d26928038cad")
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue