Skip to main content

Interact with the OpenAI ChatGPT API (and other text generators)

Project description

Test Release chap PyPI

chap - A Python interface to chatgpt, including a terminal user interface (tui)

Chap screencast

System requirements

Chap is developed on Linux with Python 3.11. Due to use of the list[int] style of type hints, it is known not to work on 3.8 and older; the target minimum Python version is 3.9 (debian oldstable).

installation

Install with e.g., pipx install chap

configuration

Put your OpenAI API key in the platform configuration directory for chap, e.g., on linux/unix systems at ~/.config/chap/openai_api_key

commandline usage

  • chap ask "What advice would you give a 20th century human visiting the 21st century for the first time?"

  • chap render --last

  • chap import chatgpt-style-chatlog.json (for files from pionxzh/chatgpt-exporter)

interactive terminal usage

  • chap tui

Sessions & Commandline Parameters

Details of session handling & commandline arguments are in flux.

By default, a new session is created. It is saved to the user's state directory (e.g., ~/.local/state/chap on linux/unix systems).

You can specify the session filename for a new session with -n or to re-open an existing session with -s. Or, you can continue the last session with --last.

You can set the "system message" with the -S flag.

You can select the text generating backend with the -b flag:

  • openai_chatgpt: the default, paid API, best quality results
  • llama_cpp: Works with (llama.cpp's http server)[https://github.com/ggerganov/llama.cpp/blob/master/examples/server/README.md] and can run locally with various models. Set the server URL with -B url:....
  • textgen: Works with https://github.com/oobabooga/text-generation-webui and can run locally with various models. Needs the server URL in $configuration_directory/textgen_url.
  • lorem: local non-AI lorem generator for testing

Environment variables

The backend can be set with CHAP_BACKEND. Backend settings can be set with CHAP_<backend_name>_<parameter_name>, with backend_name and parameter_name all in caps. For instance, CHAP_LLAMA_CPP_URL=http://server.local:8080/completion changes the default server URL for the llama_cpp back-end.

Importing from ChatGPT

The userscript https://github.com/pionxzh/chatgpt-exporter can export chat logs from chat.openai.com in a json format. This format is different than chap's, especially since chap currently only represents a single branch of conversation in one log. You can use the chap import command to import all the branches of a chatgpt-style chatlog in json format into a series of chap-style chat logs.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

chap-0.6.0.tar.gz (348.6 kB view details)

Uploaded Source

Built Distribution

chap-0.6.0-py3-none-any.whl (22.8 kB view details)

Uploaded Python 3

File details

Details for the file chap-0.6.0.tar.gz.

File metadata

  • Download URL: chap-0.6.0.tar.gz
  • Upload date:
  • Size: 348.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.18

File hashes

Hashes for chap-0.6.0.tar.gz
Algorithm Hash digest
SHA256 0a2264b2d5bd2e08a5e98cda35b41f13dd6038630cddbb8f1be96693f9f9a39f
MD5 98d50628bfe6a3c987712534d0279843
BLAKE2b-256 17b59d965cf41914f0a737e0f2c95e6c8221170d2d4b6376515e15b310bd1c32

See more details on using hashes here.

File details

Details for the file chap-0.6.0-py3-none-any.whl.

File metadata

  • Download URL: chap-0.6.0-py3-none-any.whl
  • Upload date:
  • Size: 22.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.18

File hashes

Hashes for chap-0.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6dfc15fc282205b73fd91601ccc5eeae68061ab4cad97eaa46d66441d2863f44
MD5 c5b70ec406f49c245f0323103ebae08b
BLAKE2b-256 c48020f611496c5ac39d6aade3276eb3ba4f3e3ea5d43dafa7b41cd70710e048

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page