admin-api-lib 3.2.0__py3-none-any.whl

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 (106) hide show
  1. admin_api_lib/__init__.py +0 -0
  2. admin_api_lib/api_endpoints/document_deleter.py +24 -0
  3. admin_api_lib/api_endpoints/document_reference_retriever.py +25 -0
  4. admin_api_lib/api_endpoints/documents_status_retriever.py +20 -0
  5. admin_api_lib/api_endpoints/file_uploader.py +31 -0
  6. admin_api_lib/api_endpoints/source_uploader.py +40 -0
  7. admin_api_lib/api_endpoints/uploader_base.py +30 -0
  8. admin_api_lib/apis/__init__.py +0 -0
  9. admin_api_lib/apis/admin_api.py +197 -0
  10. admin_api_lib/apis/admin_api_base.py +120 -0
  11. admin_api_lib/chunker/__init__.py +0 -0
  12. admin_api_lib/chunker/chunker.py +25 -0
  13. admin_api_lib/dependency_container.py +236 -0
  14. admin_api_lib/extractor_api_client/__init__.py +0 -0
  15. admin_api_lib/extractor_api_client/openapi_client/__init__.py +38 -0
  16. admin_api_lib/extractor_api_client/openapi_client/api/__init__.py +4 -0
  17. admin_api_lib/extractor_api_client/openapi_client/api/extractor_api.py +516 -0
  18. admin_api_lib/extractor_api_client/openapi_client/api_client.py +695 -0
  19. admin_api_lib/extractor_api_client/openapi_client/api_response.py +20 -0
  20. admin_api_lib/extractor_api_client/openapi_client/configuration.py +460 -0
  21. admin_api_lib/extractor_api_client/openapi_client/exceptions.py +197 -0
  22. admin_api_lib/extractor_api_client/openapi_client/models/__init__.py +21 -0
  23. admin_api_lib/extractor_api_client/openapi_client/models/content_type.py +34 -0
  24. admin_api_lib/extractor_api_client/openapi_client/models/extraction_parameters.py +103 -0
  25. admin_api_lib/extractor_api_client/openapi_client/models/extraction_request.py +82 -0
  26. admin_api_lib/extractor_api_client/openapi_client/models/information_piece.py +104 -0
  27. admin_api_lib/extractor_api_client/openapi_client/models/key_value_pair.py +92 -0
  28. admin_api_lib/extractor_api_client/openapi_client/rest.py +209 -0
  29. admin_api_lib/extractor_api_client/openapi_client/test/__init__.py +0 -0
  30. admin_api_lib/extractor_api_client/openapi_client/test/test_content_type.py +35 -0
  31. admin_api_lib/extractor_api_client/openapi_client/test/test_extraction_parameters.py +59 -0
  32. admin_api_lib/extractor_api_client/openapi_client/test/test_extraction_request.py +56 -0
  33. admin_api_lib/extractor_api_client/openapi_client/test/test_extractor_api.py +39 -0
  34. admin_api_lib/extractor_api_client/openapi_client/test/test_information_piece.py +62 -0
  35. admin_api_lib/extractor_api_client/openapi_client/test/test_key_value_pair.py +54 -0
  36. admin_api_lib/file_services/file_service.py +77 -0
  37. admin_api_lib/impl/__init__.py +0 -0
  38. admin_api_lib/impl/admin_api.py +167 -0
  39. admin_api_lib/impl/api_endpoints/default_document_deleter.py +84 -0
  40. admin_api_lib/impl/api_endpoints/default_document_reference_retriever.py +72 -0
  41. admin_api_lib/impl/api_endpoints/default_documents_status_retriever.py +41 -0
  42. admin_api_lib/impl/api_endpoints/default_file_uploader.py +234 -0
  43. admin_api_lib/impl/api_endpoints/default_source_uploader.py +202 -0
  44. admin_api_lib/impl/chunker/__init__.py +0 -0
  45. admin_api_lib/impl/chunker/chunker_type.py +11 -0
  46. admin_api_lib/impl/chunker/semantic_text_chunker.py +252 -0
  47. admin_api_lib/impl/chunker/text_chunker.py +33 -0
  48. admin_api_lib/impl/file_services/__init__.py +0 -0
  49. admin_api_lib/impl/file_services/s3_service.py +130 -0
  50. admin_api_lib/impl/information_enhancer/__init__.py +0 -0
  51. admin_api_lib/impl/information_enhancer/general_enhancer.py +52 -0
  52. admin_api_lib/impl/information_enhancer/page_summary_enhancer.py +62 -0
  53. admin_api_lib/impl/information_enhancer/summary_enhancer.py +74 -0
  54. admin_api_lib/impl/key_db/__init__.py +0 -0
  55. admin_api_lib/impl/key_db/file_status_key_value_store.py +111 -0
  56. admin_api_lib/impl/mapper/informationpiece2document.py +108 -0
  57. admin_api_lib/impl/settings/__init__.py +0 -0
  58. admin_api_lib/impl/settings/chunker_class_type_settings.py +18 -0
  59. admin_api_lib/impl/settings/chunker_settings.py +29 -0
  60. admin_api_lib/impl/settings/document_extractor_settings.py +21 -0
  61. admin_api_lib/impl/settings/key_value_settings.py +26 -0
  62. admin_api_lib/impl/settings/rag_api_settings.py +21 -0
  63. admin_api_lib/impl/settings/s3_settings.py +31 -0
  64. admin_api_lib/impl/settings/source_uploader_settings.py +23 -0
  65. admin_api_lib/impl/settings/summarizer_settings.py +86 -0
  66. admin_api_lib/impl/summarizer/__init__.py +0 -0
  67. admin_api_lib/impl/summarizer/langchain_summarizer.py +117 -0
  68. admin_api_lib/information_enhancer/__init__.py +0 -0
  69. admin_api_lib/information_enhancer/information_enhancer.py +34 -0
  70. admin_api_lib/main.py +54 -0
  71. admin_api_lib/models/__init__.py +0 -0
  72. admin_api_lib/models/document_status.py +86 -0
  73. admin_api_lib/models/extra_models.py +9 -0
  74. admin_api_lib/models/http_validation_error.py +105 -0
  75. admin_api_lib/models/key_value_pair.py +85 -0
  76. admin_api_lib/models/status.py +44 -0
  77. admin_api_lib/models/validation_error.py +104 -0
  78. admin_api_lib/models/validation_error_loc_inner.py +114 -0
  79. admin_api_lib/prompt_templates/__init__.py +0 -0
  80. admin_api_lib/prompt_templates/summarize_prompt.py +14 -0
  81. admin_api_lib/rag_backend_client/__init__.py +0 -0
  82. admin_api_lib/rag_backend_client/openapi_client/__init__.py +60 -0
  83. admin_api_lib/rag_backend_client/openapi_client/api/__init__.py +4 -0
  84. admin_api_lib/rag_backend_client/openapi_client/api/rag_api.py +968 -0
  85. admin_api_lib/rag_backend_client/openapi_client/api_client.py +698 -0
  86. admin_api_lib/rag_backend_client/openapi_client/api_response.py +22 -0
  87. admin_api_lib/rag_backend_client/openapi_client/configuration.py +460 -0
  88. admin_api_lib/rag_backend_client/openapi_client/exceptions.py +197 -0
  89. admin_api_lib/rag_backend_client/openapi_client/models/__init__.py +41 -0
  90. admin_api_lib/rag_backend_client/openapi_client/models/chat_history.py +99 -0
  91. admin_api_lib/rag_backend_client/openapi_client/models/chat_history_message.py +83 -0
  92. admin_api_lib/rag_backend_client/openapi_client/models/chat_request.py +93 -0
  93. admin_api_lib/rag_backend_client/openapi_client/models/chat_response.py +103 -0
  94. admin_api_lib/rag_backend_client/openapi_client/models/chat_role.py +35 -0
  95. admin_api_lib/rag_backend_client/openapi_client/models/content_type.py +37 -0
  96. admin_api_lib/rag_backend_client/openapi_client/models/delete_request.py +99 -0
  97. admin_api_lib/rag_backend_client/openapi_client/models/information_piece.py +110 -0
  98. admin_api_lib/rag_backend_client/openapi_client/models/key_value_pair.py +83 -0
  99. admin_api_lib/rag_backend_client/openapi_client/rest.py +209 -0
  100. admin_api_lib/summarizer/__init__.py +0 -0
  101. admin_api_lib/summarizer/summarizer.py +33 -0
  102. admin_api_lib/utils/__init__.py +0 -0
  103. admin_api_lib/utils/utils.py +32 -0
  104. admin_api_lib-3.2.0.dist-info/METADATA +24 -0
  105. admin_api_lib-3.2.0.dist-info/RECORD +106 -0
  106. admin_api_lib-3.2.0.dist-info/WHEEL +4 -0
@@ -0,0 +1,236 @@
1
+ """Module for the DependencyContainer class."""
2
+
3
+ from admin_api_lib.impl.api_endpoints.default_file_uploader import DefaultFileUploader
4
+ from dependency_injector.containers import DeclarativeContainer
5
+ from dependency_injector.providers import Configuration, List, Selector, Singleton
6
+ from langchain.text_splitter import RecursiveCharacterTextSplitter
7
+ from langchain_community.embeddings import OllamaEmbeddings
8
+ from langfuse import Langfuse
9
+
10
+ from admin_api_lib.extractor_api_client.openapi_client.api.extractor_api import (
11
+ ExtractorApi,
12
+ )
13
+ from admin_api_lib.extractor_api_client.openapi_client.api_client import ApiClient
14
+ from admin_api_lib.extractor_api_client.openapi_client.configuration import (
15
+ Configuration as ExtractorConfiguration,
16
+ )
17
+ from admin_api_lib.impl.api_endpoints.default_source_uploader import DefaultSourceUploader
18
+ from admin_api_lib.impl.api_endpoints.default_document_deleter import (
19
+ DefaultDocumentDeleter,
20
+ )
21
+ from admin_api_lib.impl.api_endpoints.default_document_reference_retriever import (
22
+ DefaultDocumentReferenceRetriever,
23
+ )
24
+
25
+ from admin_api_lib.impl.api_endpoints.default_documents_status_retriever import (
26
+ DefaultDocumentsStatusRetriever,
27
+ )
28
+ from admin_api_lib.impl.chunker.semantic_text_chunker import SemanticTextChunker
29
+ from admin_api_lib.impl.chunker.text_chunker import TextChunker
30
+ from admin_api_lib.impl.file_services.s3_service import S3Service
31
+ from admin_api_lib.impl.information_enhancer.general_enhancer import GeneralEnhancer
32
+ from admin_api_lib.impl.information_enhancer.page_summary_enhancer import (
33
+ PageSummaryEnhancer,
34
+ )
35
+ from admin_api_lib.impl.key_db.file_status_key_value_store import (
36
+ FileStatusKeyValueStore,
37
+ )
38
+ from admin_api_lib.impl.mapper.informationpiece2document import (
39
+ InformationPiece2Document,
40
+ )
41
+ from admin_api_lib.impl.settings.chunker_class_type_settings import ChunkerClassTypeSettings
42
+ from admin_api_lib.impl.settings.chunker_settings import ChunkerSettings
43
+ from admin_api_lib.impl.settings.document_extractor_settings import (
44
+ DocumentExtractorSettings,
45
+ )
46
+ from admin_api_lib.impl.settings.key_value_settings import KeyValueSettings
47
+ from admin_api_lib.impl.settings.rag_api_settings import RAGAPISettings
48
+ from admin_api_lib.impl.settings.s3_settings import S3Settings
49
+ from admin_api_lib.impl.settings.source_uploader_settings import SourceUploaderSettings
50
+ from admin_api_lib.impl.settings.summarizer_settings import SummarizerSettings
51
+ from admin_api_lib.impl.summarizer.langchain_summarizer import LangchainSummarizer
52
+ from admin_api_lib.prompt_templates.summarize_prompt import SUMMARIZE_PROMPT
53
+ from admin_api_lib.rag_backend_client.openapi_client.api.rag_api import RagApi
54
+ from admin_api_lib.rag_backend_client.openapi_client.api_client import (
55
+ ApiClient as RagApiClient,
56
+ )
57
+ from admin_api_lib.rag_backend_client.openapi_client.configuration import (
58
+ Configuration as RagConfiguration,
59
+ )
60
+ from rag_core_lib.impl.embeddings.langchain_community_embedder import (
61
+ LangchainCommunityEmbedder,
62
+ )
63
+ from rag_core_lib.impl.embeddings.stackit_embedder import StackitEmbedder
64
+ from rag_core_lib.impl.langfuse_manager.langfuse_manager import LangfuseManager
65
+ from rag_core_lib.impl.llms.llm_factory import chat_model_provider
66
+ from rag_core_lib.impl.settings.embedder_class_type_settings import (
67
+ EmbedderClassTypeSettings,
68
+ )
69
+ from rag_core_lib.impl.settings.langfuse_settings import LangfuseSettings
70
+ from rag_core_lib.impl.settings.ollama_embedder_settings import OllamaEmbedderSettings
71
+ from rag_core_lib.impl.settings.ollama_llm_settings import OllamaSettings
72
+ from rag_core_lib.impl.settings.rag_class_types_settings import RAGClassTypeSettings
73
+ from rag_core_lib.impl.settings.retry_decorator_settings import RetryDecoratorSettings
74
+ from rag_core_lib.impl.settings.stackit_embedder_settings import StackitEmbedderSettings
75
+ from rag_core_lib.impl.settings.stackit_vllm_settings import StackitVllmSettings
76
+ from rag_core_lib.impl.tracers.langfuse_traced_runnable import LangfuseTracedRunnable
77
+ from rag_core_lib.impl.utils.async_threadsafe_semaphore import AsyncThreadsafeSemaphore
78
+
79
+
80
+ class DependencyContainer(DeclarativeContainer):
81
+ """Dependency injection container for managing application dependencies."""
82
+
83
+ class_selector_config = Configuration()
84
+ chunker_selector_config = Configuration()
85
+
86
+ # Settings
87
+ s3_settings = S3Settings()
88
+ chunker_settings = ChunkerSettings()
89
+ chunker_embedder_type_settings = EmbedderClassTypeSettings()
90
+ stackit_chunker_embedder_settings = StackitEmbedderSettings()
91
+ ollama_chunker_embedder_settings = OllamaEmbedderSettings()
92
+ ollama_settings = OllamaSettings()
93
+ langfuse_settings = LangfuseSettings()
94
+ stackit_vllm_settings = StackitVllmSettings()
95
+ document_extractor_settings = DocumentExtractorSettings()
96
+ rag_class_type_settings = RAGClassTypeSettings()
97
+ rag_api_settings = RAGAPISettings()
98
+ key_value_store_settings = KeyValueSettings()
99
+ summarizer_settings = SummarizerSettings()
100
+ source_uploader_settings = SourceUploaderSettings()
101
+ retry_decorator_settings = RetryDecoratorSettings()
102
+ chunker_type_settings = ChunkerClassTypeSettings()
103
+
104
+ class_selector_config.from_dict(rag_class_type_settings.model_dump() | chunker_embedder_type_settings.model_dump())
105
+ chunker_selector_config.from_dict(chunker_type_settings.model_dump())
106
+
107
+ key_value_store = Singleton(FileStatusKeyValueStore, key_value_store_settings)
108
+ file_service = Singleton(S3Service, s3_settings=s3_settings)
109
+
110
+ text_splitter = Singleton(RecursiveCharacterTextSplitter)(
111
+ chunk_size=chunker_settings.max_size, chunk_overlap=chunker_settings.overlap
112
+ )
113
+
114
+ semantic_chunker_embeddings = Selector(
115
+ class_selector_config.embedder_type,
116
+ stackit=Singleton(
117
+ StackitEmbedder,
118
+ stackit_chunker_embedder_settings,
119
+ retry_decorator_settings,
120
+ ),
121
+ ollama=Singleton(
122
+ LangchainCommunityEmbedder,
123
+ embedder=Singleton(
124
+ OllamaEmbeddings,
125
+ model=ollama_chunker_embedder_settings.model,
126
+ base_url=ollama_chunker_embedder_settings.base_url,
127
+ ),
128
+ ),
129
+ )
130
+
131
+ semantic_chunker = Singleton(
132
+ SemanticTextChunker,
133
+ embeddings=semantic_chunker_embeddings,
134
+ breakpoint_threshold_type=chunker_settings.breakpoint_threshold_type,
135
+ breakpoint_threshold_amount=chunker_settings.breakpoint_threshold_amount,
136
+ buffer_size=chunker_settings.buffer_size,
137
+ min_chunk_size=chunker_settings.min_size,
138
+ max_chunk_size=chunker_settings.max_size,
139
+ recursive_text_splitter=text_splitter,
140
+ overlap=chunker_settings.overlap,
141
+ )
142
+
143
+ chunker = Selector(
144
+ chunker_selector_config.chunker_type,
145
+ recursive=Singleton(TextChunker, text_splitter),
146
+ semantic=semantic_chunker,
147
+ )
148
+ extractor_api_configuration = Singleton(ExtractorConfiguration, host=document_extractor_settings.host)
149
+ document_extractor_api_client = Singleton(ApiClient, extractor_api_configuration)
150
+ document_extractor = Singleton(ExtractorApi, document_extractor_api_client)
151
+
152
+ rag_api_configuration = Singleton(RagConfiguration, host=rag_api_settings.host)
153
+ rag_api_client = Singleton(RagApiClient, configuration=rag_api_configuration)
154
+ rag_api = Singleton(RagApi, rag_api_client)
155
+
156
+ information_mapper = Singleton(InformationPiece2Document)
157
+
158
+ large_language_model = Selector(
159
+ class_selector_config.llm_type,
160
+ ollama=Singleton(chat_model_provider, ollama_settings, "ollama"),
161
+ stackit=Singleton(chat_model_provider, stackit_vllm_settings, "openai"),
162
+ )
163
+
164
+ summary_text_splitter = Singleton(RecursiveCharacterTextSplitter)(
165
+ chunk_size=summarizer_settings.maximum_input_size, chunk_overlap=chunker_settings.overlap
166
+ )
167
+
168
+ langfuse = Singleton(
169
+ Langfuse,
170
+ public_key=langfuse_settings.public_key,
171
+ secret_key=langfuse_settings.secret_key,
172
+ host=langfuse_settings.host,
173
+ )
174
+ summarizer_prompt = SUMMARIZE_PROMPT
175
+
176
+ langfuse_manager = Singleton(
177
+ LangfuseManager,
178
+ langfuse=langfuse,
179
+ managed_prompts={
180
+ LangchainSummarizer.__name__: summarizer_prompt,
181
+ },
182
+ llm=large_language_model,
183
+ )
184
+
185
+ summarizer = Singleton(
186
+ LangchainSummarizer,
187
+ langfuse_manager=langfuse_manager,
188
+ chunker=summary_text_splitter,
189
+ semaphore=Singleton(AsyncThreadsafeSemaphore, summarizer_settings.maximum_concurrency),
190
+ summarizer_settings=summarizer_settings,
191
+ retry_decorator_settings=retry_decorator_settings,
192
+ )
193
+
194
+ summary_enhancer = List(
195
+ Singleton(PageSummaryEnhancer, summarizer, chunker_settings),
196
+ )
197
+ untraced_information_enhancer = Singleton(
198
+ GeneralEnhancer,
199
+ summary_enhancer,
200
+ )
201
+ information_enhancer = Singleton(
202
+ LangfuseTracedRunnable,
203
+ inner_chain=untraced_information_enhancer,
204
+ settings=langfuse_settings,
205
+ )
206
+
207
+ document_deleter = Singleton(
208
+ DefaultDocumentDeleter, rag_api=rag_api, file_service=file_service, key_value_store=key_value_store
209
+ )
210
+ documents_status_retriever = Singleton(DefaultDocumentsStatusRetriever, key_value_store=key_value_store)
211
+
212
+ document_reference_retriever = Singleton(DefaultDocumentReferenceRetriever, file_service=file_service)
213
+
214
+ source_uploader = Singleton(
215
+ DefaultSourceUploader,
216
+ extractor_api=document_extractor,
217
+ rag_api=rag_api,
218
+ information_enhancer=information_enhancer,
219
+ information_mapper=information_mapper,
220
+ chunker=chunker,
221
+ key_value_store=key_value_store,
222
+ document_deleter=document_deleter,
223
+ settings=source_uploader_settings,
224
+ )
225
+
226
+ file_uploader = Singleton(
227
+ DefaultFileUploader,
228
+ extractor_api=document_extractor,
229
+ rag_api=rag_api,
230
+ information_enhancer=information_enhancer,
231
+ information_mapper=information_mapper,
232
+ chunker=chunker,
233
+ key_value_store=key_value_store,
234
+ document_deleter=document_deleter,
235
+ file_service=file_service,
236
+ )
File without changes
@@ -0,0 +1,38 @@
1
+ # coding: utf-8
2
+
3
+ # flake8: noqa
4
+
5
+ """
6
+ extractor-api-lib
7
+
8
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
9
+
10
+ The version of the OpenAPI document: 1.0.0
11
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
12
+
13
+ Do not edit the class manually.
14
+ """ # noqa: E501
15
+
16
+
17
+ __version__ = "1.0.0"
18
+
19
+ # import apis into sdk package
20
+ from admin_api_lib.extractor_api_client.openapi_client.api.extractor_api import ExtractorApi
21
+
22
+ # import ApiClient
23
+ from admin_api_lib.extractor_api_client.openapi_client.api_response import ApiResponse
24
+ from admin_api_lib.extractor_api_client.openapi_client.api_client import ApiClient
25
+ from admin_api_lib.extractor_api_client.openapi_client.configuration import Configuration
26
+ from admin_api_lib.extractor_api_client.openapi_client.exceptions import OpenApiException
27
+ from admin_api_lib.extractor_api_client.openapi_client.exceptions import ApiTypeError
28
+ from admin_api_lib.extractor_api_client.openapi_client.exceptions import ApiValueError
29
+ from admin_api_lib.extractor_api_client.openapi_client.exceptions import ApiKeyError
30
+ from admin_api_lib.extractor_api_client.openapi_client.exceptions import ApiAttributeError
31
+ from admin_api_lib.extractor_api_client.openapi_client.exceptions import ApiException
32
+
33
+ # import models into sdk package
34
+ from admin_api_lib.extractor_api_client.openapi_client.models.content_type import ContentType
35
+ from admin_api_lib.extractor_api_client.openapi_client.models.extraction_parameters import ExtractionParameters
36
+ from admin_api_lib.extractor_api_client.openapi_client.models.extraction_request import ExtractionRequest
37
+ from admin_api_lib.extractor_api_client.openapi_client.models.information_piece import InformationPiece
38
+ from admin_api_lib.extractor_api_client.openapi_client.models.key_value_pair import KeyValuePair
@@ -0,0 +1,4 @@
1
+ # flake8: noqa
2
+
3
+ # import apis into api package
4
+ from admin_api_lib.extractor_api_client.openapi_client.api.extractor_api import ExtractorApi