Metadata-Version: 2.4
Name: langfn
Version: 0.0.1
Summary: AI development SDK for LLM-based workflows (Python)
Project-URL: Documentation, https://docs.superfunctions.dev/langfn
Project-URL: Repository, https://github.com/21nCo/super-functions
Project-URL: Issues, https://github.com/21nCo/super-functions/issues
Author: 21n
License-Expression: MIT
Keywords: agents,llm,observability,orchestration,prompt,superfunctions,tools
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
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
Requires-Python: >=3.10
Requires-Dist: httpx>=0.27
Requires-Dist: pydantic>=2.6
Requires-Dist: superfunctions>=0.1.0
Provides-Extra: dev
Requires-Dist: black>=23.11.0; extra == 'dev'
Requires-Dist: mypy>=1.7.0; extra == 'dev'
Requires-Dist: pytest-asyncio>=0.21.0; extra == 'dev'
Requires-Dist: pytest-cov>=4.1.0; extra == 'dev'
Requires-Dist: pytest>=7.4.0; extra == 'dev'
Requires-Dist: ruff>=0.1.6; extra == 'dev'
Provides-Extra: openai
Requires-Dist: openai>=1.0.0; extra == 'openai'
Provides-Extra: watchfn
Requires-Dist: watchfn>=0.1.0; extra == 'watchfn'
Description-Content-Type: text/markdown

# LangFn (Python)

Comprehensive AI Development SDK for LLM-based workflows.

## Features

- **Model Abstraction**: Unified interface for OpenAI, Anthropic, Ollama, and more.
- **Orchestration**: Sequential, Parallel, and Map-Reduce chains.
- **Graph Workflows**: Stateful workflows with `StateGraph`.
- **Agents**: Functional `ToolAgent` and `ReActAgent`.
- **Structured Output**: Type-safe output parsing with Pydantic.
- **RAG**: Embeddings and Vector Store support.
- **Observability**: Built-in tracing with `watchfn` integration.

## Usage

```python
from langfn import LangFn
from langfn.models.openai import OpenAIChatModel

lang = LangFn(
    model=OpenAIChatModel(api_key="your-api-key")
)

response = await lang.complete("Hello world")
print(response.content)
```

## Documentation

See the [main documentation](https://docs.superfunctions.dev/langfn) for more details.