Other Frameworks
SideSeat works with any framework that emits OpenTelemetry traces. This page covers frameworks without dedicated integration pages.
LangChain
Section titled “LangChain”pip install langchain langchain-openai sideseat# oruv add langchain langchain-openai sideseatfrom sideseat import SideSeat, FrameworksSideSeat(framework=Frameworks.LangChain)
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(model="gpt-5-mini")response = llm.invoke("Hello!")print(response.content)PydanticAI
Section titled “PydanticAI”pip install pydantic-ai sideseat# oruv add pydantic-ai sideseatfrom sideseat import SideSeat, FrameworksSideSeat(framework=Frameworks.PydanticAI)
from pydantic_ai import Agent
agent = Agent('openai:gpt-5-mini')result = agent.run_sync('What is the capital of France?')print(result.data)LlamaIndex
Section titled “LlamaIndex”pip install llama-index sideseat# oruv add llama-index sideseatfrom sideseat import SideSeatSideSeat()
from llama_index.core import VectorStoreIndex, SimpleDirectoryReader
documents = SimpleDirectoryReader("data").load_data()index = VectorStoreIndex.from_documents(documents)query_engine = index.as_query_engine()
response = query_engine.query("What is this about?")print(response)Generic OpenTelemetry
Section titled “Generic OpenTelemetry”For frameworks not listed above, send traces directly via the OpenTelemetry SDK:
from opentelemetry import tracefrom opentelemetry.sdk.trace import TracerProviderfrom opentelemetry.sdk.trace.export import BatchSpanProcessorfrom opentelemetry.exporter.otlp.proto.http.trace_exporter import OTLPSpanExporter
provider = TracerProvider()provider.add_span_processor( BatchSpanProcessor( OTLPSpanExporter(endpoint="http://localhost:5388/otel/default/v1/traces") ))trace.set_tracer_provider(provider)SideSeat auto-detects framework spans and normalizes them into the workbench timeline.
Next Steps
Section titled “Next Steps”- Python SDK — SDK reference
- OpenTelemetry Reference — attribute extraction details