follows the new FIGMA design made by Vincent. It also contains a lot of
changes to the way localdocs works.
This is now rebased on top of main and conflicts resolved. This is still
a monolithic commit that needs to be broken up into smaller pieces in order
to aid proper review. I'll be working on that now and force pushing as I
do so.
Signed-off-by: Adam Treat <treat.adam@gmail.com>
change that requires re-indexing of all collections.
- Adds a general mechanism for handling breaking changes to localdocs database
upgrades
- Upgrades the database format to version 2 and includes numerous changes to
the underlying tables including:
a) adds word and token count fields for chunk table
b) adds a boolean field indicating whether the chunk has a generated embedding
c) adds a last updated time field for collection table which can be displayed in GUI
d) adds an embedding model field for collection table
e) adds a boolean field for collection table to allow forced re-indexing
- Adds several statistics about the collection which can be displayed in GUI
a) total documents
b) total words
c) total tokens
d) last updated time
e) which document is currently being indexed
f) which document is currently being embedded
g) which model is being used to generate embeddings for the collection
- Simplifies communication between the database thread and the GUI thread
removing a lot of extra code and makes clear what methods/signals in database
class are soley used for communicating state to the GUI
- Provides a pool for sending embedding requests to the embedding thread to
increase speed of embedding when the chunks per document are small
- Provides a mechanism for resuming indexing/embedding when the app shutsdown
or crashes in the middle of indexing/embedding
NOTE: This change is part of a larger set of commits, but can be built and
compiles up to this point
Signed-off-by: Adam Treat <treat.adam@gmail.com>
mixpanel events. These changes added complexity to the Database code which
we're looking to simplify not increase complexity and all info that we care
about from mixpanel should be available from the GUI thread.
NOTE: This change will not compile by itself. It must be included with subsequent
changes made in PR #2302 but is here broken out into a standalone commit
to aid in review.
Signed-off-by: Adam Treat <treat.adam@gmail.com>
* rebase onto llama.cpp commit ggerganov/llama.cpp@d46dbc76f
* support for CUDA backend (enabled by default)
* partial support for Occam's Vulkan backend (disabled by default)
* partial support for HIP/ROCm backend (disabled by default)
* sync llama.cpp.cmake with upstream llama.cpp CMakeLists.txt
* changes to GPT4All backend, bindings, and chat UI to handle choice of llama.cpp backend (Kompute or CUDA)
* ship CUDA runtime with installed version
* make device selection in the UI on macOS actually do something
* model whitelist: remove dbrx, mamba, persimmon, plamo; add internlm and starcoder2
Signed-off-by: Jared Van Bortel <jared@nomic.ai>
* select the existing new chat if there already is one when "New Chat" is clicked
* scroll to the new chat when "New Chat" is clicked
* fix the "New Chat" being scrolled past the top of the chat list
Signed-off-by: Jared Van Bortel <jared@nomic.ai>
* prevent load progress from getting out of sync with the current chat
* fix memory leak on exit if the LLModelStore contains a model
* do not report cancellation as a failure in console/Mixpanel
* show "waiting for model" separately from "switching context" in UI
* do not show lower "reload" button on error
* skip context switch if unload is pending
* skip unnecessary calls to LLModel::saveState
Signed-off-by: Jared Van Bortel <jared@nomic.ai>
* Fix destruction and tear down of the embedding thread.
Signed-off-by: Adam Treat <treat.adam@gmail.com>
* Fix order of deletion to prevent use after free.
Signed-off-by: Adam Treat <treat.adam@gmail.com>
---------
Signed-off-by: Adam Treat <treat.adam@gmail.com>
* chat: fix window icon on Windows
Signed-off-by: Jared Van Bortel <jared@nomic.ai>
* chat: remove redundant copy of macOS app icon
This has been redundant since PR #2180.
Signed-off-by: Jared Van Bortel <jared@nomic.ai>
---------
Signed-off-by: Jared Van Bortel <jared@nomic.ai>
* ChatView: fix deprecation warning
Signed-off-by: Jared Van Bortel <jared@nomic.ai>
* ChatView: make context menus more intuitive
Signed-off-by: Jared Van Bortel <jared@nomic.ai>
---------
Signed-off-by: Jared Van Bortel <jared@nomic.ai>
* localdocs: load model before checking what we loaded
Fixes "WARNING: Request to generate sync embeddings for non-local model
invalid"
Signed-off-by: Jared Van Bortel <jared@nomic.ai>
* fix inverted assertion
Signed-off-by: Jared Van Bortel <jared@nomic.ai>
---------
Signed-off-by: Jared Van Bortel <jared@nomic.ai>
* fixed bindings to match new API
Signed-off-by: Jerry Caligiure <jerry@noof.biz>
* added update to readme
Signed-off-by: Jerry Caligiure <jerry@noof.biz>
---------
Signed-off-by: Jerry Caligiure <jerry@noof.biz>
Co-authored-by: Jerry Caligiure <jerry@noof.biz>
Other changes:
- Always display first start dialog if privacy options are unset (e.g. if the user closed GPT4All without selecting them)
- LocalDocs scanQueue is now always deferred
- Fix a potential crash in magic_match
- LocalDocs indexing is now started after the first start dialog is dismissed so usage stats are included
Signed-off-by: Jared Van Bortel <jared@nomic.ai>
Other changes:
* fix 'requires' for models with %2 in template
* move Ghost 7B to the appropriate location in the file based on where it actually appears in the UI
Signed-off-by: Jared Van Bortel <jared@nomic.ai>
* chat: revert PR #2187
Signed-off-by: Jared Van Bortel <jared@nomic.ai>
* chat: revert PR #2148
This reverts commit f571e7e450.
Signed-off-by: Jared Van Bortel <jared@nomic.ai>
---------
Signed-off-by: Jared Van Bortel <jared@nomic.ai>