Files
compass_backoffice/scripts_original_develop/get_prompt_from_langfuse.py
2026-06-13 08:23:21 -03:00

73 lines
2.2 KiB
Python

"""
Simple script to test Langfuse connection and retrieve a prompt.
Usage:
uv run python scripts/get_prompt_from_langfuse.py
"""
# Import settings and setup Langfuse environment variables
from src.core.config import settings
settings.setup_langfuse()
from langfuse import Langfuse
from src.core.logging import setup_logging
# Setup logging to see what's happening
logger = setup_logging(log_level=settings.LOG_LEVEL, log_format=settings.LOG_FORMAT)
def main():
try:
logger.info(f"Connecting to Langfuse at: {settings.LANGFUSE_BASE_URL}")
# Initialize Langfuse client
# The client will use the environment variables exported by settings.setup_langfuse()
# or we can pass them explicitly as in the upload script.
client = Langfuse(
public_key=settings.LANGFUSE_PUBLIC_KEY,
secret_key=settings.LANGFUSE_SECRET_KEY,
host=settings.LANGFUSE_BASE_URL,
)
# List of prompts we know should exist (from upload_prompts_to_langfuse.py)
prompt_name = "ticket_reclassification_pt"
logger.info(f"Attempting to retrieve prompt: '{prompt_name}'")
prompt = client.get_prompt(prompt_name, max_retries=2)
logger.info(
"Prompt retrieved successfully",
extra={
"prompt_name": prompt_name,
"version": prompt.version,
"labels": getattr(prompt, "labels", None),
},
)
print("\n" + "=" * 50)
print(f"PROMPT: {prompt_name} | version={prompt.version} | labels={getattr(prompt, 'labels', 'N/A')}")
print("=" * 50)
print(prompt.prompt)
print("=" * 50 + "\n")
except Exception as error:
error_type = type(error).__name__
error_detail = str(error) if str(error) else "(no message)"
logger.error(
"Failed to retrieve prompt",
extra={
"prompt_name": prompt_name,
"error_type": error_type,
"error_detail": error_detail,
},
exc_info=True,
)
finally:
client.flush()
if __name__ == "__main__":
main()