Skip to main content

lc_callbacks/
lib.rs

1#![warn(missing_docs)]
2// lc-callbacks/src/lib.rs
3//! Callback and tracing system
4//!
5//! This module provides callbacks for observability, tracing, and monitoring.
6//!
7//! # Quick Start
8//!
9//! ```rust,ignore
10//! use lc_callbacks::{CallbackManager, StdOutHandler, LangSmithHandler};
11//! use std::sync::Arc;
12//!
13//! // Create callback manager with handlers
14//! let manager = CallbackManager::new()
15//!     .add_handler(Arc::new(StdOutHandler::new()))
16//!     .add_handler(Arc::new(LangSmithHandler::from_env()?));
17//!
18//! // Use with LLM or Agent
19//! let llm = OpenAIChat::new(config);
20//! // llm.with_callbacks(Arc::new(manager));
21//! ```
22//!
23//! # Environment Variables for LangSmith
24//!
25//! - `LANGSMITH_API_KEY`: API key (required, starts with "ls_")
26//! - `LANGSMITH_TRACING`: Enable tracing (default: "true")
27//! - `LANGSMITH_PROJECT`: Project name (default: "default")
28//! - `LANGSMITH_ENDPOINT`: API endpoint (default: LangSmith official)
29//! - `LANGSMITH_WORKSPACE_ID`: Workspace ID (required for org accounts)
30
31mod base;
32pub mod handlers;
33mod langsmith_client;
34mod run_tree;
35mod run_type;
36pub mod pricing;
37pub mod tracing;
38
39pub use base::{CallbackHandler, CallbackManager};
40pub use pricing::{estimate_cost_usd, price_for, ModelPrice};
41#[cfg(feature = "opentelemetry")]
42pub use handlers::OtelHandler;
43pub use handlers::{
44    FileCallbackHandler, GenericHandler, LangSmithHandler, LogFormat, StdOutHandler,
45};
46pub use langsmith_client::{LangSmithClient, LangSmithConfig, LangSmithError};
47pub use run_tree::{RunCreate, RunTree, RunUpdate};
48pub use run_type::RunType;
49
50// Tracing exports
51#[cfg(feature = "opentelemetry")]
52pub use tracing::OtelTracingBackend;
53pub use tracing::{
54    clear_span_stack, init_task_span_stack, aggregate_cost, ConsoleTracingBackend,
55    InMemoryTracingBackend, SpanGuard, SpanId, SpanKind, SpanStatus, SpanTokenUsage, TraceNode,
56    TraceSpan, Tracer, TracingBackend,
57};