lionagi 0.17.0__py3-none-any.whl → 0.17.2__py3-none-any.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.
- lionagi/__init__.py +24 -2
- lionagi/_types.py +47 -3
- lionagi/operations/flow.py +91 -0
- lionagi/protocols/graph/node.py +27 -8
- lionagi/service/__init__.py +19 -1
- lionagi/service/connections/api_calling.py +13 -4
- lionagi/service/types.py +19 -1
- lionagi/session/session.py +42 -0
- lionagi/version.py +1 -1
- {lionagi-0.17.0.dist-info → lionagi-0.17.2.dist-info}/METADATA +1 -1
- {lionagi-0.17.0.dist-info → lionagi-0.17.2.dist-info}/RECORD +13 -13
- {lionagi-0.17.0.dist-info → lionagi-0.17.2.dist-info}/WHEEL +0 -0
- {lionagi-0.17.0.dist-info → lionagi-0.17.2.dist-info}/licenses/LICENSE +0 -0
lionagi/__init__.py
CHANGED
@@ -6,9 +6,8 @@ import logging
|
|
6
6
|
|
7
7
|
from pydantic import BaseModel, Field
|
8
8
|
|
9
|
-
|
9
|
+
# Eager imports for commonly used components
|
10
10
|
from . import ln as ln
|
11
|
-
from .operations.builder import OperationGraphBuilder as Builder
|
12
11
|
from .operations.node import Operation
|
13
12
|
from .service.imodel import iModel
|
14
13
|
from .session.session import Branch, Session
|
@@ -17,6 +16,29 @@ from .version import __version__
|
|
17
16
|
logger = logging.getLogger(__name__)
|
18
17
|
logger.setLevel(logging.INFO)
|
19
18
|
|
19
|
+
# Module-level lazy loading cache
|
20
|
+
_lazy_imports = {}
|
21
|
+
|
22
|
+
|
23
|
+
def __getattr__(name: str):
|
24
|
+
"""Lazy loading for expensive imports."""
|
25
|
+
if name in _lazy_imports:
|
26
|
+
return _lazy_imports[name]
|
27
|
+
|
28
|
+
if name == "types":
|
29
|
+
from . import _types as types
|
30
|
+
|
31
|
+
_lazy_imports["types"] = types
|
32
|
+
return types
|
33
|
+
elif name == "Builder":
|
34
|
+
from .operations.builder import OperationGraphBuilder as Builder
|
35
|
+
|
36
|
+
_lazy_imports["Builder"] = Builder
|
37
|
+
return Builder
|
38
|
+
|
39
|
+
raise AttributeError(f"module '{__name__}' has no attribute '{name}'")
|
40
|
+
|
41
|
+
|
20
42
|
__all__ = (
|
21
43
|
"Session",
|
22
44
|
"Branch",
|
lionagi/_types.py
CHANGED
@@ -1,3 +1,47 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
1
|
+
# Lazy loading for heavy type imports to improve startup performance
|
2
|
+
_lazy_type_imports = {}
|
3
|
+
|
4
|
+
|
5
|
+
def __getattr__(name: str):
|
6
|
+
"""Lazy loading for type definitions."""
|
7
|
+
if name in _lazy_type_imports:
|
8
|
+
return _lazy_type_imports[name]
|
9
|
+
|
10
|
+
# Import from fields
|
11
|
+
try:
|
12
|
+
from .fields import __all__ as fields_all
|
13
|
+
|
14
|
+
if name in fields_all:
|
15
|
+
from . import fields
|
16
|
+
|
17
|
+
attr = getattr(fields, name)
|
18
|
+
_lazy_type_imports[name] = attr
|
19
|
+
return attr
|
20
|
+
except (ImportError, AttributeError):
|
21
|
+
pass
|
22
|
+
|
23
|
+
# Import from models
|
24
|
+
try:
|
25
|
+
from .models import __all__ as models_all
|
26
|
+
|
27
|
+
if name in models_all:
|
28
|
+
from . import models
|
29
|
+
|
30
|
+
attr = getattr(models, name)
|
31
|
+
_lazy_type_imports[name] = attr
|
32
|
+
return attr
|
33
|
+
except (ImportError, AttributeError):
|
34
|
+
pass
|
35
|
+
|
36
|
+
# Import from protocols.types
|
37
|
+
try:
|
38
|
+
from .protocols import types as protocol_types
|
39
|
+
|
40
|
+
if hasattr(protocol_types, name):
|
41
|
+
attr = getattr(protocol_types, name)
|
42
|
+
_lazy_type_imports[name] = attr
|
43
|
+
return attr
|
44
|
+
except (ImportError, AttributeError):
|
45
|
+
pass
|
46
|
+
|
47
|
+
raise AttributeError(f"module '{__name__}' has no attribute '{name}'")
|
lionagi/operations/flow.py
CHANGED
@@ -549,3 +549,94 @@ async def flow(
|
|
549
549
|
)
|
550
550
|
|
551
551
|
return await executor.execute()
|
552
|
+
|
553
|
+
|
554
|
+
def cleanup_flow_results(
|
555
|
+
result: dict[str, Any], keep_only: list[str] = None
|
556
|
+
) -> dict[str, Any]:
|
557
|
+
"""
|
558
|
+
Clean up flow execution results to reduce memory usage.
|
559
|
+
|
560
|
+
Args:
|
561
|
+
result: Flow execution result dictionary
|
562
|
+
keep_only: List of operation IDs to keep results for (optional)
|
563
|
+
|
564
|
+
Returns:
|
565
|
+
Modified result dictionary with reduced memory footprint
|
566
|
+
"""
|
567
|
+
if not isinstance(result, dict) or "operation_results" not in result:
|
568
|
+
return result
|
569
|
+
|
570
|
+
# If keep_only is specified, only keep those results
|
571
|
+
if keep_only is not None:
|
572
|
+
filtered_results = {
|
573
|
+
op_id: res
|
574
|
+
for op_id, res in result["operation_results"].items()
|
575
|
+
if op_id in keep_only
|
576
|
+
}
|
577
|
+
result["operation_results"] = filtered_results
|
578
|
+
# Update completed_operations to match
|
579
|
+
result["completed_operations"] = [
|
580
|
+
op_id
|
581
|
+
for op_id in result.get("completed_operations", [])
|
582
|
+
if op_id in keep_only
|
583
|
+
]
|
584
|
+
else:
|
585
|
+
# Clear all results to free memory
|
586
|
+
result["operation_results"] = {}
|
587
|
+
result["completed_operations"] = []
|
588
|
+
|
589
|
+
return result
|
590
|
+
|
591
|
+
|
592
|
+
async def flow_with_cleanup(
|
593
|
+
session: "Session",
|
594
|
+
graph: "Graph",
|
595
|
+
context: dict[str, Any] | None = None,
|
596
|
+
parallel: bool = True,
|
597
|
+
max_concurrent: int = 5,
|
598
|
+
verbose: bool = False,
|
599
|
+
branch: "Branch" = None,
|
600
|
+
alcall_params: AlcallParams | None = None,
|
601
|
+
cleanup_results: bool = True,
|
602
|
+
keep_only: list[str] = None,
|
603
|
+
) -> dict[str, Any]:
|
604
|
+
"""
|
605
|
+
Execute flow with automatic cleanup to prevent memory accumulation.
|
606
|
+
|
607
|
+
Args:
|
608
|
+
session: Session instance for branch management
|
609
|
+
graph: Operation graph to execute
|
610
|
+
context: Initial context data
|
611
|
+
parallel: Execute independent operations in parallel
|
612
|
+
max_concurrent: Max concurrent operations (1 if not parallel)
|
613
|
+
verbose: Enable verbose logging
|
614
|
+
branch: Default branch for operations
|
615
|
+
alcall_params: Parameters for async parallel call execution
|
616
|
+
cleanup_results: Whether to clean up operation results after execution
|
617
|
+
keep_only: List of operation IDs to keep results for (if cleanup_results=True)
|
618
|
+
|
619
|
+
Returns:
|
620
|
+
Execution results (potentially with cleaned up memory footprint)
|
621
|
+
"""
|
622
|
+
# Execute the flow normally
|
623
|
+
result = await flow(
|
624
|
+
session=session,
|
625
|
+
graph=graph,
|
626
|
+
context=context,
|
627
|
+
parallel=parallel,
|
628
|
+
max_concurrent=max_concurrent,
|
629
|
+
verbose=verbose,
|
630
|
+
branch=branch,
|
631
|
+
alcall_params=alcall_params,
|
632
|
+
)
|
633
|
+
|
634
|
+
# Clean up session memory
|
635
|
+
if hasattr(session, "cleanup_memory"):
|
636
|
+
session.cleanup_memory()
|
637
|
+
|
638
|
+
# Clean up results if requested
|
639
|
+
if cleanup_results:
|
640
|
+
result = cleanup_flow_results(result, keep_only=keep_only)
|
641
|
+
|
642
|
+
return result
|
lionagi/protocols/graph/node.py
CHANGED
@@ -62,6 +62,10 @@ class Node(Element, Relational, AsyncAdaptable, Adaptable):
|
|
62
62
|
async def adapt_to_async(
|
63
63
|
self, obj_key: str, many=False, **kwargs: Any
|
64
64
|
) -> Any:
|
65
|
+
# Only register postgres adapter if this specific operation needs it
|
66
|
+
if obj_key == "lionagi_async_pg":
|
67
|
+
_ensure_postgres_adapter()
|
68
|
+
|
65
69
|
kwargs["adapt_meth"] = "to_dict"
|
66
70
|
kwargs["adapt_kw"] = {"mode": "db"}
|
67
71
|
return await super().adapt_to_async(
|
@@ -76,6 +80,10 @@ class Node(Element, Relational, AsyncAdaptable, Adaptable):
|
|
76
80
|
many=False,
|
77
81
|
**kwargs: Any,
|
78
82
|
) -> Node:
|
83
|
+
# Only register postgres adapter if this specific operation needs it
|
84
|
+
if obj_key == "lionagi_async_pg":
|
85
|
+
_ensure_postgres_adapter()
|
86
|
+
|
79
87
|
kwargs["adapt_meth"] = "from_dict"
|
80
88
|
return await super().adapt_from_async(
|
81
89
|
obj, obj_key=obj_key, many=many, **kwargs
|
@@ -122,20 +130,31 @@ class Node(Element, Relational, AsyncAdaptable, Adaptable):
|
|
122
130
|
return value
|
123
131
|
|
124
132
|
|
133
|
+
def _ensure_postgres_adapter():
|
134
|
+
"""Lazy registration of postgres adapter when needed"""
|
135
|
+
if not hasattr(Node, "_postgres_adapter_checked"):
|
136
|
+
from lionagi.adapters._utils import check_async_postgres_available
|
137
|
+
|
138
|
+
if check_async_postgres_available() is True:
|
139
|
+
try:
|
140
|
+
from lionagi.adapters.async_postgres_adapter import (
|
141
|
+
LionAGIAsyncPostgresAdapter,
|
142
|
+
)
|
143
|
+
|
144
|
+
Node.register_async_adapter(LionAGIAsyncPostgresAdapter)
|
145
|
+
except ImportError:
|
146
|
+
pass # Graceful degradation if postgres dependencies missing
|
147
|
+
Node._postgres_adapter_checked = True
|
148
|
+
|
149
|
+
|
125
150
|
if not _ADAPATER_REGISTERED:
|
126
151
|
from pydapter.adapters import JsonAdapter, TomlAdapter
|
127
152
|
|
128
153
|
Node.register_adapter(JsonAdapter)
|
129
154
|
Node.register_adapter(TomlAdapter)
|
130
155
|
|
131
|
-
|
132
|
-
|
133
|
-
if check_async_postgres_available() is True:
|
134
|
-
from lionagi.adapters.async_postgres_adapter import (
|
135
|
-
LionAGIAsyncPostgresAdapter,
|
136
|
-
)
|
137
|
-
|
138
|
-
Node.register_async_adapter(LionAGIAsyncPostgresAdapter)
|
156
|
+
# PostgreSQL adapter registration is now lazy - only loaded when needed
|
157
|
+
# Call _ensure_postgres_adapter() in methods that actually use async adapters
|
139
158
|
|
140
159
|
_ADAPATER_REGISTERED = True
|
141
160
|
|
lionagi/service/__init__.py
CHANGED
@@ -1,10 +1,28 @@
|
|
1
|
+
# Eager imports for core functionality
|
1
2
|
from .connections.api_calling import APICalling
|
2
3
|
from .connections.endpoint import Endpoint, EndpointConfig
|
3
4
|
from .hooks import *
|
4
5
|
from .imodel import iModel
|
5
6
|
from .manager import iModelManager
|
6
7
|
from .rate_limited_processor import RateLimitedAPIExecutor
|
7
|
-
|
8
|
+
|
9
|
+
# Lazy loading cache
|
10
|
+
_lazy_imports = {}
|
11
|
+
|
12
|
+
|
13
|
+
def __getattr__(name: str):
|
14
|
+
"""Lazy loading for heavy service imports."""
|
15
|
+
if name in _lazy_imports:
|
16
|
+
return _lazy_imports[name]
|
17
|
+
|
18
|
+
if name == "TokenCalculator":
|
19
|
+
from .token_calculator import TokenCalculator
|
20
|
+
|
21
|
+
_lazy_imports["TokenCalculator"] = TokenCalculator
|
22
|
+
return TokenCalculator
|
23
|
+
|
24
|
+
raise AttributeError(f"module '{__name__}' has no attribute '{name}'")
|
25
|
+
|
8
26
|
|
9
27
|
__all__ = (
|
10
28
|
"APICalling",
|
@@ -12,10 +12,17 @@ from typing_extensions import Self
|
|
12
12
|
from lionagi.protocols.generic.event import Event, EventStatus
|
13
13
|
from lionagi.protocols.types import Log
|
14
14
|
from lionagi.service.hooks import HookEvent, HookEventTypes, global_hook_logger
|
15
|
-
from lionagi.service.token_calculator import TokenCalculator
|
16
15
|
|
17
16
|
from .endpoint import Endpoint
|
18
17
|
|
18
|
+
|
19
|
+
# Lazy import for TokenCalculator
|
20
|
+
def _get_token_calculator():
|
21
|
+
from lionagi.service.token_calculator import TokenCalculator
|
22
|
+
|
23
|
+
return TokenCalculator
|
24
|
+
|
25
|
+
|
19
26
|
logger = logging.getLogger(__name__)
|
20
27
|
|
21
28
|
|
@@ -129,7 +136,7 @@ class APICalling(Event):
|
|
129
136
|
|
130
137
|
# Handle chat completions format
|
131
138
|
if "messages" in self.payload:
|
132
|
-
return
|
139
|
+
return _get_token_calculator().calculate_message_tokens(
|
133
140
|
self.payload["messages"], **self.payload
|
134
141
|
)
|
135
142
|
# Handle responses API format
|
@@ -150,12 +157,14 @@ class APICalling(Event):
|
|
150
157
|
messages.append(item)
|
151
158
|
else:
|
152
159
|
return None
|
153
|
-
return
|
160
|
+
return _get_token_calculator().calculate_message_tokens(
|
154
161
|
messages, **self.payload
|
155
162
|
)
|
156
163
|
# Handle embeddings endpoint
|
157
164
|
elif "embed" in self.endpoint.config.endpoint:
|
158
|
-
return
|
165
|
+
return _get_token_calculator().calculate_embed_token(
|
166
|
+
**self.payload
|
167
|
+
)
|
159
168
|
|
160
169
|
return None
|
161
170
|
|
lionagi/service/types.py
CHANGED
@@ -2,6 +2,7 @@
|
|
2
2
|
#
|
3
3
|
# SPDX-License-Identifier: Apache-2.0
|
4
4
|
|
5
|
+
# Eager imports for core functionality
|
5
6
|
from .connections.api_calling import APICalling
|
6
7
|
from .connections.endpoint import Endpoint, EndpointConfig
|
7
8
|
from .connections.providers.types import *
|
@@ -9,7 +10,24 @@ from .hooks import *
|
|
9
10
|
from .imodel import iModel
|
10
11
|
from .manager import iModelManager
|
11
12
|
from .rate_limited_processor import RateLimitedAPIExecutor
|
12
|
-
|
13
|
+
|
14
|
+
# Lazy loading cache
|
15
|
+
_lazy_imports = {}
|
16
|
+
|
17
|
+
|
18
|
+
def __getattr__(name: str):
|
19
|
+
"""Lazy loading for heavy service imports."""
|
20
|
+
if name in _lazy_imports:
|
21
|
+
return _lazy_imports[name]
|
22
|
+
|
23
|
+
if name == "TokenCalculator":
|
24
|
+
from .token_calculator import TokenCalculator
|
25
|
+
|
26
|
+
_lazy_imports["TokenCalculator"] = TokenCalculator
|
27
|
+
return TokenCalculator
|
28
|
+
|
29
|
+
raise AttributeError(f"module '{__name__}' has no attribute '{name}'")
|
30
|
+
|
13
31
|
|
14
32
|
__all__ = (
|
15
33
|
"APICalling",
|
lionagi/session/session.py
CHANGED
@@ -416,6 +416,48 @@ class Session(Node, Communicatable, Relational):
|
|
416
416
|
alcall_params=alcall_params,
|
417
417
|
)
|
418
418
|
|
419
|
+
def cleanup_memory(
|
420
|
+
self, clear_branches: bool = True, clear_mail: bool = True
|
421
|
+
):
|
422
|
+
"""
|
423
|
+
Clean up session memory to prevent memory accumulation.
|
424
|
+
|
425
|
+
Args:
|
426
|
+
clear_branches: Whether to clear branch logs and memory
|
427
|
+
clear_mail: Whether to clear mail transfer history
|
428
|
+
"""
|
429
|
+
if clear_branches and self.branches:
|
430
|
+
for branch in self.branches:
|
431
|
+
if hasattr(branch, "dump_logs"):
|
432
|
+
branch.dump_logs(clear=True)
|
433
|
+
|
434
|
+
if clear_mail and self.mail_transfer:
|
435
|
+
# Clear mail transfer history if available
|
436
|
+
if hasattr(self.mail_transfer, "clear"):
|
437
|
+
self.mail_transfer.clear()
|
438
|
+
|
439
|
+
async def acleanup_memory(
|
440
|
+
self, clear_branches: bool = True, clear_mail: bool = True
|
441
|
+
):
|
442
|
+
"""
|
443
|
+
Asynchronously clean up session memory to prevent memory accumulation.
|
444
|
+
|
445
|
+
Args:
|
446
|
+
clear_branches: Whether to clear branch logs and memory
|
447
|
+
clear_mail: Whether to clear mail transfer history
|
448
|
+
"""
|
449
|
+
if clear_branches and self.branches:
|
450
|
+
for branch in self.branches:
|
451
|
+
if hasattr(branch, "adump_logs"):
|
452
|
+
await branch.adump_logs(clear=True)
|
453
|
+
|
454
|
+
if clear_mail and self.mail_transfer:
|
455
|
+
# Clear mail transfer history if available
|
456
|
+
if hasattr(self.mail_transfer, "aclear"):
|
457
|
+
await self.mail_transfer.aclear()
|
458
|
+
elif hasattr(self.mail_transfer, "clear"):
|
459
|
+
self.mail_transfer.clear()
|
460
|
+
|
419
461
|
|
420
462
|
__all__ = ["Session"]
|
421
463
|
# File: autoos/session/session.py
|
lionagi/version.py
CHANGED
@@ -1 +1 @@
|
|
1
|
-
__version__ = "0.17.
|
1
|
+
__version__ = "0.17.2"
|
@@ -1,12 +1,12 @@
|
|
1
|
-
lionagi/__init__.py,sha256=
|
1
|
+
lionagi/__init__.py,sha256=KDyBBo2Ahdk44akAbUG7ZZATdZhVvl8WHEr6HXMC6vA,1196
|
2
2
|
lionagi/_class_registry.py,sha256=pfUO1DjFZIqr3OwnNMkFqL_fiEBrrf8-swkGmP_KDLE,3112
|
3
3
|
lionagi/_errors.py,sha256=ia_VWhPSyr5FIJLSdPpl04SrNOLI2skN40VC8ePmzeQ,3748
|
4
|
-
lionagi/_types.py,sha256=
|
4
|
+
lionagi/_types.py,sha256=COWRrmstmABGKKn-h_cKiAREGsMp_Ik49OdR4lSS3P8,1263
|
5
5
|
lionagi/config.py,sha256=D13nnjpgJKz_LlQrzaKKVefm4hqesz_dP9ROjWmGuLE,3811
|
6
6
|
lionagi/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
7
7
|
lionagi/settings.py,sha256=HDuKCEJCpc4HudKodBnhoQUGuTGhRHdlIFhbtf3VBtY,1633
|
8
8
|
lionagi/utils.py,sha256=pfAibR84sx-aPxGNPrdlHqUAf2OXoCBGRCMseMrzhi4,18046
|
9
|
-
lionagi/version.py,sha256=
|
9
|
+
lionagi/version.py,sha256=I5u6uLh7NsbyGkKLvVteW175Afe6HJt5UsjBZ28EGks,23
|
10
10
|
lionagi/adapters/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
11
11
|
lionagi/adapters/_utils.py,sha256=sniMG1LDDkwJNzUF2K32jv7rA6Y1QcohgyNclYsptzI,453
|
12
12
|
lionagi/adapters/async_postgres_adapter.py,sha256=2XlxYNPow78dFHIQs8W1oJ2zkVD5Udn3aynMBF9Nf3k,3498
|
@@ -71,7 +71,7 @@ lionagi/models/schema_model.py,sha256=ghRIM8aBNaToAknwNlhQKpuKXcwzyCw5pDE31bVKxs
|
|
71
71
|
lionagi/operations/__init__.py,sha256=DU9sIhtw1vPBVllZ1Fbum8GE3qC9yfyQtt6_8vyv_cA,444
|
72
72
|
lionagi/operations/_visualize_graph.py,sha256=F0KadgRthP-6-R-FPgvlwiiaiWH3ueO-rjSd1bzRUbE,8594
|
73
73
|
lionagi/operations/builder.py,sha256=c6OIBwIX2-V4oH7wRBQf4SEs38L9lHdSX1ODb7ETLuI,14722
|
74
|
-
lionagi/operations/flow.py,sha256=
|
74
|
+
lionagi/operations/flow.py,sha256=7mjyKCXN1GYNDxNMqjALr9j6vsgm8TC2Z4ZNpzzfUMU,25141
|
75
75
|
lionagi/operations/manager.py,sha256=YZr3VjPAZVVFd_bIjF1aoQqzzKZHNA1kcqefNi5QFFM,683
|
76
76
|
lionagi/operations/node.py,sha256=zntelS3kO6q4H6vpS2lpw3iNUTLR3a6I3dp07fdSGJs,3465
|
77
77
|
lionagi/operations/types.py,sha256=zBhTQ4od4yXo84_Osbed7Zqhnp-PA90mrjGsQSSCuzw,644
|
@@ -126,7 +126,7 @@ lionagi/protocols/generic/progression.py,sha256=HCV_EnQCFvjg6D7eF4ygGrZNQPEOtu75
|
|
126
126
|
lionagi/protocols/graph/__init__.py,sha256=UPu3OmUpjSgX2aBuBJUdG2fppGlfqAH96hU0qIMBMp0,253
|
127
127
|
lionagi/protocols/graph/edge.py,sha256=YxSGj4w_fG7khm-zpKduuK5fJzhJDx23JhU1dZp29d8,5241
|
128
128
|
lionagi/protocols/graph/graph.py,sha256=l-12vTRblpWS_M4Ae-NTZThdeioaQvmhCS83mjB2fe8,11159
|
129
|
-
lionagi/protocols/graph/node.py,sha256=
|
129
|
+
lionagi/protocols/graph/node.py,sha256=AtMw-Z88aW0YjOlN1g6cxmRrSSC3qyGV1MYqBg5hUrY,5305
|
130
130
|
lionagi/protocols/mail/__init__.py,sha256=5y5joOZzfFWERl75auAcNcKC3lImVJ5ZZGvvHZUFCJM,112
|
131
131
|
lionagi/protocols/mail/exchange.py,sha256=P1PcrFylIBeiQa8kox9H1qyJ4kjhUlbLiTUT8rs1OXg,7041
|
132
132
|
lionagi/protocols/mail/mail.py,sha256=RB5CUft_4J85H9nM9g6aRXomTaqKwF5xVjJacPAhoa8,1356
|
@@ -152,15 +152,15 @@ lionagi/protocols/messages/templates/tool_schemas.jinja2,sha256=ozIaSDCRjIAhLyA8
|
|
152
152
|
lionagi/protocols/operatives/__init__.py,sha256=5y5joOZzfFWERl75auAcNcKC3lImVJ5ZZGvvHZUFCJM,112
|
153
153
|
lionagi/protocols/operatives/operative.py,sha256=Y_prGR7aPQtO3ws91W_KkjJTVnb5lYkfwMKaEIN2FVU,13331
|
154
154
|
lionagi/protocols/operatives/step.py,sha256=uF92QO2KZiY3YR1cxhrbD844VFidOKfmeQn2Fv637iY,9280
|
155
|
-
lionagi/service/__init__.py,sha256=
|
155
|
+
lionagi/service/__init__.py,sha256=qcscXOKVQtDDQ7YV-_D9jcIABDkGaxAEsCKsBBtf4XE,992
|
156
156
|
lionagi/service/imodel.py,sha256=ya406sf42-KRrKN4TJJLtI6wsKeM5hAhWr7Hubg7W0E,16371
|
157
157
|
lionagi/service/manager.py,sha256=tN3p0kM7pg_CEs6wXK62_B_h49Q3nrU-9qniFhw2ABE,1164
|
158
158
|
lionagi/service/rate_limited_processor.py,sha256=h2_F71aVeBrgZ0a7ARS8-8NDaAHvfWrLykI5QcNuYbk,6099
|
159
159
|
lionagi/service/resilience.py,sha256=91RPFtQY4QyNga_nuSNLsbzNE26pXJMTAfLaQqVdvmg,18714
|
160
160
|
lionagi/service/token_calculator.py,sha256=piTidArzUkIMCtOLC_HBLoZNYZcENQywgeKM31bxezM,6457
|
161
|
-
lionagi/service/types.py,sha256=
|
161
|
+
lionagi/service/types.py,sha256=KxUM3m6LMPqIO3l1nNdaSJ8vt46ozOKWFZyI4LXBTRk,1532
|
162
162
|
lionagi/service/connections/__init__.py,sha256=yHQZ7OJpCftd6CStYR8inbxjJydYdmv9kCvbUBhJ2zU,362
|
163
|
-
lionagi/service/connections/api_calling.py,sha256=
|
163
|
+
lionagi/service/connections/api_calling.py,sha256=n_FA_Q8R7s0KsgsUE-obyVPB73UbOxTD2c_qpi9ngso,10110
|
164
164
|
lionagi/service/connections/endpoint.py,sha256=0r4-8NPyAvLNey09BBsUr5KGJCXchBmVZm2pCe3Nbq4,15165
|
165
165
|
lionagi/service/connections/endpoint_config.py,sha256=6sA06uCzriT6p0kFxhDCFH8N6V6MVp8ytlOw5ctBhDI,5169
|
166
166
|
lionagi/service/connections/header_factory.py,sha256=IYeTQQk7r8FXcdhmW7orCxHjNO-Nb1EOXhgNK7CAp-I,1821
|
@@ -189,13 +189,13 @@ lionagi/service/third_party/pplx_models.py,sha256=-EhyJgOWR6rzSv3zczUtk80X6c19p1
|
|
189
189
|
lionagi/session/__init__.py,sha256=kDypY6L3kGPnatAw7YNQAykgg-9MlIBnlhHExaXvt-c,202
|
190
190
|
lionagi/session/branch.py,sha256=Gz9QOhZ2e6UJtTTkqY4P1Oa0UnjXHwIJTP7YCpcbA9o,65064
|
191
191
|
lionagi/session/prompts.py,sha256=GPr0jibyAAqS3awDzGC8SoCL6aWJLLCCbXY0JUuxOC0,3170
|
192
|
-
lionagi/session/session.py,sha256=
|
192
|
+
lionagi/session/session.py,sha256=mPUUm-NG9UtUdn98UqIGRkxcZoFswrob70tVb_QZSf8,14536
|
193
193
|
lionagi/tools/__init__.py,sha256=5y5joOZzfFWERl75auAcNcKC3lImVJ5ZZGvvHZUFCJM,112
|
194
194
|
lionagi/tools/base.py,sha256=hEGnE4MD0CM4UqnF0xsDRKB0aM-pyrTFHl8utHhyJLU,1897
|
195
195
|
lionagi/tools/types.py,sha256=XtJLY0m-Yi_ZLWhm0KycayvqMCZd--HxfQ0x9vFUYDE,230
|
196
196
|
lionagi/tools/file/__init__.py,sha256=5y5joOZzfFWERl75auAcNcKC3lImVJ5ZZGvvHZUFCJM,112
|
197
197
|
lionagi/tools/file/reader.py,sha256=2YKgU3VKo76zfL_buDAUQJoPLC56f6WJ4_mdJjlMDIM,9509
|
198
|
-
lionagi-0.17.
|
199
|
-
lionagi-0.17.
|
200
|
-
lionagi-0.17.
|
201
|
-
lionagi-0.17.
|
198
|
+
lionagi-0.17.2.dist-info/METADATA,sha256=AXGNj_mj3gEEDpn7gAtSO5t7W1dkhW_8LVbfSxfbP7A,22674
|
199
|
+
lionagi-0.17.2.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
200
|
+
lionagi-0.17.2.dist-info/licenses/LICENSE,sha256=VXFWsdoN5AAknBCgFqQNgPWYx7OPp-PFEP961zGdOjc,11288
|
201
|
+
lionagi-0.17.2.dist-info/RECORD,,
|
File without changes
|
File without changes
|