LightRAG/lightrag
anouarbm 626b42bc40 feat: add optional Langfuse observability integration
This contribution adds optional Langfuse support for LLM observability and tracing.
Langfuse provides a drop-in replacement for the OpenAI client that automatically
tracks all LLM interactions without requiring code changes.

Features:
- Optional Langfuse integration with graceful fallback
- Automatic LLM request/response tracing
- Token usage tracking
- Latency metrics
- Error tracking
- Zero code changes required for existing functionality

Implementation:
- Modified lightrag/llm/openai.py to conditionally use Langfuse's AsyncOpenAI
- Falls back to standard OpenAI client if Langfuse is not installed
- Logs observability status on import

Configuration:
To enable Langfuse tracing, install the observability extras and set environment variables:

```bash
pip install lightrag-hku[observability]

export LANGFUSE_PUBLIC_KEY="your_public_key"
export LANGFUSE_SECRET_KEY="your_secret_key"
export LANGFUSE_HOST="https://cloud.langfuse.com"  # or your self-hosted instance
```

If Langfuse is not installed or environment variables are not set, LightRAG
will use the standard OpenAI client without any functionality changes.

Changes:
- Modified lightrag/llm/openai.py (added optional Langfuse import)
- Updated pyproject.toml with optional 'observability' dependencies

Dependencies (optional):
- langfuse>=3.8.1
2025-11-01 21:40:22 +01:00
..
api Add PDF decryption support for password-protected files 2025-11-01 15:01:17 +08:00
kg Add Qdrant legacy collection migration with workspace support 2025-10-30 19:16:33 +08:00
llm feat: add optional Langfuse observability integration 2025-11-01 21:40:22 +01:00
tools Add offline deployment support with cache management and layered deps 2025-10-11 10:28:14 +08:00
__init__.py Bump core version to 1.4.9.8 and API version to 0250 2025-10-31 05:23:48 +08:00
base.py Fix RayAnything compatible problem 2025-10-22 20:15:29 +08:00
constants.py Refactor entity merging with unified attribute merge function 2025-10-27 00:04:17 +08:00
exceptions.py Add Qdrant legacy collection migration with workspace support 2025-10-30 19:16:33 +08:00
lightrag.py Fix edge cleanup when deleting entities to prevent orphaned relationships 2025-10-31 02:36:15 +08:00
namespace.py Add entity/relation chunk tracking with configurable source ID limits 2025-10-20 15:24:15 +08:00
operate.py Rename function and variables for clarity in context building 2025-11-01 12:15:24 +08:00
prompt.py Fix typo in 'equipment' in prompt.py 2025-10-22 11:13:22 +08:00
rerank.py fix: Resolve default rerank config problem when env var missing 2025-08-23 01:07:59 +08:00
types.py Add is_truncated to graph query for NetworkX graph db 2025-04-02 22:12:20 +08:00
utils.py Enhance entity/relation editing with chunk tracking synchronization 2025-10-26 14:34:56 +08:00
utils_graph.py Improve entity merge logging by removing redundant message and fixing typo 2025-10-31 17:16:59 +08:00