Metadata-Version: 2.1
Name: lukoshkin-lego
Version: 0.0.6
Summary: 
Author: lukoshkin
Requires-Python: >=3.10,<3.13
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Provides-Extra: litellm
Requires-Dist: boto3 ; extra == "litellm"
Requires-Dist: easydict (>=1.13,<2.0)
Requires-Dist: json-repair (>=0.8.0,<0.9.0)
Requires-Dist: langchain-text-splitters (>=0.3.0,<0.4.0)
Requires-Dist: litellm (>=1.50.0,<2.0.0) ; extra == "litellm"
Requires-Dist: loguru (>=0.7.2,<0.8.0)
Requires-Dist: openai (>=1.9.0,<2.0.0)
Requires-Dist: openpyxl (==3.1.2)
Requires-Dist: pydantic (>=2.6.2,<3.0.0)
Requires-Dist: pydantic-settings (>=2.2.1,<3.0.0)
Requires-Dist: pyhumps (>=3.8.0,<4.0.0)
Requires-Dist: pyinstrument (>=4.6.2,<5.0.0)
Requires-Dist: python-decouple (>=3.8,<4.0)
Requires-Dist: rodi (>=2.0.6,<3.0.0)
Requires-Dist: tenacity (>=8.2.3,<9.0.0)
Requires-Dist: transitions (>=0.9.1,<0.10.0)
Requires-Dist: uvicorn (>=0.22.0,<0.23.0)
Description-Content-Type: text/markdown

## Lego

Python utilities initially for ChatBot Development and Cloud Engineering.

## Structure

- `utils`, `settings.py`, `models.py`, `lego_types.py` ─ probably the most
  (if not only) useful part of this projects:
  - some handy type definitions,
  - settings for different services (e.g., those of AWS),
  - models for switching between `camelStyle` and `snake_case_style`.
  - other utilities (profiling, downloading, and etc.)
- `messages` ─ models for parsing messages to standardized view for further
  processing and storing.
- `llm` ─ a package with a simple router for load balancing of requests to
  OpenAI API-like services  
  (with key rotation, retrial policies, and fallbacks).
- `rag` ─ a demo of RAG pipeline based on LlamaIndex and MilvusDB  
  (getting obsolete since is not maintained and LlamaIndex is rapidly developing).

