| |
| """ |
| A test script to demonstrate using the llmpromptkit library programmatically. |
| """ |
|
|
| import os |
| import asyncio |
| from llmpromptkit import PromptManager, VersionControl, PromptTesting, Evaluator |
|
|
| async def main(): |
| |
| 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("===== Existing Prompts =====") |
| prompts = prompt_manager.list() |
| for prompt in prompts: |
| print(f"ID: {prompt.id} | Name: {prompt.name} | Tags: {', '.join(prompt.tags)}") |
| |
| |
| 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}") |
| |
| |
| 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}") |
| |
| |
| 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}") |
| |
| |
| 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}") |
| |
| |
| 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}") |
| |
| |
| 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()) |
|
|