OpenRAG 0.2.4__tar.gz → 0.3.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- openrag-0.3.0/PKG-INFO +208 -0
- openrag-0.3.0/README.md +168 -0
- {openrag-0.2.4 → openrag-0.3.0}/pyproject.toml +15 -21
- {openrag-0.2.4 → openrag-0.3.0}/src/agent.py +121 -41
- {openrag-0.2.4 → openrag-0.3.0}/src/api/auth.py +52 -20
- {openrag-0.2.4 → openrag-0.3.0}/src/api/chat.py +77 -83
- {openrag-0.2.4 → openrag-0.3.0}/src/api/connector_router.py +1 -7
- {openrag-0.2.4 → openrag-0.3.0}/src/api/connectors.py +60 -39
- {openrag-0.2.4 → openrag-0.3.0}/src/api/docling.py +21 -18
- {openrag-0.2.4 → openrag-0.3.0}/src/api/documents.py +49 -40
- {openrag-0.2.4 → openrag-0.3.0}/src/api/flows.py +21 -30
- openrag-0.3.0/src/api/keys.py +123 -0
- {openrag-0.2.4 → openrag-0.3.0}/src/api/knowledge_filter.py +119 -213
- openrag-0.3.0/src/api/langflow_files.py +224 -0
- openrag-0.3.0/src/api/models.py +165 -0
- openrag-0.3.0/src/api/nudges.py +67 -0
- {openrag-0.2.4 → openrag-0.3.0}/src/api/oidc.py +25 -35
- {openrag-0.2.4 → openrag-0.3.0}/src/api/provider_health.py +15 -12
- {openrag-0.2.4 → openrag-0.3.0}/src/api/provider_validation.py +3 -13
- openrag-0.3.0/src/api/router.py +172 -0
- openrag-0.3.0/src/api/search.py +61 -0
- {openrag-0.2.4 → openrag-0.3.0}/src/api/settings.py +644 -590
- {openrag-0.2.4 → openrag-0.3.0}/src/api/tasks.py +19 -12
- {openrag-0.2.4 → openrag-0.3.0}/src/api/upload.py +69 -44
- openrag-0.3.0/src/api/v1/chat.py +238 -0
- openrag-0.3.0/src/api/v1/documents.py +113 -0
- openrag-0.3.0/src/api/v1/knowledge_filters.py +112 -0
- openrag-0.3.0/src/api/v1/models.py +81 -0
- openrag-0.3.0/src/api/v1/search.py +74 -0
- openrag-0.3.0/src/api/v1/settings.py +73 -0
- openrag-0.3.0/src/config/model_constants.py +39 -0
- {openrag-0.2.4 → openrag-0.3.0}/src/config/settings.py +99 -64
- {openrag-0.2.4 → openrag-0.3.0}/src/connectors/service.py +1 -3
- openrag-0.3.0/src/dependencies.py +222 -0
- openrag-0.3.0/src/main.py +988 -0
- {openrag-0.2.4 → openrag-0.3.0}/src/models/processors.py +5 -23
- openrag-0.3.0/src/openrag.egg-info/PKG-INFO +208 -0
- {openrag-0.2.4 → openrag-0.3.0}/src/openrag.egg-info/SOURCES.txt +9 -3
- {openrag-0.2.4 → openrag-0.3.0}/src/openrag.egg-info/requires.txt +1 -11
- {openrag-0.2.4 → openrag-0.3.0}/src/openrag.egg-info/top_level.txt +1 -2
- {openrag-0.2.4 → openrag-0.3.0}/src/services/chat_service.py +7 -2
- {openrag-0.2.4 → openrag-0.3.0}/src/services/document_service.py +7 -33
- {openrag-0.2.4 → openrag-0.3.0}/src/services/flows_service.py +95 -178
- {openrag-0.2.4 → openrag-0.3.0}/src/services/langflow_file_service.py +26 -23
- {openrag-0.2.4 → openrag-0.3.0}/src/services/langflow_history_service.py +10 -2
- {openrag-0.2.4 → openrag-0.3.0}/src/services/models_service.py +55 -60
- {openrag-0.2.4 → openrag-0.3.0}/src/services/search_service.py +1 -1
- {openrag-0.2.4 → openrag-0.3.0}/src/services/task_service.py +1 -9
- {openrag-0.2.4 → openrag-0.3.0}/src/session_manager.py +30 -33
- {openrag-0.2.4 → openrag-0.3.0}/src/tui/_assets/docker-compose.yml +28 -13
- {openrag-0.2.4 → openrag-0.3.0}/src/tui/_assets/flows/ingestion_flow.json +2379 -1811
- openrag-0.3.0/src/tui/_assets/flows/openrag_agent.json +5230 -0
- openrag-0.3.0/src/tui/_assets/flows/openrag_nudges.json +4851 -0
- {openrag-0.2.4 → openrag-0.3.0}/src/tui/_assets/flows/openrag_url_mcp.json +1766 -1454
- {openrag-0.2.4 → openrag-0.3.0}/src/tui/_assets/openrag-documents/openrag-documentation.pdf +0 -0
- openrag-0.3.0/src/tui/cli.py +509 -0
- openrag-0.3.0/src/tui/config_fields.py +235 -0
- {openrag-0.2.4 → openrag-0.3.0}/src/tui/main.py +57 -22
- {openrag-0.2.4 → openrag-0.3.0}/src/tui/managers/container_manager.py +155 -148
- {openrag-0.2.4 → openrag-0.3.0}/src/tui/managers/docling_manager.py +114 -42
- {openrag-0.2.4 → openrag-0.3.0}/src/tui/managers/env_manager.py +101 -35
- {openrag-0.2.4 → openrag-0.3.0}/src/tui/screens/config.py +161 -488
- {openrag-0.2.4 → openrag-0.3.0}/src/tui/screens/monitor.py +3 -13
- {openrag-0.2.4 → openrag-0.3.0}/src/tui/screens/welcome.py +10 -12
- {openrag-0.2.4 → openrag-0.3.0}/src/tui/utils/startup_checks.py +86 -4
- {openrag-0.2.4 → openrag-0.3.0}/src/tui/widgets/command_modal.py +33 -3
- {openrag-0.2.4 → openrag-0.3.0}/src/utils/container_utils.py +7 -2
- openrag-0.3.0/src/utils/docling_client.py +88 -0
- openrag-0.3.0/src/utils/document_processing.py +143 -0
- {openrag-0.2.4 → openrag-0.3.0}/src/utils/embedding_fields.py +2 -2
- {openrag-0.2.4 → openrag-0.3.0}/src/utils/embeddings.py +2 -2
- openrag-0.3.0/src/utils/env_utils.py +31 -0
- {openrag-0.2.4 → openrag-0.3.0}/src/utils/langflow_headers.py +2 -2
- openrag-0.3.0/src/utils/langflow_utils.py +88 -0
- {openrag-0.2.4 → openrag-0.3.0}/src/utils/logging_config.py +27 -4
- openrag-0.3.0/src/utils/opensearch_utils.py +82 -0
- {openrag-0.2.4 → openrag-0.3.0}/src/utils/telemetry/client.py +1 -35
- openrag-0.3.0/src/utils/version_utils.py +35 -0
- openrag-0.2.4/PKG-INFO +0 -70
- openrag-0.2.4/README.md +0 -34
- openrag-0.2.4/src/api/keys.py +0 -183
- openrag-0.2.4/src/api/langflow_files.py +0 -296
- openrag-0.2.4/src/api/models.py +0 -200
- openrag-0.2.4/src/api/nudges.py +0 -72
- openrag-0.2.4/src/api/router.py +0 -209
- openrag-0.2.4/src/api/search.py +0 -53
- openrag-0.2.4/src/api/v1/chat.py +0 -301
- openrag-0.2.4/src/api/v1/documents.py +0 -150
- openrag-0.2.4/src/api/v1/knowledge_filters.py +0 -63
- openrag-0.2.4/src/api/v1/models.py +0 -111
- openrag-0.2.4/src/api/v1/search.py +0 -108
- openrag-0.2.4/src/api/v1/settings.py +0 -90
- openrag-0.2.4/src/api_key_middleware.py +0 -133
- openrag-0.2.4/src/auth_middleware.py +0 -84
- openrag-0.2.4/src/main.py +0 -1702
- openrag-0.2.4/src/openrag.egg-info/PKG-INFO +0 -70
- openrag-0.2.4/src/tui/_assets/flows/openrag_agent.json +0 -4795
- openrag-0.2.4/src/tui/_assets/flows/openrag_nudges.json +0 -4122
- openrag-0.2.4/src/utils/document_processing.py +0 -446
- openrag-0.2.4/src/utils/process_pool.py +0 -13
- {openrag-0.2.4 → openrag-0.3.0}/LICENSE +0 -0
- {openrag-0.2.4 → openrag-0.3.0}/MANIFEST.in +0 -0
- {openrag-0.2.4 → openrag-0.3.0}/setup.cfg +0 -0
- {openrag-0.2.4 → openrag-0.3.0}/src/api/__init__.py +0 -0
- {openrag-0.2.4 → openrag-0.3.0}/src/api/v1/__init__.py +0 -0
- {openrag-0.2.4 → openrag-0.3.0}/src/auth_context.py +0 -0
- {openrag-0.2.4 → openrag-0.3.0}/src/config/__init__.py +0 -0
- {openrag-0.2.4 → openrag-0.3.0}/src/config/config_manager.py +0 -0
- {openrag-0.2.4 → openrag-0.3.0}/src/connectors/__init__.py +0 -0
- {openrag-0.2.4 → openrag-0.3.0}/src/connectors/base.py +0 -0
- {openrag-0.2.4 → openrag-0.3.0}/src/connectors/connection_manager.py +0 -0
- {openrag-0.2.4 → openrag-0.3.0}/src/connectors/google_drive/__init__.py +0 -0
- {openrag-0.2.4 → openrag-0.3.0}/src/connectors/google_drive/connector.py +0 -0
- {openrag-0.2.4 → openrag-0.3.0}/src/connectors/google_drive/oauth.py +0 -0
- {openrag-0.2.4 → openrag-0.3.0}/src/connectors/langflow_connector_service.py +0 -0
- {openrag-0.2.4 → openrag-0.3.0}/src/connectors/onedrive/__init__.py +0 -0
- {openrag-0.2.4 → openrag-0.3.0}/src/connectors/onedrive/connector.py +0 -0
- {openrag-0.2.4 → openrag-0.3.0}/src/connectors/onedrive/oauth.py +0 -0
- {openrag-0.2.4 → openrag-0.3.0}/src/connectors/sharepoint/__init__.py +0 -0
- {openrag-0.2.4 → openrag-0.3.0}/src/connectors/sharepoint/connector.py +0 -0
- {openrag-0.2.4 → openrag-0.3.0}/src/connectors/sharepoint/oauth.py +0 -0
- {openrag-0.2.4 → openrag-0.3.0}/src/connectors/sharepoint/utils.py +0 -0
- {openrag-0.2.4 → openrag-0.3.0}/src/models/__init__.py +0 -0
- {openrag-0.2.4 → openrag-0.3.0}/src/models/tasks.py +0 -0
- {openrag-0.2.4 → openrag-0.3.0}/src/openrag.egg-info/dependency_links.txt +0 -0
- {openrag-0.2.4 → openrag-0.3.0}/src/openrag.egg-info/entry_points.txt +0 -0
- {openrag-0.2.4 → openrag-0.3.0}/src/services/__init__.py +0 -0
- {openrag-0.2.4 → openrag-0.3.0}/src/services/api_key_service.py +0 -0
- {openrag-0.2.4 → openrag-0.3.0}/src/services/auth_service.py +0 -0
- {openrag-0.2.4 → openrag-0.3.0}/src/services/conversation_persistence_service.py +0 -0
- {openrag-0.2.4 → openrag-0.3.0}/src/services/knowledge_filter_service.py +0 -0
- {openrag-0.2.4 → openrag-0.3.0}/src/services/langflow_mcp_service.py +0 -0
- {openrag-0.2.4 → openrag-0.3.0}/src/services/monitor_service.py +0 -0
- {openrag-0.2.4 → openrag-0.3.0}/src/services/session_ownership_service.py +0 -0
- {openrag-0.2.4 → openrag-0.3.0}/src/tui/__init__.py +0 -0
- {openrag-0.2.4 → openrag-0.3.0}/src/tui/_assets/docker-compose.gpu.yml +0 -0
- {openrag-0.2.4 → openrag-0.3.0}/src/tui/_assets/flows/components/ollama_embedding.json +0 -0
- {openrag-0.2.4 → openrag-0.3.0}/src/tui/_assets/flows/components/ollama_llm.json +0 -0
- {openrag-0.2.4 → openrag-0.3.0}/src/tui/_assets/flows/components/ollama_llm_text.json +0 -0
- {openrag-0.2.4 → openrag-0.3.0}/src/tui/_assets/flows/components/watsonx_embedding.json +0 -0
- {openrag-0.2.4 → openrag-0.3.0}/src/tui/_assets/flows/components/watsonx_llm.json +0 -0
- {openrag-0.2.4 → openrag-0.3.0}/src/tui/_assets/flows/components/watsonx_llm_text.json +0 -0
- {openrag-0.2.4 → openrag-0.3.0}/src/tui/_assets/openrag-documents/docling.pdf +0 -0
- {openrag-0.2.4 → openrag-0.3.0}/src/tui/_assets/openrag-documents/ibm_anthropic.pdf +0 -0
- {openrag-0.2.4 → openrag-0.3.0}/src/tui/_assets/openrag-documents/warmup_ocr.pdf +0 -0
- {openrag-0.2.4 → openrag-0.3.0}/src/tui/managers/__init__.py +0 -0
- {openrag-0.2.4 → openrag-0.3.0}/src/tui/screens/__init__.py +0 -0
- {openrag-0.2.4 → openrag-0.3.0}/src/tui/screens/diagnostics.py +0 -0
- {openrag-0.2.4 → openrag-0.3.0}/src/tui/screens/logs.py +0 -0
- {openrag-0.2.4 → openrag-0.3.0}/src/tui/utils/__init__.py +0 -0
- {openrag-0.2.4 → openrag-0.3.0}/src/tui/utils/clipboard.py +0 -0
- {openrag-0.2.4 → openrag-0.3.0}/src/tui/utils/platform.py +0 -0
- {openrag-0.2.4 → openrag-0.3.0}/src/tui/utils/validation.py +0 -0
- {openrag-0.2.4 → openrag-0.3.0}/src/tui/utils/version_check.py +0 -0
- {openrag-0.2.4 → openrag-0.3.0}/src/tui/widgets/__init__.py +0 -0
- {openrag-0.2.4 → openrag-0.3.0}/src/tui/widgets/diagnostics_notification.py +0 -0
- {openrag-0.2.4 → openrag-0.3.0}/src/tui/widgets/error_notification.py +0 -0
- {openrag-0.2.4 → openrag-0.3.0}/src/tui/widgets/factory_reset_warning_modal.py +0 -0
- {openrag-0.2.4 → openrag-0.3.0}/src/tui/widgets/flow_backup_warning_modal.py +0 -0
- {openrag-0.2.4 → openrag-0.3.0}/src/tui/widgets/prune_options_modal.py +0 -0
- {openrag-0.2.4 → openrag-0.3.0}/src/tui/widgets/upgrade_instructions_modal.py +0 -0
- {openrag-0.2.4 → openrag-0.3.0}/src/tui/widgets/version_mismatch_warning_modal.py +0 -0
- {openrag-0.2.4 → openrag-0.3.0}/src/tui/widgets/waves.py +0 -0
- {openrag-0.2.4 → openrag-0.3.0}/src/utils/__init__.py +0 -0
- {openrag-0.2.4 → openrag-0.3.0}/src/utils/acl_utils.py +0 -0
- {openrag-0.2.4 → openrag-0.3.0}/src/utils/file_utils.py +0 -0
- {openrag-0.2.4 → openrag-0.3.0}/src/utils/gpu_detection.py +0 -0
- {openrag-0.2.4 → openrag-0.3.0}/src/utils/hash_utils.py +0 -0
- {openrag-0.2.4 → openrag-0.3.0}/src/utils/opensearch_queries.py +0 -0
- {openrag-0.2.4 → openrag-0.3.0}/src/utils/paths.py +0 -0
- {openrag-0.2.4 → openrag-0.3.0}/src/utils/telemetry/__init__.py +0 -0
- {openrag-0.2.4 → openrag-0.3.0}/src/utils/telemetry/category.py +0 -0
- {openrag-0.2.4 → openrag-0.3.0}/src/utils/telemetry/message_id.py +0 -0
openrag-0.3.0/PKG-INFO
ADDED
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: openrag
|
|
3
|
+
Version: 0.3.0
|
|
4
|
+
Summary: OpenRAG is a comprehensive Retrieval-Augmented Generation platform that enables intelligent document search and AI-powered conversations.
|
|
5
|
+
Classifier: Development Status :: 4 - Beta
|
|
6
|
+
Classifier: Environment :: Console
|
|
7
|
+
Classifier: Intended Audience :: Developers
|
|
8
|
+
Classifier: Intended Audience :: Science/Research
|
|
9
|
+
Classifier: License :: OSI Approved :: Apache Software License
|
|
10
|
+
Classifier: Programming Language :: Python :: 3
|
|
11
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
|
12
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
13
|
+
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
14
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
15
|
+
Requires-Python: >=3.13
|
|
16
|
+
Description-Content-Type: text/markdown
|
|
17
|
+
License-File: LICENSE
|
|
18
|
+
Requires-Dist: agentd>=0.2.2
|
|
19
|
+
Requires-Dist: aiofiles>=24.1.0
|
|
20
|
+
Requires-Dist: cryptography>=45.0.6
|
|
21
|
+
Requires-Dist: google-api-python-client>=2.143.0
|
|
22
|
+
Requires-Dist: google-auth-httplib2>=0.2.0
|
|
23
|
+
Requires-Dist: google-auth-oauthlib>=1.2.0
|
|
24
|
+
Requires-Dist: msal>=1.29.0
|
|
25
|
+
Requires-Dist: httpx>=0.27.0
|
|
26
|
+
Requires-Dist: opensearch-py[async]>=3.0.0
|
|
27
|
+
Requires-Dist: pyjwt>=2.8.0
|
|
28
|
+
Requires-Dist: python-multipart>=0.0.20
|
|
29
|
+
Requires-Dist: fastapi>=0.115.0
|
|
30
|
+
Requires-Dist: uvicorn>=0.35.0
|
|
31
|
+
Requires-Dist: boto3>=1.35.0
|
|
32
|
+
Requires-Dist: psutil>=7.0.0
|
|
33
|
+
Requires-Dist: rich>=13.0.0
|
|
34
|
+
Requires-Dist: textual>=0.45.0
|
|
35
|
+
Requires-Dist: python-dotenv>=1.0.0
|
|
36
|
+
Requires-Dist: textual-fspicker>=0.6.0
|
|
37
|
+
Requires-Dist: structlog>=25.4.0
|
|
38
|
+
Requires-Dist: zxcvbn>=4.5.0
|
|
39
|
+
Dynamic: license-file
|
|
40
|
+
|
|
41
|
+
<div align="center">
|
|
42
|
+
|
|
43
|
+
<img src="./docs/static/img/openrag-logo-dog.svg" alt="OpenRAG Logo" width="120"/>
|
|
44
|
+
|
|
45
|
+
# OpenRAG
|
|
46
|
+
|
|
47
|
+
<h3>
|
|
48
|
+
<em>Intelligent Agent-powered document search</em>
|
|
49
|
+
</h3>
|
|
50
|
+
|
|
51
|
+
<!-- Badges -->
|
|
52
|
+
|
|
53
|
+
[](https://github.com/langflow-ai/langflow)
|
|
54
|
+
[](https://github.com/opensearch-project/OpenSearch)
|
|
55
|
+
[](https://github.com/docling-project/docling)
|
|
56
|
+
|
|
57
|
+
[](https://www.youtube.com/@OpenRAG/)
|
|
58
|
+
[](https://github.com/langflow-ai/openrag/stargazers)
|
|
59
|
+
[](https://github.com/langflow-ai/openrag/network/members)
|
|
60
|
+
|
|
61
|
+
[](https://docs.openr.ag) [](https://deepwiki.com/langflow-ai/openrag)
|
|
62
|
+
|
|
63
|
+
</div>
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
OpenRAG is a comprehensive Retrieval-Augmented Generation platform that enables intelligent document search and AI-powered conversations.
|
|
68
|
+
|
|
69
|
+
Users can upload, process, and query documents through a chat interface backed by large language models and semantic search capabilities. The system utilizes Langflow for document ingestion, retrieval workflows, and intelligent nudges, providing a seamless RAG experience.
|
|
70
|
+
|
|
71
|
+
Check out the [documentation](https://docs.openr.ag/) or get started with the [quickstart](https://docs.openr.ag/quickstart).
|
|
72
|
+
|
|
73
|
+
Built with [Starlette](https://github.com/Kludex/starlette) and [Next.js](https://github.com/vercel/next.js).
|
|
74
|
+
Powered by [OpenSearch](https://github.com/opensearch-project/OpenSearch), [Langflow](https://github.com/langflow-ai/langflow), and [Docling](https://github.com/docling-project/docling).
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
<div align="center">
|
|
79
|
+
<img src="./docs/static/img/openrag_readme_downsized.gif" alt="OpenRAG Demo" width="100%"/>
|
|
80
|
+
</div>
|
|
81
|
+
|
|
82
|
+
## ✨ Highlight Features
|
|
83
|
+
|
|
84
|
+
- **Pre-packaged & ready to run** - All core tools are hooked up and ready to go, just install and run
|
|
85
|
+
- **Agentic RAG workflows** - Advanced orchestration with re-ranking and multi-agent coordination
|
|
86
|
+
- **Document ingestion** - Handles messy, real-world data with intelligent parsing
|
|
87
|
+
- **Drag-and-drop workflow builder** - Visual interface powered by Langflow for rapid iteration
|
|
88
|
+
- **Modular enterprise add-ons** - Extend functionality when you need it
|
|
89
|
+
- **Enterprise search at any scale** - Powered by OpenSearch for production-grade performance
|
|
90
|
+
|
|
91
|
+
## 🔄 How OpenRAG Works
|
|
92
|
+
|
|
93
|
+
OpenRAG follows a streamlined workflow to transform your documents into intelligent, searchable knowledge:
|
|
94
|
+
|
|
95
|
+
<div align="center">
|
|
96
|
+
<img src="./docs/static/img/workflow-diagram.svg" alt="OpenRAG Workflow Diagram" width="800"/>
|
|
97
|
+
</div>
|
|
98
|
+
|
|
99
|
+
## 🚀 Install OpenRAG
|
|
100
|
+
|
|
101
|
+
To get started with OpenRAG, see the installation guides in the OpenRAG documentation:
|
|
102
|
+
|
|
103
|
+
* [Quickstart](https://docs.openr.ag/quickstart)
|
|
104
|
+
* [Install the OpenRAG Python package](https://docs.openr.ag/install-options)
|
|
105
|
+
* [Deploy self-managed services with Docker or Podman](https://docs.openr.ag/docker)
|
|
106
|
+
|
|
107
|
+
## ✨ Quick Start Workflow
|
|
108
|
+
|
|
109
|
+
<div align="center">
|
|
110
|
+
|
|
111
|
+
<img src="./docs/static/img/uv_run_openrag.png" alt="Use uv run openrag to start" width="300"/>
|
|
112
|
+
|
|
113
|
+
**1. Launch OpenRAG**
|
|
114
|
+
|
|
115
|
+
↓
|
|
116
|
+
|
|
117
|
+
<img src="./docs/static/img/add_knowledge_openrag.png" alt="Add files or folders as knowledge" width="300"/>
|
|
118
|
+
|
|
119
|
+
**2. Add Knowledge**
|
|
120
|
+
|
|
121
|
+
↓
|
|
122
|
+
|
|
123
|
+
<img src="./docs/static/img/chat_openrag.png" alt="Start Chatting with your knowledge" width="700"/>
|
|
124
|
+
|
|
125
|
+
**3. Start Chatting**
|
|
126
|
+
|
|
127
|
+
</div>
|
|
128
|
+
|
|
129
|
+
## 📦 SDKs
|
|
130
|
+
|
|
131
|
+
Integrate OpenRAG into your applications with our official SDKs:
|
|
132
|
+
|
|
133
|
+
### Python SDK
|
|
134
|
+
```bash
|
|
135
|
+
pip install openrag-sdk
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
**Quick Example:**
|
|
139
|
+
```python
|
|
140
|
+
import asyncio
|
|
141
|
+
from openrag_sdk import OpenRAGClient
|
|
142
|
+
|
|
143
|
+
|
|
144
|
+
async def main():
|
|
145
|
+
async with OpenRAGClient() as client:
|
|
146
|
+
response = await client.chat.create(message="What is RAG?")
|
|
147
|
+
print(response.response)
|
|
148
|
+
|
|
149
|
+
|
|
150
|
+
if __name__ == "__main__":
|
|
151
|
+
asyncio.run(main())
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
📖 [Full Python SDK Documentation](https://pypi.org/project/openrag-sdk/)
|
|
155
|
+
|
|
156
|
+
### TypeScript/JavaScript SDK
|
|
157
|
+
```bash
|
|
158
|
+
npm install openrag-sdk
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
**Quick Example:**
|
|
162
|
+
```typescript
|
|
163
|
+
import { OpenRAGClient } from "openrag-sdk";
|
|
164
|
+
|
|
165
|
+
const client = new OpenRAGClient();
|
|
166
|
+
const response = await client.chat.create({ message: "What is RAG?" });
|
|
167
|
+
console.log(response.response);
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
📖 [Full TypeScript/JavaScript SDK Documentation](https://www.npmjs.com/package/openrag-sdk)
|
|
171
|
+
|
|
172
|
+
## 🔌 Model Context Protocol (MCP)
|
|
173
|
+
|
|
174
|
+
Connect AI assistants like Cursor and Claude Desktop to your OpenRAG knowledge base:
|
|
175
|
+
|
|
176
|
+
```bash
|
|
177
|
+
pip install openrag-mcp
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
**Quick Example (Cursor/Claude Desktop config):**
|
|
181
|
+
```json
|
|
182
|
+
{
|
|
183
|
+
"mcpServers": {
|
|
184
|
+
"openrag": {
|
|
185
|
+
"command": "uvx",
|
|
186
|
+
"args": ["openrag-mcp"],
|
|
187
|
+
"env": {
|
|
188
|
+
"OPENRAG_URL": "http://localhost:3000",
|
|
189
|
+
"OPENRAG_API_KEY": "your_api_key_here"
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
The MCP server provides tools for RAG-enhanced chat, semantic search, and settings management.
|
|
197
|
+
|
|
198
|
+
📖 [Full MCP Documentation](https://pypi.org/project/openrag-mcp/)
|
|
199
|
+
|
|
200
|
+
## 🛠️ Development
|
|
201
|
+
|
|
202
|
+
For developers who want to [contribute to OpenRAG](https://docs.openr.ag/support/contribute) or set up a development environment, see [CONTRIBUTING.md](CONTRIBUTING.md).
|
|
203
|
+
|
|
204
|
+
## 🆘 Troubleshooting
|
|
205
|
+
|
|
206
|
+
For assistance with OpenRAG, see [Troubleshoot OpenRAG](https://docs.openr.ag/support/troubleshoot) and visit the [Discussions page](https://github.com/langflow-ai/openrag/discussions).
|
|
207
|
+
|
|
208
|
+
To report a bug or submit a feature request, visit the [Issues page](https://github.com/langflow-ai/openrag/issues).
|
openrag-0.3.0/README.md
ADDED
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
|
|
3
|
+
<img src="./docs/static/img/openrag-logo-dog.svg" alt="OpenRAG Logo" width="120"/>
|
|
4
|
+
|
|
5
|
+
# OpenRAG
|
|
6
|
+
|
|
7
|
+
<h3>
|
|
8
|
+
<em>Intelligent Agent-powered document search</em>
|
|
9
|
+
</h3>
|
|
10
|
+
|
|
11
|
+
<!-- Badges -->
|
|
12
|
+
|
|
13
|
+
[](https://github.com/langflow-ai/langflow)
|
|
14
|
+
[](https://github.com/opensearch-project/OpenSearch)
|
|
15
|
+
[](https://github.com/docling-project/docling)
|
|
16
|
+
|
|
17
|
+
[](https://www.youtube.com/@OpenRAG/)
|
|
18
|
+
[](https://github.com/langflow-ai/openrag/stargazers)
|
|
19
|
+
[](https://github.com/langflow-ai/openrag/network/members)
|
|
20
|
+
|
|
21
|
+
[](https://docs.openr.ag) [](https://deepwiki.com/langflow-ai/openrag)
|
|
22
|
+
|
|
23
|
+
</div>
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
OpenRAG is a comprehensive Retrieval-Augmented Generation platform that enables intelligent document search and AI-powered conversations.
|
|
28
|
+
|
|
29
|
+
Users can upload, process, and query documents through a chat interface backed by large language models and semantic search capabilities. The system utilizes Langflow for document ingestion, retrieval workflows, and intelligent nudges, providing a seamless RAG experience.
|
|
30
|
+
|
|
31
|
+
Check out the [documentation](https://docs.openr.ag/) or get started with the [quickstart](https://docs.openr.ag/quickstart).
|
|
32
|
+
|
|
33
|
+
Built with [Starlette](https://github.com/Kludex/starlette) and [Next.js](https://github.com/vercel/next.js).
|
|
34
|
+
Powered by [OpenSearch](https://github.com/opensearch-project/OpenSearch), [Langflow](https://github.com/langflow-ai/langflow), and [Docling](https://github.com/docling-project/docling).
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
<div align="center">
|
|
39
|
+
<img src="./docs/static/img/openrag_readme_downsized.gif" alt="OpenRAG Demo" width="100%"/>
|
|
40
|
+
</div>
|
|
41
|
+
|
|
42
|
+
## ✨ Highlight Features
|
|
43
|
+
|
|
44
|
+
- **Pre-packaged & ready to run** - All core tools are hooked up and ready to go, just install and run
|
|
45
|
+
- **Agentic RAG workflows** - Advanced orchestration with re-ranking and multi-agent coordination
|
|
46
|
+
- **Document ingestion** - Handles messy, real-world data with intelligent parsing
|
|
47
|
+
- **Drag-and-drop workflow builder** - Visual interface powered by Langflow for rapid iteration
|
|
48
|
+
- **Modular enterprise add-ons** - Extend functionality when you need it
|
|
49
|
+
- **Enterprise search at any scale** - Powered by OpenSearch for production-grade performance
|
|
50
|
+
|
|
51
|
+
## 🔄 How OpenRAG Works
|
|
52
|
+
|
|
53
|
+
OpenRAG follows a streamlined workflow to transform your documents into intelligent, searchable knowledge:
|
|
54
|
+
|
|
55
|
+
<div align="center">
|
|
56
|
+
<img src="./docs/static/img/workflow-diagram.svg" alt="OpenRAG Workflow Diagram" width="800"/>
|
|
57
|
+
</div>
|
|
58
|
+
|
|
59
|
+
## 🚀 Install OpenRAG
|
|
60
|
+
|
|
61
|
+
To get started with OpenRAG, see the installation guides in the OpenRAG documentation:
|
|
62
|
+
|
|
63
|
+
* [Quickstart](https://docs.openr.ag/quickstart)
|
|
64
|
+
* [Install the OpenRAG Python package](https://docs.openr.ag/install-options)
|
|
65
|
+
* [Deploy self-managed services with Docker or Podman](https://docs.openr.ag/docker)
|
|
66
|
+
|
|
67
|
+
## ✨ Quick Start Workflow
|
|
68
|
+
|
|
69
|
+
<div align="center">
|
|
70
|
+
|
|
71
|
+
<img src="./docs/static/img/uv_run_openrag.png" alt="Use uv run openrag to start" width="300"/>
|
|
72
|
+
|
|
73
|
+
**1. Launch OpenRAG**
|
|
74
|
+
|
|
75
|
+
↓
|
|
76
|
+
|
|
77
|
+
<img src="./docs/static/img/add_knowledge_openrag.png" alt="Add files or folders as knowledge" width="300"/>
|
|
78
|
+
|
|
79
|
+
**2. Add Knowledge**
|
|
80
|
+
|
|
81
|
+
↓
|
|
82
|
+
|
|
83
|
+
<img src="./docs/static/img/chat_openrag.png" alt="Start Chatting with your knowledge" width="700"/>
|
|
84
|
+
|
|
85
|
+
**3. Start Chatting**
|
|
86
|
+
|
|
87
|
+
</div>
|
|
88
|
+
|
|
89
|
+
## 📦 SDKs
|
|
90
|
+
|
|
91
|
+
Integrate OpenRAG into your applications with our official SDKs:
|
|
92
|
+
|
|
93
|
+
### Python SDK
|
|
94
|
+
```bash
|
|
95
|
+
pip install openrag-sdk
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
**Quick Example:**
|
|
99
|
+
```python
|
|
100
|
+
import asyncio
|
|
101
|
+
from openrag_sdk import OpenRAGClient
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
async def main():
|
|
105
|
+
async with OpenRAGClient() as client:
|
|
106
|
+
response = await client.chat.create(message="What is RAG?")
|
|
107
|
+
print(response.response)
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
if __name__ == "__main__":
|
|
111
|
+
asyncio.run(main())
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
📖 [Full Python SDK Documentation](https://pypi.org/project/openrag-sdk/)
|
|
115
|
+
|
|
116
|
+
### TypeScript/JavaScript SDK
|
|
117
|
+
```bash
|
|
118
|
+
npm install openrag-sdk
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
**Quick Example:**
|
|
122
|
+
```typescript
|
|
123
|
+
import { OpenRAGClient } from "openrag-sdk";
|
|
124
|
+
|
|
125
|
+
const client = new OpenRAGClient();
|
|
126
|
+
const response = await client.chat.create({ message: "What is RAG?" });
|
|
127
|
+
console.log(response.response);
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
📖 [Full TypeScript/JavaScript SDK Documentation](https://www.npmjs.com/package/openrag-sdk)
|
|
131
|
+
|
|
132
|
+
## 🔌 Model Context Protocol (MCP)
|
|
133
|
+
|
|
134
|
+
Connect AI assistants like Cursor and Claude Desktop to your OpenRAG knowledge base:
|
|
135
|
+
|
|
136
|
+
```bash
|
|
137
|
+
pip install openrag-mcp
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
**Quick Example (Cursor/Claude Desktop config):**
|
|
141
|
+
```json
|
|
142
|
+
{
|
|
143
|
+
"mcpServers": {
|
|
144
|
+
"openrag": {
|
|
145
|
+
"command": "uvx",
|
|
146
|
+
"args": ["openrag-mcp"],
|
|
147
|
+
"env": {
|
|
148
|
+
"OPENRAG_URL": "http://localhost:3000",
|
|
149
|
+
"OPENRAG_API_KEY": "your_api_key_here"
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
The MCP server provides tools for RAG-enhanced chat, semantic search, and settings management.
|
|
157
|
+
|
|
158
|
+
📖 [Full MCP Documentation](https://pypi.org/project/openrag-mcp/)
|
|
159
|
+
|
|
160
|
+
## 🛠️ Development
|
|
161
|
+
|
|
162
|
+
For developers who want to [contribute to OpenRAG](https://docs.openr.ag/support/contribute) or set up a development environment, see [CONTRIBUTING.md](CONTRIBUTING.md).
|
|
163
|
+
|
|
164
|
+
## 🆘 Troubleshooting
|
|
165
|
+
|
|
166
|
+
For assistance with OpenRAG, see [Troubleshoot OpenRAG](https://docs.openr.ag/support/troubleshoot) and visit the [Discussions page](https://github.com/langflow-ai/openrag/discussions).
|
|
167
|
+
|
|
168
|
+
To report a bug or submit a feature request, visit the [Issues page](https://github.com/langflow-ai/openrag/issues).
|
|
@@ -4,16 +4,26 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "openrag"
|
|
7
|
-
version = "0.
|
|
8
|
-
description = "
|
|
7
|
+
version = "0.3.0"
|
|
8
|
+
description = "OpenRAG is a comprehensive Retrieval-Augmented Generation platform that enables intelligent document search and AI-powered conversations."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.13"
|
|
11
|
+
classifiers = [
|
|
12
|
+
"Development Status :: 4 - Beta",
|
|
13
|
+
"Environment :: Console",
|
|
14
|
+
"Intended Audience :: Developers",
|
|
15
|
+
"Intended Audience :: Science/Research",
|
|
16
|
+
"License :: OSI Approved :: Apache Software License",
|
|
17
|
+
"Programming Language :: Python :: 3",
|
|
18
|
+
"Programming Language :: Python :: 3 :: Only",
|
|
19
|
+
"Programming Language :: Python :: 3.13",
|
|
20
|
+
"Topic :: Scientific/Engineering :: Artificial Intelligence",
|
|
21
|
+
"Topic :: Software Development :: Libraries :: Python Modules",
|
|
22
|
+
]
|
|
11
23
|
dependencies = [
|
|
12
24
|
"agentd>=0.2.2",
|
|
13
25
|
"aiofiles>=24.1.0",
|
|
14
26
|
"cryptography>=45.0.6",
|
|
15
|
-
"docling[vlm]==2.41.0; sys_platform != 'darwin'",
|
|
16
|
-
"docling[ocrmac,vlm]==2.41.0; sys_platform == 'darwin'",
|
|
17
27
|
"google-api-python-client>=2.143.0",
|
|
18
28
|
"google-auth-httplib2>=0.2.0",
|
|
19
29
|
"google-auth-oauthlib>=1.2.0",
|
|
@@ -22,8 +32,7 @@ dependencies = [
|
|
|
22
32
|
"opensearch-py[async]>=3.0.0",
|
|
23
33
|
"pyjwt>=2.8.0",
|
|
24
34
|
"python-multipart>=0.0.20",
|
|
25
|
-
"
|
|
26
|
-
"torch>=2.7.1",
|
|
35
|
+
"fastapi>=0.115.0",
|
|
27
36
|
"uvicorn>=0.35.0",
|
|
28
37
|
"boto3>=1.35.0",
|
|
29
38
|
"psutil>=7.0.0",
|
|
@@ -32,9 +41,6 @@ dependencies = [
|
|
|
32
41
|
"python-dotenv>=1.0.0",
|
|
33
42
|
"textual-fspicker>=0.6.0",
|
|
34
43
|
"structlog>=25.4.0",
|
|
35
|
-
"docling-serve==1.5.0",
|
|
36
|
-
"docling-core==2.48.1",
|
|
37
|
-
"easyocr>=1.7.1; sys_platform != 'darwin'",
|
|
38
44
|
"zxcvbn>=4.5.0"
|
|
39
45
|
]
|
|
40
46
|
|
|
@@ -48,15 +54,3 @@ openrag = "tui.main:run_tui"
|
|
|
48
54
|
package = true
|
|
49
55
|
|
|
50
56
|
|
|
51
|
-
[tool.uv.sources]
|
|
52
|
-
torch = [
|
|
53
|
-
{ index = "pytorch-cu128", marker = "sys_platform == 'linux' and platform_machine == 'x86_64'" },
|
|
54
|
-
]
|
|
55
|
-
torchvision = [
|
|
56
|
-
{ index = "pytorch-cu128", marker = "sys_platform == 'linux' and platform_machine == 'x86_64'" },
|
|
57
|
-
]
|
|
58
|
-
|
|
59
|
-
[[tool.uv.index]]
|
|
60
|
-
name = "pytorch-cu128"
|
|
61
|
-
url = "https://download.pytorch.org/whl/cu128"
|
|
62
|
-
explicit = true
|