Spaces:
Sleeping
Sleeping
| #!/usr/bin/env python3 | |
| """Sync local prompt files to Langfuse Prompt Management.""" | |
| import argparse | |
| import json | |
| import sys | |
| from pathlib import Path | |
| PROJECT_ROOT = Path(__file__).resolve().parents[1] | |
| sys.path.insert(0, str(PROJECT_ROOT)) | |
| from src.prompts.character_prompts import ( # noqa: E402 | |
| get_available_api_types, | |
| get_available_characters, | |
| sync_available_prompts_to_langfuse, | |
| sync_prompt_to_langfuse, | |
| ) | |
| def parse_args(): | |
| parser = argparse.ArgumentParser( | |
| description="Sync repo prompt files to Langfuse Prompts." | |
| ) | |
| parser.add_argument( | |
| "--message", | |
| default=None, | |
| help="Commit message/memo to attach to the Langfuse prompt version.", | |
| ) | |
| parser.add_argument( | |
| "--character", | |
| choices=get_available_characters(), | |
| default=None, | |
| help="Sync only one character.", | |
| ) | |
| parser.add_argument( | |
| "--provider", | |
| choices=get_available_api_types(), | |
| default=None, | |
| help="Sync only one provider prompt.", | |
| ) | |
| return parser.parse_args() | |
| def main(): | |
| args = parse_args() | |
| if args.character or args.provider: | |
| characters = [args.character] if args.character else get_available_characters() | |
| providers = [args.provider] if args.provider else get_available_api_types() | |
| results = [ | |
| sync_prompt_to_langfuse( | |
| character, | |
| provider, | |
| commit_message=args.message, | |
| ) | |
| for character in characters | |
| for provider in providers | |
| ] | |
| else: | |
| results = sync_available_prompts_to_langfuse(commit_message=args.message) | |
| print(json.dumps(results, ensure_ascii=False, indent=2)) | |
| if __name__ == "__main__": | |
| main() | |