from basalt import Basalt
from basalt.observability import ObserveKind, observe, start_observe
basalt = Basalt(
api_key="your-api-key",
enabled_instruments=["openai", "chromadb"], # optional
)
@observe(name="Retrieve", kind=ObserveKind.RETRIEVAL)
def retrieve(query: str) -> list[str]:
# Your vector DB call here (auto-instrumented if enabled)
return ["doc1", "doc2"]
@observe(name="Generate", kind=ObserveKind.GENERATION)
def generate(query: str, docs: list[str]) -> str:
# Your LLM call here (auto-instrumented if enabled)
return "..."
@start_observe(feature_slug="qa", name="Answer question")
def answer(question: str) -> str:
docs = retrieve(question)
return generate(question, docs)