Install GIMKit using pip:
pip install gimkitFor vLLM support, install with the optional dependency:
pip install gimkit[vllm]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!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}")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)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"- Stable over feature
- Small open-source model first