Observed since 20 Oct, 19:40 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
admin-api-lib
The admin backend is responsible for the document management. This includes deletion, upload and returning the source document.
Document lifecycle orchestration for the STACKIT RAG template. This library exposes a FastAPI-compatible admin surface that receives raw user content, coordinates extraction, summarisation, chunking, and storage, and finally hands normalized information pieces to the core RAG API.
It powers the services/admin-backend deployment and is the primary integration point for operators managing their document corpus.
extractor-api-lib to obtain normalized information pieces.rag-core-lib.rag-core-api.recursive vs semantic) and summariser implementations with shared retry/backoff controls.pip install admin-api-lib
Requires Python 3.13 and rag-core-lib.
dependency_container.py – Configures and wires dependency-injection providers. Override registrations here to customise behaviour.api_endpoints/ & impl/api_endpoints/ – Endpoints + abstractions for file uploads, source uploads, deletions, document status, and reference retrieval.apis/ – Admin API abstractions and implementations.chunker/ & impl/chunker/ – Abstractions + default text/semantic chunkers and chunker type selection class.extractor_api_client/ & rag_backend_client/ – Generated OpenAPI clients to talk to the extractor and rag core API services.file_services/ & impl/file_services/ – Abstract and default S3 interface.summarizer/ & impl/summarizer/ – Interfaces and LangChain-based summariser that leverage shared retry logic.information_enhancer/ & impl/information_enhancer/ – Abstractions + page and summary enhancer. Enhancers are centralized with general enhancer.impl/key_db/ – KeyDB/Redis client implementation for document status tracking.impl/mapper/ – Mapper between extractor documents and langchain documents.impl/settings/ – Configuration settings for dependency injection container components.prompt_templates/ – Default summarisation prompt shipped with the template.utils/ – Utility functions and classes.POST /upload_file – Uploads user selected filesPOST /upload_source - Uploads user selected sourcesDELETE /documents/{identification} – Deletes a document from the system.GET /document_reference/{identification} – Retrieves a document reference.GET /all_documents_status – Retrieves the status of all documents.Refer to libs/README.md for in-depth API documentation.
All settings are powered by pydantic-settings, so you can use environment variables or instantiate classes manually:
S3_* (S3_ACCESS_KEY_ID, S3_SECRET_ACCESS_KEY, S3_ENDPOINT, S3_BUCKET) – configure storage for raw uploads.DOCUMENT_EXTRACTOR_HOST – base URL of the extractor service.RAG_API_HOST – base URL of the rag-core API.CHUNKER_CLASS_TYPE_CHUNKER_TYPE – choose recursive (default) or semantic chunking.CHUNKER_* (CHUNKER_MAX_SIZE, CHUNKER_OVERLAP, CHUNKER_BREAKPOINT_THRESHOLD_TYPE, …) – fine-tune chunking behaviour.SUMMARIZER_MAXIMUM_INPUT_SIZE, SUMMARIZER_MAXIMUM_CONCURRENCY, SUMMARIZER_MAX_RETRIES, etc. – tune summariser limits and retry behaviour.SOURCE_UPLOADER_TIMEOUT – adjust how long non-file source ingestions wait before timing out.USECASE_KEYVALUE_HOST / USECASE_KEYVALUE_PORT – configure the KeyDB/Redis instance that persists document status.USECASE_KEYVALUE_USERNAME / USECASE_KEYVALUE_PASSWORD – optional credentials for authenticating against KeyDB/Redis.USECASE_KEYVALUE_USE_SSL, USECASE_KEYVALUE_SSL_CERT_REQS, USECASE_KEYVALUE_SSL_CA_CERTS, USECASE_KEYVALUE_SSL_CERTFILE, USECASE_KEYVALUE_SSL_KEYFILE, USECASE_KEYVALUE_SSL_CHECK_HOSTNAME – optional TLS settings for managed Redis deployments (e.g., STACKIT Redis or other SSL-only endpoints).The Helm chart forwards these values through adminBackend.envs.*, keeping deployments declarative. Local development can rely on .env as described in the repository root README.
from admin_api_lib.main import app as perfect_admin_app
The admin frontend (services/frontend → Admin app) and automation scripts talk to these endpoints to manage the corpus. Downstream, rag-core-api receives the processed information pieces and stores them in the vector database.
Chunker, Summarizer, FileService).dependency_container.py or override via dependency-injector in your service.libs/admin-api-lib/tests.Because components depend on interfaces defined here, downstream services can swap behavior without modifying the public API surface.
Ensure new endpoints or adapters remain thin and defer to rag-core-lib for shared logic. Run poetry run pytest and the configured linters before opening a PR. For further instructions see the Contributing Guide.
Licensed under the project license. See the root LICENSE file.
Download counts and popularity will appear here as the collector receives them.
| Package / target | Requirement | Relationship |
|---|---|---|
rag-core-libEnvironment{
"extras": "",
"marker": null,
"requires_python": "<4.0,>=3.13",
"evaluation": "NOT_EVALUATED"
} | rag-core-lib==4.2.0 | runtime |
uvicornEnvironment{
"extras": "",
"marker": null,
"requires_python": "<4.0,>=3.13",
"evaluation": "NOT_EVALUATED"
} | uvicorn<0.41.0,>=0.40.0 | runtime |
fastapiEnvironment{
"extras": "",
"marker": null,
"requires_python": "<4.0,>=3.13",
"evaluation": "NOT_EVALUATED"
} | fastapi<0.129.0,>=0.128.0 | runtime |
dependency-injectorEnvironment{
"extras": "",
"marker": null,
"requires_python": "<4.0,>=3.13",
"evaluation": "NOT_EVALUATED"
} | dependency-injector<5.0.0,>=4.46.0 | runtime |
python-dateutilEnvironment{
"extras": "",
"marker": null,
"requires_python": "<4.0,>=3.13",
"evaluation": "NOT_EVALUATED"
} | python-dateutil<3.0.0,>=2.9.0.post0 | runtime |
tenacityEnvironment{
"extras": "",
"marker": null,
"requires_python": "<4.0,>=3.13",
"evaluation": "NOT_EVALUATED"
} | tenacity==9.1.2 | runtime |
boto3Environment{
"extras": "",
"marker": null,
"requires_python": "<4.0,>=3.13",
"evaluation": "NOT_EVALUATED"
} | boto3<2.0.0,>=1.38.10 | runtime |
tqdmEnvironment{
"extras": "",
"marker": null,
"requires_python": "<4.0,>=3.13",
"evaluation": "NOT_EVALUATED"
} | tqdm<5.0.0,>=4.67.1 | runtime |
langfuseEnvironment{
"extras": "",
"marker": null,
"requires_python": "<4.0,>=3.13",
"evaluation": "NOT_EVALUATED"
} | langfuse<4.0.0,>=3.10.1 | runtime |
redisEnvironment{
"extras": "",
"marker": null,
"requires_python": "<4.0,>=3.13",
"evaluation": "NOT_EVALUATED"
} | redis<7.0.0,>=6.0.0 | runtime |
pyyamlEnvironment{
"extras": "",
"marker": null,
"requires_python": "<4.0,>=3.13",
"evaluation": "NOT_EVALUATED"
} | pyyaml<7.0.0,>=6.0.2 | runtime |
python-multipartEnvironment{
"extras": "",
"marker": null,
"requires_python": "<4.0,>=3.13",
"evaluation": "NOT_EVALUATED"
} | python-multipart<0.0.23,>=0.0.22 | runtime |
marshmallowEnvironment{
"extras": "",
"marker": null,
"requires_python": "<4.0,>=3.13",
"evaluation": "NOT_EVALUATED"
} | marshmallow<4.0.0,>=3.26.2 | runtime |
protobufEnvironment{
"extras": "",
"marker": null,
"requires_python": "<4.0,>=3.13",
"evaluation": "NOT_EVALUATED"
} | protobuf<6.0.0,>=5.29.6 | runtime |
langchain-experimentalEnvironment{
"extras": "",
"marker": null,
"requires_python": "<4.0,>=3.13",
"evaluation": "NOT_EVALUATED"
} | langchain-experimental<0.5.0,>=0.4.0 | runtime |
nltkEnvironment{
"extras": "",
"marker": null,
"requires_python": "<4.0,>=3.13",
"evaluation": "NOT_EVALUATED"
} | nltk<4.0.0,>=3.9.2 | runtime |
starletteEnvironment{
"extras": "",
"marker": null,
"requires_python": "<4.0,>=3.13",
"evaluation": "NOT_EVALUATED"
} | starlette>=0.49.1 | runtime |
langgraph-checkpointEnvironment{
"extras": "",
"marker": null,
"requires_python": "<4.0,>=3.13",
"evaluation": "NOT_EVALUATED"
} | langgraph-checkpoint<4.0.0,>=3.0.0 | runtime |
bdist_wheel · 117.67 KB · Python py3
sdist · 67.96 KB · Python source
Observed since 20 Oct, 19:40 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package_version:110ef41e66d40fed93b8e963dcb5d11f52e7c192e4fee6f3e1c8184edb2866d0