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