Skip to main content

lc_callbacks/
lib.rs

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