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.

    1# trace_example.py
    2from opentelemetry import trace
    3from opentelemetry.sdk.trace import TracerProvider
    4from opentelemetry.sdk.trace.export import BatchSpanProcessor, ConsoleSpanExporter
    5from opentelemetry.sdk.resources import Resource
    6from nemoguardrails import LLMRails, RailsConfig
    7
    8# Configure OpenTelemetry
    9resource = Resource.create({"service.name": "guardrails-quickstart"})
    10tracer_provider = TracerProvider(resource=resource)
    11trace.set_tracer_provider(tracer_provider)
    12tracer_provider.add_span_processor(BatchSpanProcessor(ConsoleSpanExporter()))
    13
    14# Configure guardrails with tracing
    15config_yaml = """
    16models:
    17 - type: main
    18 engine: openai
    19 model: gpt-4o-mini
    20
    21rails:
    22 config:
    23 streaming: true
    24
    25tracing:
    26 enabled: true
    27 adapters:
    28 - name: OpenTelemetry
    29"""
    30
    31config = RailsConfig.from_content(yaml_content=config_yaml)
    32rails = LLMRails(config)
    33response = rails.generate(messages=[{"role": "user", "content": "Hello!"}])
    34print(f"Response: {response}")
  3. Run the script:

    $python trace_example.py