llmpromptkit / test_script.py
biswanath2.roul
Update documentation and remove deprecated files
6f40440
#!/usr/bin/env python3
"""
A test script to demonstrate using the llmpromptkit library programmatically.
"""
import os
import asyncio
from llmpromptkit import PromptManager, VersionControl, PromptTesting, Evaluator
async def main():
# Initialize components with a custom storage path
storage_path = os.path.join(os.getcwd(), "llmpromptkit_storage")
prompt_manager = PromptManager(storage_path)
version_control = VersionControl(prompt_manager)
testing = PromptTesting(prompt_manager)
evaluator = Evaluator(prompt_manager)
# Print all existing prompts
print("===== Existing Prompts =====")
prompts = prompt_manager.list()
for prompt in prompts:
print(f"ID: {prompt.id} | Name: {prompt.name} | Tags: {', '.join(prompt.tags)}")
# Create a new prompt
print("\n===== Creating a New Prompt =====")
translation_prompt = prompt_manager.create(
content="Translate the following text from {source_language} to {target_language}: {text}",
name="Translation Prompt",
description="A prompt for translating text between languages",
tags=["translation", "multilingual", "test"]
)
print(f"Created prompt with ID: {translation_prompt.id}")
# Render the prompt with variables
print("\n===== Rendering the Prompt =====")
rendered = translation_prompt.render(
source_language="English",
target_language="French",
text="Hello, how are you today?"
)
print(f"Rendered prompt: {rendered}")
# Create a version
print("\n===== Creating a Version =====")
version = version_control.commit(
prompt_id=translation_prompt.id,
commit_message="Initial translation prompt"
)
print(f"Created version {version.version} for prompt {translation_prompt.id}")
# List all versions for this prompt
print("\n===== Listing Versions =====")
versions = version_control.list_versions(translation_prompt.id)
print(f"Found {len(versions)} versions for prompt {translation_prompt.id}:")
for v in versions:
print(f"Version: {v.version} | Created: {v.created_at} | Message: {v.commit_message}")
# Create a test case
print("\n===== Creating a Test Case =====")
test_case = testing.create_test_case(
prompt_id=translation_prompt.id,
input_vars={
"source_language": "English",
"target_language": "French",
"text": "Hello, world!"
},
expected_output="Bonjour, monde!"
)
print(f"Created test case with ID: {test_case.id}")
# List all test cases
print("\n===== Listing Test Cases =====")
test_cases = testing.list_test_cases()
print(f"Found {len(test_cases)} test cases:")
for tc in test_cases:
print(f"ID: {tc.id} | Prompt ID: {tc.prompt_id}")
print("\n===== Test Complete =====")
if __name__ == "__main__":
asyncio.run(main())