
    jKj^                     <    d Z ddlmZ erddlmZ dZdZdddefd	Zy
)zKShared AI span filtering logic and constants for OpenTelemetry integration.    )TYPE_CHECKING)ReadableSpanzhttps://us.i.posthog.com)zgen_ai.zllm.zai.z
traceloop.spanr   returnc                     | j                   t        fdt        D              ry| j                  xs i }|D ]  t        fdt        D              s y y)zCheck if a span is AI-related by examining its name and attribute keys.

    Matches spans whose name or any attribute key starts with one of the
    known AI semantic convention prefixes (gen_ai, llm, ai, traceloop).
    c              3   @   K   | ]  }j                  |        y wN
startswith).0prefixnames     f/Users/ahmed/devFolder/Ultron/claude-voice/.venv/lib/python3.12/site-packages/posthog/ai/otel/spans.py	<genexpr>zis_ai_span.<locals>.<genexpr>   s     
B1Av4??6"1A   Tc              3   @   K   | ]  }j                  |        y wr	   r
   )r   r   keys     r   r   zis_ai_span.<locals>.<genexpr>   s     E4D&s~~f%4Dr   F)r   anyAI_SPAN_PREFIXES
attributes)r   r   r   r   s     @@r   
is_ai_spanr      sO     99D

B1A
BB&BJE4DEE      N)	__doc__typingr   opentelemetry.sdk.tracer   DEFAULT_HOSTr   boolr    r   r   <module>r      s/    Q  4); ^  r   