Quick Start for Tracing Guardrails

View as Markdown

The following is a minimal setup to enable tracing using the OpenTelemetry SDK.

  1. Install the NeMo Guardrails library and the OpenTelemetry SDK.

    pip install nemoguardrails[tracing] opentelemetry-sdk
  2. Set up tracing as follows and save as trace_example.py.

    # trace_example.py
    from opentelemetry import trace
    from opentelemetry.sdk.trace import TracerProvider
    from opentelemetry.sdk.trace.export import BatchSpanProcessor, ConsoleSpanExporter
    from opentelemetry.sdk.resources import Resource
    from nemoguardrails import LLMRails, RailsConfig
    # Configure OpenTelemetry
    resource = Resource.create({"service.name": "guardrails-quickstart"})
    tracer_provider = TracerProvider(resource=resource)
    trace.set_tracer_provider(tracer_provider)
    tracer_provider.add_span_processor(BatchSpanProcessor(ConsoleSpanExporter()))
    # Configure guardrails with tracing
    config_yaml = """
    models:
    - type: main
    engine: openai
    model: gpt-4o-mini
    rails:
    config:
    streaming: true
    tracing:
    enabled: true
    adapters:
    - name: OpenTelemetry
    """
    config = RailsConfig.from_content(yaml_content=config_yaml)
    rails = LLMRails(config)
    response = rails.generate(messages=[{"role": "user", "content": "Hello!"}])
    print(f"Response: {response}")
  3. Run the script:

    python trace_example.py