Skip to main content

DEPRECATED: LangChain integration is now included in the main braintrust package. Install braintrust instead.

This project has been archived.

The maintainers of this project have marked this project as archived. No new releases are expected.

Project description

braintrust-langchain (DEPRECATED)

PyPI version

SDK for integrating Braintrust with LangChain. This package provides a callback handler to automatically log LangChain executions to Braintrust.

This package is deprecated. The LangChain integration is now included in the main braintrust package.

Migration

  1. Remove braintrust-langchain from your dependencies
  2. Install or upgrade braintrust:
    pip install --upgrade braintrust
    
  3. Update your imports:
    # Before
    from braintrust_langchain import BraintrustCallbackHandler, set_global_handler
    
    # After (option 1: same explicit callback API from the main package)
    from braintrust.integrations.langchain import BraintrustCallbackHandler, set_global_handler
    
    # After (option 2: helper that initializes Braintrust and installs the global handler)
    from braintrust.integrations.langchain import setup_langchain
    
    setup_langchain(project_name="your-project-name")
    

The callback API is the same - no code changes are needed beyond the package/import path.


Installation

pip install braintrust-langchain

Requirements

  • Python >= 3.10
  • LangChain >= 0.3.27

Quickstart

First, make sure you have your Braintrust API key set in your environment:

export BRAINTRUST_API_KEY="your-api-key"
import asyncio
from braintrust import init_logger
from braintrust_langchain import BraintrustCallbackHandler, set_global_handler
from langchain_openai import ChatOpenAI
from langchain_core.prompts import ChatPromptTemplate


async def main():
    # Initialize the logger with your project
    init_logger(project="your-project-name")

    # Create the callback handler and set it globally for all LangChain components
    handler = BraintrustCallbackHandler()
    set_global_handler(handler)

    # Initialize your LangChain components
    prompt = ChatPromptTemplate.from_template("What is 1 + {number}?")
    model = ChatOpenAI()

    # Create a simple chain
    chain = prompt | model

    # Use LangChain as normal - all calls will be logged to Braintrust
    response = await chain.ainvoke({"number": "2"})


if __name__ == "__main__":
    asyncio.run(main())

Passing Handlers Explicitly

If you'd prefer to pass the callback handler to specific LangChain calls instead of setting it globally, you can do so using the callbacks config option:

async def main():
    handler = BraintrustCallbackHandler()

    # Pass the handler to specific calls
    response = await chain.ainvoke(
        {"number": "2"},
        config={"callbacks": [handler]}
    )

    # Or initialize components with the handler
    model = ChatOpenAI(callbacks=[handler])

Supported Features

The callback handler supports logging for:

  • LLM calls (including streaming)
  • Chat model interactions
  • Chain executions
  • Tool/Agent usage
  • Memory operations
  • State management (LangGraph)

Review the LangChain documentation for more information on how to use callbacks.

Documentation

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

braintrust_langchain-0.3.0.tar.gz (3.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

braintrust_langchain-0.3.0-py3-none-any.whl (3.7 kB view details)

Uploaded Python 3

File details

Details for the file braintrust_langchain-0.3.0.tar.gz.

File metadata

File hashes

Hashes for braintrust_langchain-0.3.0.tar.gz
Algorithm Hash digest
SHA256 89d017ce71ab2570c631f69d43d3f9b47716312239658ec8ca18ad7e0d19d867
MD5 08d42356d74c0f70d238aad61dc836b5
BLAKE2b-256 409f595066dce79c672a4b28c4188f6a11c28fbcb3677dce8e60e3da6cae3515

See more details on using hashes here.

File details

Details for the file braintrust_langchain-0.3.0-py3-none-any.whl.

File metadata

File hashes

Hashes for braintrust_langchain-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9a661c56c79bb7d07ea28db13f4ba1d2ca2997d8963c9f475ec8853699ffb5c3
MD5 7b9448e79e18ba9b7e9abef8f75d03a5
BLAKE2b-256 9b828418db2207955f2d3bccb5ec8f3215f3498d2ac90454b6501bb9a0bc8c9c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page