You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
Go to file
Adam Treat 3c30310539 Convert the old format properly. 1 year ago
cmake Try to fix uninstall of symlink. 1 year ago
icons Allow removing chats. 1 year ago
llmodel Add debug for chatllm model loading and fix order of getting rid of the 1 year ago
qml Turn off saving chats to disk by default as it eats so much disk space. 1 year ago
.gitignore Update ignore. 1 year ago
.gitmodules Move the backend code into own subdirectory and make it a shared library. Begin fleshing out the C api wrapper that bindings can use. 1 year ago
CMakeLists.txt Bump the version and save up to an order of magnitude of disk space for chat files. 1 year ago
LICENSE add name to LICENSE 1 year ago
README.md Update README.md 1 year ago
chat.cpp Convert the old format properly. 1 year ago
chat.h Convert the old format properly. 1 year ago
chatlistmodel.cpp Convert the old format properly. 1 year ago
chatlistmodel.h Deserialize one at a time and don't block gui until all of them are done. 1 year ago
chatllm.cpp Convert the old format properly. 1 year ago
chatllm.h Convert the old format properly. 1 year ago
chatmodel.h Convert the old format properly. 1 year ago
download.cpp download: make model downloads resumable 1 year ago
download.h download: make model downloads resumable 1 year ago
llm.cpp The GUI should come up immediately and not wait on deserializing from disk. 1 year ago
llm.h First attempt at providing a persistent chat list experience. 1 year ago
main.cpp Force ini format for all platforms. 1 year ago
main.qml Add about dialog. 1 year ago
network.cpp Turn off saving chats to disk by default as it eats so much disk space. 1 year ago
network.h Turn off saving chats to disk by default as it eats so much disk space. 1 year ago
sysinfo.h More extensive usage stats to help diagnose errors and problems in the ui. 1 year ago
test_hw.cpp Getting ready for next update. 1 year ago

README.md

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

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 alway 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
  • Python bindings
  • Typescript bindings
  • Plugin support for langchain other developer tools
  • Save your prompt/responses to disk
  • Upload prompt/respones manually/automatically to nomic.ai to aid future training runs
  • Syntax highlighting support for programming languages, etc.
  • REST API with a built-in webserver in the chat gui itself with a headless operation mode as well
  • Advanced settings for changing temperature, topk, etc. (DONE)
  • YOUR IDEA HERE

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.

Building and running

git clone https://github.com/ggerganov/ggml.git
cd ggml
mkdir build
cd build
cmake ..
cmake --build . --parallel
python3 ../ggml/examples/gpt-j/convert-h5-to-ggml.py /path/to/your/local/copy/of/EleutherAI/gpt-j-6B 0
./bin/gpt-j-quantize /path/to/your/local/copy/of/EleutherAI/gpt-j-6B/ggml-model-f32.bin ./ggml-model-q4_0.bin 2

and then

git clone --recurse-submodules https://github.com/nomic-ai/gpt4all-chat
cd gpt4all-chat
mkdir build
cd build
cmake ..
cmake --build . --parallel
mv /path/to/ggml-model-q4_0.bin bin
./bin/chat

To get Qt installed for your system

  • Highly advise using the official Qt online open source installer.
  • You can obtain this by creating an account on qt.io and downloading the installer.
  • You should get latest Qt {Qt 6.5.x} for your system and the developer tools including QtCreator, cmake, ninja.
  • WINDOWS NOTE: you need to use the mingw64 toolchain and not msvc
  • ALL PLATFORMS NOTE: the installer has options for lots of different targets which will add a lot of download overhead. You can deselect webassembly target, android, sources, etc to save space on your disk.

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.