Skip to main content

Python bindings for the GGML GPT-J Laguage model

Project description

PyGPT-J

  • Python bindings for GPT-J ggml language models.
  • Almost the same API as pyllamacpp.

License: MIT PyPi version

Table of contents

Installation

  1. The easy way is to use the prebuilt wheels
pip install pygptj
  1. Build from source:
git clone git+https://github.com/abdeladim-s/pygptj.git

CLI

You can run the following simple command line interface to test the package once it is installed:

pygtj path/to/ggml/model

Tutorial

Quick start

from pygptj.model import Model

model = Model(model_path='path/to/gptj/ggml/model')
for token in model.generate("Tell me a joke ?"):
    print(token, end='', flush=True)

Interactive Dialogue

You can set up an interactive dialogue by simply keeping the model variable alive:

from pygptj.model import Model

model = Model(model_path='/path/to/ggml/model')
while True:
    try:
        prompt = input("You: ", flush=True)
        if prompt == '':
            continue
        print(f"AI:", end='')
        for token in model.generate(prompt):
            print(f"{token}", end='', flush=True)
        print()
    except KeyboardInterrupt:
        break

Attribute a persona to the language model

The following is an example showing how to "attribute a persona to the language model" :

from pygptj.model import Model

prompt_context = """Act as Bob. Bob is helpful, kind, honest,
and never fails to answer the User's requests immediately and with precision. 

User: Nice to meet you Bob!
Bob: Welcome! I'm here to assist you with anything you need. What can I do for you today?
"""

prompt_prefix = "\nUser:"
prompt_suffix = "\nBob:"

model = Model(model_path='/path/to/ggml/model',
              prompt_context=prompt_context,
              prompt_prefix=prompt_prefix,
              prompt_suffix=prompt_suffix)

while True:
  try:
    prompt = input("User: ")
    if prompt == '':
      continue
    print(f"Bob: ", end='')
    for token in model.generate(prompt, antiprompt='User:'):
      print(f"{token}", end='', flush=True)
      print()
  except KeyboardInterrupt:
    break

API reference

You can check the API reference documentation for more details.

License

This project is licensed under the MIT License.

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

pygptj-2.0.3.tar.gz (221.3 kB view hashes)

Uploaded Source

Built Distributions

pygptj-2.0.3-pp39-pypy39_pp73-win_amd64.whl (179.3 kB view hashes)

Uploaded PyPy Windows x86-64

pygptj-2.0.3-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (246.0 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

pygptj-2.0.3-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl (264.4 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ i686

pygptj-2.0.3-pp39-pypy39_pp73-macosx_10_9_x86_64.whl (213.2 kB view hashes)

Uploaded PyPy macOS 10.9+ x86-64

pygptj-2.0.3-pp38-pypy38_pp73-win_amd64.whl (179.2 kB view hashes)

Uploaded PyPy Windows x86-64

pygptj-2.0.3-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (245.6 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

pygptj-2.0.3-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl (264.3 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ i686

pygptj-2.0.3-pp38-pypy38_pp73-macosx_10_9_x86_64.whl (213.3 kB view hashes)

Uploaded PyPy macOS 10.9+ x86-64

pygptj-2.0.3-cp311-cp311-win_amd64.whl (180.5 kB view hashes)

Uploaded CPython 3.11 Windows x86-64

pygptj-2.0.3-cp311-cp311-win32.whl (150.2 kB view hashes)

Uploaded CPython 3.11 Windows x86

pygptj-2.0.3-cp311-cp311-musllinux_1_1_x86_64.whl (775.6 kB view hashes)

Uploaded CPython 3.11 musllinux: musl 1.1+ x86-64

pygptj-2.0.3-cp311-cp311-musllinux_1_1_i686.whl (842.8 kB view hashes)

Uploaded CPython 3.11 musllinux: musl 1.1+ i686

pygptj-2.0.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (246.1 kB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

pygptj-2.0.3-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl (262.6 kB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ i686

pygptj-2.0.3-cp311-cp311-macosx_10_9_x86_64.whl (216.1 kB view hashes)

Uploaded CPython 3.11 macOS 10.9+ x86-64

pygptj-2.0.3-cp311-cp311-macosx_10_9_universal2.whl (401.5 kB view hashes)

Uploaded CPython 3.11 macOS 10.9+ universal2 (ARM64, x86-64)

pygptj-2.0.3-cp310-cp310-win_amd64.whl (180.4 kB view hashes)

Uploaded CPython 3.10 Windows x86-64

pygptj-2.0.3-cp310-cp310-win32.whl (150.2 kB view hashes)

Uploaded CPython 3.10 Windows x86

pygptj-2.0.3-cp310-cp310-musllinux_1_1_x86_64.whl (775.6 kB view hashes)

Uploaded CPython 3.10 musllinux: musl 1.1+ x86-64

pygptj-2.0.3-cp310-cp310-musllinux_1_1_i686.whl (842.9 kB view hashes)

Uploaded CPython 3.10 musllinux: musl 1.1+ i686

pygptj-2.0.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (246.0 kB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

pygptj-2.0.3-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl (262.6 kB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ i686

pygptj-2.0.3-cp310-cp310-macosx_10_9_x86_64.whl (216.1 kB view hashes)

Uploaded CPython 3.10 macOS 10.9+ x86-64

pygptj-2.0.3-cp310-cp310-macosx_10_9_universal2.whl (401.4 kB view hashes)

Uploaded CPython 3.10 macOS 10.9+ universal2 (ARM64, x86-64)

pygptj-2.0.3-cp39-cp39-win_amd64.whl (180.6 kB view hashes)

Uploaded CPython 3.9 Windows x86-64

pygptj-2.0.3-cp39-cp39-win32.whl (150.3 kB view hashes)

Uploaded CPython 3.9 Windows x86

pygptj-2.0.3-cp39-cp39-musllinux_1_1_x86_64.whl (775.9 kB view hashes)

Uploaded CPython 3.9 musllinux: musl 1.1+ x86-64

pygptj-2.0.3-cp39-cp39-musllinux_1_1_i686.whl (843.2 kB view hashes)

Uploaded CPython 3.9 musllinux: musl 1.1+ i686

pygptj-2.0.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (246.0 kB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

pygptj-2.0.3-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl (263.7 kB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ i686

pygptj-2.0.3-cp39-cp39-macosx_10_9_x86_64.whl (216.2 kB view hashes)

Uploaded CPython 3.9 macOS 10.9+ x86-64

pygptj-2.0.3-cp39-cp39-macosx_10_9_universal2.whl (401.7 kB view hashes)

Uploaded CPython 3.9 macOS 10.9+ universal2 (ARM64, x86-64)

pygptj-2.0.3-cp38-cp38-win_amd64.whl (180.2 kB view hashes)

Uploaded CPython 3.8 Windows x86-64

pygptj-2.0.3-cp38-cp38-win32.whl (150.4 kB view hashes)

Uploaded CPython 3.8 Windows x86

pygptj-2.0.3-cp38-cp38-musllinux_1_1_x86_64.whl (775.4 kB view hashes)

Uploaded CPython 3.8 musllinux: musl 1.1+ x86-64

pygptj-2.0.3-cp38-cp38-musllinux_1_1_i686.whl (842.6 kB view hashes)

Uploaded CPython 3.8 musllinux: musl 1.1+ i686

pygptj-2.0.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (245.8 kB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

pygptj-2.0.3-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl (263.1 kB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ i686

pygptj-2.0.3-cp38-cp38-macosx_10_9_x86_64.whl (216.1 kB view hashes)

Uploaded CPython 3.8 macOS 10.9+ x86-64

pygptj-2.0.3-cp38-cp38-macosx_10_9_universal2.whl (401.5 kB view hashes)

Uploaded CPython 3.8 macOS 10.9+ universal2 (ARM64, x86-64)

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