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.
Files changed (173) hide show
  1. openrag-0.3.0/PKG-INFO +208 -0
  2. openrag-0.3.0/README.md +168 -0
  3. {openrag-0.2.4 → openrag-0.3.0}/pyproject.toml +15 -21
  4. {openrag-0.2.4 → openrag-0.3.0}/src/agent.py +121 -41
  5. {openrag-0.2.4 → openrag-0.3.0}/src/api/auth.py +52 -20
  6. {openrag-0.2.4 → openrag-0.3.0}/src/api/chat.py +77 -83
  7. {openrag-0.2.4 → openrag-0.3.0}/src/api/connector_router.py +1 -7
  8. {openrag-0.2.4 → openrag-0.3.0}/src/api/connectors.py +60 -39
  9. {openrag-0.2.4 → openrag-0.3.0}/src/api/docling.py +21 -18
  10. {openrag-0.2.4 → openrag-0.3.0}/src/api/documents.py +49 -40
  11. {openrag-0.2.4 → openrag-0.3.0}/src/api/flows.py +21 -30
  12. openrag-0.3.0/src/api/keys.py +123 -0
  13. {openrag-0.2.4 → openrag-0.3.0}/src/api/knowledge_filter.py +119 -213
  14. openrag-0.3.0/src/api/langflow_files.py +224 -0
  15. openrag-0.3.0/src/api/models.py +165 -0
  16. openrag-0.3.0/src/api/nudges.py +67 -0
  17. {openrag-0.2.4 → openrag-0.3.0}/src/api/oidc.py +25 -35
  18. {openrag-0.2.4 → openrag-0.3.0}/src/api/provider_health.py +15 -12
  19. {openrag-0.2.4 → openrag-0.3.0}/src/api/provider_validation.py +3 -13
  20. openrag-0.3.0/src/api/router.py +172 -0
  21. openrag-0.3.0/src/api/search.py +61 -0
  22. {openrag-0.2.4 → openrag-0.3.0}/src/api/settings.py +644 -590
  23. {openrag-0.2.4 → openrag-0.3.0}/src/api/tasks.py +19 -12
  24. {openrag-0.2.4 → openrag-0.3.0}/src/api/upload.py +69 -44
  25. openrag-0.3.0/src/api/v1/chat.py +238 -0
  26. openrag-0.3.0/src/api/v1/documents.py +113 -0
  27. openrag-0.3.0/src/api/v1/knowledge_filters.py +112 -0
  28. openrag-0.3.0/src/api/v1/models.py +81 -0
  29. openrag-0.3.0/src/api/v1/search.py +74 -0
  30. openrag-0.3.0/src/api/v1/settings.py +73 -0
  31. openrag-0.3.0/src/config/model_constants.py +39 -0
  32. {openrag-0.2.4 → openrag-0.3.0}/src/config/settings.py +99 -64
  33. {openrag-0.2.4 → openrag-0.3.0}/src/connectors/service.py +1 -3
  34. openrag-0.3.0/src/dependencies.py +222 -0
  35. openrag-0.3.0/src/main.py +988 -0
  36. {openrag-0.2.4 → openrag-0.3.0}/src/models/processors.py +5 -23
  37. openrag-0.3.0/src/openrag.egg-info/PKG-INFO +208 -0
  38. {openrag-0.2.4 → openrag-0.3.0}/src/openrag.egg-info/SOURCES.txt +9 -3
  39. {openrag-0.2.4 → openrag-0.3.0}/src/openrag.egg-info/requires.txt +1 -11
  40. {openrag-0.2.4 → openrag-0.3.0}/src/openrag.egg-info/top_level.txt +1 -2
  41. {openrag-0.2.4 → openrag-0.3.0}/src/services/chat_service.py +7 -2
  42. {openrag-0.2.4 → openrag-0.3.0}/src/services/document_service.py +7 -33
  43. {openrag-0.2.4 → openrag-0.3.0}/src/services/flows_service.py +95 -178
  44. {openrag-0.2.4 → openrag-0.3.0}/src/services/langflow_file_service.py +26 -23
  45. {openrag-0.2.4 → openrag-0.3.0}/src/services/langflow_history_service.py +10 -2
  46. {openrag-0.2.4 → openrag-0.3.0}/src/services/models_service.py +55 -60
  47. {openrag-0.2.4 → openrag-0.3.0}/src/services/search_service.py +1 -1
  48. {openrag-0.2.4 → openrag-0.3.0}/src/services/task_service.py +1 -9
  49. {openrag-0.2.4 → openrag-0.3.0}/src/session_manager.py +30 -33
  50. {openrag-0.2.4 → openrag-0.3.0}/src/tui/_assets/docker-compose.yml +28 -13
  51. {openrag-0.2.4 → openrag-0.3.0}/src/tui/_assets/flows/ingestion_flow.json +2379 -1811
  52. openrag-0.3.0/src/tui/_assets/flows/openrag_agent.json +5230 -0
  53. openrag-0.3.0/src/tui/_assets/flows/openrag_nudges.json +4851 -0
  54. {openrag-0.2.4 → openrag-0.3.0}/src/tui/_assets/flows/openrag_url_mcp.json +1766 -1454
  55. {openrag-0.2.4 → openrag-0.3.0}/src/tui/_assets/openrag-documents/openrag-documentation.pdf +0 -0
  56. openrag-0.3.0/src/tui/cli.py +509 -0
  57. openrag-0.3.0/src/tui/config_fields.py +235 -0
  58. {openrag-0.2.4 → openrag-0.3.0}/src/tui/main.py +57 -22
  59. {openrag-0.2.4 → openrag-0.3.0}/src/tui/managers/container_manager.py +155 -148
  60. {openrag-0.2.4 → openrag-0.3.0}/src/tui/managers/docling_manager.py +114 -42
  61. {openrag-0.2.4 → openrag-0.3.0}/src/tui/managers/env_manager.py +101 -35
  62. {openrag-0.2.4 → openrag-0.3.0}/src/tui/screens/config.py +161 -488
  63. {openrag-0.2.4 → openrag-0.3.0}/src/tui/screens/monitor.py +3 -13
  64. {openrag-0.2.4 → openrag-0.3.0}/src/tui/screens/welcome.py +10 -12
  65. {openrag-0.2.4 → openrag-0.3.0}/src/tui/utils/startup_checks.py +86 -4
  66. {openrag-0.2.4 → openrag-0.3.0}/src/tui/widgets/command_modal.py +33 -3
  67. {openrag-0.2.4 → openrag-0.3.0}/src/utils/container_utils.py +7 -2
  68. openrag-0.3.0/src/utils/docling_client.py +88 -0
  69. openrag-0.3.0/src/utils/document_processing.py +143 -0
  70. {openrag-0.2.4 → openrag-0.3.0}/src/utils/embedding_fields.py +2 -2
  71. {openrag-0.2.4 → openrag-0.3.0}/src/utils/embeddings.py +2 -2
  72. openrag-0.3.0/src/utils/env_utils.py +31 -0
  73. {openrag-0.2.4 → openrag-0.3.0}/src/utils/langflow_headers.py +2 -2
  74. openrag-0.3.0/src/utils/langflow_utils.py +88 -0
  75. {openrag-0.2.4 → openrag-0.3.0}/src/utils/logging_config.py +27 -4
  76. openrag-0.3.0/src/utils/opensearch_utils.py +82 -0
  77. {openrag-0.2.4 → openrag-0.3.0}/src/utils/telemetry/client.py +1 -35
  78. openrag-0.3.0/src/utils/version_utils.py +35 -0
  79. openrag-0.2.4/PKG-INFO +0 -70
  80. openrag-0.2.4/README.md +0 -34
  81. openrag-0.2.4/src/api/keys.py +0 -183
  82. openrag-0.2.4/src/api/langflow_files.py +0 -296
  83. openrag-0.2.4/src/api/models.py +0 -200
  84. openrag-0.2.4/src/api/nudges.py +0 -72
  85. openrag-0.2.4/src/api/router.py +0 -209
  86. openrag-0.2.4/src/api/search.py +0 -53
  87. openrag-0.2.4/src/api/v1/chat.py +0 -301
  88. openrag-0.2.4/src/api/v1/documents.py +0 -150
  89. openrag-0.2.4/src/api/v1/knowledge_filters.py +0 -63
  90. openrag-0.2.4/src/api/v1/models.py +0 -111
  91. openrag-0.2.4/src/api/v1/search.py +0 -108
  92. openrag-0.2.4/src/api/v1/settings.py +0 -90
  93. openrag-0.2.4/src/api_key_middleware.py +0 -133
  94. openrag-0.2.4/src/auth_middleware.py +0 -84
  95. openrag-0.2.4/src/main.py +0 -1702
  96. openrag-0.2.4/src/openrag.egg-info/PKG-INFO +0 -70
  97. openrag-0.2.4/src/tui/_assets/flows/openrag_agent.json +0 -4795
  98. openrag-0.2.4/src/tui/_assets/flows/openrag_nudges.json +0 -4122
  99. openrag-0.2.4/src/utils/document_processing.py +0 -446
  100. openrag-0.2.4/src/utils/process_pool.py +0 -13
  101. {openrag-0.2.4 → openrag-0.3.0}/LICENSE +0 -0
  102. {openrag-0.2.4 → openrag-0.3.0}/MANIFEST.in +0 -0
  103. {openrag-0.2.4 → openrag-0.3.0}/setup.cfg +0 -0
  104. {openrag-0.2.4 → openrag-0.3.0}/src/api/__init__.py +0 -0
  105. {openrag-0.2.4 → openrag-0.3.0}/src/api/v1/__init__.py +0 -0
  106. {openrag-0.2.4 → openrag-0.3.0}/src/auth_context.py +0 -0
  107. {openrag-0.2.4 → openrag-0.3.0}/src/config/__init__.py +0 -0
  108. {openrag-0.2.4 → openrag-0.3.0}/src/config/config_manager.py +0 -0
  109. {openrag-0.2.4 → openrag-0.3.0}/src/connectors/__init__.py +0 -0
  110. {openrag-0.2.4 → openrag-0.3.0}/src/connectors/base.py +0 -0
  111. {openrag-0.2.4 → openrag-0.3.0}/src/connectors/connection_manager.py +0 -0
  112. {openrag-0.2.4 → openrag-0.3.0}/src/connectors/google_drive/__init__.py +0 -0
  113. {openrag-0.2.4 → openrag-0.3.0}/src/connectors/google_drive/connector.py +0 -0
  114. {openrag-0.2.4 → openrag-0.3.0}/src/connectors/google_drive/oauth.py +0 -0
  115. {openrag-0.2.4 → openrag-0.3.0}/src/connectors/langflow_connector_service.py +0 -0
  116. {openrag-0.2.4 → openrag-0.3.0}/src/connectors/onedrive/__init__.py +0 -0
  117. {openrag-0.2.4 → openrag-0.3.0}/src/connectors/onedrive/connector.py +0 -0
  118. {openrag-0.2.4 → openrag-0.3.0}/src/connectors/onedrive/oauth.py +0 -0
  119. {openrag-0.2.4 → openrag-0.3.0}/src/connectors/sharepoint/__init__.py +0 -0
  120. {openrag-0.2.4 → openrag-0.3.0}/src/connectors/sharepoint/connector.py +0 -0
  121. {openrag-0.2.4 → openrag-0.3.0}/src/connectors/sharepoint/oauth.py +0 -0
  122. {openrag-0.2.4 → openrag-0.3.0}/src/connectors/sharepoint/utils.py +0 -0
  123. {openrag-0.2.4 → openrag-0.3.0}/src/models/__init__.py +0 -0
  124. {openrag-0.2.4 → openrag-0.3.0}/src/models/tasks.py +0 -0
  125. {openrag-0.2.4 → openrag-0.3.0}/src/openrag.egg-info/dependency_links.txt +0 -0
  126. {openrag-0.2.4 → openrag-0.3.0}/src/openrag.egg-info/entry_points.txt +0 -0
  127. {openrag-0.2.4 → openrag-0.3.0}/src/services/__init__.py +0 -0
  128. {openrag-0.2.4 → openrag-0.3.0}/src/services/api_key_service.py +0 -0
  129. {openrag-0.2.4 → openrag-0.3.0}/src/services/auth_service.py +0 -0
  130. {openrag-0.2.4 → openrag-0.3.0}/src/services/conversation_persistence_service.py +0 -0
  131. {openrag-0.2.4 → openrag-0.3.0}/src/services/knowledge_filter_service.py +0 -0
  132. {openrag-0.2.4 → openrag-0.3.0}/src/services/langflow_mcp_service.py +0 -0
  133. {openrag-0.2.4 → openrag-0.3.0}/src/services/monitor_service.py +0 -0
  134. {openrag-0.2.4 → openrag-0.3.0}/src/services/session_ownership_service.py +0 -0
  135. {openrag-0.2.4 → openrag-0.3.0}/src/tui/__init__.py +0 -0
  136. {openrag-0.2.4 → openrag-0.3.0}/src/tui/_assets/docker-compose.gpu.yml +0 -0
  137. {openrag-0.2.4 → openrag-0.3.0}/src/tui/_assets/flows/components/ollama_embedding.json +0 -0
  138. {openrag-0.2.4 → openrag-0.3.0}/src/tui/_assets/flows/components/ollama_llm.json +0 -0
  139. {openrag-0.2.4 → openrag-0.3.0}/src/tui/_assets/flows/components/ollama_llm_text.json +0 -0
  140. {openrag-0.2.4 → openrag-0.3.0}/src/tui/_assets/flows/components/watsonx_embedding.json +0 -0
  141. {openrag-0.2.4 → openrag-0.3.0}/src/tui/_assets/flows/components/watsonx_llm.json +0 -0
  142. {openrag-0.2.4 → openrag-0.3.0}/src/tui/_assets/flows/components/watsonx_llm_text.json +0 -0
  143. {openrag-0.2.4 → openrag-0.3.0}/src/tui/_assets/openrag-documents/docling.pdf +0 -0
  144. {openrag-0.2.4 → openrag-0.3.0}/src/tui/_assets/openrag-documents/ibm_anthropic.pdf +0 -0
  145. {openrag-0.2.4 → openrag-0.3.0}/src/tui/_assets/openrag-documents/warmup_ocr.pdf +0 -0
  146. {openrag-0.2.4 → openrag-0.3.0}/src/tui/managers/__init__.py +0 -0
  147. {openrag-0.2.4 → openrag-0.3.0}/src/tui/screens/__init__.py +0 -0
  148. {openrag-0.2.4 → openrag-0.3.0}/src/tui/screens/diagnostics.py +0 -0
  149. {openrag-0.2.4 → openrag-0.3.0}/src/tui/screens/logs.py +0 -0
  150. {openrag-0.2.4 → openrag-0.3.0}/src/tui/utils/__init__.py +0 -0
  151. {openrag-0.2.4 → openrag-0.3.0}/src/tui/utils/clipboard.py +0 -0
  152. {openrag-0.2.4 → openrag-0.3.0}/src/tui/utils/platform.py +0 -0
  153. {openrag-0.2.4 → openrag-0.3.0}/src/tui/utils/validation.py +0 -0
  154. {openrag-0.2.4 → openrag-0.3.0}/src/tui/utils/version_check.py +0 -0
  155. {openrag-0.2.4 → openrag-0.3.0}/src/tui/widgets/__init__.py +0 -0
  156. {openrag-0.2.4 → openrag-0.3.0}/src/tui/widgets/diagnostics_notification.py +0 -0
  157. {openrag-0.2.4 → openrag-0.3.0}/src/tui/widgets/error_notification.py +0 -0
  158. {openrag-0.2.4 → openrag-0.3.0}/src/tui/widgets/factory_reset_warning_modal.py +0 -0
  159. {openrag-0.2.4 → openrag-0.3.0}/src/tui/widgets/flow_backup_warning_modal.py +0 -0
  160. {openrag-0.2.4 → openrag-0.3.0}/src/tui/widgets/prune_options_modal.py +0 -0
  161. {openrag-0.2.4 → openrag-0.3.0}/src/tui/widgets/upgrade_instructions_modal.py +0 -0
  162. {openrag-0.2.4 → openrag-0.3.0}/src/tui/widgets/version_mismatch_warning_modal.py +0 -0
  163. {openrag-0.2.4 → openrag-0.3.0}/src/tui/widgets/waves.py +0 -0
  164. {openrag-0.2.4 → openrag-0.3.0}/src/utils/__init__.py +0 -0
  165. {openrag-0.2.4 → openrag-0.3.0}/src/utils/acl_utils.py +0 -0
  166. {openrag-0.2.4 → openrag-0.3.0}/src/utils/file_utils.py +0 -0
  167. {openrag-0.2.4 → openrag-0.3.0}/src/utils/gpu_detection.py +0 -0
  168. {openrag-0.2.4 → openrag-0.3.0}/src/utils/hash_utils.py +0 -0
  169. {openrag-0.2.4 → openrag-0.3.0}/src/utils/opensearch_queries.py +0 -0
  170. {openrag-0.2.4 → openrag-0.3.0}/src/utils/paths.py +0 -0
  171. {openrag-0.2.4 → openrag-0.3.0}/src/utils/telemetry/__init__.py +0 -0
  172. {openrag-0.2.4 → openrag-0.3.0}/src/utils/telemetry/category.py +0 -0
  173. {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
+ [![Langflow](https://img.shields.io/badge/Langflow-1C1C1E?style=for-the-badge&logo=langflow)](https://github.com/langflow-ai/langflow)
54
+ [![OpenSearch](https://img.shields.io/badge/OpenSearch-005EB8?style=for-the-badge&logo=opensearch&logoColor=white)](https://github.com/opensearch-project/OpenSearch)
55
+ [![Docling](https://img.shields.io/badge/Docling-000000?style=for-the-badge)](https://github.com/docling-project/docling)
56
+
57
+ [![YouTube Channel](https://img.shields.io/youtube/channel/subscribers/UCn2bInQrjdDYKEEmbpwblLQ?label=Subscribe&style=social)](https://www.youtube.com/@OpenRAG/)
58
+ [![GitHub stars](https://img.shields.io/github/stars/langflow-ai/openrag?style=social)](https://github.com/langflow-ai/openrag/stargazers)
59
+ [![GitHub forks](https://img.shields.io/github/forks/langflow-ai/openrag?style=social)](https://github.com/langflow-ai/openrag/network/members)
60
+
61
+ [![Documentation](https://img.shields.io/badge/Documentation-773eff)](https://docs.openr.ag) [![Ask DeepWiki](https://deepwiki.com/badge.svg)](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).
@@ -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
+ [![Langflow](https://img.shields.io/badge/Langflow-1C1C1E?style=for-the-badge&logo=langflow)](https://github.com/langflow-ai/langflow)
14
+ [![OpenSearch](https://img.shields.io/badge/OpenSearch-005EB8?style=for-the-badge&logo=opensearch&logoColor=white)](https://github.com/opensearch-project/OpenSearch)
15
+ [![Docling](https://img.shields.io/badge/Docling-000000?style=for-the-badge)](https://github.com/docling-project/docling)
16
+
17
+ [![YouTube Channel](https://img.shields.io/youtube/channel/subscribers/UCn2bInQrjdDYKEEmbpwblLQ?label=Subscribe&style=social)](https://www.youtube.com/@OpenRAG/)
18
+ [![GitHub stars](https://img.shields.io/github/stars/langflow-ai/openrag?style=social)](https://github.com/langflow-ai/openrag/stargazers)
19
+ [![GitHub forks](https://img.shields.io/github/forks/langflow-ai/openrag?style=social)](https://github.com/langflow-ai/openrag/network/members)
20
+
21
+ [![Documentation](https://img.shields.io/badge/Documentation-773eff)](https://docs.openr.ag) [![Ask DeepWiki](https://deepwiki.com/badge.svg)](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.2.4"
8
- description = "Add your description here"
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
- "starlette>=0.47.1",
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