Guided Infilling Modeling
Project description
GIMKit
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
Release history Release notifications | RSS feed
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.tar.gz
(15.4 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
gimkit-0.1.0-py3-none-any.whl
(20.4 kB
view details)
File details
Details for the file gimkit-0.1.0.tar.gz.
File metadata
- Download URL: gimkit-0.1.0.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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
22acb3adef2775b1563aa0e1320526fe7af505ae8c8c780af399fcff5cb702aa
|
|
| MD5 |
8fae6787ceee4eb3f416b7856084fbe7
|
|
| BLAKE2b-256 |
e7d69c5c5afdcb4998f7456ef55d918607550d59f8676560e5fd218eb983cd15
|
File details
Details for the file gimkit-0.1.0-py3-none-any.whl.
File metadata
- Download URL: gimkit-0.1.0-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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
883cee6d627db1a52c761912129e70b1d94bd971d02da8069fc6ba40d67db0eb
|
|
| MD5 |
16d9bcd7138ab31d2db549ba812accb4
|
|
| BLAKE2b-256 |
60e320815ab64725193a404aa5e77b0956ef67e7d4657b2e54107cae888de2b6
|