gpt4all/gpt4all-chat
Jared Van Bortel d2a99d9bc6
support the llama.cpp CUDA backend (#2310)
* 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>
2024-05-15 15:27:50 -04:00
..
cmake support the llama.cpp CUDA backend (#2310) 2024-05-15 15:27:50 -04:00
flatpak-manifest Update appdata.xml (#2307) 2024-05-09 12:51:38 -04:00
hnswlib LocalDocs version 2 with text embeddings. 2023-11-17 11:59:31 -05:00
icons chat: fix window icon on Windows (#2321) 2024-05-09 13:42:46 -04:00
metadata chat: add release notes for v2.7.5 and bump version (#2300) 2024-05-03 09:54:09 -04:00
qml chat: fix issues with the initial "New Chat" (#2330) 2024-05-15 14:09:32 -04:00
resources chat: fix window icon on Windows (#2321) 2024-05-09 13:42:46 -04:00
build_and_run.md support the llama.cpp CUDA backend (#2310) 2024-05-15 15:27:50 -04:00
chat.cpp chat: fix issues with quickly switching between multiple chats (#2343) 2024-05-15 14:07:03 -04:00
chat.h chat: fix issues with quickly switching between multiple chats (#2343) 2024-05-15 14:07:03 -04:00
chatapi.cpp feat: Add support for Mistral API models (#2053) 2024-03-13 18:23:57 -04:00
chatapi.h feat: Add support for Mistral API models (#2053) 2024-03-13 18:23:57 -04:00
chatlistmodel.cpp chat: fix issues with the initial "New Chat" (#2330) 2024-05-15 14:09:32 -04:00
chatlistmodel.h chat: fix issues with the initial "New Chat" (#2330) 2024-05-15 14:09:32 -04:00
chatllm.cpp support the llama.cpp CUDA backend (#2310) 2024-05-15 15:27:50 -04:00
chatllm.h chat: fix issues with quickly switching between multiple chats (#2343) 2024-05-15 14:07:03 -04:00
chatmodel.h Restore state from text if necessary. 2023-10-11 09:16:02 -04:00
CMakeLists.txt support the llama.cpp CUDA backend (#2310) 2024-05-15 15:27:50 -04:00
database.cpp Fix destruction and tear down of the embedding thread. (#2328) 2024-05-15 10:01:53 -04:00
database.h improve mixpanel usage statistics (#2238) 2024-04-25 13:16:52 -04:00
download.cpp improve mixpanel usage statistics (#2238) 2024-04-25 13:16:52 -04:00
download.h improve mixpanel usage statistics (#2238) 2024-04-25 13:16:52 -04:00
embeddings.cpp Add Nomic Embed model for atlas with localdocs. 2024-01-31 22:22:08 -05:00
embeddings.h LocalDocs version 2 with text embeddings. 2023-11-17 11:59:31 -05:00
embllm.cpp Fix destruction and tear down of the embedding thread. (#2328) 2024-05-15 10:01:53 -04:00
embllm.h Fix destruction and tear down of the embedding thread. (#2328) 2024-05-15 10:01:53 -04:00
LICENSE Moving everything to subdir for monorepo merge. 2023-05-10 10:26:55 -04:00
llm.cpp improve mixpanel usage statistics (#2238) 2024-04-25 13:16:52 -04:00
llm.h Don't show the download button if we are not connected to an online network. 2024-02-07 09:40:49 -06:00
localdocs.cpp improve mixpanel usage statistics (#2238) 2024-04-25 13:16:52 -04:00
localdocs.h improve mixpanel usage statistics (#2238) 2024-04-25 13:16:52 -04:00
localdocsmodel.cpp improve mixpanel usage statistics (#2238) 2024-04-25 13:16:52 -04:00
localdocsmodel.h improve mixpanel usage statistics (#2238) 2024-04-25 13:16:52 -04:00
logger.cpp Logger should also output to stderr 2023-06-01 14:15:11 -04:00
logger.h Implemented logging mechanism (#785) 2023-06-01 16:50:42 +02:00
main.cpp chat: join ChatLLM threads without calling destructors (#2043) 2024-03-06 16:42:59 -05:00
main.qml chat: temporarily revert some UI changes before next release (#2234) 2024-04-18 14:52:29 -04:00
modellist.cpp localdocs: small but important fixes to local docs (#2236) 2024-04-18 14:51:13 -04:00
modellist.h implement local Nomic Embed via llama.cpp (#2086) 2024-03-13 18:09:24 -04:00
mysettings.cpp support the llama.cpp CUDA backend (#2310) 2024-05-15 15:27:50 -04:00
mysettings.h improve mixpanel usage statistics (#2238) 2024-04-25 13:16:52 -04:00
network.cpp mixpanel: report cpu_supports_avx2 on startup (#2299) 2024-05-02 16:09:41 -04:00
network.h mixpanel: fix opt-out events after #2238 (#2296) 2024-05-01 12:08:40 -04:00
README.md Updated chat wishlist (#1351) 2023-10-12 14:01:44 -04:00
responsetext.cpp responsetext : fix markdown code block trimming (#2232) 2024-04-18 14:50:32 -04:00
responsetext.h Fix bugs with the context link text for localdocs to make the context links 2024-04-15 14:30:26 -05:00
server.cpp feat: added api server port setting 2024-03-09 09:26:40 -06:00
server.h Start working on more thread safety and model load error handling. 2023-06-20 14:39:22 -03:00

gpt4all-chat

Cross platform Qt based GUI for GPT4All versions with GPT-J as the base model. NOTE: The model seen in the screenshot is actually a preview of a new training run for GPT4All based on GPT-J. The GPT4All project is busy at work getting ready to release this model including installers for all three major OS's. In the meantime, you can try this UI out with the original GPT-J model by following build instructions below.

image

Install

One click installers for macOS, Linux, and Windows at https://gpt4all.io

Features

  • Cross-platform (Linux, Windows, MacOSX)
  • Fast CPU based inference using ggml for GPT-J based models
  • The UI is made to look and feel like you've come to expect from a chatty gpt
  • Check for updates so you can always stay fresh with latest models
  • Easy to install with precompiled binaries available for all three major desktop platforms
  • Multi-modal - Ability to load more than one model and switch between them
  • Supports both llama.cpp and gptj.cpp style models
  • Model downloader in GUI featuring many popular open source models
  • Settings dialog to change temp, top_p, top_k, threads, etc
  • Copy your conversation to clipboard
  • Check for updates to get the very latest GUI

Feature wishlist

  • Multi-chat - a list of current and past chats and the ability to save/delete/export and switch between
  • Text to speech - have the AI response with voice
  • Speech to text - give the prompt with your voice
  • Plugin support for langchain other developer tools
  • chat gui headless operation mode
  • Advanced settings for changing temperature, topk, etc. (DONE)
    • Improve the accessibility of the installer for screen reader users
  • YOUR IDEA HERE

Building and running

Getting the latest

If you've already checked out the source code and/or built the program make sure when you do a git fetch to get the latest changes and that you also do git submodule update --init --recursive to update the submodules.

Manual download of models

Terminal Only Interface with no Qt dependency

Check out https://github.com/kuvaus/LlamaGPTJ-chat which is using the llmodel backend so it is compliant with our ecosystem and all models downloaded above should work with it.

Contributing

  • Pull requests welcome. See the feature wish list for ideas :)

License

The source code of this chat interface is currently under a MIT license. The underlying GPT4All-j model is released under non-restrictive open-source Apache 2 License.

The GPT4All-J license allows for users to use generated outputs as they see fit. Users take responsibility for ensuring their content meets applicable requirements for publication in a given context or region.