AbstractIntegratedModule 0.8.3__tar.gz → 0.8.4__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.
Files changed (23) hide show
  1. {abstractintegratedmodule-0.8.3 → abstractintegratedmodule-0.8.4}/AbstractIntegratedModule.egg-info/PKG-INFO +10 -10
  2. {abstractintegratedmodule-0.8.3 → abstractintegratedmodule-0.8.4}/AbstractIntegratedModule.py +23 -4
  3. {abstractintegratedmodule-0.8.3 → abstractintegratedmodule-0.8.4}/AbstractOptimizedModules.c +200 -200
  4. {abstractintegratedmodule-0.8.3 → abstractintegratedmodule-0.8.4}/PKG-INFO +10 -10
  5. {abstractintegratedmodule-0.8.3 → abstractintegratedmodule-0.8.4}/README.md +9 -9
  6. {abstractintegratedmodule-0.8.3 → abstractintegratedmodule-0.8.4}/setup.py +1 -1
  7. {abstractintegratedmodule-0.8.3 → abstractintegratedmodule-0.8.4}/AbstractIntegratedModule.egg-info/SOURCES.txt +0 -0
  8. {abstractintegratedmodule-0.8.3 → abstractintegratedmodule-0.8.4}/AbstractIntegratedModule.egg-info/dependency_links.txt +0 -0
  9. {abstractintegratedmodule-0.8.3 → abstractintegratedmodule-0.8.4}/AbstractIntegratedModule.egg-info/requires.txt +0 -0
  10. {abstractintegratedmodule-0.8.3 → abstractintegratedmodule-0.8.4}/AbstractIntegratedModule.egg-info/top_level.txt +0 -0
  11. {abstractintegratedmodule-0.8.3 → abstractintegratedmodule-0.8.4}/AbstractOptimizedModules.pyx +0 -0
  12. {abstractintegratedmodule-0.8.3 → abstractintegratedmodule-0.8.4}/MANIFEST.in +0 -0
  13. {abstractintegratedmodule-0.8.3 → abstractintegratedmodule-0.8.4}/abstract_model_storage/Cargo.toml +0 -0
  14. {abstractintegratedmodule-0.8.3 → abstractintegratedmodule-0.8.4}/abstract_model_storage/pyproject.toml +0 -0
  15. {abstractintegratedmodule-0.8.3 → abstractintegratedmodule-0.8.4}/abstract_model_storage/src/lib.rs +0 -0
  16. {abstractintegratedmodule-0.8.3 → abstractintegratedmodule-0.8.4}/abstract_model_storage/target/debug/build/libsqlite3-sys-ed07b882cd2aa5e2/out/bindgen.rs +0 -0
  17. {abstractintegratedmodule-0.8.3 → abstractintegratedmodule-0.8.4}/abstract_model_storage/target/debug/build/serde_core-ebc15f2e9cad7f5f/out/private.rs +0 -0
  18. {abstractintegratedmodule-0.8.3 → abstractintegratedmodule-0.8.4}/abstract_model_storage/target/debug/build/target-lexicon-08527f45de28143d/out/host.rs +0 -0
  19. {abstractintegratedmodule-0.8.3 → abstractintegratedmodule-0.8.4}/abstract_model_storage/target/release/build/libsqlite3-sys-bf0400df4523274c/out/bindgen.rs +0 -0
  20. {abstractintegratedmodule-0.8.3 → abstractintegratedmodule-0.8.4}/abstract_model_storage/target/release/build/serde_core-5cdb76131825e4af/out/private.rs +0 -0
  21. {abstractintegratedmodule-0.8.3 → abstractintegratedmodule-0.8.4}/abstract_model_storage/target/release/build/target-lexicon-43eb95a0588bf457/out/host.rs +0 -0
  22. {abstractintegratedmodule-0.8.3 → abstractintegratedmodule-0.8.4}/pyproject.toml +0 -0
  23. {abstractintegratedmodule-0.8.3 → abstractintegratedmodule-0.8.4}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: AbstractIntegratedModule
3
- Version: 0.8.3
3
+ Version: 0.8.4
4
4
  Summary: Library for Advanced Integrated Non-LLM AI Models - Optimized Backend Framework For Non-LLM AI Agent
5
5
  Author: Micro-Novelty
6
6
  Author-email: hernikpuspita5@gmail.com
@@ -42,7 +42,7 @@ https://github.com/Micro-Novelty/IntegratedPipeline-Specialized-Non-LLM-AI-Agent
42
42
  #### Note: The README here you are reading is a direct copy from my README Repository, to download the necessary files, you can visit my Repository with the provided link above.
43
43
 
44
44
  ### Library Short Description:
45
- - Development Stage: 0.8.3 Official Release.
45
+ - Development Stage: 0.8.4 Official Release.
46
46
  - Maintainer: Micro-Novelty.
47
47
  - library Source-Code is Open-sourced on github.
48
48
  - Purpose: Specifically Designed for providing Non-LLM AI Agent Framework for edge Devices, Optimized for ARM64 architecture.
@@ -80,17 +80,17 @@ https://github.com/Micro-Novelty/IntegratedPipeline-Specialized-Non-LLM-AI-Agent
80
80
  - Transformer Optimized using Cython, to reduce Memory overhead and Reduce CPU Usage, With Reduced Training Time.
81
81
  ______________
82
82
  - Changelog:
83
- - v0.8.3:
83
+ - v0.8.4:
84
84
  - [=] New features:
85
-
86
85
  - Added more robust inhomogenous shape handling for handling input_ids in Transformer and AccurateAnswerCache architecture.
86
+ - Added improvements for handling batch prediction responses, ensuring robust references and graceful conditions for edge cases.
87
87
  - Fixed P2P Vulnerabilities:
88
- - Empty allowed_ips in PRODUCTION/HARDENED mode now DENIES external IPs instead of allowing all
89
- - Startup validation warns about dangerous config combinations
90
- - Loopback (127.0.0.1) always permitted for local agent comms
91
- - DEVELOPMENT/STAGING retains allow-all behavior with explicit warning since local P2P testing requires it
92
- - pickle.loads() replaced by json.loads with utf-8 encoding order.
93
- - generate self signed cert fixes and added client.crt for fallback when users dont provide any SSL cert and key for both server and client.
88
+ - Empty allowed_ips in PRODUCTION/HARDENED mode now DENIES external IPs instead of allowing all
89
+ - Startup validation warns about dangerous config combinations
90
+ - Loopback (127.0.0.1) always permitted for local agent comms
91
+ - DEVELOPMENT/STAGING retains allow-all behavior with explicit warning since local P2P testing requires it
92
+ - pickle.loads() replaced by json.loads with utf-8 encoding order.
93
+ - generate self signed cert fixes and added client.crt for fallback when users dont provide any SSL cert and key for both server and client.
94
94
 
95
95
  ____________
96
96
  <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" />
@@ -11687,6 +11687,12 @@ class AccurateAnswerCache:
11687
11687
  flat_ids_a = self.pipeline._safe_to_2d_float(ids_a)
11688
11688
  flat_ids_b = self.pipeline._safe_to_2d_float(ids_b)
11689
11689
 
11690
+ if flat_ids_a.shape != flat_ids_b.shape:
11691
+ min_rows = min(flat_ids_a.shape[0], flat_ids_b.shape[0])
11692
+ min_cols = min(flat_ids_a.shape[1], flat_ids_b.shape[1])
11693
+ flat_ids_a = flat_ids_a[:min_rows, :min_cols]
11694
+ flat_ids_b = flat_ids_b[:min_rows, :min_cols]
11695
+
11690
11696
  return flat_ids_a, flat_ids_b
11691
11697
  except Exception as e:
11692
11698
  print(f'[!] cannot adapt indices shape due to: {e}')
@@ -11780,6 +11786,7 @@ class AccurateAnswerCache:
11780
11786
 
11781
11787
  if ids_a.shape != ids_b.shape:
11782
11788
  ids_a, ids_b = self._adapt_ids_shape(ids_a, ids_b)
11789
+
11783
11790
  min_len = min(len(ids_a), len(ids_b))
11784
11791
  if min_len > 0:
11785
11792
  seq_sim = float(np.mean(ids_a[:min_len] == ids_b[:min_len]))
@@ -13479,6 +13486,9 @@ class PipelineAsyncManager:
13479
13486
  try:
13480
13487
  attn_weights = None
13481
13488
  final_idx = None
13489
+ attn_weight_rate = None
13490
+ final_idx = None
13491
+
13482
13492
  reverse_label_map = {v: k for k, v in label_map.items()}
13483
13493
 
13484
13494
  if 'attn_weights' in self.pipeline.model2.cache:
@@ -13506,8 +13516,14 @@ class PipelineAsyncManager:
13506
13516
  result, chosen_label, confidence = self.advanced_prediction_method(
13507
13517
  self.prediction_manager, test_titles, label_map, rules,
13508
13518
  X=X, y=y, method='Transformer_included')
13509
- if result and 'index' in result[0]:
13510
- final_idx = result[0]['index']
13519
+
13520
+ try:
13521
+ if isinstance(result, list) and len(result) > 0:
13522
+ final_idx = result[0].get('index')
13523
+ elif isinstance(result, dict):
13524
+ final_idx = result.get('index')
13525
+ except (KeyError, IndexError):
13526
+ final_idx = None
13511
13527
 
13512
13528
  print(f'[=+=] Local single advanced Prediction result: {result}')
13513
13529
 
@@ -13529,7 +13545,10 @@ class PipelineAsyncManager:
13529
13545
  except IndexError:
13530
13546
  calibrated_probs = probs + (1.0 - attn_weight_rate) * confidence
13531
13547
  else:
13532
- calibrated_probs = probs + (1.0 - attn_weight_rate) * confidence
13548
+ try:
13549
+ calibrated_probs = probs + (1.0 - attn_weight_rate) * confidence
13550
+ except:
13551
+ calibrated_probs = calibrated_probs.copy()
13533
13552
 
13534
13553
  predicted_index = np.argmax(calibrated_probs) # Get index with highest probability
13535
13554
  predicted_label = reverse_label_map.get(predicted_index, f"class_{predicted_index}")
@@ -15328,7 +15347,7 @@ class ConsecutivePeerAgent:
15328
15347
 
15329
15348
  response = self._receive_message(sock)
15330
15349
 
15331
- print(f'[ConsecutivePeerAgent] Got Authentication response from peer: {response} ')
15350
+ print(f'[ConsecutivePeerAgent] Got Authentication response from peer!')
15332
15351
  if not response or response.get('status') != 'ok':
15333
15352
  sock.close()
15334
15353
  print('[ConsecutivePeerAgent] Socket is closed!')