diff --git a/gpt4all-api/gpt4all_api/app/api_v1/routes/engines.py b/gpt4all-api/gpt4all_api/app/api_v1/routes/engines.py index 539bc1ff..fceb9003 100644 --- a/gpt4all-api/gpt4all_api/app/api_v1/routes/engines.py +++ b/gpt4all-api/gpt4all_api/app/api_v1/routes/engines.py @@ -26,7 +26,7 @@ router = APIRouter(prefix="/engines", tags=["Search Endpoints"]) async def list_engines(): ''' List all available GPT4All models from - https://raw.githubusercontent.com/nomic-ai/gpt4all/main/gpt4all-chat/metadata/models.json + https://raw.githubusercontent.com/nomic-ai/gpt4all/main/gpt4all-chat/metadata/models2.json ''' raise NotImplementedError() return ListEnginesResponse(data=[]) diff --git a/gpt4all-bindings/python/docs/gpt4all_chat.md b/gpt4all-bindings/python/docs/gpt4all_chat.md index 00a8c4d3..de1a3b7b 100644 --- a/gpt4all-bindings/python/docs/gpt4all_chat.md +++ b/gpt4all-bindings/python/docs/gpt4all_chat.md @@ -7,7 +7,7 @@ It is optimized to run 7-13B parameter LLMs on the CPU's of any computer running ## Running LLMs on CPU The GPT4All Chat UI supports models from all newer versions of `GGML`, `llama.cpp` including the `LLaMA`, `MPT`, `replit`, `GPT-J` and `falcon` architectures -GPT4All maintains an official list of recommended models located in [models.json](https://github.com/nomic-ai/gpt4all/blob/main/gpt4all-chat/metadata/models.json). You can pull request new models to it and if accepted they will show up in the official download dialog. +GPT4All maintains an official list of recommended models located in [models2.json](https://github.com/nomic-ai/gpt4all/blob/main/gpt4all-chat/metadata/models2.json). You can pull request new models to it and if accepted they will show up in the official download dialog. #### Sideloading any GGML model If a model is compatible with the gpt4all-backend, you can sideload it into GPT4All Chat by: diff --git a/gpt4all-bindings/python/docs/gpt4all_faq.md b/gpt4all-bindings/python/docs/gpt4all_faq.md index a2105fb0..981494de 100644 --- a/gpt4all-bindings/python/docs/gpt4all_faq.md +++ b/gpt4all-bindings/python/docs/gpt4all_faq.md @@ -61,12 +61,12 @@ or `allowDownload=true` (default), a model is automatically downloaded into `.ca unless it already exists. In case of connection issues or errors during the download, you might want to manually verify the model file's MD5 -checksum by comparing it with the one listed in [models.json]. +checksum by comparing it with the one listed in [models2.json]. As an alternative to the basic downloader built into the bindings, you can choose to download from the website instead. Scroll down to 'Model Explorer' and pick your preferred model. -[models.json]: https://github.com/nomic-ai/gpt4all/blob/main/gpt4all-chat/metadata/models.json +[models2.json]: https://github.com/nomic-ai/gpt4all/blob/main/gpt4all-chat/metadata/models2.json #### I need the chat GUI and bindings to behave the same @@ -93,7 +93,7 @@ The chat GUI and bindings are based on the same backend. You can make them behav - Next you'll have to compare the templates, adjusting them as necessary, based on how you're using the bindings. - Specifically, in Python: - With simple `generate()` calls, the input has to be surrounded with system and prompt templates. - - When using a chat session, it depends on whether the bindings are allowed to download [models.json]. If yes, + - When using a chat session, it depends on whether the bindings are allowed to download [models2.json]. If yes, and in the chat GUI the default templates are used, it'll be handled automatically. If no, use `chat_session()` template parameters to customize them. diff --git a/gpt4all-bindings/python/docs/gpt4all_modal.md b/gpt4all-bindings/python/docs/gpt4all_modal.md index e95b4cb7..0efeafa9 100644 --- a/gpt4all-bindings/python/docs/gpt4all_modal.md +++ b/gpt4all-bindings/python/docs/gpt4all_modal.md @@ -8,7 +8,7 @@ import modal def download_model(): import gpt4all - #you can use any model from https://gpt4all.io/models/models.json + #you can use any model from https://gpt4all.io/models/models2.json return gpt4all.GPT4All("ggml-gpt4all-j-v1.3-groovy.bin") image=modal.Image.debian_slim().pip_install("gpt4all").run_function(download_model) @@ -31,4 +31,4 @@ def main(): model = GPT4All() for i in range(10): model.generate.call() -``` \ No newline at end of file +``` diff --git a/gpt4all-bindings/python/docs/gpt4all_python.md b/gpt4all-bindings/python/docs/gpt4all_python.md index 9fdd86c5..2e6ba863 100644 --- a/gpt4all-bindings/python/docs/gpt4all_python.md +++ b/gpt4all-bindings/python/docs/gpt4all_python.md @@ -77,10 +77,10 @@ When using GPT4All models in the `chat_session` context: - Consecutive chat exchanges are taken into account and not discarded until the session ends; as long as the model has capacity. - Internal K/V caches are preserved from previous conversation history, speeding up inference. - The model is given a system and prompt template which make it chatty. Depending on `allow_download=True` (default), - it will obtain the latest version of [models.json] from the repository, which contains specifically tailored templates + it will obtain the latest version of [models2.json] from the repository, which contains specifically tailored templates for models. Conversely, if it is not allowed to download, it falls back to default templates instead. -[models.json]: https://github.com/nomic-ai/gpt4all/blob/main/gpt4all-chat/metadata/models.json +[models2.json]: https://github.com/nomic-ai/gpt4all/blob/main/gpt4all-chat/metadata/models2.json ### Streaming Generations @@ -379,7 +379,7 @@ logging infrastructure offers [many more customization options][py-logging-cookb ### Without Online Connectivity To prevent GPT4All from accessing online resources, instantiate it with `allow_download=False`. This will disable both -downloading missing models and [models.json], which contains information about them. As a result, predefined templates +downloading missing models and [models2.json], which contains information about them. As a result, predefined templates are used instead of model-specific system and prompt templates: === "GPT4All Default Templates Example" diff --git a/gpt4all-bindings/python/docs/index.md b/gpt4all-bindings/python/docs/index.md index 471629f0..d0ebe45e 100644 --- a/gpt4all-bindings/python/docs/index.md +++ b/gpt4all-bindings/python/docs/index.md @@ -38,7 +38,7 @@ The GPT4All software ecosystem is compatible with the following Transformer arch - `MPT` (including `Replit`) - `GPT-J` -You can find an exhaustive list of supported models on the [website](https://gpt4all.io) or in the [models directory](https://raw.githubusercontent.com/nomic-ai/gpt4all/main/gpt4all-chat/metadata/models.json) +You can find an exhaustive list of supported models on the [website](https://gpt4all.io) or in the [models directory](https://raw.githubusercontent.com/nomic-ai/gpt4all/main/gpt4all-chat/metadata/models2.json) GPT4All models are artifacts produced through a process known as neural network quantization. diff --git a/gpt4all-bindings/python/gpt4all/gpt4all.py b/gpt4all-bindings/python/gpt4all/gpt4all.py index f73b0c80..9aa5794a 100644 --- a/gpt4all-bindings/python/gpt4all/gpt4all.py +++ b/gpt4all-bindings/python/gpt4all/gpt4all.py @@ -108,12 +108,12 @@ class GPT4All: @staticmethod def list_models() -> List[ConfigType]: """ - Fetch model list from https://gpt4all.io/models/models.json. + Fetch model list from https://gpt4all.io/models/models2.json. Returns: Model list in JSON format. """ - return requests.get("https://gpt4all.io/models/models.json").json() + return requests.get("https://gpt4all.io/models/models2.json").json() @staticmethod def retrieve_model( diff --git a/gpt4all-bindings/typescript/src/config.js b/gpt4all-bindings/typescript/src/config.js index 8a0123a5..e097ebb7 100644 --- a/gpt4all-bindings/typescript/src/config.js +++ b/gpt4all-bindings/typescript/src/config.js @@ -21,7 +21,7 @@ const DEFAULT_MODEL_CONFIG = { promptTemplate: "### Human: \n%1\n### Assistant:\n", } -const DEFAULT_MODEL_LIST_URL = "https://gpt4all.io/models/models.json"; +const DEFAULT_MODEL_LIST_URL = "https://gpt4all.io/models/models2.json"; const DEFAULT_PROMPT_CONTEXT = { temp: 0.7, diff --git a/gpt4all-bindings/typescript/src/util.js b/gpt4all-bindings/typescript/src/util.js index e854d9eb..ccd119e2 100644 --- a/gpt4all-bindings/typescript/src/util.js +++ b/gpt4all-bindings/typescript/src/util.js @@ -236,7 +236,7 @@ async function retrieveModel(modelName, options = {}) { file: retrieveOptions.modelConfigFile, url: retrieveOptions.allowDownload && - "https://gpt4all.io/models/models.json", + "https://gpt4all.io/models/models2.json", }); const loadedModelConfig = availableModels.find( diff --git a/gpt4all-chat/CMakeLists.txt b/gpt4all-chat/CMakeLists.txt index 2282c17b..755fc3ba 100644 --- a/gpt4all-chat/CMakeLists.txt +++ b/gpt4all-chat/CMakeLists.txt @@ -17,8 +17,8 @@ if(APPLE) endif() set(APP_VERSION_MAJOR 2) -set(APP_VERSION_MINOR 4) -set(APP_VERSION_PATCH 20) +set(APP_VERSION_MINOR 5) +set(APP_VERSION_PATCH 0) set(APP_VERSION "${APP_VERSION_MAJOR}.${APP_VERSION_MINOR}.${APP_VERSION_PATCH}") # Include the binary directory for the generated header file diff --git a/gpt4all-chat/metadata/models2.json b/gpt4all-chat/metadata/models2.json new file mode 100644 index 00000000..1a4be5cf --- /dev/null +++ b/gpt4all-chat/metadata/models2.json @@ -0,0 +1,143 @@ +[ + { + "order": "a", + "md5sum": "5aff90007499bce5c64b1c0760c0b186", + "name": "Wizard v1.2", + "filename": "wizardlm-13b-v1.2.Q4_0.gguf", + "filesize": "7365834624", + "requires": "2.5.0", + "ramrequired": "16", + "parameters": "13 billion", + "quant": "q4_0", + "type": "LLaMA", + "systemPrompt": " ", + "description": "Best overall model