CLI Improvements (#1021)

* Add gpt4all-bindings/cli/README.md

* Unify version information
- Was previously split; base one on the other
- Add VERSION_INFO as the "source of truth":
  - Modelled after sys.version_info.
  - Implemented as a tuple, because it's much easier for (partial)
    programmatic comparison.
- Previous API is kept intact.

* Add gpt4all-bindings/cli/developer_notes.md
- A few notes on what's what, especially regarding docs

* Add gpt4all-bindings/python/docs/gpt4all_cli.md
- The CLI user documentation

* Bump CLI version to 0.3.5

* Finalise docs & add to index.md
- Amend where necessary
- Fix typo in gpt4all_cli.md
- Mention and add link to CLI doc in index.md

* Add docstings to gpt4all-bindings/cli/app.py

* Better 'groovy' link & fix typo
- Documentation: point to the Hugging Face model card for 'groovy'
- Correct typo in app.py
This commit is contained in:
cosmic-snow
2023-06-23 21:09:31 +02:00
committed by GitHub
parent aed7b43143
commit ee26e8f271
5 changed files with 282 additions and 3 deletions

View File

@@ -1,9 +1,17 @@
"""GPT4All CLI
The GPT4All CLI is a self-contained script based on the `gpt4all` and `typer` packages. It offers a
REPL to communicate with a language model similar to the chat GUI application, but more basic.
"""
import sys
import typer
from collections import namedtuple
from typing_extensions import Annotated
from gpt4all import GPT4All
MESSAGES = [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Hello there."},
@@ -17,7 +25,9 @@ SPECIAL_COMMANDS = {
"/help": lambda _: print("Special commands: /reset, /exit, /help and /clear"),
}
VERSION = "0.3.4"
VersionInfo = namedtuple('VersionInfo', ['major', 'minor', 'micro'])
VERSION_INFO = VersionInfo(0, 3, 5)
VERSION = '.'.join(map(str, VERSION_INFO)) # convert to string form, like: '1.2.3'
CLI_START_MESSAGE = f"""
@@ -47,6 +57,7 @@ def repl(
typer.Option("--n-threads", "-t", help="Number of threads to use for chatbot"),
] = None,
):
"""The CLI read-eval-print loop."""
gpt4all_instance = GPT4All(model)
# if threads are passed, set them
@@ -103,7 +114,8 @@ def repl(
@app.command()
def version():
print("gpt4all-cli v0.3.4")
"""The CLI version command."""
print(f"gpt4all-cli v{VERSION}")
if __name__ == "__main__":