LaunchDarkly SDK for AI
Project description
LaunchDarkly Server-Side AI SDK for Python
This package contains the LaunchDarkly Server-Side AI SDK for Python (launchdarkly-server-sdk-ai).
⛔️⛔️⛔️⛔️
[!CAUTION] This library is a alpha version and should not be considered ready for production use while this message is visible.
☝️☝️☝️☝️☝️☝️
LaunchDarkly overview
LaunchDarkly is a feature management platform that serves over 100 billion feature flags daily to help teams build better software, faster. Get started using LaunchDarkly today!
Quick Setup
This assumes that you have already installed the LaunchDarkly Python (server-side) SDK.
- Install this package with
pip:
pip install launchdarkly-server-sdk-ai
- Create an AI SDK instance:
from ldclient import LDClient, Config, Context
from ldai import LDAIClient
# The ld_client instance should be created based on the instructions in the relevant SDK.
ld_client = LDClient(Config("your-sdk-key"))
ai_client = LDAIClient(ld_client)
Setting Default AI Configurations
When retrieving AI configurations, you need to provide default values that will be used if the configuration is not available from LaunchDarkly:
Fully Configured Default
from ldai import AICompletionConfigDefault, ModelConfig, LDMessage
default_config = AICompletionConfigDefault(
enabled=True,
model=ModelConfig(
name='gpt-4',
parameters={'temperature': 0.7, 'maxTokens': 1000}
),
messages=[
LDMessage(role='system', content='You are a helpful assistant.')
]
)
Disabled Default
from ldai import AICompletionConfigDefault
default_config = AICompletionConfigDefault(
enabled=False
)
Retrieving AI Configurations
The completion_config method retrieves AI configurations from LaunchDarkly with support for dynamic variables and fallback values:
from ldclient import Context
from ldai import LDAIClient, AICompletionConfigDefault, ModelConfig
context = Context.create("user-123")
ai_config = ai_client.completion_config(
ai_config_key,
context,
default_config,
variables={'myVariable': 'My User Defined Variable'} # Variables for template interpolation
)
# Ensure configuration is enabled
if ai_config.enabled:
messages = ai_config.messages
model = ai_config.model
tracker = ai_config.tracker
# Use with your AI provider
Chat for Conversational AI
Chat provides a high-level interface for conversational AI with automatic conversation management and metrics tracking:
- Automatically configures models based on AI configuration
- Maintains conversation history across multiple interactions
- Automatically tracks token usage, latency, and success rates
- Works with any supported AI provider (see AI Providers for available packages)
Using Chat
import asyncio
from ldclient import Context
from ldai import LDAIClient, AICompletionConfigDefault, ModelConfig, LDMessage
# Use the same default_config from the retrieval section above
async def main():
context = Context.create("user-123")
chat = await ai_client.create_chat(
'customer-support-chat',
context,
default_config,
variables={'customerName': 'John'}
)
if chat:
# Simple conversation flow - metrics are automatically tracked by invoke()
response1 = await chat.invoke('I need help with my order')
print(response1.message.content)
response2 = await chat.invoke("What's the status?")
print(response2.message.content)
# Access conversation history
messages = chat.get_messages()
print(f'Conversation has {len(messages)} messages')
asyncio.run(main())
Advanced Usage with Providers
For more control, you can use the configuration directly with AI providers. We recommend using LaunchDarkly AI Provider packages when available:
Using AI Provider Packages
import asyncio
from ldai import LDAIClient, AICompletionConfigDefault, ModelConfig
from ldai.providers.types import LDAIMetrics, TokenUsage
from ldai_langchain import LangChainProvider
async def main():
ai_config = ai_client.completion_config(ai_config_key, context, default_value)
# Create LangChain model from configuration
llm = await LangChainProvider.create_langchain_model(ai_config)
# Use with tracking
response = await ai_config.tracker.track_metrics_of(
lambda: llm.invoke(messages),
lambda result: LangChainProvider.get_ai_metrics_from_response(result)
)
print('AI Response:', response.content)
asyncio.run(main())
Using Custom Providers
import asyncio
from ldai import LDAIClient, AICompletionConfigDefault, ModelConfig
from ldai.providers.types import LDAIMetrics, TokenUsage
async def main():
ai_config = ai_client.completion_config(ai_config_key, context, default_value)
# Define custom metrics mapping for your provider
def map_custom_provider_metrics(response):
return LDAIMetrics(
success=True,
usage=TokenUsage(
total=response.usage.get('total_tokens', 0) if response.usage else 0,
input=response.usage.get('prompt_tokens', 0) if response.usage else 0,
output=response.usage.get('completion_tokens', 0) if response.usage else 0,
)
)
# Use with custom provider and tracking
async def call_custom_provider():
return await custom_provider.generate(
messages=ai_config.messages or [],
model=ai_config.model.name if ai_config.model else 'custom-model',
temperature=ai_config.model.get_parameter('temperature') if ai_config.model else 0.5,
)
result = await ai_config.tracker.track_metrics_of(
call_custom_provider,
map_custom_provider_metrics
)
print('AI Response:', result.content)
asyncio.run(main())
Documentation
For full documentation, please refer to the LaunchDarkly AI SDK documentation.
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-0.13.0.tar.gz.
File metadata
- Download URL: launchdarkly_server_sdk_ai-0.13.0.tar.gz
- Upload date:
- Size: 22.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d6b547d5a91c95346ee7ffa061a5691c2eb13ef6272a0920b3e1b10a3c888c85
|
|
| MD5 |
805c67242721fa161a32b1aa5da7b1c3
|
|
| BLAKE2b-256 |
2fae005f2a9cfd218d8655df92d955baae6dda396505c0b08b368ded30b57673
|
File details
Details for the file launchdarkly_server_sdk_ai-0.13.0-py3-none-any.whl.
File metadata
- Download URL: launchdarkly_server_sdk_ai-0.13.0-py3-none-any.whl
- Upload date:
- Size: 25.3 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 |
3ff7abd5a20398ae777654c3ae5945cafdeb0029b06bc4de3af74924cec174e8
|
|
| MD5 |
4687280bb642a2ab2602c76831ad39fa
|
|
| BLAKE2b-256 |
8e0f54a7dad18b033966a2bb62c2b4190834667c6b8ef97fd253d49fedc053f0
|