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
Daniel.y
ece0398dfc
Merge pull request #2296 from danielaskdd/pdf-decryption
...
Feat: Add PDF Decryption Support for Password-Protected Files
2025-11-01 15:14:24 +08:00
yangdx
61b57cbb5d
Add PDF decryption support for password-protected files
...
• Add PDF_DECRYPT_PASSWORD env variable
• Check encryption status before reading
• Handle decrypt errors gracefully
• Log detailed error messages
• Support both encrypted/plain PDFs
2025-11-01 15:01:17 +08:00
yangdx
728721b14f
Remove redundant separator lines in gunicorn shutdown handler
2025-11-01 12:53:54 +08:00
yangdx
6d4a55100e
Remove redundant shutdown message from gunicorn
2025-11-01 12:52:22 +08:00
Daniel.y
bc8a8842c5
Merge pull request #2295 from danielaskdd/mix-query-without-kg
...
Fix empty context validation bug and improve naming consistency in query context building
2025-11-01 12:20:16 +08:00
yangdx
ec2ea4fd3f
Rename function and variables for clarity in context building
...
- Rename _build_llm_context to _build_context_str
- Change text_units_context to chunks_context
- Move string building before early return
- Update log messages and comments
- Consistent variable naming throughout
2025-11-01 12:15:24 +08:00
yangdx
9a8742da59
Improve entity merge logging by removing redundant message and fixing typo
2025-10-31 17:16:59 +08:00
yangdx
6b4514c8ef
Reduce logging verbosity in entity merge relation processing
2025-10-31 17:02:10 +08:00
yangdx
2496d87148
Add data/ directory to .gitignore
2025-10-31 14:51:53 +08:00
yangdx
7ccc1fdd27
Add frontend rebuild warning indicator to version display
...
- Return bool from check_frontend_build()
- Add ⚠️ symbol to outdated versions
- Show tooltip with rebuild message
- Add translations for warning text
- Fix tailwind config filename typo
2025-10-31 06:09:46 +08:00
yangdx
e5414c61ef
Bump core version to 1.4.9.8 and API version to 0250
2025-10-31 05:23:48 +08:00
Daniel.y
08b0283b04
Merge pull request #2291 from danielaskdd/reload-popular-labels
...
Refact: Auto-refresh of Popular Labels When Pipeline Completes
2025-10-31 05:20:54 +08:00
yangdx
58c83f9da5
Add auto-refresh of popular labels when pipeline completes
...
• Monitor pipeline busy->idle transitions
• Reload labels on dropdown open if needed
• Add onBeforeOpen callback to AsyncSelect
• Clear refresh flags after processing
• Improve label sync with backend state
2025-10-31 04:45:35 +08:00
Daniel.y
94cdbe77c5
Merge pull request #2290 from danielaskdd/delete-residual-edges
...
Fix: Clean Residual Edges from VDB During Entity Deletion
2025-10-31 02:44:23 +08:00
yangdx
afb5e5c1cb
Fix edge cleanup when deleting entities to prevent orphaned relationships
...
- Track edges to delete in set
- Clean VDB before node deletion
- Remove from relation chunks storage
- Prevent orphaned relationship data
2025-10-31 02:36:15 +08:00
Daniel.y
3b48cf1643
Merge pull request #2289 from danielaskdd/fix-pycrptodome-missing
...
Fix: Add PyCryptodome dependency for encrypted PDF processing
2025-10-31 01:52:58 +08:00
yangdx
c46c1b26a9
Add pycryptodome dependency for PDF encryption support
2025-10-31 01:49:42 +08:00
Daniel.y
bda52a8773
Merge pull request #2287 from danielaskdd/fix-ui
...
Refact: Enhance Property editing UI for KG Nodes
2025-10-31 00:23:39 +08:00
yangdx
71b27ec4aa
Optimize property edit dialog to use trimmed value consistently
2025-10-31 00:08:02 +08:00
yangdx
4cbd876126
feat: Update node color and legent after entity_type changed
...
- Move color constants to utils module
- Extract resolveNodeColor function
- Update node colors on type changes
- Simplify hook color logic
2025-10-31 00:03:55 +08:00
yangdx
79a17c3f7f
Fix graph value handling for entity_id updates
...
• Use finalValue for entity_id changes
• Keep original value for other props
• Fix property update logic
2025-10-30 23:43:46 +08:00
yangdx
c36afecba4
Remove redundant await call in file extraction pipeline
2025-10-30 20:35:41 +08:00
yangdx
c9e73bb450
Bump core version to 1.4.9.7 and API version to 0249
2025-10-30 19:43:35 +08:00
yangdx
042cbad047
Merge branch 'qdrant-multi-tenancy'
2025-10-30 19:32:25 +08:00
yangdx
5f4a280458
Add Qdrant legacy collection migration with workspace support
...
- Add QdrantMigrationError exception
- Implement automatic data migration
- Support workspace-based partitioning
- Add migration verification logic
- Update collection naming scheme
2025-10-30 19:16:33 +08:00
yangdx
0498e80a42
Merge branch 'main' into qdrant-multi-tenancy
2025-10-30 14:11:00 +08:00
yangdx
78ccc4f6fd
Refactor .gitignore
2025-10-30 12:56:40 +08:00
yangdx
783e2f3b1f
Update uv.lock
2025-10-30 11:18:10 +08:00
yangdx
f610fdaf9b
Merge branch 'main' into Anush008/main
2025-10-30 11:07:39 +08:00
Daniel.y
8145201d2e
Merge pull request #2284 from danielaskdd/fix-static-missiing
...
HotFix: Include static files in package distribution
2025-10-30 10:52:53 +08:00
yangdx
16d3d82a0e
Include static files in package distribution
...
- Add static dir to MANIFEST.in
- Update package data config
- Ensure static assets are bundled
- Fix missing static file issue
2025-10-30 10:50:28 +08:00
yangdx
8af8bd80d2
docs: add frontend build steps to server installation guide
2025-10-29 21:54:47 +08:00
yangdx
0fa2fc9cab
Refactor systemd service config to use environment variables
...
• Add LIGHTRAG_HOME environment variable
• Use .venv instead of venv directory
2025-10-29 20:14:17 +08:00
yangdx
6dc027cb75
Merge branch 'fix-exit-handler'
2025-10-29 19:15:24 +08:00
Daniel.y
a1cf01dcc1
Merge pull request #2280 from danielaskdd/fix-exit-handler
...
Refact: Graceful shutdown and signal handling in Gunicorn Mode
2025-10-29 19:14:46 +08:00
Daniel.y
c5ad9982d9
Merge pull request #2281 from danielaskdd/restore-query-example
...
Restore query generation example and fix README path reference
2025-10-29 19:12:53 +08:00
yangdx
14a015d4ad
Restore query generation example and fix README path reference
...
• Fix path from example/ to examples/
• Add generate_query.py implementation
2025-10-29 19:11:40 +08:00
yangdx
3a7f753560
Bump core version to 1.4.9.6 and API version to 0248
2025-10-29 19:08:32 +08:00
yangdx
d5bcd14c6f
Refactor service deployment to use direct process execution
...
- Remove bash wrapper script
- Update systemd service configuration
- Improve process management for gunicorn
- Simplify shared storage cleanup logic
- Update documentation for deployment
2025-10-29 18:55:47 +08:00
yangdx
6489aaa7f0
Remove worker_exit hook and improve cleanup logging
...
• Remove unreliable worker_exit function
• Add debug logs for cleanup modes
• Move DEBUG_LOCKS to top of file
2025-10-29 15:15:13 +08:00
yangdx
4a46d39c93
Replace GUNICORN_CMD_ARGS with custom LIGHTRAG_GUNICORN_MODE flag
...
• Use custom env var for mode detection
• Improve Gunicorn mode reliability
2025-10-29 14:06:03 +08:00
yangdx
816feefd84
Fix cleanup coordination between Gunicorn and UvicornWorker lifecycles
...
• Document UvicornWorker hook limitations
• Add GUNICORN_CMD_ARGS cleanup guard
• Prevent double cleanup in workers
2025-10-29 13:53:46 +08:00
yangdx
72b29659c9
Fix worker process cleanup to prevent shared resource conflicts
...
• Add worker_exit hook in gunicorn config
• Add shutdown_manager parameter in finalize_share_data of share_storage
• Prevent Manager shutdown in workers
• Remove custom signal handlers
2025-10-29 13:33:21 +08:00
yangdx
0692175c7b
Remove enable_logging parameter from get_data_init_lock call in MilvusVectorDBStorage
2025-10-29 09:49:59 +08:00
Daniel.y
ec797276b2
Merge pull request #2279 from danielaskdd/fix-edge-merge-stage
...
Fix Entity Source IDs Tracking ProblemDuring Relationship Processing
2025-10-29 02:34:09 +08:00
yangdx
ee7c683fa7
Fix swagger docs page problem in dev mode
...
- Add /static to VITE_API_ENDPOINTS
- Update proxy rewrite rules
- Include static file serving
- Sync sample env file
2025-10-29 02:31:52 +08:00
yangdx
54c48dce38
Fix z-index layering for GraphViewer UI panels
2025-10-29 02:09:13 +08:00
yangdx
da2e9efd11
Bump API version to 0247
2025-10-29 01:39:55 +08:00
yangdx
3fa79026e0
Fix Entity Source IDs Tracking Problem
...
- Handle existing node updates properly in edge merging stage
- Fix source_ids merging logic
- Reorder entity deletion and optimize node operations
- Delete relationships before entities
- Add edge existence debugging logs
2025-10-29 01:19:55 +08:00