from lumina import init_lumina
lumina = init_lumina({"endpoint": "http://localhost:9411/v1/traces", "service_name": "my-app"})
def run_rag_pipeline(span):
span.set_attribute("query", user_query)
# Child span 1: vector search
def retrieve(s):
docs = vector_db.search(user_query, top_k=3)
s.set_attribute("docs_retrieved", len(docs))
return docs
docs = lumina.trace("retrieval", retrieve)
# Child span 2: LLM synthesis
response = lumina.trace_llm(
lambda: llm.generate(build_prompt(user_query, docs)),
name="synthesis",
system="anthropic",
)
return response
result = lumina.trace("rag_pipeline", run_rag_pipeline)