LaunchDarkly AI SDK LangChain Provider
Project description
LaunchDarkly AI SDK - LangChain Provider
[!CAUTION] This package is in pre-release and not subject to backwards compatibility guarantees. The API may change based on feedback.
Pin to a specific minor version and review the changelog before upgrading.
This package provides LangChain integration for the LaunchDarkly Server-Side AI SDK, allowing you to use LangChain models and chains with LaunchDarkly's tracking and configuration capabilities.
Installation
pip install launchdarkly-server-sdk-ai-langchain
You'll also need to install the LangChain provider packages for the models you want to use:
# For OpenAI
pip install langchain-openai
# For Anthropic
pip install langchain-anthropic
# For Google
pip install langchain-google-genai
Quick Start
import asyncio
from ldclient import LDClient, Config, Context
from ldai import init
from ldai_langchain import LangChainProvider
# Initialize LaunchDarkly client
ld_client = LDClient(Config("your-sdk-key"))
ai_client = init(ld_client)
# Get AI configuration
context = Context.builder("user-123").build()
config = ai_client.config("ai-config-key", context, {})
async def main():
# Create a LangChain provider from the AI configuration
provider = await LangChainProvider.create(config)
# Use the provider to invoke the model
from ldai.models import LDMessage
messages = [
LDMessage(role="system", content="You are a helpful assistant."),
LDMessage(role="user", content="Hello, how are you?"),
]
response = await provider.invoke_model(messages)
print(response.message.content)
asyncio.run(main())
Usage
Using LangChainProvider with the Create Factory
The simplest way to use the LangChain provider is with the static create factory method, which automatically creates the appropriate LangChain model based on your LaunchDarkly AI configuration:
from ldai_langchain import LangChainProvider
# Create provider from AI configuration
provider = await LangChainProvider.create(ai_config)
# Invoke the model
response = await provider.invoke_model(messages)
Using an Existing LangChain Model
If you already have a LangChain model configured, you can use it directly:
from langchain_openai import ChatOpenAI
from ldai_langchain import LangChainProvider
# Create your own LangChain model
llm = ChatOpenAI(model="gpt-4", temperature=0.7)
# Wrap it with LangChainProvider
provider = LangChainProvider(llm)
# Use with LaunchDarkly tracking
response = await provider.invoke_model(messages)
Structured Output
The provider supports structured output using LangChain's with_structured_output:
response_structure = {
"type": "object",
"properties": {
"sentiment": {"type": "string", "enum": ["positive", "negative", "neutral"]},
"confidence": {"type": "number"},
},
"required": ["sentiment", "confidence"],
}
result = await provider.invoke_structured_model(messages, response_structure)
print(result.data) # {"sentiment": "positive", "confidence": 0.95}
Tracking Metrics
Use the provider with LaunchDarkly's tracking capabilities:
# Get the AI config with tracker
config = ai_client.config("ai-config-key", context, {})
# Create provider
provider = await LangChainProvider.create(config)
# Track metrics automatically
async def invoke():
return await provider.invoke_model(messages)
response = await config.tracker.track_metrics_of(
invoke,
lambda r: r.metrics
)
Static Utility Methods
The LangChainProvider class provides several utility methods:
Converting Messages
from ldai.models import LDMessage
from ldai_langchain import LangChainProvider
messages = [
LDMessage(role="system", content="You are helpful."),
LDMessage(role="user", content="Hello!"),
]
# Convert to LangChain messages
langchain_messages = LangChainProvider.convert_messages_to_langchain(messages)
Extracting Metrics
from ldai_langchain import LangChainProvider
# After getting a response from LangChain
metrics = LangChainProvider.get_ai_metrics_from_response(ai_message)
print(f"Success: {metrics.success}")
print(f"Tokens used: {metrics.usage.total if metrics.usage else 'N/A'}")
Provider Name Mapping
# Map LaunchDarkly provider names to LangChain provider names
langchain_provider = LangChainProvider.map_provider("gemini") # Returns "google-genai"
API Reference
LangChainProvider
Constructor
LangChainProvider(llm: BaseChatModel, logger: Optional[Any] = None)
Static Methods
create(ai_config: AIConfigKind, logger: Optional[Any] = None) -> LangChainProvider- Factory method to create a provider from AI configurationconvert_messages_to_langchain(messages: List[LDMessage]) -> List[BaseMessage]- Convert LaunchDarkly messages to LangChain messagesget_ai_metrics_from_response(response: AIMessage) -> LDAIMetrics- Extract metrics from a LangChain responsemap_provider(ld_provider_name: str) -> str- Map LaunchDarkly provider names to LangChain namescreate_langchain_model(ai_config: AIConfigKind) -> BaseChatModel- Create a LangChain model from AI configuration
Instance Methods
invoke_model(messages: List[LDMessage]) -> ChatResponse- Invoke the model with messagesinvoke_structured_model(messages: List[LDMessage], response_structure: Dict[str, Any]) -> StructuredResponse- Invoke with structured outputget_chat_model() -> BaseChatModel- Get the underlying LangChain model
Documentation
For full documentation, please refer to the LaunchDarkly AI SDK documentation.
Contributing
See CONTRIBUTING.md in the repository root.
License
Apache-2.0
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file launchdarkly_server_sdk_ai_langchain-0.3.1.tar.gz.
File metadata
- Download URL: launchdarkly_server_sdk_ai_langchain-0.3.1.tar.gz
- Upload date:
- Size: 5.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1552934cdc8868a8bb5bb5641ccadc3b6a72edeb884579a1e3a4c05e9c55e925
|
|
| MD5 |
c31b21b7a60427149e191b7c0e634971
|
|
| BLAKE2b-256 |
d2a83a59d53e9c0475239c571945624065c194f4911f28df9ef8c9b89a331de1
|
File details
Details for the file launchdarkly_server_sdk_ai_langchain-0.3.1-py3-none-any.whl.
File metadata
- Download URL: launchdarkly_server_sdk_ai_langchain-0.3.1-py3-none-any.whl
- Upload date:
- Size: 6.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7dba1de223df4e1dbd3c531f0f2df9f49cf1316859c5ee41efd7d4616b140cc0
|
|
| MD5 |
cc8fbdeee920b039a16e90f6170ebb74
|
|
| BLAKE2b-256 |
c15d7ca10dec7db421ed909df120b806f1ea4ac2e67af866a33e823bc4fc26bc
|