abstract-hugpy-dev 0.0.1__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.
- abstract_hugpy_dev-0.0.1/MANIFEST.in +1 -0
- abstract_hugpy_dev-0.0.1/PKG-INFO +569 -0
- abstract_hugpy_dev-0.0.1/README.md +537 -0
- abstract_hugpy_dev-0.0.1/pyproject.toml +3 -0
- abstract_hugpy_dev-0.0.1/setup.cfg +4 -0
- abstract_hugpy_dev-0.0.1/setup.py +35 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/__init__.py +3 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/flask_app/__init__.py +2 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/flask_app/app/__init__.py +7 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/flask_app/app/functions/__init__.py +3 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/flask_app/app/functions/chat/__init__.py +1 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/flask_app/app/functions/chat/imports.py +1 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/flask_app/app/functions/chat/streaming.py +168 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/flask_app/app/functions/downloads/__init__.py +4 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/flask_app/app/functions/downloads/cancelable_downloads.py +133 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/flask_app/app/functions/downloads/downloader.py +29 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/flask_app/app/functions/downloads/downloads.py +34 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/flask_app/app/functions/downloads/imports.py +1 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/flask_app/app/functions/imports/__init__.py +4 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/flask_app/app/functions/imports/init_imports.py +6 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/flask_app/app/functions/imports/options/__init__.py +2 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/flask_app/app/functions/imports/options/imports.py +2 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/flask_app/app/functions/imports/options/install.py +67 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/flask_app/app/functions/imports/options/search.py +35 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/flask_app/app/functions/imports/utils/__init__.py +5 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/flask_app/app/functions/imports/utils/constants.py +4 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/flask_app/app/functions/imports/utils/imports.py +1 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/flask_app/app/functions/imports/utils/manifest.py +53 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/flask_app/app/functions/imports/utils/peers.py +123 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/flask_app/app/functions/imports/utils/schemas/__init__.py +8 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/flask_app/app/functions/imports/utils/schemas/chat_schemas.py +29 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/flask_app/app/functions/imports/utils/schemas/config_schemas.py +23 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/flask_app/app/functions/imports/utils/schemas/download_schemas.py +28 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/flask_app/app/functions/imports/utils/schemas/imports.py +3 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/flask_app/app/functions/imports/utils/schemas/install_schemas.py +17 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/flask_app/app/functions/imports/utils/schemas/job_schemas.py +63 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/flask_app/app/functions/imports/utils/schemas/model_schemas.py +37 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/flask_app/app/functions/imports/utils/schemas/request_schemas.py +13 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/flask_app/app/functions/imports/utils/schemas/specs_schemas.py +9 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/flask_app/app/functions/imports/utils/workers.py +434 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/flask_app/app/routes/__init__.py +5 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/flask_app/app/routes/chat_routes.py +10 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/flask_app/app/routes/llm_storage_routes.py +119 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/flask_app/app/routes/search_routes.py +130 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/flask_app/app/routes/upload_routes.py +15 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/flask_app/app/routes/worker_routes.py +685 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/flask_app/wsgi_app.py +10 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/imports/__init__.py +3 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/imports/apis/__init__.py +4 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/imports/apis/call_api.py +124 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/imports/apis/download_models.py +252 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/imports/apis/get_module.py +315 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/imports/apis/huggingface_api.py +222 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/imports/apis/imports.py +2 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/imports/apis/serve/__init__.py +2 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/imports/apis/serve/serve.py +509 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/imports/apis/serve/serve_cli.py +85 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/imports/apis/systemd_units.py +325 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/imports/config/__init__.py +3 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/imports/config/imports.py +1 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/imports/config/main.py +183 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/imports/config/models/__init__.py +2 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/imports/config/models/imports.py +1 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/imports/config/models/models_config.py +350 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/imports/config/models/models_default.py +52 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/imports/config/models/models_dict.py +73 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/imports/src/__init__.py +7 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/imports/src/_compat.py +184 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/imports/src/chunking.py +92 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/imports/src/constants/__init__.py +4 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/imports/src/constants/categories.py +36 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/imports/src/constants/constants.py +125 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/imports/src/constants/hugpy_marker.py +112 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/imports/src/constants/imports.py +1 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/imports/src/constants/paths.py +131 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/imports/src/except_utils.py +62 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/imports/src/init_imports.py +45 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/imports/src/module_imports.py +273 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/imports/src/schemas/__init__.py +10 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/imports/src/schemas/chat_schemas.py +61 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/imports/src/schemas/embeded_schemas.py +56 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/imports/src/schemas/event_schemas.py +31 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/imports/src/schemas/imports.py +65 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/imports/src/schemas/metadata_schemas.py +47 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/imports/src/schemas/model_schemas.py +97 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/imports/src/schemas/runner_schemas.py +33 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/imports/src/schemas/summarizer_schemas.py +172 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/imports/src/schemas/task_schemas.py +41 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/imports/src/schemas/video_schemas.py +38 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/imports/src/schemas/whisper_schemas.py +162 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/imports/src/utils.py +324 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/__init__.py +11 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/chat_context/__init__.py +3 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/chat_context/chat_context.py +51 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/chat_context/context_budget.py +223 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/chat_context/imports.py +1 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/chat_context/unbounded.py +55 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/dispatch/__init__.py +2 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/dispatch/acquire.py +46 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/dispatch/dispatch.py +396 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/dispatch/imports.py +1 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/embed/__init__.py +1 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/embed/embed_runner.py +153 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/embed/imports.py +1 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/falconsai/__init__.py +1 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/falconsai/falconsai_module.py +307 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/falconsai/imports.py +1 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/generate/__init__.py +3 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/generate/coder.py +535 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/generate/coder_guff.py +84 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/generate/config.py +121 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/generate/generate_runner.py +121 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/generate/generate_runner2.py +131 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/generate/imports.py +1 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/imports.py +1 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/keywords/__init__.py +3 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/keywords/imports.py +1 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/keywords/keybert_model.py +591 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/keywords/keywords_runner.py +18 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/llama/__init__.py +2 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/llama/imports.py +1 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/llama/runners/__init__.py +2 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/llama/runners/chat_runner.py +111 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/llama/runners/get.py +43 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/llama/runners/imports.py +1 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/llama/runners/src/__init__.py +3 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/llama/runners/src/base_runner.py +214 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/llama/runners/src/ccp_runner.py +149 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/llama/runners/src/imports/__init__.py +4 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/llama/runners/src/imports/config.py +14 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/llama/runners/src/imports/constants.py +36 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/llama/runners/src/imports/init_imports.py +37 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/llama/runners/src/imports/utils.py +60 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/llama/runners/src/python_runner.py +238 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/llama/serve.py +10 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/llama/testsisiis.py +2 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/resolvers/__init__.py +3 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/resolvers/assure_model_key.py +54 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/resolvers/categories/__init__.py +2 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/resolvers/categories/builders.py +191 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/resolvers/categories/frameworks.py +15 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/resolvers/categories/imports.py +11 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/resolvers/imports.py +1 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/resolvers/model_dict_resolver.py +107 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/resolvers/model_resolver.py +322 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/resolvers/remote.py +316 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/serve/__init__.py +2 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/serve/imports.py +1 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/serve/overrides.py +102 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/serve/serve.py +585 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/serve/serve_cli.py +85 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/serve/slot_agent.py +257 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/serve/slots.py +172 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/spill.py +288 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/summarizers/__init__.py +4 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/summarizers/generation.py +23 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/summarizers/imports.py +1 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/summarizers/media.py +47 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/summarizers/summarize_runner.py +96 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/summarizers/summarizers.py +436 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/video/__init__.py +1 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/video/imports.py +1 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/video/video_analyzer.py +139 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/vision/__init__.py +3 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/vision/imports.py +1 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/vision/schemas.py +99 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/vision/utils.py +26 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/vision/vision_backends.py +100 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/vision/vision_coder.py +345 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/vision/vision_runner.py +26 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/whisper_model/__init__.py +5 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/whisper_model/constants.py +3 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/whisper_model/imports.py +1 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/whisper_model/src/__init__.py +7 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/whisper_model/src/imports.py +3 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/whisper_model/src/model/__init__.py +11 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/whisper_model/src/model/execute.py +190 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/whisper_model/src/model/imports.py +1 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/whisper_model/src/model/model.py +36 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/whisper_model/src/model/utils/__init__.py +2 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/whisper_model/src/model/utils/audio.py +74 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/whisper_model/src/model/utils/files/__init__.py +3 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/whisper_model/src/model/utils/files/artifacts/__init__.py +1 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/whisper_model/src/model/utils/files/artifacts/imports.py +1 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/whisper_model/src/model/utils/files/artifacts/workspace.py +49 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/whisper_model/src/model/utils/files/frames/__init__.py +3 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/whisper_model/src/model/utils/files/frames/extract.py +85 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/whisper_model/src/model/utils/files/frames/imports.py +1 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/whisper_model/src/model/utils/files/frames/utils.py +42 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/whisper_model/src/model/utils/files/imports.py +1 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/whisper_model/src/model/utils/files/save.py +15 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/whisper_model/src/model/utils/imports.py +1 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/whisper_model/src/runner.py +102 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/managers/whisper_model/src/stream.py +159 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/model_sync.py +162 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/phone_brick/__init__.py +41 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/phone_brick/__main__.py +84 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/phone_brick/client.py +69 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/phone_brick/consensus.py +35 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/phone_brick/detector.py +227 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/phone_brick/orchestrator.py +114 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/phone_brick/protocol.py +96 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/phone_brick/rendering.py +43 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/phone_brick/schemas.py +130 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/phone_brick/worker.py +233 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/utils/__init__.py +2 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/utils/imports.py +2 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/utils/pdfs/__init__.py +1 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/utils/pdfs/utils.py +166 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/utils/seo/__init__.py +1 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/utils/seo/imports.py +1 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/utils/seo/pdf_utils.py +231 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/utils/text/__init__.py +1 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/utils/text/combined.py +255 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/utils/text/imports.py +2 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/worker_agent/__init__.py +7 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/worker_agent/__main__.py +4 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/worker_agent/agent.py +931 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev/worker_agent/provision.py +741 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev.egg-info/PKG-INFO +569 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev.egg-info/SOURCES.txt +227 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev.egg-info/dependency_links.txt +1 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev.egg-info/requires.txt +4 -0
- abstract_hugpy_dev-0.0.1/src/abstract_hugpy_dev.egg-info/top_level.txt +1 -0
- abstract_hugpy_dev-0.0.1/tests/test.py +14 -0
- abstract_hugpy_dev-0.0.1/tests/test2.py +43 -0
- abstract_hugpy_dev-0.0.1/tests/test_imports.py +10 -0
- abstract_hugpy_dev-0.0.1/tests/test_simple.py +6 -0
- abstract_hugpy_dev-0.0.1/tests/test_url.py +131 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
include src/abstract_hugpy/**/*.sh
|
|
@@ -0,0 +1,569 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: abstract_hugpy_dev
|
|
3
|
+
Version: 0.0.1
|
|
4
|
+
Summary: The `abstract_hugpy_dev` module is designed to facilitate hugging face modules
|
|
5
|
+
Home-page: https://github.com/AbstractEndeavors/abstract_hugpy_dev
|
|
6
|
+
Author: putkoff
|
|
7
|
+
Author-email: partners@abstractendeavors.com
|
|
8
|
+
Classifier: Development Status :: 3 - Alpha
|
|
9
|
+
Classifier: Intended Audience :: Developers
|
|
10
|
+
Classifier: Topic :: Software Development :: Libraries
|
|
11
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
12
|
+
Classifier: Programming Language :: Python :: 3
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.6
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.7
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.8
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
17
|
+
Requires-Python: >=3.6
|
|
18
|
+
Description-Content-Type: text/markdown
|
|
19
|
+
Requires-Dist: abstract_utilities
|
|
20
|
+
Requires-Dist: requests
|
|
21
|
+
Requires-Dist: openai_whisper
|
|
22
|
+
Requires-Dist: abstract_flask
|
|
23
|
+
Dynamic: author
|
|
24
|
+
Dynamic: author-email
|
|
25
|
+
Dynamic: classifier
|
|
26
|
+
Dynamic: description
|
|
27
|
+
Dynamic: description-content-type
|
|
28
|
+
Dynamic: home-page
|
|
29
|
+
Dynamic: requires-dist
|
|
30
|
+
Dynamic: requires-python
|
|
31
|
+
Dynamic: summary
|
|
32
|
+
|
|
33
|
+
# abstract_hugpy
|
|
34
|
+
|
|
35
|
+
## Part of the Abstract Intelligence Platform
|
|
36
|
+
|
|
37
|
+
This module provides NLP and ML enrichment across the media pipeline.
|
|
38
|
+
|
|
39
|
+
`abstract_hugpy` focuses on:
|
|
40
|
+
|
|
41
|
+
* summarization and keyword extraction
|
|
42
|
+
* metadata generation (titles, descriptions, SEO)
|
|
43
|
+
* multimodal refinement (text, audio, video)
|
|
44
|
+
|
|
45
|
+
Full system: [https://github.com/AbstractEndeavors/abstract-intelligence](https://github.com/AbstractEndeavors/abstract-intelligence)
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
`abstract_hugpy` is a Python module for local-first model orchestration, summarization, keyword extraction, transcription support, and media metadata enrichment.
|
|
50
|
+
|
|
51
|
+
It began as a Hugging Face-oriented utility layer, but has grown into a broader intelligence module that sits between raw media/text inputs and higher-level content workflows. In practice, it acts as a unified interface for loading models lazily, routing tasks through consistent APIs, and producing structured outputs for downstream systems.
|
|
52
|
+
|
|
53
|
+
## Why
|
|
54
|
+
|
|
55
|
+
Most model wrappers stop at “load model, run inference.”
|
|
56
|
+
|
|
57
|
+
That is not usually enough in a real pipeline.
|
|
58
|
+
|
|
59
|
+
Media and document systems need more than raw generation:
|
|
60
|
+
|
|
61
|
+
* consistent model loading
|
|
62
|
+
* reusable singleton lifecycle management
|
|
63
|
+
* local path resolution and download control
|
|
64
|
+
* summarization presets
|
|
65
|
+
* keyword extraction presets
|
|
66
|
+
* fallback-friendly dependency handling
|
|
67
|
+
* structured outputs for SEO and metadata workflows
|
|
68
|
+
* text, audio, video, and PDF-aware utilities
|
|
69
|
+
|
|
70
|
+
`abstract_hugpy` exists to provide that layer.
|
|
71
|
+
|
|
72
|
+
## What this module does
|
|
73
|
+
|
|
74
|
+
### Summarization
|
|
75
|
+
|
|
76
|
+
* unified summarization API across multiple backends
|
|
77
|
+
* preset-driven request handling
|
|
78
|
+
* chunked long-text summarization
|
|
79
|
+
* lazy-loaded singleton model managers
|
|
80
|
+
* configurable input policies for short or invalid text
|
|
81
|
+
|
|
82
|
+
### Keyword extraction
|
|
83
|
+
|
|
84
|
+
* transformer-backed extraction with KeyBERT
|
|
85
|
+
* rule-based extraction with spaCy
|
|
86
|
+
* preset-based post-processing for SEO, metadata, and social use cases
|
|
87
|
+
* density analysis, hashtag generation, slug candidates, and filtered keyword tiers
|
|
88
|
+
|
|
89
|
+
### Model orchestration
|
|
90
|
+
|
|
91
|
+
* central model registry
|
|
92
|
+
* environment-aware path resolution
|
|
93
|
+
* lazy local-or-hub source selection
|
|
94
|
+
* on-demand snapshot downloads
|
|
95
|
+
* reusable singleton-backed managers for expensive models
|
|
96
|
+
|
|
97
|
+
### Media pipeline support
|
|
98
|
+
|
|
99
|
+
* Whisper-backed transcription loading
|
|
100
|
+
* audio extraction from video
|
|
101
|
+
* URL/media helpers
|
|
102
|
+
* PDF text analysis for summaries and keyword reports
|
|
103
|
+
* media URL derivation for public asset mapping
|
|
104
|
+
|
|
105
|
+
### Code and generation support
|
|
106
|
+
|
|
107
|
+
* DeepCoder manager for code generation workflows
|
|
108
|
+
* generation config loading
|
|
109
|
+
* quantization-aware initialization
|
|
110
|
+
* single access point for repeated model usage
|
|
111
|
+
|
|
112
|
+
## Core design goals
|
|
113
|
+
|
|
114
|
+
* **local-first when possible**
|
|
115
|
+
* **lazy load everything expensive**
|
|
116
|
+
* **treat models as managed infrastructure, not loose function calls**
|
|
117
|
+
* **return structured results instead of ad hoc tuples/dicts**
|
|
118
|
+
* **support larger media/content systems, not just isolated scripts**
|
|
119
|
+
* **degrade cleanly when optional dependencies are unavailable**
|
|
120
|
+
|
|
121
|
+
## Architecture overview
|
|
122
|
+
|
|
123
|
+
```text
|
|
124
|
+
Raw inputs
|
|
125
|
+
├── text
|
|
126
|
+
├── audio
|
|
127
|
+
├── video
|
|
128
|
+
├── pdf text
|
|
129
|
+
└── URLs
|
|
130
|
+
│
|
|
131
|
+
v
|
|
132
|
+
abstract_hugpy
|
|
133
|
+
├── model registry / path resolution
|
|
134
|
+
├── lazy dependency import layer
|
|
135
|
+
├── singleton model managers
|
|
136
|
+
├── summarization backends
|
|
137
|
+
├── keyword extraction backends
|
|
138
|
+
├── media + seo helpers
|
|
139
|
+
└── metadata refinement utilities
|
|
140
|
+
│
|
|
141
|
+
v
|
|
142
|
+
Structured outputs
|
|
143
|
+
├── summaries
|
|
144
|
+
├── keywords
|
|
145
|
+
├── hashtags
|
|
146
|
+
├── slug candidates
|
|
147
|
+
├── transcript text
|
|
148
|
+
├── metadata dictionaries
|
|
149
|
+
└── seo/media reports
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
## Main module areas
|
|
153
|
+
|
|
154
|
+
```text
|
|
155
|
+
abstract_hugpy/
|
|
156
|
+
├── imports/
|
|
157
|
+
│ ├── lazy dependency accessors
|
|
158
|
+
│ ├── token chunking
|
|
159
|
+
│ ├── web/media helpers
|
|
160
|
+
│ └── metadata helpers
|
|
161
|
+
├── models/
|
|
162
|
+
│ ├── model registry and path resolution
|
|
163
|
+
│ ├── shared imports/config
|
|
164
|
+
│ └── managers/
|
|
165
|
+
│ ├── summarizers/
|
|
166
|
+
│ ├── keybert_model.py
|
|
167
|
+
│ ├── whisper_model.py
|
|
168
|
+
│ ├── bigbird_module.py
|
|
169
|
+
│ └── deepcoder.py
|
|
170
|
+
└── utils/
|
|
171
|
+
└── seo/
|
|
172
|
+
└── pdf_utils.py
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
## Features
|
|
176
|
+
|
|
177
|
+
### 1. Unified summarization registry
|
|
178
|
+
|
|
179
|
+
`abstract_hugpy` exposes a summarization registry where multiple backends share one contract.
|
|
180
|
+
|
|
181
|
+
Current design includes:
|
|
182
|
+
|
|
183
|
+
* T5-style chunked summarization
|
|
184
|
+
* Flan-based summarization
|
|
185
|
+
* Falconsai pipeline summarization
|
|
186
|
+
* preset-aware request resolution
|
|
187
|
+
* request objects for consistent parameter handling
|
|
188
|
+
|
|
189
|
+
This makes summarization feel like one API even when the underlying model changes.
|
|
190
|
+
|
|
191
|
+
#### Highlights
|
|
192
|
+
|
|
193
|
+
* `SummaryRequest`
|
|
194
|
+
* `SummaryPreset`
|
|
195
|
+
* `InputPolicy`
|
|
196
|
+
* backend registry and lookup
|
|
197
|
+
* chunk-aware consolidation passes
|
|
198
|
+
* short / medium / long summarization modes
|
|
199
|
+
|
|
200
|
+
## 2. Keyword extraction pipeline
|
|
201
|
+
|
|
202
|
+
Keyword extraction combines:
|
|
203
|
+
|
|
204
|
+
* a KeyBERT transformer-based backend
|
|
205
|
+
* a spaCy rule-based backend
|
|
206
|
+
* a refinement layer that classifies and formats results
|
|
207
|
+
|
|
208
|
+
This is especially useful because raw keyword extraction is often not enough for production use. The refinement layer turns extracted phrases into:
|
|
209
|
+
|
|
210
|
+
* primary keywords
|
|
211
|
+
* secondary keywords
|
|
212
|
+
* dropped terms
|
|
213
|
+
* density flags
|
|
214
|
+
* meta keyword strings
|
|
215
|
+
* hashtags
|
|
216
|
+
* slug candidates
|
|
217
|
+
|
|
218
|
+
#### Presets include
|
|
219
|
+
|
|
220
|
+
* `seo`
|
|
221
|
+
* `metadata`
|
|
222
|
+
* `social`
|
|
223
|
+
* `long_tail`
|
|
224
|
+
|
|
225
|
+
## 3. Model registry and storage control
|
|
226
|
+
|
|
227
|
+
The model config layer provides a registry mapping logical names to:
|
|
228
|
+
|
|
229
|
+
* hub IDs
|
|
230
|
+
* storage folders
|
|
231
|
+
* task types
|
|
232
|
+
* framework categories
|
|
233
|
+
|
|
234
|
+
It also supports:
|
|
235
|
+
|
|
236
|
+
* global model home configuration
|
|
237
|
+
* environment-variable overrides
|
|
238
|
+
* local path resolution
|
|
239
|
+
* lazy download behavior through `snapshot_download`
|
|
240
|
+
|
|
241
|
+
This keeps model locations predictable and centralized.
|
|
242
|
+
|
|
243
|
+
## 4. Lazy dependency management
|
|
244
|
+
|
|
245
|
+
One of the stronger parts of this package is the import layer.
|
|
246
|
+
|
|
247
|
+
Heavy libraries are not imported directly everywhere. Instead, the module exposes dedicated accessors like:
|
|
248
|
+
|
|
249
|
+
* `get_torch()`
|
|
250
|
+
* `get_transformers()`
|
|
251
|
+
* `get_whisper()`
|
|
252
|
+
* `get_sentence_transformers()`
|
|
253
|
+
* `get_moviepy()`
|
|
254
|
+
* `get_pdf2image()`
|
|
255
|
+
|
|
256
|
+
This matters because it keeps:
|
|
257
|
+
|
|
258
|
+
* startup lighter
|
|
259
|
+
* optional features optional
|
|
260
|
+
* failures localized and understandable
|
|
261
|
+
* large media/model workflows from eagerly loading things they do not need
|
|
262
|
+
|
|
263
|
+
The `require()` pattern is especially good here because it forces hard dependency failures to occur at manager initialization time instead of surfacing later as opaque runtime errors.
|
|
264
|
+
|
|
265
|
+
## 5. Whisper and transcription support
|
|
266
|
+
|
|
267
|
+
The Whisper manager provides:
|
|
268
|
+
|
|
269
|
+
* singleton-backed model loading
|
|
270
|
+
* configurable model size
|
|
271
|
+
* model path override support
|
|
272
|
+
* direct transcription wrapper
|
|
273
|
+
* audio extraction from video through MoviePy
|
|
274
|
+
|
|
275
|
+
This makes it useful as the transcription stage in a larger media ingestion pipeline.
|
|
276
|
+
|
|
277
|
+
## 6. DeepCoder support
|
|
278
|
+
|
|
279
|
+
The DeepCoder manager extends the module beyond summarization and SEO into code-generation/classic LLM workflows.
|
|
280
|
+
|
|
281
|
+
It supports:
|
|
282
|
+
|
|
283
|
+
* lazy singleton initialization
|
|
284
|
+
* device-aware loading
|
|
285
|
+
* optional quantization
|
|
286
|
+
* tokenizer and generation config loading
|
|
287
|
+
* chat-template or direct-prompt generation
|
|
288
|
+
* output persistence helpers
|
|
289
|
+
* model info inspection
|
|
290
|
+
|
|
291
|
+
That gives the project a broader “ML operations utility layer” identity rather than a narrowly scoped summarization package.
|
|
292
|
+
|
|
293
|
+
## 7. PDF SEO and document analysis
|
|
294
|
+
|
|
295
|
+
The PDF utilities provide one of the clearest examples of this module’s role in a larger system.
|
|
296
|
+
|
|
297
|
+
They support:
|
|
298
|
+
|
|
299
|
+
* loading full-document text
|
|
300
|
+
* page-by-page text loading
|
|
301
|
+
* running summarization and keyword extraction per scope
|
|
302
|
+
* building structured full-report objects
|
|
303
|
+
|
|
304
|
+
Outputs are intentionally shaped for downstream consumption rather than only human display.
|
|
305
|
+
|
|
306
|
+
This makes the package fit naturally into archival, indexing, SEO, and document intelligence workflows.
|
|
307
|
+
|
|
308
|
+
## 8. Media URL and metadata helpers
|
|
309
|
+
|
|
310
|
+
The media layer includes filesystem-to-public-URL helpers and scaffolding for deriving metadata from media assets.
|
|
311
|
+
|
|
312
|
+
That includes functionality such as:
|
|
313
|
+
|
|
314
|
+
* filesystem path → public asset URL mapping
|
|
315
|
+
* basic video metadata derivation flow
|
|
316
|
+
* transcript → summary → refined title pipeline
|
|
317
|
+
* keyword extraction for media metadata generation
|
|
318
|
+
|
|
319
|
+
This is the point where `abstract_hugpy` clearly becomes part of a broader platform rather than a standalone model wrapper.
|
|
320
|
+
|
|
321
|
+
## Installation
|
|
322
|
+
|
|
323
|
+
```bash
|
|
324
|
+
pip install abstract-hugpy
|
|
325
|
+
```
|
|
326
|
+
|
|
327
|
+
Or from source:
|
|
328
|
+
|
|
329
|
+
```bash
|
|
330
|
+
git clone <your-repo-url>
|
|
331
|
+
cd abstract_hugpy
|
|
332
|
+
pip install -e .
|
|
333
|
+
```
|
|
334
|
+
|
|
335
|
+
## Dependencies
|
|
336
|
+
|
|
337
|
+
From the package metadata shown, current declared dependencies include:
|
|
338
|
+
|
|
339
|
+
```text
|
|
340
|
+
abstract_utilities
|
|
341
|
+
requests
|
|
342
|
+
openai_whisper
|
|
343
|
+
```
|
|
344
|
+
|
|
345
|
+
In practice, several optional capabilities also rely on libraries such as:
|
|
346
|
+
|
|
347
|
+
* transformers
|
|
348
|
+
* torch
|
|
349
|
+
* sentence_transformers
|
|
350
|
+
* keybert
|
|
351
|
+
* spacy
|
|
352
|
+
* moviepy
|
|
353
|
+
* tiktoken
|
|
354
|
+
* huggingface_hub
|
|
355
|
+
* pydub
|
|
356
|
+
* speech_recognition
|
|
357
|
+
* pdf2image
|
|
358
|
+
* pytesseract
|
|
359
|
+
* easyocr
|
|
360
|
+
* paddleocr
|
|
361
|
+
|
|
362
|
+
Because the package uses lazy import accessors, not every environment needs every dependency installed at once.
|
|
363
|
+
|
|
364
|
+
## Example usage
|
|
365
|
+
|
|
366
|
+
### Summarize text
|
|
367
|
+
|
|
368
|
+
```python
|
|
369
|
+
from abstract_hugpy.models.managers.summarizers.summarizers import summarize
|
|
370
|
+
|
|
371
|
+
text = "Your long-form text goes here..."
|
|
372
|
+
result = summarize(text, backend="t5", preset="article")
|
|
373
|
+
print(result)
|
|
374
|
+
```
|
|
375
|
+
|
|
376
|
+
### Use a structured summary request
|
|
377
|
+
|
|
378
|
+
```python
|
|
379
|
+
from abstract_hugpy.models.managers.summarizers.summarizers import (
|
|
380
|
+
summarize,
|
|
381
|
+
SummaryRequest,
|
|
382
|
+
InputPolicy,
|
|
383
|
+
)
|
|
384
|
+
|
|
385
|
+
req = SummaryRequest(
|
|
386
|
+
text="Example text to summarize",
|
|
387
|
+
max_chunk_tokens=400,
|
|
388
|
+
summary_mode="medium",
|
|
389
|
+
input_policy=InputPolicy.WARN,
|
|
390
|
+
)
|
|
391
|
+
|
|
392
|
+
print(summarize(request=req, backend="t5"))
|
|
393
|
+
```
|
|
394
|
+
|
|
395
|
+
### Extract refined keywords
|
|
396
|
+
|
|
397
|
+
```python
|
|
398
|
+
from abstract_hugpy.models.managers.keybert_model import refine_keywords
|
|
399
|
+
|
|
400
|
+
text = "Python-based media enrichment pipeline for summaries, keywords, and SEO metadata."
|
|
401
|
+
result = refine_keywords(text, preset="seo")
|
|
402
|
+
|
|
403
|
+
print(result.primary)
|
|
404
|
+
print(result.hashtags)
|
|
405
|
+
print(result.meta_keywords)
|
|
406
|
+
```
|
|
407
|
+
|
|
408
|
+
### Transcribe audio with Whisper
|
|
409
|
+
|
|
410
|
+
```python
|
|
411
|
+
from abstract_hugpy.models.managers.whisper_model import whisper_transcribe
|
|
412
|
+
|
|
413
|
+
transcript = whisper_transcribe(
|
|
414
|
+
audio_path="example.wav",
|
|
415
|
+
model_size="small",
|
|
416
|
+
language="english",
|
|
417
|
+
)
|
|
418
|
+
|
|
419
|
+
print(transcript)
|
|
420
|
+
```
|
|
421
|
+
|
|
422
|
+
### Extract audio from video
|
|
423
|
+
|
|
424
|
+
```python
|
|
425
|
+
from abstract_hugpy.models.managers.whisper_model import extract_audio_from_video
|
|
426
|
+
|
|
427
|
+
audio_path = extract_audio_from_video("video.mp4", "audio.wav")
|
|
428
|
+
print(audio_path)
|
|
429
|
+
```
|
|
430
|
+
|
|
431
|
+
### Use DeepCoder
|
|
432
|
+
|
|
433
|
+
```python
|
|
434
|
+
from abstract_hugpy.models.managers.deepcoder import get_deep_coder
|
|
435
|
+
|
|
436
|
+
coder = get_deep_coder()
|
|
437
|
+
result = coder.generate(
|
|
438
|
+
prompt="Write a Python function that groups strings by length.",
|
|
439
|
+
max_new_tokens=300,
|
|
440
|
+
)
|
|
441
|
+
|
|
442
|
+
print(result)
|
|
443
|
+
```
|
|
444
|
+
|
|
445
|
+
### Analyze a PDF text directory
|
|
446
|
+
|
|
447
|
+
```python
|
|
448
|
+
from abstract_hugpy.utils.seo.pdf_utils import analyze_pdf
|
|
449
|
+
|
|
450
|
+
report = analyze_pdf("/path/to/pdf_dir")
|
|
451
|
+
print(report.to_dict())
|
|
452
|
+
```
|
|
453
|
+
|
|
454
|
+
## Public concepts
|
|
455
|
+
|
|
456
|
+
A nice strength of this project is that it is moving toward explicit schemas instead of loose return conventions.
|
|
457
|
+
|
|
458
|
+
Important objects include:
|
|
459
|
+
|
|
460
|
+
* `ModelConfig`
|
|
461
|
+
* `SummaryRequest`
|
|
462
|
+
* `SummaryPreset`
|
|
463
|
+
* `KeywordRequest`
|
|
464
|
+
* `KeywordResult`
|
|
465
|
+
* `RefinedResult`
|
|
466
|
+
* `PDFSeoResult`
|
|
467
|
+
* `PDFSeoReport`
|
|
468
|
+
|
|
469
|
+
That makes the package easier to compose into larger systems and easier to test.
|
|
470
|
+
|
|
471
|
+
## Why not just call Hugging Face pipelines directly?
|
|
472
|
+
|
|
473
|
+
Because the actual problem here is larger than inference.
|
|
474
|
+
|
|
475
|
+
Direct pipeline calls do not solve:
|
|
476
|
+
|
|
477
|
+
* lifecycle management
|
|
478
|
+
* dependency gating
|
|
479
|
+
* model path control
|
|
480
|
+
* preset systems
|
|
481
|
+
* output normalization
|
|
482
|
+
* media-aware utilities
|
|
483
|
+
* structured reporting
|
|
484
|
+
* consistent backends for multiple tasks
|
|
485
|
+
|
|
486
|
+
`abstract_hugpy` is the orchestration layer around those concerns.
|
|
487
|
+
|
|
488
|
+
## Good fit for
|
|
489
|
+
|
|
490
|
+
* local-first AI utilities
|
|
491
|
+
* media enrichment pipelines
|
|
492
|
+
* SEO/document intelligence systems
|
|
493
|
+
* content analysis workflows
|
|
494
|
+
* transcription pipelines
|
|
495
|
+
* Python services that need managed access to multiple NLP/ML models
|
|
496
|
+
* systems where models should be loaded once and reused
|
|
497
|
+
|
|
498
|
+
## Less about
|
|
499
|
+
|
|
500
|
+
* training models
|
|
501
|
+
* benchmarking frameworks
|
|
502
|
+
* browser-side inference
|
|
503
|
+
* pure research experimentation
|
|
504
|
+
* single-purpose one-off scripts
|
|
505
|
+
|
|
506
|
+
This package is more about operational reuse than experimentation.
|
|
507
|
+
|
|
508
|
+
## Design philosophy
|
|
509
|
+
|
|
510
|
+
### Lazy by default
|
|
511
|
+
|
|
512
|
+
Large models and large libraries should not initialize unless they are actually needed.
|
|
513
|
+
|
|
514
|
+
### Singleton where expensive
|
|
515
|
+
|
|
516
|
+
If a model is costly to load, repeated calls should reuse it.
|
|
517
|
+
|
|
518
|
+
### Structured outputs over loose values
|
|
519
|
+
|
|
520
|
+
Named dataclasses are easier to inspect, serialize, and integrate.
|
|
521
|
+
|
|
522
|
+
### Presets over repeated argument noise
|
|
523
|
+
|
|
524
|
+
Common tasks should be easy to invoke consistently.
|
|
525
|
+
|
|
526
|
+
### Pipeline-aware utilities
|
|
527
|
+
|
|
528
|
+
Text, audio, video, and PDF workflows should feel connected rather than siloed.
|
|
529
|
+
|
|
530
|
+
## Current strengths
|
|
531
|
+
|
|
532
|
+
* coherent model-management layer
|
|
533
|
+
* strong lazy import pattern
|
|
534
|
+
* reusable summarization registry
|
|
535
|
+
* practical keyword extraction and refinement
|
|
536
|
+
* real downstream usefulness for SEO/media systems
|
|
537
|
+
* good fit for larger platform integration
|
|
538
|
+
|
|
539
|
+
## Reasonable future split points
|
|
540
|
+
|
|
541
|
+
You said you will split another day, and that makes sense. When that day comes, the natural seams look like:
|
|
542
|
+
|
|
543
|
+
* `abstract_hugpy_models`
|
|
544
|
+
* `abstract_hugpy_summarizers`
|
|
545
|
+
* `abstract_hugpy_keywords`
|
|
546
|
+
* `abstract_hugpy_media`
|
|
547
|
+
* `abstract_hugpy_seo`
|
|
548
|
+
|
|
549
|
+
But for now, keeping it unified is still coherent because all of it serves the same higher-level role: media intelligence and model orchestration.
|
|
550
|
+
|
|
551
|
+
## Roadmap ideas
|
|
552
|
+
|
|
553
|
+
* CLI entrypoints for summary/keyword/pdf workflows
|
|
554
|
+
* stronger public API exports at package root
|
|
555
|
+
* richer dependency extras in packaging
|
|
556
|
+
* improved test coverage around manager lifecycle
|
|
557
|
+
* clearer backend capability matrix
|
|
558
|
+
* stricter separation between experimental and stable modules
|
|
559
|
+
* normalized metadata interfaces for text/audio/video/PDF
|
|
560
|
+
|
|
561
|
+
## Status
|
|
562
|
+
|
|
563
|
+
Actively evolving module for model-backed media intelligence workflows.
|
|
564
|
+
|
|
565
|
+
Originally closer to a Hugging Face helper layer. Now a broader orchestration package for summarization, keyword extraction, transcription support, SEO analysis, and managed inference inside the Abstract Media Intelligence Platform.
|
|
566
|
+
|
|
567
|
+
---
|
|
568
|
+
|
|
569
|
+
I can also do a second pass that is even more GitHub-polished with badges, a quick-start section, and a “module map” table.
|