lionagi 0.7.5__py3-none-any.whl → 0.7.6__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/operations/operate/operate.py +13 -2
- lionagi/operatives/instruct/base.py +2 -0
- lionagi/operatives/instruct/instruct.py +97 -49
- lionagi/operatives/instruct/prompts.py +2 -0
- lionagi/operatives/instruct/reason.py +33 -9
- lionagi/session/branch.py +93 -6
- lionagi/version.py +1 -1
- {lionagi-0.7.5.dist-info → lionagi-0.7.6.dist-info}/METADATA +2 -1
- {lionagi-0.7.5.dist-info → lionagi-0.7.6.dist-info}/RECORD +11 -11
- {lionagi-0.7.5.dist-info → lionagi-0.7.6.dist-info}/WHEEL +0 -0
- {lionagi-0.7.5.dist-info → lionagi-0.7.6.dist-info}/licenses/LICENSE +0 -0
@@ -47,6 +47,9 @@ async def operate(
|
|
47
47
|
actions: bool = False,
|
48
48
|
reason: bool = False,
|
49
49
|
action_kwargs: dict = None,
|
50
|
+
action_strategy: Literal[
|
51
|
+
"sequential", "concurrent", "batch"
|
52
|
+
] = "concurrent",
|
50
53
|
field_models: list[FieldModel] = None,
|
51
54
|
exclude_fields: list | dict | None = None,
|
52
55
|
request_params: ModelParams = None,
|
@@ -97,6 +100,8 @@ async def operate(
|
|
97
100
|
instruct.reason = True
|
98
101
|
if actions:
|
99
102
|
instruct.actions = True
|
103
|
+
if action_strategy:
|
104
|
+
instruct.action_strategy = action_strategy
|
100
105
|
|
101
106
|
# 1) Create or update the Operative
|
102
107
|
operative = Step.request_operative(
|
@@ -178,9 +183,15 @@ async def operate(
|
|
178
183
|
getattr(response_model, "action_required", None) is True
|
179
184
|
and getattr(response_model, "action_requests", None) is not None
|
180
185
|
):
|
186
|
+
action_kwargs = action_kwargs or {}
|
187
|
+
action_kwargs["strategy"] = (
|
188
|
+
instruct.action_strategy
|
189
|
+
if instruct.action_strategy
|
190
|
+
else action_kwargs.get("strategy", "concurrent")
|
191
|
+
)
|
192
|
+
|
181
193
|
action_response_models = await branch.act(
|
182
|
-
response_model.action_requests,
|
183
|
-
**(action_kwargs or {}),
|
194
|
+
response_model.action_requests, **action_kwargs
|
184
195
|
)
|
185
196
|
# Possibly refine the operative with the tool outputs
|
186
197
|
operative = Step.respond_operative(
|
@@ -2,26 +2,23 @@
|
|
2
2
|
#
|
3
3
|
# SPDX-License-Identifier: Apache-2.0
|
4
4
|
|
5
|
-
from typing import Any, ClassVar
|
5
|
+
from typing import Any, ClassVar, Literal
|
6
6
|
|
7
|
-
from pydantic import JsonValue, field_validator
|
7
|
+
from pydantic import Field, JsonValue, field_validator
|
8
8
|
|
9
|
-
from lionagi.
|
9
|
+
from lionagi.libs.validate.common_field_validators import (
|
10
|
+
validate_boolean_field,
|
11
|
+
validate_nullable_jsonvalue_field,
|
12
|
+
)
|
13
|
+
from lionagi.utils import HashableModel, to_num
|
10
14
|
|
11
15
|
from ..models.field_model import FieldModel
|
12
|
-
from .base import (
|
13
|
-
ACTIONS_FIELD,
|
14
|
-
CONTEXT_FIELD,
|
15
|
-
GUIDANCE_FIELD,
|
16
|
-
INSTRUCTION_FIELD,
|
17
|
-
REASON_FIELD,
|
18
|
-
)
|
19
16
|
|
20
17
|
__all__ = (
|
21
18
|
"Instruct",
|
22
19
|
"InstructResponse",
|
23
20
|
"INSTRUCT_FIELD",
|
24
|
-
"
|
21
|
+
"LIST_INSTRUCT_FIELD",
|
25
22
|
)
|
26
23
|
|
27
24
|
|
@@ -40,50 +37,101 @@ class Instruct(HashableModel):
|
|
40
37
|
"operative",
|
41
38
|
"reason",
|
42
39
|
"actions",
|
40
|
+
"action_strategy",
|
41
|
+
"batch_size",
|
43
42
|
"request_params",
|
44
43
|
"response_params",
|
45
44
|
]
|
46
|
-
instruction: JsonValue | None =
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
45
|
+
instruction: JsonValue | None = Field(
|
46
|
+
None,
|
47
|
+
title="Primary Instruction",
|
48
|
+
description=(
|
49
|
+
"A clear, actionable task definition. Specify:\n"
|
50
|
+
"1) The primary goal or objective\n"
|
51
|
+
"2) Key success criteria or constraints\n"
|
52
|
+
"\n"
|
53
|
+
"Guidelines:\n"
|
54
|
+
"- Start with a direct action verb (e.g., 'Analyze', 'Generate', 'Create')\n"
|
55
|
+
"- Include scope, boundaries, or constraints\n"
|
56
|
+
"- Provide success criteria if relevant\n"
|
57
|
+
"- For complex tasks, break them into logical steps"
|
58
|
+
),
|
59
|
+
)
|
60
|
+
guidance: JsonValue | None = Field(
|
61
|
+
None,
|
62
|
+
title="Guidance",
|
63
|
+
description=(
|
64
|
+
"Strategic direction and constraints for executing the task. "
|
65
|
+
"Include:\n"
|
66
|
+
"1) Preferred methods or frameworks\n"
|
67
|
+
"2) Quality benchmarks (e.g., speed, clarity)\n"
|
68
|
+
"3) Resource or environmental constraints\n"
|
69
|
+
"4) Relevant compliance or standards\n"
|
70
|
+
"Use None if no special guidance."
|
71
|
+
),
|
72
|
+
)
|
73
|
+
context: JsonValue | None = Field(
|
74
|
+
None,
|
75
|
+
description=(
|
76
|
+
"Background information and current-state data needed for the task. "
|
77
|
+
"Should be:\n"
|
78
|
+
"1) Directly relevant\n"
|
79
|
+
"2) Sufficient to perform the task\n"
|
80
|
+
"3) Free of extraneous detail\n"
|
81
|
+
"Include environment, prior outcomes, system states, or dependencies. "
|
82
|
+
"Use None if no additional context is needed."
|
83
|
+
),
|
84
|
+
)
|
85
|
+
reason: bool | None = Field(
|
86
|
+
None,
|
87
|
+
description=(
|
88
|
+
"Include a thoughtful explanation of decisions, trade-offs, "
|
89
|
+
"and insights. Encourage deeper introspection on why certain "
|
90
|
+
"choices were made, potential alternatives, and how confidence "
|
91
|
+
"was shaped. If not needed, set to None."
|
92
|
+
),
|
93
|
+
)
|
94
|
+
actions: bool | None = Field(
|
95
|
+
None,
|
96
|
+
description=(
|
97
|
+
"Controls execution mode. "
|
98
|
+
"True: Execute specified actions. "
|
99
|
+
"False: Analysis/recommendations only. "
|
100
|
+
"None: Contextual execution."
|
101
|
+
),
|
102
|
+
)
|
103
|
+
action_strategy: Literal["batch", "sequential", "concurrent"] | None = (
|
104
|
+
Field(
|
105
|
+
None,
|
106
|
+
description="Action strategy to use for executing actions. Default "
|
107
|
+
"is 'concurrent'. Only provide for if actions are enabled.",
|
108
|
+
)
|
109
|
+
)
|
110
|
+
batch_size: int | None = Field(
|
111
|
+
None,
|
112
|
+
description="Batch size for executing actions. Only provide for 'batch' strategy.",
|
113
|
+
)
|
114
|
+
|
115
|
+
@field_validator("instruction", "guidance", "context", mode="before")
|
53
116
|
def _validate_instruction(cls, v):
|
54
|
-
|
55
|
-
|
56
|
-
Args:
|
57
|
-
v: The value to validate.
|
58
|
-
|
59
|
-
Returns:
|
60
|
-
JsonValue | None: The validated instruction value.
|
61
|
-
"""
|
62
|
-
return INSTRUCTION_FIELD.validator(cls, v)
|
117
|
+
return validate_nullable_jsonvalue_field(cls, v)
|
63
118
|
|
64
|
-
@field_validator("reason",
|
119
|
+
@field_validator("reason", "actions", mode="before")
|
65
120
|
def _validate_reason(cls, v):
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
Args:
|
81
|
-
v: The value to validate.
|
82
|
-
|
83
|
-
Returns:
|
84
|
-
bool | None: The validated boolean value.
|
85
|
-
"""
|
86
|
-
return ACTIONS_FIELD.validator(cls, v)
|
121
|
+
return validate_boolean_field(cls, v)
|
122
|
+
|
123
|
+
@field_validator("action_strategy", mode="before")
|
124
|
+
def _validate_action_strategy(cls, v):
|
125
|
+
if v not in ["batch", "sequential", "concurrent"]:
|
126
|
+
return "concurrent"
|
127
|
+
return v
|
128
|
+
|
129
|
+
@field_validator("batch_size", mode="before")
|
130
|
+
def _validate_batch_size(cls, v):
|
131
|
+
try:
|
132
|
+
return to_num(v, num_type=int)
|
133
|
+
except Exception:
|
134
|
+
return None
|
87
135
|
|
88
136
|
|
89
137
|
INSTRUCT_FIELD = FieldModel(
|
@@ -2,13 +2,19 @@
|
|
2
2
|
#
|
3
3
|
# SPDX-License-Identifier: Apache-2.0
|
4
4
|
|
5
|
-
from pydantic import BaseModel, field_validator
|
5
|
+
from pydantic import BaseModel, Field, field_validator
|
6
6
|
|
7
7
|
from lionagi.utils import to_num
|
8
8
|
|
9
9
|
from ..models.field_model import FieldModel
|
10
10
|
|
11
|
+
__all__ = (
|
12
|
+
"Reason",
|
13
|
+
"REASON_FIELD",
|
14
|
+
)
|
15
|
+
|
11
16
|
|
17
|
+
# deprecated
|
12
18
|
def validate_confidence_score(cls, value) -> float:
|
13
19
|
try:
|
14
20
|
return to_num(
|
@@ -22,6 +28,7 @@ def validate_confidence_score(cls, value) -> float:
|
|
22
28
|
return -1
|
23
29
|
|
24
30
|
|
31
|
+
# deprecated
|
25
32
|
confidence_description = (
|
26
33
|
"Numeric confidence score (0.0 to 1.0, up to three decimals) indicating "
|
27
34
|
"how well you've met user expectations. Use this guide:\n"
|
@@ -31,6 +38,7 @@ confidence_description = (
|
|
31
38
|
" • 0.0-0.5: Off track"
|
32
39
|
)
|
33
40
|
|
41
|
+
# deprecated
|
34
42
|
CONFIDENCE_SCORE_FIELD = FieldModel(
|
35
43
|
name="confidence_score",
|
36
44
|
annotation=float | None,
|
@@ -47,13 +55,32 @@ class Reason(BaseModel):
|
|
47
55
|
|
48
56
|
title: str | None = None
|
49
57
|
content: str | None = None
|
50
|
-
confidence_score: float | None =
|
51
|
-
|
52
|
-
|
53
|
-
|
58
|
+
confidence_score: float | None = Field(
|
59
|
+
None,
|
60
|
+
title="Confidence Score",
|
61
|
+
description=(
|
62
|
+
"Numeric confidence score (0.0 to 1.0, up to three decimals) indicating "
|
63
|
+
"how well you've met user expectations. Use this guide:\n"
|
64
|
+
" • 1.0: Highly confident\n"
|
65
|
+
" • 0.8-1.0: Reasonably sure\n"
|
66
|
+
" • 0.5-0.8: Re-check or refine\n"
|
67
|
+
" • 0.0-0.5: Off track"
|
68
|
+
),
|
69
|
+
examples=[0.821, 0.257, 0.923, 0.439],
|
54
70
|
)
|
71
|
+
|
72
|
+
@field_validator("confidence_score", mode="before")
|
55
73
|
def _validate_confidence(cls, v):
|
56
|
-
|
74
|
+
try:
|
75
|
+
return to_num(
|
76
|
+
v,
|
77
|
+
upper_bound=1,
|
78
|
+
lower_bound=0,
|
79
|
+
num_type=float,
|
80
|
+
precision=3,
|
81
|
+
)
|
82
|
+
except Exception:
|
83
|
+
return -1
|
57
84
|
|
58
85
|
|
59
86
|
REASON_FIELD = FieldModel(
|
@@ -62,6 +89,3 @@ REASON_FIELD = FieldModel(
|
|
62
89
|
title="Reason",
|
63
90
|
description="**Provide a concise reason for the decision made.**",
|
64
91
|
)
|
65
|
-
|
66
|
-
|
67
|
-
__all__ = ["Reason"]
|
lionagi/session/branch.py
CHANGED
@@ -47,7 +47,7 @@ from lionagi.protocols.types import (
|
|
47
47
|
)
|
48
48
|
from lionagi.service.types import iModel, iModelManager
|
49
49
|
from lionagi.settings import Settings
|
50
|
-
from lionagi.utils import UNDEFINED, alcall, copy
|
50
|
+
from lionagi.utils import UNDEFINED, alcall, bcall, copy
|
51
51
|
|
52
52
|
if TYPE_CHECKING:
|
53
53
|
# Forward references for type checking (e.g., in operations or extended modules)
|
@@ -1103,6 +1103,8 @@ class Branch(Element, Communicatable, Relational):
|
|
1103
1103
|
self,
|
1104
1104
|
action_request: list | ActionRequest | BaseModel | dict,
|
1105
1105
|
*,
|
1106
|
+
strategy: Literal["concurrent", "sequential", "batch"] = "concurrent",
|
1107
|
+
batch_size: int = None,
|
1106
1108
|
suppress_errors: bool = True,
|
1107
1109
|
sanitize_input: bool = False,
|
1108
1110
|
unique_input: bool = False,
|
@@ -1119,7 +1121,7 @@ class Branch(Element, Communicatable, Relational):
|
|
1119
1121
|
dropna: bool = True,
|
1120
1122
|
unique_output: bool = False,
|
1121
1123
|
flatten_tuple_set: bool = False,
|
1122
|
-
) -> list[ActionResponse]
|
1124
|
+
) -> list[ActionResponse]:
|
1123
1125
|
"""
|
1124
1126
|
Public, potentially batched, asynchronous interface to run one or multiple action requests.
|
1125
1127
|
|
@@ -1164,10 +1166,95 @@ class Branch(Element, Communicatable, Relational):
|
|
1164
1166
|
Any:
|
1165
1167
|
The result or results from the invoked tool(s).
|
1166
1168
|
"""
|
1167
|
-
|
1168
|
-
|
1169
|
-
|
1170
|
-
|
1169
|
+
if batch_size and not strategy == "batch":
|
1170
|
+
raise ValueError(
|
1171
|
+
"Batch size is only applicable for 'batch' strategy."
|
1172
|
+
)
|
1173
|
+
|
1174
|
+
match strategy:
|
1175
|
+
case "concurrent":
|
1176
|
+
return await self._concurrent_act(
|
1177
|
+
action_request,
|
1178
|
+
suppress_errors=suppress_errors,
|
1179
|
+
sanitize_input=sanitize_input,
|
1180
|
+
unique_input=unique_input,
|
1181
|
+
num_retries=num_retries,
|
1182
|
+
initial_delay=initial_delay,
|
1183
|
+
retry_delay=retry_delay,
|
1184
|
+
backoff_factor=backoff_factor,
|
1185
|
+
retry_default=retry_default,
|
1186
|
+
retry_timeout=retry_timeout,
|
1187
|
+
retry_timing=retry_timing,
|
1188
|
+
max_concurrent=max_concurrent,
|
1189
|
+
throttle_period=throttle_period,
|
1190
|
+
flatten=flatten,
|
1191
|
+
dropna=dropna,
|
1192
|
+
unique_output=unique_output,
|
1193
|
+
flatten_tuple_set=flatten_tuple_set,
|
1194
|
+
)
|
1195
|
+
case "sequential":
|
1196
|
+
return await self._sequential_act(
|
1197
|
+
action_request,
|
1198
|
+
suppress_errors=suppress_errors,
|
1199
|
+
)
|
1200
|
+
case "batch":
|
1201
|
+
return await self._batch_act(
|
1202
|
+
action_request,
|
1203
|
+
batch_size=batch_size or 1,
|
1204
|
+
max_concurrent=max_concurrent,
|
1205
|
+
suppress_errors=suppress_errors,
|
1206
|
+
sanitize_input=sanitize_input,
|
1207
|
+
unique_input=unique_input,
|
1208
|
+
num_retries=num_retries,
|
1209
|
+
initial_delay=initial_delay,
|
1210
|
+
retry_delay=retry_delay,
|
1211
|
+
backoff_factor=backoff_factor,
|
1212
|
+
retry_default=retry_default,
|
1213
|
+
retry_timeout=retry_timeout,
|
1214
|
+
retry_timing=retry_timing,
|
1215
|
+
throttle_period=throttle_period,
|
1216
|
+
flatten=flatten,
|
1217
|
+
dropna=dropna,
|
1218
|
+
unique_output=unique_output,
|
1219
|
+
flatten_tuple_set=flatten_tuple_set,
|
1220
|
+
)
|
1221
|
+
|
1222
|
+
async def _concurrent_act(
|
1223
|
+
self,
|
1224
|
+
action_request: ActionRequest | BaseModel | dict,
|
1225
|
+
**kwargs,
|
1226
|
+
) -> list:
|
1227
|
+
return await alcall(action_request, self._act, **kwargs)
|
1228
|
+
|
1229
|
+
async def _sequential_act(
|
1230
|
+
self,
|
1231
|
+
action_request: ActionRequest | BaseModel | dict,
|
1232
|
+
suppress_errors: bool = True,
|
1233
|
+
) -> list:
|
1234
|
+
action_request = (
|
1235
|
+
action_request
|
1236
|
+
if isinstance(action_request, list)
|
1237
|
+
else [action_request]
|
1238
|
+
)
|
1239
|
+
results = []
|
1240
|
+
for req in action_request:
|
1241
|
+
results.append(
|
1242
|
+
await self._act(req, suppress_errors=suppress_errors)
|
1243
|
+
)
|
1244
|
+
return results
|
1245
|
+
|
1246
|
+
async def _batch_act(
|
1247
|
+
self,
|
1248
|
+
action_request: list[ActionRequest | BaseModel | dict],
|
1249
|
+
batch_size: int = None,
|
1250
|
+
**kwargs,
|
1251
|
+
) -> list:
|
1252
|
+
result = []
|
1253
|
+
async for i in await bcall(
|
1254
|
+
action_request, self._act, batch_size=batch_size, **kwargs
|
1255
|
+
):
|
1256
|
+
result.extend(i)
|
1257
|
+
return result
|
1171
1258
|
|
1172
1259
|
async def translate(
|
1173
1260
|
self,
|
lionagi/version.py
CHANGED
@@ -1 +1 @@
|
|
1
|
-
__version__ = "0.7.
|
1
|
+
__version__ = "0.7.6"
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: lionagi
|
3
|
-
Version: 0.7.
|
3
|
+
Version: 0.7.6
|
4
4
|
Summary: An Intelligence Operating System.
|
5
5
|
Author-email: HaiyangLi <quantocean.li@gmail.com>
|
6
6
|
License: Apache License
|
@@ -214,6 +214,7 @@ Classifier: License :: OSI Approved :: Apache Software License
|
|
214
214
|
Classifier: Operating System :: OS Independent
|
215
215
|
Classifier: Programming Language :: Python :: 3
|
216
216
|
Classifier: Programming Language :: Python :: 3 :: Only
|
217
|
+
Classifier: Programming Language :: Python :: 3.10
|
217
218
|
Classifier: Programming Language :: Python :: 3.11
|
218
219
|
Classifier: Programming Language :: Python :: 3.12
|
219
220
|
Classifier: Programming Language :: Python :: 3.13
|
@@ -4,7 +4,7 @@ lionagi/_errors.py,sha256=wNKdnVQvE_CHEstK7htrrj334RA_vbGcIds-3pUiRkc,455
|
|
4
4
|
lionagi/_types.py,sha256=9g7iytvSj3UjZxD-jL06_fxuNfgZyWT3Qnp0XYp1wQU,63
|
5
5
|
lionagi/settings.py,sha256=k9zRJXv57TveyfHO3Vr9VGiKrSwlRUUVKt5zf6v9RU4,1627
|
6
6
|
lionagi/utils.py,sha256=X12H-O8Lx9tUOKGtjpoxHjRsKYHRqty0qD9i2W12kpI,73121
|
7
|
-
lionagi/version.py,sha256=
|
7
|
+
lionagi/version.py,sha256=wu65dmVM9fKR1rBHH263ls8Ca2FZzb0ejYcrP_Ld0iY,22
|
8
8
|
lionagi/libs/__init__.py,sha256=v8vNyJVIVj8_Oz9RJdVe6ZKUQMYTgDh1VQpnr1KdLaw,112
|
9
9
|
lionagi/libs/parse.py,sha256=tpEbmIRGuHhLCJlUlm6fjmqm_Z6XJLAXGNFHNuk422I,1011
|
10
10
|
lionagi/libs/file/__init__.py,sha256=v8vNyJVIVj8_Oz9RJdVe6ZKUQMYTgDh1VQpnr1KdLaw,112
|
@@ -64,7 +64,7 @@ lionagi/operations/instruct/instruct.py,sha256=CYICzWvmgALtSPIetfF3csx6WDsCuiu4N
|
|
64
64
|
lionagi/operations/interpret/__init__.py,sha256=v8vNyJVIVj8_Oz9RJdVe6ZKUQMYTgDh1VQpnr1KdLaw,112
|
65
65
|
lionagi/operations/interpret/interpret.py,sha256=EtgXTeOezEPR03HSUVz8PGK-xf8p2nXoUMUhFkAntK0,1081
|
66
66
|
lionagi/operations/operate/__init__.py,sha256=v8vNyJVIVj8_Oz9RJdVe6ZKUQMYTgDh1VQpnr1KdLaw,112
|
67
|
-
lionagi/operations/operate/operate.py,sha256=
|
67
|
+
lionagi/operations/operate/operate.py,sha256=kzH7R4J3O-1Ue-PYqIoEdrXHrkYYQVfHa6gSC4Km_sc,7003
|
68
68
|
lionagi/operations/parse/__init__.py,sha256=v8vNyJVIVj8_Oz9RJdVe6ZKUQMYTgDh1VQpnr1KdLaw,112
|
69
69
|
lionagi/operations/parse/parse.py,sha256=LpF6LVAvCVoE8n63BkhSxXSHYgSx7CNkN7yXUwaNpQo,3003
|
70
70
|
lionagi/operations/plan/__init__.py,sha256=AFkAmOJBTqPlYuqFRRn7rCvIw3CGh9XXH_22cNWbfig,156
|
@@ -92,12 +92,12 @@ lionagi/operatives/forms/form.py,sha256=5z5VfDqcKVFYvhDVZZQwMDczSof2lSx_VxQo32jl
|
|
92
92
|
lionagi/operatives/forms/report.py,sha256=KUapeSAB67ElyU1fl4DxtfvobKGnpDPetso6cT6GT4E,11167
|
93
93
|
lionagi/operatives/forms/utils.py,sha256=sCjYRy-EJIh1py9qIb04LVgALy2YiPHbhXhNyDNwvoQ,701
|
94
94
|
lionagi/operatives/instruct/__init__.py,sha256=v8vNyJVIVj8_Oz9RJdVe6ZKUQMYTgDh1VQpnr1KdLaw,112
|
95
|
-
lionagi/operatives/instruct/base.py,sha256=
|
96
|
-
lionagi/operatives/instruct/instruct.py,sha256=
|
95
|
+
lionagi/operatives/instruct/base.py,sha256=Vw9u3BGzjNRGcPfW1ROr2uCZcZsjrm4WU6491P6ecCI,1895
|
96
|
+
lionagi/operatives/instruct/instruct.py,sha256=vzIQks5gSXJQzdEE_l4PgJPw2ZUZPbAfZ-cDt6CPmeQ,4794
|
97
97
|
lionagi/operatives/instruct/instruct_collection.py,sha256=Fj7R7TR33PdkqzbWhev52jKeIMmEQ1q227Bu4zsrHiA,1449
|
98
98
|
lionagi/operatives/instruct/node.py,sha256=0g7g2jsLO8L8VlD-L1mFmjcFTwWy39moWCDtLNmNEFY,317
|
99
|
-
lionagi/operatives/instruct/prompts.py,sha256=
|
100
|
-
lionagi/operatives/instruct/reason.py,sha256=
|
99
|
+
lionagi/operatives/instruct/prompts.py,sha256=RG8rB7Y0J17aTHTb9kTTHxltVjgRAuC4vjM9B1_hTuQ,1747
|
100
|
+
lionagi/operatives/instruct/reason.py,sha256=mdCMBO3YSWYncXU_B1bYuZqpkj4pfUMsxsz9vXXAMw4,2341
|
101
101
|
lionagi/operatives/models/__init__.py,sha256=v8vNyJVIVj8_Oz9RJdVe6ZKUQMYTgDh1VQpnr1KdLaw,112
|
102
102
|
lionagi/operatives/models/field_model.py,sha256=yfRRBbfQ5llPGIt_QkyLrIrmNwNQ14aUXA-llHeER4M,6083
|
103
103
|
lionagi/operatives/models/model_params.py,sha256=UnugiT0GDFzB9igYeCvN6pcq01bqTpZuAHom0yCBSdk,9653
|
@@ -181,9 +181,9 @@ lionagi/service/providers/openrouter_/chat_completions.py,sha256=MRf4ZbMCgzNIL4g
|
|
181
181
|
lionagi/service/providers/perplexity_/__init__.py,sha256=v8vNyJVIVj8_Oz9RJdVe6ZKUQMYTgDh1VQpnr1KdLaw,112
|
182
182
|
lionagi/service/providers/perplexity_/chat_completions.py,sha256=SsDbrtXwQsR4Yu2VMU43KfeS86QWI8UTNhDth5lNWNs,1055
|
183
183
|
lionagi/session/__init__.py,sha256=v8vNyJVIVj8_Oz9RJdVe6ZKUQMYTgDh1VQpnr1KdLaw,112
|
184
|
-
lionagi/session/branch.py,sha256=
|
184
|
+
lionagi/session/branch.py,sha256=JvErd9YUuGdWyLj37rtKOteSqV0ltn9lg0R2G8GO40c,62539
|
185
185
|
lionagi/session/session.py,sha256=po6C7PnM0iu_ISHUo4PBzzQ61HFOgcsAUfPoO--eLak,8987
|
186
|
-
lionagi-0.7.
|
187
|
-
lionagi-0.7.
|
188
|
-
lionagi-0.7.
|
189
|
-
lionagi-0.7.
|
186
|
+
lionagi-0.7.6.dist-info/METADATA,sha256=2qmdgrSm0NVeD-qf--7C-fT2q_14os4hDMBEogmw0uw,22819
|
187
|
+
lionagi-0.7.6.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
188
|
+
lionagi-0.7.6.dist-info/licenses/LICENSE,sha256=VXFWsdoN5AAknBCgFqQNgPWYx7OPp-PFEP961zGdOjc,11288
|
189
|
+
lionagi-0.7.6.dist-info/RECORD,,
|
File without changes
|
File without changes
|