AbstractIntegratedModule 1.0.2__cp310-cp310-win_amd64.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.
@@ -0,0 +1,1220 @@
1
+ Metadata-Version: 2.4
2
+ Name: AbstractIntegratedModule
3
+ Version: 1.0.2
4
+ Summary: Integrated Pipeline with Specialized Non-LLM AI Agent Framework for ARM64 and Windows architecture
5
+ Author: Micro-Novelty
6
+ Author-email: Micro-Novelty <hernikpuspita5@gmail.com>
7
+ License-Expression: MIT
8
+ Project-URL: Main-Repository, https://github.com/Micro-Novelty/IntegratedPipeline-Specialized-Non-LLM-AI-Agent-Framework
9
+ Project-URL: Second-Repository, https://github.com/Micro-Novelty/abstract-modules
10
+ Project-URL: Releases, https://github.com/Micro-Novelty/abstract-modules/releases
11
+ Project-URL: Issues, https://github.com/Micro-Novelty/IntegratedPipeline-Specialized-Non-LLM-AI-Agent-Framework/issues
12
+ Project-URL: Open-PRs, https://github.com/Micro-Novelty/IntegratedPipeline-Specialized-Non-LLM-AI-Agent-Framework/pulls
13
+ Project-URL: Architecture-Docs, https://github.com/Micro-Novelty/IntegratedPipeline-Specialized-Non-LLM-AI-Agent-Framework/blob/main/ARCHITECTURE.md
14
+ Project-URL: Patched-Vulnerabilities, https://github.com/Micro-Novelty/IntegratedPipeline-Specialized-Non-LLM-AI-Agent-Framework/blob/main/SECURITY.md
15
+ Requires-Python: >=3.10
16
+ Description-Content-Type: text/markdown
17
+ License-File: LICENSE
18
+ Requires-Dist: numpy>=2.1.0
19
+ Dynamic: author
20
+ Dynamic: license-file
21
+ Dynamic: requires-python
22
+
23
+ # [=] IntegratedPipeline-Specialized-AI-Agent-library
24
+
25
+ [~] Introduction:
26
+ - IntegratedPipeline is a standalone Specialized AI Agent Library for Non-LLM memory Augmented Agentic Framework orchestrator - Specifically designed to provide Agentic capability for any Autonomous Agentic Framework locally and Coordinatively that runs efficiently from consumer based machine to High-end embedded systems, where the AI Can directly and continously learn, with minimal and efficient compute, built-in augmented memory, Secure Peer-To-Peer (Multi-Agent) Coordination with security layers as an option, And Explainability capability based on proof from in it's internal metrics, reducing Black-Box condition necessary for reliability.
27
+ - AbstractIntegratedModule Contains specialized MLP using Its Own specialized geometric Weight shaping (AWE), Specialized efficient Transformer and LSTM (Long-short term memory) architecture for Scarce Data with Alpha-based computation, specifically designed for low-amount samples environment or Messy environments.
28
+
29
+
30
+ ### Library Short Description:
31
+ - Development Stage on PyPi: 1.0.2 Official Release.
32
+ - Author and Maintainer: Micro-Novelty and EpsitronNet-bot.
33
+ - library Source-Code is Open-sourced with MIT License.
34
+ - Purpose: Specifically Designed for providing Non-LLM AI Agent Framework for edge Devices, Optimized for ARM64 architecture.
35
+ - Library installation:
36
+ ```bash
37
+ pip install AbstractIntegratedModule
38
+ python -m install AbstractIntegratedModule
39
+ ```
40
+
41
+ ### Github Link (for Visiting and cloning)
42
+ - https://github.com/Micro-Novelty/IntegratedPipeline-Specialized-Non-LLM-AI-Agent-Framework
43
+
44
+ - The library also includes precompiled binaries for:
45
+ - aarch64 manylinux (accepts version 2.17+) architecture, accepts python version 3.10, 3.11 only.
46
+ - aarch64 musllinux (accepts version 1.2+) architecture, accepts python version 3.10, 3.11 only.
47
+ - Windows 64 bit architecture (python 3.10, 3.11, 3.12, 3.13 only)
48
+
49
+ - Library installation if you dont have aarch64 setup, you can download the correct wheel for your setup in this repository or by using pip:
50
+ - ✨ use pip for downloading the correct wheels for your setup:
51
+ - ```bash
52
+ pip install abstractintegratedmodule --extra-index-url https://Micro-Novelty.github.io/abstract-modules/whl/ --break-system-packages
53
+ # ensures proper installation by bypassing pip strict external download setup.
54
+ ```
55
+ - Note: Using the above installation --extra-index method Provides you with:
56
+ - x86_64 and aarch64 with manylinux (v. 2.17+) and musllinux (v. 1.2+) architecture only (No regular singular x86_64 arch wheel, tarball will be used for regular x86_64 and windows).
57
+ - macOS with aarch64 and x86_64 architecture. (v. 10.9+)
58
+ - All of this Wheels provided in the Repository Only Provides Wheels for python with version 3.10 3.11 and 3.12.
59
+ - This setup will automatically download the correct wheel Based on your python/pip version and OS / hardware architecture setup.
60
+
61
+ - For specific module in Rust for handling and loading Weights and Parsing JSON values with reduced memory lookup overhead.
62
+ - Consider using this Optimization library by using:
63
+ - ```bash
64
+ pip install abstract-weights-core
65
+ ```
66
+ - Note: This Optimization would help AbstractIntegratedModule with faster JSON parsing and much more flexible database handling handled efficiently using Rust programming language.
67
+
68
+ - Proven Capabilities:
69
+ - The library has been thoroughly tested in Multiple Environments from Windows to ARM64 Environment. The library is now Robust for Wider use and Deployment.
70
+ - Proven Works on ARM64 Environment, Training and Prediction works efficient on Docker ARM64 environment with QEMU, good parallelizing behavior is guaranteed.
71
+ - P2P Works efficiently in ARM64 Docker + QEMU, No conflicting socket and all prediction works efficiently.
72
+ - AWE setup Proven Efficient on Hard-uncontrolled dataset such as Activity Recognition from the given Database.
73
+ - LSTM is Optimized efficiently for scarce data with AWE method.
74
+ - Robust Advanced prediction capabilities proven effective on ARM64 Using MLP + LSTM Architectures.
75
+ - Transformer Optimized using Cython, to reduce Memory overhead and Reduce CPU Usage, With Reduced Training Time.
76
+ -----
77
+ - Changelog:
78
+ - v1.0.2:
79
+ - [=] New features:
80
+ - Fixed multiple Possible Vulnerabilities where Dangerous Peer might still be allowed to Connect with QueryNode class.
81
+ - Optimized LSTM update function with global-norm clipping instead of single-grad clipping.
82
+ - Removed Useless time.sleep()
83
+
84
+ <img width="1280" height="600" alt="WhatsApp Image 2026-05-27 at 07 16 32" src="https://github.com/user-attachments/assets/4b58a556-45a3-419b-96fd-9c1b76cac574" />
85
+
86
+ ## [+] MANN Intro
87
+ [=] Memory augmented Neural network (MANN) is a neural network architecture coupled with an external, dynamic memory module, allowing it to store, retrieve, and update information similarly to a computer's RAM. Unlike traditional networks that store knowledge only in weight parameters, MANNs excel at fast learning, long-term dependency handling, and episodic recall, In IntegratedPipeline, Its memory is stored in a custom database inside your local machine, then later used for memory retrieval, transfered to the AI Dictionary where it can finnaly recall its memory when input condition matched with memory.
88
+
89
+ ## [+] Abstract Weight Encoder (AWE) Intro
90
+ [=] AWE is a specialized custom weight shaping or encoding method Specifically designed for MLP Architecture, using eigenvalue and spectral methods as base equations to calculate covariance inside a given input data, and shape the correct Weight from the given eigenvalue, AWE Works by processing input and then captures the necessary eigenvalue to shape a properly initialized Weight that aligns with input data complexity, With this approach, MLP training will be much more consistent and robust against noise.
91
+
92
+ ## [+] LSTM And Transformer Intro:
93
+ A. LSTMs (Long Short-Term Memory) and Transformers are foundational deep learning architectures built to process sequential data (like text or time series). While both handle the flow of time and context, they do so using completely different mechanisms.
94
+ - LSTM (Long Short-Term Memory):
95
+ - LSTMs are an advanced class of Recurrent Neural Networks (RNNs) introduced to solve the problem of traditional RNNs forgetting earlier data.
96
+ - How it works: LSTMs process data sequentially—one word or time-step at a time. They regulate information using "gates" (forget, input, and output) that determine what information from the sequence to keep or discard.
97
+ - Use Cases: Ideal for tasks with strictly continuous chronological data like time-series forecasting (e.g., stock market or weather prediction) or speech recognition.
98
+ - Limitations: Because they process data in a strict chain, it is difficult to parallelize training, making them slow and prone to forgetting long contexts.
99
+
100
+ B. Transformer:
101
+ Transformers are the modern standard for AI, introduced in 2017 with the famous "Attention Is All You Need" paper.
102
+ - How it works: Instead of reading sequences linearly, Transformers read the entire sequence all at once. They utilize a self-attention mechanism, which calculates how much "attention" or weight every part of the sequence should give to every other part, understanding the global context instantly.
103
+ - Use Cases: The backbone of Large Language Models (LLMs) like ChatGPT or BERT, making them perfect for machine translation, text generation, and summarization.
104
+ - Limitations: Transformers require massive amounts of training data and computing power to work effectively.
105
+
106
+
107
+ [~] For a much In-Depth Explanation You can visit This repository to learn more about AWE and its performance results:
108
+ - Link: https://github.com/Micro-Novelty/Specialized-MLP-for-noise-robustness
109
+
110
+ ## [+] Why IntegratedPipeline?
111
+ [~] IntegratedPipeline is a great choice for a sophisticated Non-LLM AI Program for The Main Orchestrator of a Distributed MANN-Type AI Agent Working in Edge-device/Consumer-Based machine Where LLM is'nt a great fit for Messy, Noisy environments. while still run efficiently on High-end Embedded systems in single-instance or as a distributed network during multi Agent cooperation.
112
+
113
+ [=] IntegratedPipeline offers:
114
+ 1. Local-Based AI Orchestrator:
115
+ - IntegratedPipeline Creates its own SQLite Database inside Your Computer once the library is executed, This database is used directly to store the AI Memory, Attention weights, predicted Output, and identified peer, all without leaving the machine, The Database will be created Automatically once you run the library, database name saved as activity_log.db.
116
+
117
+ 2. Continously Learning behavior for an Agent:
118
+ - different from LLM that is static and cannot improve beyond its given training condition, AI Agent using IntegratedPipeline has a dynamic, flexible continously learning behavior with conditional training algorithms included in the library that has both supervised and unsupervised learning present, The learned input and predicted Output will be stored in the database, allowing it to recall its memory during processing and find matching known prediction given if input matched with the stored input inside the database. this Continous learning behavior is efficient because its not relying on weights for memory, allowing flexible and predictable behavior inside a given environment.
119
+
120
+ 3. Robust Specialized MLP, Transformer and LSTM Architecture with ensemble weighting architecture:
121
+ - IntegratedPipeline usually used 1 Model for regular prediction, but in some Conditions, it used 2 Different type's of AI Architecture stacked together, and one architecture to weight their confidence and probability fairly (ensemble method) to get the final prediction for the problem it faced, Specialized MLP for Noise robustness And Specialized Transformer that used Alpha-based Computing algorithm for contextual reasoning, LSTM architecture to provides proof-of-credibility over a certain output, acting as a support mechanism rather than Main orchestrator like MLP and Transformer. The reason why those Models complement and used together:
122
+ - Specialized MLP Provides synchronous robust classification Against noise with its specialized Weight Encoder (AWE) to handle noise using eigenvalue based computing that is lightweight and efficient. This Method can't be replicated Inside Transformer FFN (Feed-forward-network) because of Transformer dynamic brute force computing where AWE-Based generated weight's get diluted over time by Transformer dynamic projection embedding, making AWE Generated weight causes inefficient inside Transformer dynamic FFN/QKV projection.
123
+ - Specialized Transformer provides robust synchronous advanced contextual relationships, efficient data processing using Alpha based computing, The Transformer is tuned towards to be as flexible as possible to provide dynamic projection or fixed FFN projection training with minimal head's and dimension's to reduce computational power.
124
+ - LSTM doesn't act as a Main orchestrator, instead it Provides coherent Short-term memory for the Ensemble architecture, acting as a support mechanism to provides proof-of-credibility of a given answer from past previous context input, this allows flexible and achievable Aggreement between Transformer and MLP over a short period of time.
125
+ - Ensemble weighting provides the model a much more robust classification best from both worlds perspective, weighting both MLP and Transformer confidence and probability, combined with Attention quality from the transformer to get the final prediction of an input if transformer is allowed and permitted to be in use.
126
+
127
+
128
+ 4. flexible and secure Peer-to-Peer Coordination (Multi-Agent):
129
+ - IntegratedPipeline offers Peer to Peer communication capabilities asynchronously, Where IntegratedPipeline directly checks for other Peer presence directly to the local database present in the local computer or system (Synchronous prediction from peer previous data in the database), or externally, by using asynchronous request for initiating prediction, P2P is secured Using:
130
+ - secure socket using user provided SSL CERT. on both client and server,
131
+ - API key for requesting,
132
+ - Alpha rate limiting,
133
+ - HMAC secret key for authentication,
134
+ - and IP validation.
135
+ [~] Each agent has double roles during P2P:
136
+ - Server provider: the peer Agent can start a server to listen for peer client's
137
+ - Connecting Agent: the peer Agent which happens to connect to other peer that has or have opened and provided a server listener to act as a receiver.
138
+
139
+ 5. Cross-Session memory availability:
140
+ - IntegratedPipeline offers share-able Memory capability, included capability below:
141
+ - Exportable memory: this allows a flexible memory saving for later use, such as cross transfer memory between model, the memory is saved as .json file after exporting.
142
+ - Importable Memory: allowing to import memory from the exported .json file directly for the model to use.
143
+ - syncing with other model: socket-based communication to export memory to other external machine.
144
+ - [=] Note: socket Syncing is unsecure witout additional security layer wrapped, For a safer syncing, directly transfer the .json file memory to the target machine via other ways such as manual send.
145
+ - list sessions: listing available sessions using model's memory name.
146
+
147
+ [=] With its Specialized Multi-Layer-Perceptron (using AWE Encoder) and Optimized Transformer module with optimized Embedding, IntegratedPipeline can directly tolerate low samples-amount of Data, including noisy ambiguous data, using Weighted Confidence assembling from both specialized MLP and Transformer for better reliability during training and prediction over Messy, noisy environments, such as:
148
+
149
+ [1.] User data's : User data is often messy and ambiguous, Specialized MLP with AWE will do the job for shaping the necessary Weight to complement for the Ambiguous noisy pattern, AWE MLP is highly robust to noise, proven in synthetic Environment such as scikit-learn Make-Classification scarce and Noisy Input robustness during generalization test. making it a great fit for messy, Scarce data.
150
+
151
+ [2.] Small Dataset's : We often don't have enough Dataset to train a Transformer Model, Thats Why IntegratedPipeline Offers a Highly optimized Transformer that supports scarce dataset processing, Using Alpha-Based computing as a Warm-up for training, it provides a direct Boost for the transformer to be efficient during training in scarce-data Environment.
152
+
153
+ [3.] Non-Representative data (Undersampled) : IntegratedPipeline Support's ambiguous data that come's from file with format such as CSV Format to extract title's and label's necessary to create automatic Dataset for Later use in Training, making it optimized for specific task's and easier dataset creation with lower overfitting rate for reliability.
154
+
155
+ [=] Architectural-Overview
156
+ <img width="1600" height="859" alt="New Arch" src="https://github.com/user-attachments/assets/a5db1ed2-9149-4635-8d95-d022ad6e8608" />
157
+ ---
158
+ [=] Contextual meaning:
159
+ 1. - Sequence encoding is a machine learning technique that transforms a sequential input (like text, time-series data, or audio) into a compact, fixed-length numerical vector, often called a context vector
160
+ 2. - TF-IDF (Term Frequency-Inverse Document Frequency) is a numerical statistic used in machine learning and NLP to evaluate how important a word is to a document within a collection (corpus). It boosts rare words and penalizes common words (like "the", "and") by multiplying two metrics: how often a word appears in a document (TF) and the inverse frequency of the word across all documents (IDF).
161
+ 3. - Explainability provides deeper transparency of why a model thought about a detail by showing its internal metrics like attention quality, from distributed peer memory or Ensemble prediction result's.
162
+
163
+
164
+ ### Important Note:
165
+ - All of the files provided here can be found in the github repository, if you are seeing this on PyPi and wanted to Try out the .py, .sh or Dockerfile scripts below, consider visiting the github link Above.
166
+
167
+ ### Introduction and demo
168
+ - Video Documentation: [![Introduction and demo:](https://youtube.com)](https://youtu.be/RmWvwDHU_QY?si=Lvl8mt8c_BnFypS_)
169
+ - Quick demo start: [main.py](main.py)
170
+ - purpose: let you demonstrate the advanced prediction method and asynchronous prediction directly.
171
+ - Quick test of P2P:
172
+ - [multi_agent_client.py](P2P_Setups/multi_agent_client.py)
173
+ - [multi_agent_server.py](P2P_Setups/multi_agent_server.py)
174
+ - [P2PDirectTest.py](P2P_Setups/P2PDirectTest.py)
175
+ - Purpose: let you demonstrate simple P2P using AbstractIntegratedModule quickly, there may be bugs in this P2P setup so feel free to share it in issues.
176
+
177
+ ## [=] Requirements
178
+ [~] To run and execute IntegratedPipeline, Requirement's include Or see [Requirements](installation_guides/usage_needs.txt):
179
+ - pip install for quick usage:
180
+ - ```bash
181
+ pip install AbstractIntegratedModule # or
182
+ python -m pip install AbstractIntegratedModule
183
+ ```
184
+
185
+ - (Optional) Download AbstractIntegratedModule Compiled Binary file extension manually in the repository for Users who can't use pip install (Choose one minimal, specified for your needs):
186
+ - AbstractOptimizedModules for Optimizing Transformer using Cython (Optional)
187
+ - AbstractIntegratedModule (Main library)
188
+ - Compiled Binaries can be downloaded from release section in the Main repo or You can use this link:
189
+ - Release section: https://github.com/Micro-Novelty/IntegratedPipeline-Specialized-Non-LLM-AI-Agent-Framework/releases
190
+ - Supported OS: Mac-Os, linux x86-64 and Windows.
191
+
192
+ - NOTE: for Mac-OS or linux x86-64 Users, consider downloading the correct python wheel for your setup in here for a much flexible installation:
193
+ - ```bash
194
+ pip install abstractintegratedmodule --extra-index-url https://Micro-Novelty.github.io/abstract-modules/whl/ --break-system-packages
195
+ ```
196
+ Note: using this installation method grants you a much safer, predictable behavior, and more secure AbstractIntegratedModule library rather than a pure binary file.
197
+
198
+ - (Optional) Libraries needed (For using Compiled binary, not python wheels):
199
+ - Pandas
200
+ - aiohttp
201
+ - scikit-learn
202
+ - numpy
203
+ - psutil
204
+ - (Optional) Install AbstractIntegratedModule Compiled binaries from release section:
205
+
206
+ [=] for labels assignation:
207
+ - CSV file that contains training labels and titles used for training and prediction label map, example will be provided below, Go to Step's for in-depth Usage below.
208
+
209
+ ### [=] Requirements for Docker container
210
+ - Dockerfile (For Container assembler)
211
+ - Python scripts (Such as main.py for Dockerfile usage).
212
+ - entrypoint.sh (for smart entry point for Dockerfile container usage).
213
+
214
+ ## [=] System-Specific Notes
215
+ 1. Windows:
216
+ - Requires Visual C++ Build Tools for compatibility
217
+ - Use PowerShell or CMD (not WSL bash for best results)
218
+
219
+ 2. Linux:
220
+ - Ensure gcc and build-essential are installed
221
+ - Different distributions may require different package managers
222
+
223
+ 3. ARM64 - Raspberry Pi
224
+ - Installation may take 30+ minutes due to ARM architecture
225
+ - Monitor system resources during installation
226
+ - Consider using faster storage (USB SSD) for better performance
227
+
228
+ ## [=] Docker Container Application
229
+ 0. See [Docker_installation_Section](docker-setups/Docker_installation_Section.md) for an in-depth explanation, or [Quick_Docker_start](docker-setups/Quick_Docker_start.sh) for a quick start.
230
+ - Note Consider checking:
231
+ - [Dockerfile](docker-setups/Dockerfile) contains all the instructions need to assemble a Docker container.
232
+ - [start.sh](docker-setups/start.sh) for Quick single agent start in Docker container.
233
+ - [entrypoint.sh](docker-setups/entrypoint.sh) for a Smart entrypoint used in Dockerfile (Must be downloaded too along with Dockerfile and put in the same folder with Dockerfile after its downloaded)
234
+ - [start-multi-agent-cluster.sh](P2P_Setups/start-multi-agent-cluster.sh) for Multi-agent cluster start in Docker container, What it does:
235
+ - Starts a multi-agent Docker cluster — runs docker-compose up -d in detached mode (background), scaling the agent-client service to 5 simultaneous instances, alongside whatever server is defined in the docker-compose.yml.
236
+ - Tails the logs — runs docker-compose logs -f which streams live logs from all containers (server + all 5 clients) to your terminal until you hit Ctrl+C.
237
+ - [main.py](main.py) for executing a python script in the Docker container that used main.py, like in this code:
238
+ - ```bash
239
+ docker run -it -v $(pwd):/app/data integrated-pipeline:latest python /app/data/main.py
240
+ ```
241
+ - To use a [.dockerignore](docker-setups/.dockerignore) file, place it in your build context directory (the same location as your Dockerfile) to specify which files and folders should be excluded when building your image.
242
+ - [.env](.env) is used for environment setup in [entrypoint.sh](docker-setups/entrypoint.sh), this file must be in the same folder with Dockerfile and entrypoint.sh after its downloaded.
243
+
244
+ 1. Build Image:
245
+ - Clone repository:
246
+ - ```bash
247
+ git clone https://github.com/Micro-Novelty/IntegratedPipeline-Continous-Learning-AI-Agent-library-framework.git
248
+ cd IntegratedPipeline-Continous-Learning-AI-Agent-library-framework
249
+ ```
250
+ - Download:
251
+ - [Dockerfile](docker-setups/Dockerfile),
252
+ - [entrypoint.sh](docker-setups/entrypoint.sh)
253
+ - [.env](docker-setups/.env)
254
+ - In the code or release section.
255
+
256
+ - If the downloaded Dockerfile or .dockerignore or .env has .txt extension, remove the extension:
257
+ - ```bash
258
+ # remove .txt extension
259
+ mv Dockerfile.txt Dockerfile
260
+ mv env.txt .env
261
+ mv dockerignore.txt .dockerignore
262
+ ```
263
+ - Navigate to the folder: Use the cd command to enter the directory containing the Dockerfile and entrypoint.sh file.
264
+ - ```
265
+ cd /path/to/your/folder
266
+ ```
267
+ - build image:
268
+ - ```bash
269
+ sudo docker build -t integrated-agent.
270
+ ```
271
+ 2. Download library dependencies for binaries usage:
272
+ - [Optional]: Required libraries (when using binary, not python wheel provided in the library):
273
+ - Numpy
274
+ - Scikit-learn
275
+ - pandas
276
+ - aiohttp
277
+ - psutil
278
+
279
+ 4. Run IntegratedPipeline in a Container:
280
+ - Install AbstractIntegratedModule via PIP or Compiled binaries:
281
+ - ```bash
282
+ pip install AbstractIntegratedModule # or
283
+ python -m pip install AbstractIntegratedModule
284
+ ```
285
+
286
+ - ```bash
287
+ docker run -it --name ai-agent integrated-agent:latest python
288
+ ```
289
+ - In python shell:
290
+ - ```
291
+ from AbstractIntegratedModule import IntegratedPipeline, PipelinePredictionManager
292
+ model = IntegratedPipeline('agent_memory')
293
+ print("✓ IntegratedPipeline initialized successfully!")
294
+ ```
295
+
296
+ 5. Run script:
297
+ ```bash
298
+ # Mount your local directory and run a script
299
+ docker run -it -v $(pwd)/data:/app/data integrated-agent:latest python main.py # main.py could be replaced
300
+ ```
301
+
302
+ 6. Run with GPU Support (Optional):
303
+ - ```bash
304
+ # For NVIDIA GPU support
305
+ docker run -it --gpus all -v $(pwd)/data:/app/data integrated-agent:latest python main.py
306
+ ```
307
+
308
+ 7. For Single Agent and Multi-Agent P2P:
309
+
310
+ [=] Single agent:
311
+ ```bash
312
+ # Build image
313
+ docker build -t integrated-agent:latest .
314
+
315
+ # Run single agent
316
+ docker run -it -v $(pwd)/data:/app/data integrated-agent:latest python
317
+ ```
318
+
319
+ [=] Multi agent P2P (Consider docker-compose) :
320
+ - Note: Use the provided [docker-compose.yml](docker-setups/docker-compose.yml) for Quick multi-agent.
321
+ - Navigate to the folder: Use the cd command to enter the directory containing the docker-compose.yml file.
322
+ - ```
323
+ cd /path/to/your/folder
324
+ ```
325
+ - run this command to run docker-compose.yml:
326
+ - ```bash
327
+ # Start multiple agents
328
+ docker-compose up -d
329
+
330
+ # View logs
331
+ docker-compose logs -f
332
+
333
+ # Stop all agents
334
+ docker-compose down
335
+ ```
336
+
337
+ ## Performance in linux ARM64 Docker Environment/Container
338
+ A. [=] Computational performance results with Transformer included during Advanced prediction method.
339
+ ```txt
340
+ == TIME == | CPU % | RAM / RAM LIMIT ||
341
+
342
+ 14:50:08.762 0.00% 25.52MiB / 3.71GiB
343
+ 14:50:10.339 5.56% 25.52MiB / 3.71GiB
344
+ 14:50:12.428 0.17% 25.52MiB / 3.71GiB
345
+ 14:50:15.835 103.60% 38.8MiB / 3.71GiB
346
+ 14:50:17.844 438.11% 60.15MiB / 3.71GiB
347
+ 14:50:19.896 419.36% 68.32MiB / 3.71GiB
348
+ 14:50:22.022 434.15% 73.2MiB / 3.71GiB
349
+ 14:50:23.969 436.47% 78.18MiB / 3.71GiB
350
+ 14:50:25.966 435.85% 80.22MiB / 3.71GiB
351
+ 14:50:28.018 430.47% 92.12MiB / 3.71GiB
352
+ 14:50:30.029 450.55% 99.5MiB / 3.71GiB
353
+ 14:50:32.065 438.06% 105.4MiB / 3.71GiB
354
+ 14:50:34.100 469.52% 115.2MiB / 3.71GiB
355
+ 14:50:36.109 449.89% 116.8MiB / 3.71GiB
356
+ 14:50:38.123 423.56% 119MiB / 3.71GiB
357
+ ```
358
+ - [=] Note: To read the full logs (For included Transformer performance): [performance_log_with_TF](performance_logs/performance_log_with_TF.txt)
359
+ - [=] Explanation:
360
+ - Average CPU Usage = 420% - 430% , Sustained roughlt 4.20 - 4.30 CPU Cores
361
+ - Meaning = - Compute-Intensive workload
362
+ - reduced guaranteed of experiencing deadlocks, thread starvation, and major stalls
363
+ - numerical backend is parallelizing efficiently
364
+ - Average RAM Usage = 180 - 195 Mib, Roughly 4.5 - 5% usage of available RAM
365
+ - Meaning = - Very efficient RAM Usage
366
+ - Repeated 269 MiB suggests allocator settled, ndarray pools stabilized, workload reached steady state
367
+ - gradual, safe and steady batch accumulation, reduced possibility of leak explosion.
368
+
369
+ B. [=] Advanced Prediction without Transformer, Only Specialized MLP + LSTM using AWE.
370
+ ```txt
371
+ == TIME == | CPU % | RAM \ RAM LIMIT |
372
+ 10:01:37.456 100.44% 269.8MiB / 3.71GiB # initial round 1 training started
373
+ 10:01:38.686 101.93% 279.8MiB / 3.71GiB
374
+ 10:01:40.694 101.94% 293.2MiB / 3.71GiB
375
+ 10:01:42.703 99.90% 302.9MiB / 3.71GiB
376
+ 10:01:44.712 99.34% 319.8MiB / 3.71GiB
377
+ 10:01:46.721 100.15% 319.7MiB / 3.71GiB
378
+ 10:01:48.727 101.91% 319.7MiB / 3.71GiB
379
+ 10:01:50.734 100.86% 319.7MiB / 3.71GiB
380
+ 10:01:52.742 136.43% 322.9MiB / 3.71GiB
381
+ 10:01:54.751 101.91% 324.9MiB / 3.71GiB
382
+ 10:01:56.758 100.29% 324.9MiB / 3.71GiB
383
+ 10:01:58.769 102.42% 327.1MiB / 3.71GiB
384
+ 10:02:00.775 0.00% 329.6MiB / 3.71GiB # First Training and prediction round 1 finished
385
+ 10:02:02.788 19.55% 330.1MiB / 3.71GiB # round 2 training
386
+ 10:02:04.798 134.23% 332.2MiB / 3.71GiB
387
+ 10:02:06.803 108.80% 332.2MiB / 3.71GiB
388
+ 10:02:08.811 107.85% 332.2MiB / 3.71GiB
389
+ 10:02:10.857 104.43% 332.2MiB / 3.71GiB
390
+ 10:02:12.854 101.14% 332.2MiB / 3.71GiB
391
+ 10:02:14.858 0.00% 332.3MiB / 3.71GiB
392
+ 10:02:16.873 98.84% 333.8MiB / 3.71GiB
393
+ 10:02:18.869 0.00% 132.7MiB / 3.71GiB # container stopped and round 2 finished
394
+ ```
395
+ - [=] Note: See full performance log in here: [performance_log_only_MLP](performance_logs/performance_log_only_MLP.txt)
396
+ - [=] Explanation:
397
+ - Average CPU Usage = 85-90% Used, sustained roughly 1 CPU Core saturated on average
398
+ - Meaning: - Very efficient computation
399
+ - Much lighter CPU Usage than Transformer.
400
+ - Stable and less parallelizing behavior (Efficient computation)
401
+ - 4.7x lower CPU usage than transformer included
402
+ - Average RAM usage = 314 MiB / 3.71 GiB, Roughly 8.5% usage of available RAM.
403
+ - Meaning: - Slightly larger MiB used than Transformer.
404
+ - Model allocation growth is stable,
405
+ - training buffers stable
406
+ - temporary ndarray growth.
407
+
408
+ ### Both performance Overview
409
+ <img width="1536" height="1024" alt="WhatsApp Image 2026-05-24 at 10 27 00" src="https://github.com/user-attachments/assets/9404277f-281f-4893-8367-e494833230ea" />
410
+ _______________________________________
411
+ - Note:
412
+ - This performance metric was calculated in older versions, With newer Transformers that has more, newer modules, The resulting cpu consumed may Increase 1.5 - 2x much more in Docker ARM64 Environment + QEMU,
413
+ MLP And LSTM stays the same and still fully optimized.
414
+
415
+ ## Source code of AbstractIntegratedModule
416
+ - Note: The source code is provided in the repository.
417
+ - [=] Full Monolithic extensively-documented source code (12K+ Lines): [AbstractIntegratedPipeline-SourceCode.zip](AbstractIntegratedPipeline-SourceCode.zip)
418
+ - [=] Separated Modules of AbstractIntegratedModule: [separated-modules](separated-modules)
419
+ - [=] up-to-date Source code: [AbstractIntegratedModule.pyx](src/AbstractIntegratedModule.pyx) and [AbstractOptimizedModules.pyx](src/AbstractOptimizedModules.pyx) files for independent compilation or direct compiling on real ARM64 device or if you want to see the up-to-date, undocumented version of AbstractIntegratedModule library.
420
+ - [lib.rs](rust_optimization_setups/lib.rs) that contains Rust optimization for Models weight handling.
421
+ - [~] Note:
422
+ - The source code is open and Free to anyone who:
423
+ - Use it: Run the software for any personal, academic, or commercial purpose.
424
+ - Modify it: Change the source code to fit their needs.
425
+ - Distribute it: Share the original or modified code with others.
426
+ - Commercialize it: Package, brand, and sell the software for profit.
427
+
428
+ ## [=] Step's for in-depth Usage
429
+ 0. Download via PIP:
430
+ - Clone repository first:
431
+ ```bash
432
+ # Clone immediately for Windows and x86_64 only without prerequisites
433
+ git clone https://github.com/Micro-Novelty/IntegratedPipeline-Continous-Learning-AI-Agent-library-framework.git
434
+ cd IntegratedPipeline-Continous-Learning-AI-Agent-library-framework
435
+ ```
436
+
437
+ - Install the library via pip:
438
+ ```bash
439
+ pip install AbstractIntegratedModule #or
440
+ python -m pip install AbstractIntegratedModule
441
+ ```
442
+
443
+ 1. Clone repository:
444
+
445
+ - ```
446
+ # prerequisites (for Raspberry pi OS Only)
447
+ # Update system
448
+ sudo apt-get update
449
+ sudo apt-get upgrade -y
450
+
451
+ # Install Python 3.x and development tools
452
+ # Version 3.x means you can install python 3.10 to 3.13 only,
453
+ # choose one version specified for your needs (3.10 or 3.11 or 3.12 ...).
454
+ sudo apt-get install python3.x python3.x-dev python3.x-venv -y
455
+
456
+ # Install additional build tools
457
+ sudo apt-get install build-essential libatlas-base-dev libjasper-dev -y
458
+
459
+ # Clone immediately for Windows and x86_64 only without prerequisites
460
+ git clone https://github.com/Micro-Novelty/IntegratedPipeline-Continous-Learning-AI-Agent-library-framework.git
461
+ cd IntegratedPipeline-Continous-Learning-AI-Agent-library-framework
462
+ ```
463
+ 2. Install System Dependencies (for x86_64 installation):
464
+ ```
465
+ # Ubuntu/Debian
466
+ # example with Version 3.10:
467
+ sudo apt-get update
468
+ sudo apt-get install python3.10 python3.10-dev python3.10-venv
469
+
470
+ # CentOS/RHEL
471
+ sudo yum install python310 python310-devel
472
+
473
+ # Fedora
474
+ sudo dnf install python3.10 python3.10-devel
475
+ ```
476
+
477
+ 3. Create a virtual environment:
478
+ - ```
479
+ # Create virtual environment (windows)
480
+ # example with python 3.10
481
+ python -m venv venv
482
+ # Activate virtual environment
483
+ venv\Scripts\activate
484
+
485
+ # Create virtual environment (x86_64) (ARM64 / raspberry pi)
486
+ python3.10 -m venv venv
487
+ # Activate virtual environment
488
+ source venv/bin/activate
489
+ ```
490
+
491
+
492
+ 4. Verify Installation:
493
+ - ```
494
+ python -c "from AbstractIntegratedModule import IntegratedPipeline; print('✓ Installation successful!')"
495
+ ```
496
+
497
+ 5. Run main.py for quick test of successful imports:
498
+ - Download main.py in our repository code section: [main.py](main.py)
499
+ - ```
500
+ # run this for quick import test.
501
+ python main.py
502
+ ```
503
+
504
+
505
+
506
+ 3. Create CSV file that contains training labels and titles (Optional for training using texts):
507
+ - Example format:
508
+ ```txt
509
+ window_title,label
510
+ "Thesis.docx",focused_work,high,writing-thesis
511
+ "Microsoft Excel",work,medium,data-analysis
512
+ "YouTube -> Google Chrome",distracted,high,watching-videos
513
+ "Slack",communication,high,team-chat
514
+ "VSCode", focused_work,high,coding
515
+ "netflix.com -> Google Chrome",break,high,Netflix-break
516
+ "Outlook",work,medium,checking-email
517
+ "System Settings",system designing,low,configuring-computer
518
+ "GitHub",creating-and-editing-repo,research
519
+ "README.md -> VS Code",focused_work,medium,reading-docs
520
+ "Amazon.com -> Chrome",personal-work,high,shopping
521
+ ```
522
+ Note = window_title is target_title and label is target_label, check step below to use it.
523
+
524
+
525
+ 4. Use IntegratedPipeline as in this example:
526
+ ```python
527
+ from AbstractIntegratedModule import IntegratedPipeline
528
+ from AbstractIntegratedModule import PipelinePredictionManager
529
+ import numpy as np
530
+
531
+ memory_name = 'agent_memory'
532
+ cert_file = <your_cert_file_dir> # your .crt file
533
+ key_file = <your_key_file_dir> # your .key file
534
+
535
+ # SSL Setup for users who used Lets encrypt / Public CA cert:
536
+ # Server context
537
+ server_ctx = ssl.create_default_context(ssl.Purpose.CLIENT_AUTH)
538
+ server_ctx.load_cert_chain('your_server.crt', 'your_server.key') # No load_verify_locations needed — OS trust store handles public CA
539
+
540
+ # Client context
541
+ client_ctx = ssl.create_default_context(ssl.Purpose.SERVER_AUTH)
542
+ client_ctx.load_cert_chain('your_client.crt', 'your_client.key') # no load_verify_locations — OS trust store handles it
543
+
544
+ # for enterprise and internal CA:
545
+ '''
546
+ server_ctx = ssl.create_default_context(ssl.Purpose.CLIENT_AUTH)
547
+ server_ctx.load_cert_chain('their.crt', 'their.key')
548
+ server_ctx.load_verify_locations('company_ca.crt') # internal CA not in OS store
549
+ server_ctx.verify_mode = ssl.CERT_REQUIRED
550
+ server_ctx.check_hostname = False
551
+
552
+ client_ctx = ssl.create_default_context(ssl.Purpose.SERVER_AUTH)
553
+ client_ctx.load_cert_chain('their.crt', 'their.key')
554
+ client_ctx.load_verify_locations('company_ca.crt')
555
+ client_ctx.verify_mode = ssl.CERT_REQUIRED
556
+ client_ctx.check_hostname = False
557
+ ''' # uncomment to use
558
+
559
+ # Note: The Above setup is Important for Users who wants to do Secure P2P In deployment case, for local P2P the above setup is optional and automatic self-signed CERT will be used for local-device P2P.
560
+
561
+ main_model = IntegratedPipeline(
562
+ memory_name=memory_name, # memory name for the AI you already initialized
563
+ use_async=True, # local asynchronous prediction is permitted, if not PipelineAsyncManager wont start asynchronous prediction.
564
+ agent_port=5001, # this port is used to set AgentDistributedInference server (optional)
565
+ ssl_cert_file=cert_file, ssl_key_file=key_file,# provide your cert_file path or key_file path (optional)
566
+ ssl_context=server_ctx, # used by the Agent server. (optional)
567
+ client_ssl_context=client_ctx # used by the client. (optional)
568
+ )
569
+
570
+ main_prediction = PipelinePredictionManager(
571
+ main_model, # your initialized pipeline
572
+ label_csv='example_manual_training.txt',
573
+ # your filename that contains the .txt file and contains the CSV format.
574
+ # the Agent will automatically searched the nearby folder like: downloads, data, and desktop folder.
575
+ target_title='window_title', label='label')
576
+
577
+ # example_manual_training is a .txt file that contain csv format like above example.
578
+
579
+ # rules will be used to create automatic dataset for IntegratedPipeline.
580
+ example_rules = [
581
+ # === WORK / PRODUCTIVITY ===
582
+ (r'code|programming|develop|debug|compile|script', 'focused_work'),
583
+ (r'vscode|visual_studio|ide|terminal|shell', 'focused_work'),
584
+ (r'notion|evernote|onenote|notes|todo|task', 'productive'),
585
+ (r'slack|teams|discord|zoom|meeting|call', 'communication'),
586
+ (r'email|gmail|outlook|inbox|mail', 'communication'),
587
+
588
+ # === ENTERTAINMENT ===
589
+ (r'youtube|netflix|twitch|stream|video', 'entertainment'),
590
+ (r'music|spotify|soundcloud|audio|player', 'entertainment'),
591
+ (r'game|gaming|steam|epic|play', 'gaming'),
592
+ (r'facebook|instagram|tiktok|social|post', 'social_media'),
593
+
594
+ # === BROWSING ===
595
+ (r'chrome|firefox|edge|safari|browser', 'browsing'),
596
+ (r'google|search|wiki|wiki|article', 'information'),
597
+ (r'stackoverflow|github|docs|documentation', 'research'),
598
+
599
+ # more rules
600
+ ]
601
+
602
+ # activate explainability capability to explain uncertainty:
603
+ main_model.show_explainability_details = True
604
+ main_model.distribution.predict_manager = main_prediction # set PipelinePredictionManager to AgentDistributedInference for asynchronous prediction later (Very important for asynchronous prediction)
605
+ # main_model.use_transformer = True if you want to use transformer, this will notify all modules that used advanced_prediction_method will initiate prediction with both transformer and MLP.
606
+
607
+ # set IntegratedPipeline Penalty rate when it output wrong answer:
608
+ main_model.error_decay = 0.75
609
+ # error_rate > 0.5 means old errors fade quickly — a class that was wrong 3 predictions ago matters less than one wrong just now, making the model less likely to output repetitive wrong answer.
610
+ # this a flexible tunable-knob for the model judgement regarding wrong answer, this will propagate through prediction layers to inform about the model repetitive answer and calibrate it immediately.
611
+
612
+ main_model.mlp_training_epochs = 2000
613
+ main_model.transformer_training_epochs = 200
614
+ # You can set how much epochs are needed to Train your MLP and Transformer for your Models.
615
+
616
+ # test samples with more sophisticated rules and more complex titles for prediction
617
+ # (title, intent)
618
+ test_titles = [
619
+ ("Opening Thesis.docx", "slight_work"),
620
+ ("Watching YouTube and Google Chrome", "distracted"),
621
+ ("Watching Slack", "communication"),
622
+ ("Programming in Visual Studio Code", "focused_work"),
623
+ ("Watching netflix.com - Chrome", "break"),
624
+ # more titles
625
+ ]
626
+
627
+ titles, y, label_map = main_prediction.load_labels_from_csv(
628
+ <your_filename.>, # the name of your .txt file with CSV format.
629
+ <target_title>, <target_label>)
630
+
631
+ # small training with simple titles first
632
+ main_model.train(titles, y)
633
+
634
+ # main_model.froze_learning = True
635
+ # prevent the model from training and make weights unchanged for static prediction.
636
+
637
+ results, chosen_label, confidence = main_prediction.advanced_prediction_method(
638
+ titles=test_titles, label_map=label_map, rules=example_rules, # titles and rules can be set to None (Optional samples), but label_map must NOT be None.
639
+ X=None, y=None # you could create your own X and y samples and put it here (Optional)
640
+ show_proba=False, top_k=3,
641
+ use_transformer=True,
642
+ return_attention=False,
643
+ save_results=True,
644
+ batch_size=2)
645
+ # Important Note: If you set titles and rules to None, you must provide X and y samples for prediction, otherwise the models cant predict anything.
646
+ # batch size=2 is needed during transformer training for batching, if you have larger samples consider using batch_size > 8, for medium amount of samples (>10 -> <50 samples) consider using 2 or 4 batch_size.
647
+
648
+ # This setup below would allow you to save the Accurate answer (if the model guessed a specific problem correct) directly to the database,
649
+ # without initiating prediction over the sample repeatedly.
650
+ input_ids = main_model.model2.cache['input_ids'] # input indices the transformer used as input (model2 is Transformer).
651
+ index = results.get('index') # predicted index where the Model have chosen the label.
652
+ confidence = results.get('confidence') # the model confidence over the predicted Output from advanced prediction method.
653
+ main_model.accurate_cache_lookup.add_verified(X, input_ids, chosen_label, confidence, index,
654
+ source='Correctly-Answered') # You can modify the the source with "Answered-Correctly" (fit to your needs)
655
+
656
+ # ... more features you can add
657
+ ```
658
+
659
+ 5. To use IntegratedPipeline prediction without Transformer, Only Specialized MLP:
660
+ Note: IntegratedPipeline without Transformer is'nt recommended due to it being weak at certain contextual prediction's, excel's at classification task's.
661
+ - Example without transformer:
662
+ ```python
663
+ prediction_result = main_prediction.advanced_prediction_method(
664
+ [t[0] for t in test_titles], # titles is enough for MLP Classification.
665
+ label_map,
666
+ example_rules,
667
+ show_proba=True
668
+ )
669
+
670
+ ```
671
+ 6. Asynchronous prediction:
672
+ - Asynchronous prediction request is important and is critical because it keeps prediction interfaces responsive, maximizes local hardware efficiency, and enables apps to handle background tasks seamlessly without waiting on remote server responses,
673
+ - for asynchronous prediction handling, consider using this setup
674
+ ```python
675
+ # Step 2
676
+ from AbstractIntegratedModule import PipelineAsyncManager
677
+ from AbstractIntegratedModule import SecurityConfig
678
+ from AbstractIntegratedModule import SecurityLevel
679
+
680
+ print(" = TESTING ASYNCHRONOUS PREDICTION MANAGER = ")
681
+ # Set discovery secret (in production, use environment variable)
682
+ secret_key = 'my-ultra-safe-secret-key-for-authentication' # you can customize this key
683
+
684
+
685
+ security_config = SecurityConfig(
686
+ max_text_length=10000, # can be extended
687
+ max_queue_size=100, # can be extended
688
+ rate_limit_requests=60, # 60 per minute
689
+ require_api_key=True, #
690
+ max_pending_tasks=50,
691
+ request_timeout=60.0,
692
+
693
+ # Start with no IP restrictions, you can add allowed IPs for asynchronous prediction externally, boothstrap_auth for better security
694
+ allowed_ips=[],
695
+ blocklisted_ips=[],
696
+ require_bootstrap_auth = False # true for better security (Not recommended, cause less flexibility)
697
+ )
698
+
699
+ async_manager = PipelineAsyncManager(main_model,
700
+ main_prediction, # your previous initialized PipelinePredictionManager
701
+ config=security_config,
702
+ state_file=None, # state file is used to load known security logs ex: ip used, ip blacklisted, etc.
703
+ security_level=SecurityLevel.PRODUCTION, # production level security initiated
704
+ api_key=secret_key #set secret key you initialized
705
+ max_workers=4, # workers to initiate asynchronous tasks, more workers, more capabilities to process asynchronous prediction requests.
706
+ task_timeout=30,
707
+ max_retries=3 ) # retries after failure during prediction
708
+
709
+ async_manager.start(method='Transformer_included', bootstrap_token=None) # boothstrap token is optional for better security
710
+
711
+ texts = {'test_titles': test_titles, 'label_map': label_map, 'rules': example_rules, # test_titles and rules can be set to None here since they are Optional samples.
712
+ # but label_map must not be None.
713
+ 'X': None, 'y':None, 'use_transformer': True} # all samples needed for advanced prediction method. (X and y are optional samples)
714
+ # Important Note: If you set titles and rules to None, you must provide X and y samples for prediction, otherwise the models cant predict anything.
715
+
716
+ regular_predict = async_manager.predict(
717
+ texts=texts,
718
+ timeout=60,
719
+ retries=None,
720
+ api_key=secret_key) # advanced prediction method for asynchronous prediction.
721
+
722
+ # with retries: async_manager.predict(texts, timeout=60, retries=5, api_key=secret_key) # 5 times retry if failed
723
+
724
+ # NOTE: This function below must require test_titles or titles, label_map and example rules:
725
+ print('[==] Initiating advanced batch prediction')
726
+ predicted_output = async_manager.advanced_batch_prediction(test_titles, label_map, example_rules,
727
+ X=None, y=None, # provide your initialized X and y samples (Also Optional, can be set to None)
728
+ secret_key=secret_key, client_ip=None) # you can add client_ip to provide a robust authentication paired with secret_key
729
+ # for better and faster advanced prediction when using titles and rules, consider using advanced batch prediction like in the above example
730
+
731
+ ```
732
+ [=] Note:
733
+ - Asynchronous prediction used Event loop that handles incoming request, There are conditions where event loop will not start and can't accet requests:
734
+ - CPU Above > 95% - Disk space is < 100 MB
735
+ - RAM above > 95%
736
+ - When event loop is not triggered, Asynchronous prediction can't be initiated and must be restarted/retried.
737
+
738
+ 7. Peer-to-Peer Probability coordination:
739
+ - Each peer is both server and client simultaneously for robustness and resilience during during P2P.
740
+ - To Make the Agent cooperate with other peers, consider using this setup:
741
+ - [=] for ensemble prediction from multiple peers, exchanging predicted label with each other, consider using this setup:
742
+ ```python
743
+
744
+ # step 3
745
+ from AbstractIntegratedModule import CohesiveAgentDeployment
746
+ from AbstractIntegratedModule import PipelinePredictionManager
747
+ import asyncio
748
+ import traceback
749
+
750
+ prediction_manager = PipelinePredictionManager(main_model, label_csv=<your_training_labels.txt>, target_title=<target_title>, label=<target_label>)
751
+
752
+ secondary_model = IntegratedPipeline(memory_name=memory_name,
753
+ use_async=True, agent_port=8080,
754
+ ssl_cert_file=cert_file, ssl_key_file=key_file) # provide cert_file path or key_file path (optional)
755
+ # secondary model of integrated pipeline is critical for ARM64 environment to prevent socket conflict during P2P with the first Integrated pipeline instance.
756
+ # make sure that the agent_port in secondary_model must be different from agent_port in first IntegratedPipeline instance you initialized.
757
+
758
+ print("=== SECURE PEER-TO-PEER CLUSTER ===")
759
+
760
+ # CohesiveAgentDeployment is deeply tied and coupled with AgentDistributedInference,
761
+ # if you already set an SSL cert and key, CohesiveAgentDeployment will use the SSL directly from AgentDistributedInference
762
+ # allowing secure socket to be used directly by CohesiveAgentDeployment
763
+
764
+ main_model.distribution.enable_ssl = False # set to false if you dont have SSL key and CERT, this code would instruct AgentDistributedInference that you don't have SSL, and provide you a regular unsecured socket (Not necessary for production)
765
+ secondary_model.distribution.enable_ssl = False
766
+
767
+ # Agent 1 - Primary (Port 5555)
768
+ agent1 = CohesiveAgentDeployment(
769
+ pipeline=main_model, # main_model is your initialized integrated pipeline
770
+ memory_name="agent_primary", # any name you want for the agent.
771
+ filename=<filename>, # name of your .txt file that contains the CSV format and training labels
772
+ target_title=<title_name>,
773
+ label_name=<label_name>,
774
+ security_level="PRODUCTION", # production level security
775
+ enable_peers=True, # allow peer discovery
776
+ trusted_networks=['127.0.0.1/32', '192.168.1.0/24'], # for trusted networks, you need to provide the list of IPs of your peers.
777
+ peer_discovery_port=5555, # peer port to start P2P
778
+ secret_key=secret_key, # your secret key
779
+ shared_auth_token=secret_key, # your previous initialized secret_key
780
+ predict_manager=prediction_manager, # your prediction manager
781
+ peer_config = <'your_peer_ip_lists.json'> # you need to create .json file that contains your peer IP and Port lists
782
+ consecutive_peer_config = <'your_second_fallback_peer_ip_lists.json'> # same for this one too, but for fallback.
783
+ )
784
+
785
+ # Agent 2 - Secondary (Port 5556)
786
+ agent2 = CohesiveAgentDeployment(
787
+ pipeline=secondary_model,
788
+ memory_name="agent_secondary",
789
+ filename=<filename>,
790
+ target_title=<title_name>,
791
+ label_name=<label_name>,
792
+ security_level="PRODUCTION",
793
+ enable_peers=True, # agent is allowed to find peers
794
+ trusted_networks=['127.0.0.1/32', '192.168.1.0/24'],
795
+ peer_discovery_port=5556,
796
+ secret_key=secret_key,
797
+ shared_auth_token=secret_key,
798
+ predict_manager=prediction_manager,
799
+ peer_config = <'your_peer_ip_lists.json'> # you need to create .json file that contains your peer IP and Port lists
800
+ consecutive_peer_config = <'your_second_fallback_peer_ip_lists.json'> # same for this one too, but for fallback.
801
+ )
802
+
803
+ # Note: CohesiveAgentDeployment contains ConsecutivePeerAgent that can start a server once ensemble prediction from peer is started
804
+ # be advised to stop the server too before shutdown-ing CohesiveAgentDeployment cluster
805
+
806
+ # example peer_Ip_lists_config.json (de-comment to use)
807
+ # {
808
+ # you must put "known_peers" in the config so python can identify the list of IPs and Ports
809
+ # "known_peers": [
810
+ # ["127.0.0.1", 5555], can be modified using real IP or local IP.
811
+ # ["127.0.0.1", 5556],
812
+ # more ip and port lists...
813
+ # ]
814
+ # }
815
+
816
+
817
+ try:
818
+ # Start both agents
819
+ print("\n🚀 Starting Agent 1...")
820
+ await agent1.start()
821
+ print("✅ Agent 1 started on port 5555")
822
+
823
+ print("\n🚀 Starting Agent 2...")
824
+ await agent2.start()
825
+ print("✅ Agent 2 started on port 5556")
826
+
827
+ # Give servers time to fully bind
828
+ await asyncio.sleep(2)
829
+
830
+ # Get API keys
831
+ api_key = agent1.get_api_key()
832
+ print(f"\n🔑 Using API Key: {api_key[:20]}...")
833
+
834
+ texts = {"test_titles": test_titles, "label_map": label_map, "rules": rules, # test_titles and rules are Optional samples, can be set to None.
835
+ 'X': None, "y":None, "use_transformer": True, "agent_id": agent_id} # (X and y are optional samples here too)
836
+ # Important Note: If you set titles and rules to None, you must provide X and y samples for prediction, otherwise the models cant predict anything.
837
+
838
+ # texts dictionary must contain test_titles, label_map, and rules that you can assign,
839
+ # agent ID can be strings, int, or floats, recommendded to make it long for better security.
840
+ agent1.pipeline.use_transformer = False # set agent1 pipeline to not use transformer for efficient processing in ARM64 env.
841
+ agent2.pipeline.use_transformer = False
842
+
843
+ # Make prediction with peer ensemble
844
+ # Connection will be guaranteed successfull during discovery.
845
+ result = await agent1.multi_modal_peer_ensemble_prediction(
846
+ texts=texts,
847
+ api_key=api_key,
848
+ method='advanced',
849
+ disable_sync=True
850
+ ) # await using asyncio, multi_modal_peer_ensemble is already async by design (Inside ConsecutivePeerAgent), no need to put asyncio.run()
851
+
852
+ # must have agent2 peer ensemble function after agent1 peer ensemble prediction function,
853
+ # so agent1 can receive agent2 peer ensemble prediction request.
854
+ result2 = await agent2.multi_modal_peer_ensemble_prediction(
855
+ texts=texts,
856
+ api_key=api_key,
857
+ method='advanced',
858
+ disable_sync=True
859
+ )
860
+
861
+ print(f"\n📊 Ensemble Result for Agent 1:")
862
+ print(f" Prediction: {result.get('prediction', 'N/A')}")
863
+ print(f" Confidence: {result.get('confidence', 0):.2%}")
864
+
865
+ print(f"\n📊 Ensemble Result for Agent 2:")
866
+ print(f" Prediction: {result2.get('prediction', 'N/A')}")
867
+ print(f" Confidence: {result2.get('confidence', 0):.2%}")
868
+
869
+ # Keep running briefly
870
+ print("\n⏳ Cluster stable. Waiting 5 seconds before shutdown...") # 5 seconds before shutdown.
871
+
872
+ # stop ConsecutivePeerAgent servers inside CohesiveAgentDeployment.
873
+ agent1._peer_agent.stop_server() # ._peer_agent is ConsecutivePeerAgent
874
+ agent2._peer_agent.stop_server()
875
+
876
+ await asyncio.sleep(5)
877
+
878
+ except Exception as e:
879
+ print(f"\n❌ Error in cluster: {e}")
880
+ traceback.print_exc()
881
+
882
+ finally:
883
+ print("\n🛑 Shutting down cluster...")
884
+ await agent1.shutdown()
885
+ await agent2.shutdown()
886
+ print("✅ Cluster shutdown complete")
887
+
888
+ ```
889
+ [=] Important Note:
890
+ - This setup outputs the given predicted label of an input directly, making P2P more flexible and fast.
891
+ - This setup used Hybrid feature in prediction handling, Asynchronous prediction request, and Synchronous prediction handling. Synchronous prediction does block code execution for a few seconds, it was used for a few reason here, such as:
892
+ - allowing a more slower traffic between agents, preventing other agent to get the same peer prediction over time, making each interaction equals and each peer can receive different peer prediction output.
893
+
894
+ [=] You can download this setup here for a direct test: [P2PDirectTest.py](P2P_Setups/P2PDirectTest.py)
895
+
896
+ - [=] for probability coordination, locally, get peers data from database or via socket.
897
+ ```python
898
+ # step 4
899
+ dataset, _ = main_model.data_preparation(test_titles, label_map)
900
+ sequence_inputs = main_model.sequence_encoding(dataset)
901
+ X_raw_generation, y, n_classes, input_dim = main_model.mlp_training_features(example_rules, dataset)
902
+
903
+ main_model.initialize_fitting(dataset)
904
+ X_raw_features = main_model.tfidf.transform(X_raw_generation).toarray()
905
+ transformer_features = main_model.transformer_pooled_features(sequence_inputs)
906
+ X_features = np.concatenate([X_raw_features, transformer_features], axis=-1)
907
+
908
+ peer_probability_calibration = main_model.predict_proba(sequence_inputs, X_features, type='Hybrid', embedded=True) # peer-to-peer calibration is inside this function
909
+ ```
910
+ [~] Note: the peer calibration coordination has a chance of triggering if both MLP and Transformer prediction doesn't agree on certain output. Consider using this setup below for using stand-alone peer-to-peer main function without being wrapped in other parent function, allowing flexible and auditable peer-to-peer sharing for probability coordination:
911
+ ```python
912
+ from AbstractIntegratedModule import WeightedEnsemblePredictor
913
+ from AbstractIntegratedModule import Transformer
914
+
915
+ num_classes = len(label_map)
916
+ # if you haven't fit the Tfidf:
917
+ # main_model.initialize_fitting(dataset)
918
+
919
+ ensemble_method = WeightedEnsemblePredictor(main_model, memory_name) # consider using the same memory name used in your previous pipeline
920
+ transformer = Transformer(main_model.vocab_size, d_model=32, n_heads=4, num_classes=num_classes) # you can audit how much parameter the transformer needs.
921
+ main_model.model2 = transformer # overwrite previous transformer initialization
922
+
923
+ # main_model.distribution is AgentDistributedInference() class
924
+ # consider using ssl for secure peer to peer coordination
925
+ main_model.distribution.ssl_cert_file = <path_to_your_ssl_cert_file>
926
+ main_model.distribution.ssl_key_file = <path_to_your_ssl_key_file>
927
+
928
+ dataset, _ = main_model.data_preparation(titles, label_map)
929
+ sequence_input = main_model.sequence_encoding(dataset)
930
+ _, attn_weights = transformer.forward(sequence_input)
931
+
932
+ probs = ensemble_method.predict_ensemble(sequence_input, X_features, y, method='dynamic', embedded=True)
933
+ # 3 options for ensemble weighting method:
934
+ # 1. dynamic: allow flexible, efficient weighting from both transformer and MLP,
935
+ # 2. meta: for a much more in-depth weighting from both model,
936
+ # 3. calibration: allow calibrating probability for both model outputs based on both best weights assembling.
937
+
938
+ agreement = main_model.agreement
939
+
940
+ # start server to initiate socket for P2P listener
941
+ main_model.distribution.start_server()
942
+
943
+ # set connection timeout (Optional)
944
+ main_model.distribution.connection_timeout = 30 # 30 seconds before timeout
945
+ calibrated_probability = main_model._handle_distributed_connections(probs, attn_weights, sequence_input, agreement)
946
+
947
+ # if an Agent experience a failure on tasks, consider using this function to reduce peer trust for safer flexible coordination:
948
+ # main_model.distribution.report_failure(id(main_model), '<task_name>', reason='<unknown>') # you can add the task_name and reason
949
+ # main_model.distribution.print_network_status() # to show other peers info.
950
+ ```
951
+ [~] Note: this calibrated_probability is later used to calculate confidence and chosen output based on given label_map.
952
+ - Consider checking:
953
+ - [multi_agent_client.py](P2P_Setups/multi_agent_client.py) for a In-depth start for client testing.
954
+ - [multi_agent_server.py](P2P_Setups/multi_agent_server.py) for a In-depth start for server testing.
955
+ - If you get undefined NoneType Behavior when using .accept(), consider see [Troubleshooting](#Troubleshooting) Issue 7 for a Quick fix.
956
+
957
+ 6. Cross-Session availability:
958
+ - To use Cross-session avialability to transfer or import memory, consider using this setup:
959
+ - ```python
960
+ main_model._cross_session_availability() # cross session capability function
961
+ ```
962
+
963
+ 7. As an option, You can add more feature's directly to what it should predict, behave using rules you have given, Create a visual dashboard, create a distributed mesh of this agent, and much more features you can try.
964
+
965
+ ## [+] Troubleshooting
966
+ 1. Issue 1: "ModuleNotFoundError: No module named 'AbstractIntegratedModule'" When using the binary version of the library,
967
+ Solution:
968
+
969
+ - [=] Verify the binary file is in the correct location:
970
+ ```
971
+ ls -la AbstractIntegratedModule*.so # Linux
972
+ dir AbstractIntegratedModule.pyd # Windows
973
+ ```
974
+
975
+
976
+ - [=] Check Python path:
977
+ ```
978
+ python -c "import sys; print('\n'.join(sys.path))"
979
+ ```
980
+ - [~] Note: - Move binary to project root if not already there
981
+ - Ensure you're using Python 3.13 of the supported version.
982
+
983
+ 2. Issue 2: "ImportError: DLL load failed" when using binary version of the library (For Windows)
984
+ Solution:
985
+
986
+ - 1. Ensure AbstractIntegratedModule.pyd is in your project root
987
+ - 2. Install Visual C++ redistributables:
988
+ Download from: https://support.microsoft.com/en-us/help/2977003
989
+ - 3. Verify Python architecture (32-bit vs 64-bit) matches the .pyd file
990
+
991
+
992
+ 3. Issue 3: "Permission denied" when using binary version of the library (for Linux/Raspberry Pi)
993
+ [=] Solution:
994
+ - ```
995
+ # Make sure you have read permissions
996
+ chmod 644 AbstractIntegratedModule.cpython-39-*.so
997
+ # If in virtual environment, ensure it's activated
998
+ source venv/bin/activate
999
+ ```
1000
+
1001
+ 4. Issue 4: Missing Dependencies when using binary
1002
+ [=] Solution:
1003
+ - ```
1004
+ # Reinstall all dependencies
1005
+ pip install --upgrade pip setuptools wheel
1006
+ pip install numpy pandas scikit-learn matplotlib scipy requests
1007
+
1008
+ # Verify installation
1009
+ pip list
1010
+ ```
1011
+
1012
+ 5. Issue 5: Virtual Environment Issues
1013
+ [=] Solution:
1014
+ - ```
1015
+ # Deactivate current environment
1016
+ deactivate
1017
+
1018
+ # Create a fresh virtual environment
1019
+ python -m venv fresh_venv
1020
+
1021
+ # Activate it
1022
+ source fresh_venv/bin/activate # Linux/Raspberry Pi
1023
+ # or
1024
+ fresh_venv\Scripts\activate # Windows
1025
+
1026
+ # Reinstall
1027
+ pip install --upgrade pip
1028
+ pip install numpy pandas scikit-learn matplotlib scipy
1029
+ ```
1030
+
1031
+ 6. Issue 6: Raspberry Pi - "Bus error" or Performance Issues
1032
+ Solution:
1033
+ - [=] Ensure adequate swap space:
1034
+ ```
1035
+ free -h # Check current swap
1036
+ sudo nano /etc/dphys-swapfile # Increase if needed
1037
+ ```
1038
+ - Close unnecessary applications before running
1039
+ - Consider using a faster SD card (UHS-I or better)
1040
+
1041
+ 7. Issue 7: P2P Undefined Connection:
1042
+ If you get this warning:
1043
+ - ```
1044
+ [❌] Failed to connect to <host>:<port>: Nonetype object has no attribute .accept()
1045
+ ```
1046
+ - [=] Solution:
1047
+ - ```
1048
+ # initiate socket first
1049
+ main_model.distribution.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
1050
+ main_model.distribution.socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
1051
+ main_model.distribution.socket.bind(('0.0.0.0', self.port)) # self.port could be changed with other ports
1052
+ main_model.distribution.socket.listen(5) # listens for 5 seconds
1053
+ ```
1054
+ 8. Issue 8: Cannot compare using '<' with str and float data:
1055
+ - This happens when one of the labels extracted from your CSV file has NaN value, consider replace NaN with actual labels.
1056
+
1057
+ 9. Issue 9: Failed authentication during asynchronous prediction:
1058
+ - Solution: Ensure API_KEY is initialized inside PipelineAsyncManager like this:
1059
+ - ```python
1060
+ async_manager = PipelineAsyncManager(main_model,
1061
+ main_prediction, # your previous initialized PipelinePredictionManager
1062
+ config=security_config,
1063
+ state_file=None, # state file is used to load known security logs ex: ip used, ip blacklisted, etc.
1064
+ security_level=SecurityLevel.PRODUCTION, # production level security initiated
1065
+ api_key=secret_key # set secret key you initialized <- THIS IS IMPORTANT
1066
+ max_workers=4, # workers to initiate prediction, more workers, more capabilities to process prediction requests.
1067
+ task_timeout=30,
1068
+ max_retries=3 ) # retries after failure during prediction
1069
+ ```
1070
+ - And make sure you also initialized api_key in the predict function that requires api_key:
1071
+ ```
1072
+ async_manager.predict(...., ...., api_key=api_key, ...)
1073
+ ```
1074
+
1075
+ ## [=] Detailed process of Alpha-computing
1076
+
1077
+ <img width="720" height="338" alt="WhatsApp Image 2026-05-04 at 17 43 35" src="https://github.com/user-attachments/assets/3d149dce-cf3b-44c9-80b0-fa68290a2019" />
1078
+
1079
+ <img width="720" height="388" alt="WhatsApp Image 2026-05-04 at 17 44 04" src="https://github.com/user-attachments/assets/b1efedf6-5aa1-431e-89da-5f422549b453" />
1080
+ 🧠 What Alpha-Based Computation Actually Does
1081
+
1082
+ At its core, alpha (α) is a control parameter that blends two different information paths inside a given transformer:
1083
+ A_final = α · A_fixed + (1 − α) · A_learned.
1084
+ [~] Where:
1085
+ - A_fixed → stable, non-trainable (or minimally changing) attention
1086
+ - A_learned → dynamic, trainable attention (Q, K, V)
1087
+ - α ∈ [0, 1] → controls how much each path contributes
1088
+
1089
+ [~] Forward Pass -> Controlling Information Flow:
1090
+ During the forward pass, alpha determines what representation the model uses.
1091
+ If α is high (e.g., 0.8–1.0): Model relies mostly on stable attention
1092
+ → outputs are consistent → less noise → safer early training, If α is low (e.g., 0.0–0.3), Model relies mostly on learned attention, → more expressive → but unstable early on.
1093
+ So in forward propagation, alpha is essentially, “How much do I trust learned attention vs safe attention?”
1094
+
1095
+ [~] Backward Pass -> Controlling Gradient Flow:
1096
+ When gradients flow backward:
1097
+ ```
1098
+ - dA_final → splits into two paths
1099
+ - Mathematically:
1100
+ - dA_fixed = α · dA_final
1101
+ - dA_learned = (1 − α) · dA_final
1102
+ ```
1103
+
1104
+ [~] Simple Explanation:
1105
+ 1. If α (alpha) is high: → most gradient goes to fixed path → learned attention gets very little update → training is stable but slow
1106
+ 2. If α is low: → most gradient goes to learned attention → fast learning → but noisy / unstable
1107
+
1108
+ [=] Why This Matters for Training
1109
+ 1. Without alpha: attention starts random → gradients noisy → model stuck (~10% accuracy)
1110
+ 2. With alpha: early stage -> rely on stable structure → meaningful gradients
1111
+
1112
+
1113
+
1114
+ ## Main Components
1115
+ [=] 1. - Consider checking and run: [IntegratedPipeline_Flow.html](IntegratedPipeline_Flow.html) regarding each function of the whole components and deep-dive mechanism.
1116
+ 2. - consider checking [ARCHITECTURE.md](ARCHITECTURE.md) for more explanation about the main components.
1117
+
1118
+ [=] With 23 total architectures working together as a standalone library that is efficient and robust, Main components include:
1119
+
1120
+ 1. GeometricWeightShaping
1121
+ Purpose: Analyzes the geometric structure of data (anisotropy, spectral properties, complexity) and generates optimal weight matrices based on that geometry. Essentially teaches the model how to "understand" the shape of data before processing it, Highly robust to noise, making it an excellent fit for messy environment.
1122
+ ---
1123
+ 2. Activation
1124
+ Purpose: Provides standard neural network activation functions (ReLU, sigmoid, softmax) and their derivatives for backpropagation for MLP Class.
1125
+ ---
1126
+ 3. Loss
1127
+ Purpose: Implements categorical crossentropy loss and its gradient for training classification models for both MLP and The Transformer
1128
+ ---
1129
+ 4. Transformer
1130
+ Purpose: A complete transformer implementation with multi-head attention, positional embeddings, feed-forward networks, layer normalization, and custom backpropagation. Includes both fixed (stable) and dynamic (adaptive) training modes necessary for Scarce data environment using algorithm such as Alpha based computing directly during forward pass.
1131
+ ---
1132
+ 5. Dense
1133
+ Purpose: A geometric-aware dense layer that adapts its weights based on input data geometry and handles variable input dimensions automatically.
1134
+ ---
1135
+ 6. SoftmaxOutput
1136
+ Purpose: A simple wrapper around softmax activation that stores the output and passes gradients through unchanged (since softmax + crossentropy gradient is handled elsewhere).
1137
+ ---
1138
+ 7. MLP
1139
+ Purpose: A multi-layer perceptron that can switch between standard training and "focused" training (using feed-forward layers only) based on data complexity. Includes prediction, scoring, and geometric measurement methods.
1140
+ ---
1141
+ 8. WeightedEnsemblePredictor
1142
+ Purpose: Combines Transformer and MLP predictions using dynamic weighting based on attention quality, model confidence, and agreement. Also manages memory storage, explainability, and peer agent communication.
1143
+ ---
1144
+ 9. CrossSessionAutomation
1145
+ Purpose: Manages exporting, importing, and syncing model sessions across different devices or time periods. Allows saving entire model states to JSON and transferring them over network sockets.
1146
+ ---
1147
+ 10. ExplainabilityModule
1148
+ Purpose: Generates human-readable explanations for predictions, learns from user feedback, maintains decision history, and batch-trains on corrections. The transparency layer for the AI agent.
1149
+ ---
1150
+ 11. ModelStorage
1151
+ Purpose: SQLite-based persistence for models, attention weights, node memories, and agent data. Handles serialization/deserialization of numpy arrays and model dictionaries.
1152
+ ---
1153
+ 12. AgentDistributedInference
1154
+ Purpose: The distributed agent system - can act as a server or client, handles SSL/TLS security, rate limiting, authentication, peer-to-peer prediction requests, memory synchronization, ensemble voting, and trust management between agents.
1155
+ ---
1156
+ 14. QueryNode
1157
+ Purpose: Manages trust relationships and identity verification between nodes. Evaluates node agreement, establishes connections, performs safety checks, and maintains the network of trusted peers.
1158
+ ---
1159
+ 14. AutoBatcherAutomation
1160
+ Purpose: Automatically batches incoming prediction requests to optimize throughput. Collects requests up to a maximum batch size or time window, then processes them together.
1161
+ ---
1162
+ 15. IntegratedPipeline
1163
+ Purpose: The main orchestration class that ties everything together - handles text encoding, model initialization, training, prediction, memory management, hybrid predictions, and distributed inference coordination.
1164
+ ---
1165
+ 16. PipelinePredictionManager
1166
+ Purpose: High-level prediction interface that loads labels from CSV, performs regular/advanced/hybrid predictions, displays results, and calculates entropy for uncertainty estimation.
1167
+ ---
1168
+ 17. ThreadedMessageQueue
1169
+ purpose: Handles message queue in thread for asynchronous message handling. (Queue based)
1170
+ ---
1171
+ 18. AsyncMessageQueue
1172
+ purpose: Handles incoming message from Asychronous peer request (Queue based)
1173
+ ---
1174
+ 19. CohesiveAgentDeployment
1175
+ purpose: Handles both synchronous prediction, and P2P Asynchronous prediction request, acts as a server and a listener simultaneously.
1176
+ ---
1177
+ 20. ConsecutivePeerAgent
1178
+ purpose: handles ensemble weighting from received output from peer, managed server and acts as a listener simultaneously.
1179
+ ---
1180
+ 21. LSTMCell
1181
+ purpose: handles LSTM Core equations In Numpy.
1182
+ ---
1183
+ 22. LSTMNetwork
1184
+ purpose: handling LSTM Feed-forward layer, Training and Samples handling.
1185
+ ---
1186
+ 23. LSTMEngine
1187
+ purpose: handles Proper LSTM Confidence and calibration layer.
1188
+
1189
+ ## Full Documentation Features
1190
+ - [Go to IntegratedPipeline-Specialized-AI-Agent-library](#IntegratedPipeline-Specialized-AI-Agent-library)
1191
+ - [Go to MANN Intro](#MANN-Intro)
1192
+ - [Go to Abstract Weight Encoder (AWE) Intro](#Abstract-Weight-Encoder-(AWE)-Intro)
1193
+ - [Go to LSTM And Transformer Into](#-lstm-and-transformer-intro)
1194
+ - [Go to Why IntegratedPipeline?](#Why-IntegratedPipeline?)
1195
+ - [Go to Requirements](#Requirements)
1196
+ - [Go to System-Specific-Notes](#System-Specific-Notes)
1197
+ - [Go to Quickstart with Docker](#Quickstart-with-Docker)
1198
+ - [Go to Performance in ARM64 Environment/Container](#Performance-in-ARM64-Environment/Container)
1199
+ - [Go to Step's for in-depth Usage](#Step's-for-in-depth-Usage)
1200
+ - [Go to Troubleshooting](#Troubleshooting)
1201
+ - [Go to Detailed process of Alpha-computing](#Detailed-process-of-Alpha-computing)
1202
+ - [Go to Main Components](#Components)
1203
+ - [Go to Source code](#Source-code-of-AbstractIntegratedModule)
1204
+ - Consider checking:
1205
+ - [ROADMAP.md](ROADMAP.md)
1206
+ - [Contributing.md](Contributing.md)
1207
+ - [changelog.md](changelog.md)
1208
+ - [requirements-For-Dev](dev_needs.txt) for contributors requirements.
1209
+ - [architecture_diagram.js](architecture_diagram.js).
1210
+
1211
+ ## License
1212
+ [=] LICENSE: - MIT (2026) || See [LICENSE](LICENSE) for more information.
1213
+
1214
+
1215
+
1216
+
1217
+
1218
+
1219
+
1220
+
@@ -0,0 +1,7 @@
1
+ AbstractIntegratedModule.cp310-win_amd64.pyd,sha256=yEbW4syZzRbRMHoE3nhE8O68qWnnOJhV6jIeqUYP8TQ,5027840
2
+ AbstractOptimizedModules.cp310-win_amd64.pyd,sha256=V57HrKEujAJpCKIN1EDp6Rn9Ebl0OWRHWvh_A2Agth8,147968
3
+ abstractintegratedmodule-1.0.2.dist-info/licenses/LICENSE,sha256=djHvM392Qf7WidPdmdTJIe5VCDlJeXtF73xeWH3dB6A,1091
4
+ abstractintegratedmodule-1.0.2.dist-info/METADATA,sha256=NftF22VFK5U771V5_OZyBWVqxsLcuxo-NFKWQCHEsNw,72107
5
+ abstractintegratedmodule-1.0.2.dist-info/WHEEL,sha256=jYVzCt0n0i5gm3gbcoSI7PVCxfvVd-hxxM6nWgDRieA,101
6
+ abstractintegratedmodule-1.0.2.dist-info/top_level.txt,sha256=66cDeqtV1QfIkcXTqRrnEJCSJOmdHMzhv6V26b_zs_Y,50
7
+ abstractintegratedmodule-1.0.2.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (83.0.0)
3
+ Root-Is-Purelib: false
4
+ Tag: cp310-cp310-win_amd64
5
+
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Micro-Novelty
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,2 @@
1
+ AbstractIntegratedModule
2
+ AbstractOptimizedModules