Skip to main content

Guided Infilling Modeling

Project description

GIMKit

PyPI Version Supported Python versions Supported Platforms

Installation

Install GIMKit using pip:

pip install gimkit

For vLLM support, install with the optional dependency:

pip install gimkit[vllm]

Quick Start

Here's a simple example using the OpenAI backend:

from openai import OpenAI
from gimkit import from_openai, guide as g

# Initialize the client and model
client = OpenAI()  # Uses OPENAI_API_KEY environment variable
model = from_openai(client, model_name="gpt-4")

# Create a query with masked tags
result = model(f"Hello, {g(desc='a single word')}!", use_gim_prompt=True)
print(result)  # Output: Hello, world!

Usage

Creating Masked Tags: Use the guide helper (imported as g) to create masked tags

from gimkit import guide as g

# Basic tag with description
tag = g(name="greeting", desc="A friendly greeting")

# Specialized tags
name_tag = g.person_name(name="user_name")
email_tag = g.e_mail(name="email")
phone_tag = g.phone_number(name="phone")
word_tag = g.single_word(name="word")

# Selection from choices
choice_tag = g.select(name="color", choices=["red", "green", "blue"])

# Tag with regex constraint
custom_tag = g(name="code", desc="A 4-digit code", regex=r"\d{4}")

Building Queries: Combine masked tags with text to build queries

from gimkit import from_openai, guide as g
from openai import OpenAI

client = OpenAI()
model = from_openai(client, model_name="gpt-4")

query = f"""
Name: {g.person_name(name="name")}
Email: {g.e_mail(name="email")}
Favorite color: {g.select(name="color", choices=["red", "green", "blue"])}
"""

result = model(query, use_gim_prompt=True)
print(result)

Accessing Results: Access filled tags from the result

result = model(query, use_gim_prompt=True)

# Iterate over all tags
for tag in result.tags:
    print(f"{tag.name}: {tag.content}")

# Access by name
print(result.tags["name"].content)

# Modify tag content
result.tags["email"].content = "REDACTED"

Design Philosophy

  • Stable over feature
  • Small open-source model first

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

gimkit-0.1.0.post1.tar.gz (15.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gimkit-0.1.0.post1-py3-none-any.whl (20.4 kB view details)

Uploaded Python 3

File details

Details for the file gimkit-0.1.0.post1.tar.gz.

File metadata

  • Download URL: gimkit-0.1.0.post1.tar.gz
  • Upload date:
  • Size: 15.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.13 {"installer":{"name":"uv","version":"0.9.13"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for gimkit-0.1.0.post1.tar.gz
Algorithm Hash digest
SHA256 1fcd93d4702e16e60243455a0e672a709a5775a1701e375b320359974ab14483
MD5 77f8ab85e8933f9564d8d07e7b02de1c
BLAKE2b-256 b88be5691af9f805af54d55fd664aa86e77e55af94372600d40c8c75bd4baf34

See more details on using hashes here.

File details

Details for the file gimkit-0.1.0.post1-py3-none-any.whl.

File metadata

  • Download URL: gimkit-0.1.0.post1-py3-none-any.whl
  • Upload date:
  • Size: 20.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.13 {"installer":{"name":"uv","version":"0.9.13"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for gimkit-0.1.0.post1-py3-none-any.whl
Algorithm Hash digest
SHA256 bc91b881d390330384d8388c31653b9b7bed9ed84b42ad9af921b8b75c79ceab
MD5 eb8df7b63d975a07108b185246c550e0
BLAKE2b-256 fbf03114acee8c4420ccbd33ba47514396a022b9972ab1cb2ba06a308c3f00ba

See more details on using hashes here.

Supported by

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