Skip to content

SculptAI/GIMKit

Repository files navigation

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