| | |
| | """ |
| | 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()) |
| |
|