Metadata-Version: 2.4
Name: langfuse-runnable-config
Version: 0.2.0
Summary: Утилита для создания RunnableConfig с Langfuse callbacks. Автоматически определяет версию Langfuse и настраивает callbacks с опциональной обрезкой данных.
Author-email: "v.skurikhin" <skurikhinvladimir1998@gmail.com>
License: MIT
Project-URL: Homepage, https://github.com/SkurikhinVladimir/langfuse-runnable-config-builder
Project-URL: Documentation, https://github.com/SkurikhinVladimir/langfuse-runnable-config-builder#readme
Project-URL: Repository, https://github.com/SkurikhinVladimir/langfuse-runnable-config-builder
Project-URL: Issues, https://github.com/SkurikhinVladimir/langfuse-runnable-config-builder/issues
Keywords: langfuse,langchain,tracing,observability,llm,monitoring
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Requires-Python: >=3.8.1
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: langchain-core>=0.1.0
Requires-Dist: pydantic>=2.0.0
Requires-Dist: pydantic-settings>=2.0.0
Requires-Dist: httpx>=0.24.0
Provides-Extra: dev
Requires-Dist: pytest>=7.0.0; extra == "dev"
Requires-Dist: black>=23.0.0; extra == "dev"
Requires-Dist: isort>=5.12.0; extra == "dev"
Requires-Dist: mypy>=1.0.0; extra == "dev"
Requires-Dist: ruff>=0.1.0; extra == "dev"
Dynamic: license-file

# Langfuse Runnable Config

Утилита для создания `RunnableConfig` с Langfuse callbacks. Автоматически определяет версию Langfuse и создает правильную конфигурацию. Langfuse не обеспечил обратную совместимость между версиями v2 и v3. API для создания callbacks и конфигураций изменился, и код, написанный для одной версии, не работает с другой. Эта утилита решает проблему, предоставляя единый API, который работает одинаково с обеими версиями.

## Установка

```bash
pip install langfuse-runnable-config langfuse
```

## Использование

Три способа инициализации:

```python
from langfuse_runnable_config import LangfuseRunnableConfig, LangfuseSettings

# 1. Прямая передача параметров
runnable_config = LangfuseRunnableConfig.create_config(
    url="https://cloud.langfuse.com",
    public_key="pk-...",
    secret_key="sk-...",
)

# 2. Через объект настроек
settings = LangfuseSettings(url="...", public_key="...", secret_key="...")
runnable_config = LangfuseRunnableConfig.create_config(settings=settings)

# 3. Из переменных окружения
runnable_config = LangfuseRunnableConfig.create_config()  # или settings = LangfuseSettings()
```

Применение:

```python
chain = prompt | llm
chain = chain.with_config(runnable_config)
chain.invoke(input)
```

Создание callback:

```python
callback = LangfuseRunnableConfig.create_callback()  # все три способа работают
chain.invoke(input, config={"callbacks": [callback]})
```

С автоматической обрезкой данных:

```python
from langfuse_runnable_config import LangfuseTruncatingRunnableConfig, LangfuseTruncatingSettings

runnable_config = LangfuseTruncatingRunnableConfig.create_config()
# или с параметрами обрезки
runnable_config = LangfuseTruncatingRunnableConfig.create_config(
    url="...", public_key="...", secret_key="...",
    truncate_max_length=5000,
    truncate_max_vector_elements=5,
)
```

Настройки: [`LangfuseSettings`](langfuse_runnable_config/settings/simple.py), [`LangfuseTruncatingSettings`](langfuse_runnable_config/settings/truncating.py). Переменные окружения читаются автоматически с префиксом `LANGFUSE_`.
