Skip to main content

LLM utilities and context management for kiarina namespace

Project description

kiarina-llm

A Python library for LLM utilities and context management with type safety and configuration management.

Features

  • AppContext Management: Application-level context for platform directories
  • RunContext Management: Structured context information for LLM pipeline processing
  • Type Safety: Full type hints and Pydantic validation
  • Configuration Management: Use pydantic-settings-manager for flexible configuration
  • Filesystem Safe Names: Validated names for cross-platform compatibility
  • ID Validation: Structured ID types with pattern validation

Installation

pip install kiarina-llm

Quick Start

Basic Usage

from kiarina.llm.run_context import create_run_context

# Create a run context
context = create_run_context(
    tenant_id="tenant-123",
    user_id="user-456",
    agent_id="my-agent",
    time_zone="Asia/Tokyo",
    language="ja"
)

print(f"User: {context.user_id}")
print(f"Agent: {context.agent_id}")

Configuration

Configure defaults using pydantic-settings-manager:

from kiarina.llm.run_context import settings_manager

settings_manager.user_config = {
    "tenant_id": "default-tenant",
    "time_zone": "America/New_York",
    "language": "en"
}

Or use environment variables:

export KIARINA_LLM_RUN_CONTEXT_TENANT_ID="prod-tenant"
export KIARINA_LLM_RUN_CONTEXT_TIME_ZONE="Asia/Tokyo"

API Reference

AppContext

Application-level context for platform directories:

from kiarina.llm.app_context import get_app_context, settings_manager

# Configure app context
settings_manager.user_config = {
    "app_author": "MyCompany",
    "app_name": "MyAIApp"
}

# Get app context
app_context = get_app_context()
print(f"Author: {app_context.app_author}")
print(f"Name: {app_context.app_name}")

RunContext

Run-level context for LLM pipeline processing:

Field Type Description Example
app_author FSName Application author "MyCompany"
app_name FSName Application name "MyAIApp"
tenant_id IDStr Tenant identifier "tenant-123"
user_id IDStr User identifier "user-456"
agent_id IDStr Agent identifier "my-agent"
runner_id IDStr Runner identifier "linux"
time_zone str IANA time zone "Asia/Tokyo"
language str Language code "ja"
currency str Currency code "USD"
metadata dict[str, Any] Additional metadata {"version": "1.0"}

Type Validation

  • FSName: Filesystem-safe names (alphanumeric, dots, underscores, hyphens, spaces)
  • IDStr: Identifier strings (alphanumeric, dots, underscores, hyphens)

Configuration Reference

AppContext Settings

Setting Environment Variable Default Description
app_author KIARINA_LLM_APP_CONTEXT_APP_AUTHOR "kiarina" Application author
app_name KIARINA_LLM_APP_CONTEXT_APP_NAME "kiarina-llm" Application name

RunContext Settings

Setting Environment Variable Default Description
tenant_id KIARINA_LLM_RUN_CONTEXT_TENANT_ID "" Default tenant ID
user_id KIARINA_LLM_RUN_CONTEXT_USER_ID "" Default user ID
agent_id KIARINA_LLM_RUN_CONTEXT_AGENT_ID "" Default agent ID
runner_id KIARINA_LLM_RUN_CONTEXT_RUNNER_ID platform.system().lower() Default runner ID
time_zone KIARINA_LLM_RUN_CONTEXT_TIME_ZONE "UTC" Default time zone
language KIARINA_LLM_RUN_CONTEXT_LANGUAGE "en" Default language
currency KIARINA_LLM_RUN_CONTEXT_CURRENCY "USD" Default currency code

Development

Prerequisites

  • Python 3.12+

Setup

# Clone the repository
git clone https://github.com/kiarina/kiarina-python.git
cd kiarina-python

# Setup development environment (installs tools, syncs dependencies, downloads test data)
mise run setup

Running Tests

# Run format, lint, type checks and tests
mise run package kiarina-llm

# Coverage report
mise run package:test kiarina-llm --coverage

# Run specific tests
uv run --group test pytest packages/kiarina-llm/tests/run_context/

Dependencies

Roadmap

This package is in active development. Planned features include:

  • Chat Model Management: Unified interface for different LLM providers
  • Agent Framework: Tools for building LLM agents
  • Pipeline Management: Workflow management for LLM processing
  • Memory Management: Context and conversation memory handling
  • Tool Integration: Framework for LLM tool calling

License

This project is licensed under the MIT License - see the LICENSE file for details.

Contributing

This is a personal project, but contributions are welcome! Please feel free to submit issues or pull requests.

Related Projects

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

kiarina_llm-1.29.0.tar.gz (9.9 kB view details)

Uploaded Source

Built Distribution

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

kiarina_llm-1.29.0-py3-none-any.whl (10.6 kB view details)

Uploaded Python 3

File details

Details for the file kiarina_llm-1.29.0.tar.gz.

File metadata

  • Download URL: kiarina_llm-1.29.0.tar.gz
  • Upload date:
  • Size: 9.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for kiarina_llm-1.29.0.tar.gz
Algorithm Hash digest
SHA256 4ba19260055914f2c6007f3f5b5460c18e8c97e3263e05910ce7b7a10c3d7907
MD5 fe0fb0e06b5e0c3b150f6131a935d0de
BLAKE2b-256 e8b02cb73ac9653a33f4dca0399125a7a72cff20d5fab11aa3e0c341fed8296a

See more details on using hashes here.

File details

Details for the file kiarina_llm-1.29.0-py3-none-any.whl.

File metadata

  • Download URL: kiarina_llm-1.29.0-py3-none-any.whl
  • Upload date:
  • Size: 10.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for kiarina_llm-1.29.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e993970d42f904efb6d0ddba7063a09fc22c7bde0bf9dc3ea844c7660621fadc
MD5 a514802822732477fd4ae5ca38a0f1a5
BLAKE2b-256 df7ca2a6349551f44d48b4d299fe8fe75970b4fcbfe37ccd8a4a3e551df07515

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