from langsmith import traceable
@traceable
def retrieve_documents(query: str) -> list[str]:
# Simulate document retrieval
return ["doc1", "doc2", "doc3"]
@traceable
def generate_answer(query: str, documents: list[str]) -> str:
# Simulate answer generation
return f"Answer based on {len(documents)} documents"
@traceable(name="rag_pipeline")
def rag_pipeline(query: str) -> str:
# Nested traces: retrieve -> generate
docs = retrieve_documents(query)
answer = generate_answer(query, docs)
return answer
result = rag_pipeline("What is RAG?")