lionagi 0.9.0__py3-none-any.whl → 0.9.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/operations/ReAct/ReAct.py +184 -37
- lionagi/operations/ReAct/utils.py +8 -2
- lionagi/service/endpoints/base.py +1 -1
- lionagi/service/endpoints/chat_completion.py +9 -1
- lionagi/service/imodel.py +0 -8
- lionagi/session/branch.py +71 -3
- lionagi/version.py +1 -1
- {lionagi-0.9.0.dist-info → lionagi-0.9.2.dist-info}/METADATA +1 -1
- {lionagi-0.9.0.dist-info → lionagi-0.9.2.dist-info}/RECORD +11 -11
- {lionagi-0.9.0.dist-info → lionagi-0.9.2.dist-info}/WHEEL +0 -0
- {lionagi-0.9.0.dist-info → lionagi-0.9.2.dist-info}/licenses/LICENSE +0 -0
@@ -3,11 +3,17 @@
|
|
3
3
|
# SPDX-License-Identifier: Apache-2.0
|
4
4
|
|
5
5
|
import logging
|
6
|
-
from
|
6
|
+
from collections.abc import AsyncGenerator
|
7
|
+
from typing import TYPE_CHECKING, Any, Literal
|
7
8
|
|
8
9
|
from pydantic import BaseModel
|
9
10
|
|
10
11
|
from lionagi.libs.schema.as_readable import as_readable
|
12
|
+
from lionagi.libs.validate.common_field_validators import (
|
13
|
+
validate_model_to_type,
|
14
|
+
)
|
15
|
+
from lionagi.operatives.models.field_model import FieldModel
|
16
|
+
from lionagi.operatives.models.model_params import ModelParams
|
11
17
|
from lionagi.operatives.types import Instruct
|
12
18
|
from lionagi.service.imodel import iModel
|
13
19
|
from lionagi.utils import copy
|
@@ -30,15 +36,133 @@ async def ReAct(
|
|
30
36
|
tools: Any = None,
|
31
37
|
tool_schemas: Any = None,
|
32
38
|
response_format: type[BaseModel] | BaseModel = None,
|
39
|
+
intermediate_response_options: list[BaseModel] | BaseModel = None,
|
40
|
+
intermediate_listable: bool = False,
|
41
|
+
reasoning_effort: Literal["low", "medium", "high"] = None,
|
33
42
|
extension_allowed: bool = True,
|
34
43
|
max_extensions: int | None = 3,
|
35
44
|
response_kwargs: dict | None = None,
|
45
|
+
display_as: Literal["json", "yaml"] = "yaml",
|
36
46
|
return_analysis: bool = False,
|
37
47
|
analysis_model: iModel | None = None,
|
38
48
|
verbose_analysis: bool = False,
|
39
49
|
verbose_length: int = None,
|
40
50
|
**kwargs,
|
41
51
|
):
|
52
|
+
outs = []
|
53
|
+
if verbose_analysis:
|
54
|
+
async for i in ReActStream(
|
55
|
+
branch=branch,
|
56
|
+
instruct=instruct,
|
57
|
+
interpret=interpret,
|
58
|
+
interpret_domain=interpret_domain,
|
59
|
+
interpret_style=interpret_style,
|
60
|
+
interpret_sample=interpret_sample,
|
61
|
+
interpret_model=interpret_model,
|
62
|
+
interpret_kwargs=interpret_kwargs,
|
63
|
+
tools=tools,
|
64
|
+
tool_schemas=tool_schemas,
|
65
|
+
response_format=response_format,
|
66
|
+
intermediate_response_options=intermediate_response_options,
|
67
|
+
intermediate_listable=intermediate_listable,
|
68
|
+
reasoning_effort=reasoning_effort,
|
69
|
+
extension_allowed=extension_allowed,
|
70
|
+
max_extensions=max_extensions,
|
71
|
+
response_kwargs=response_kwargs,
|
72
|
+
analysis_model=analysis_model,
|
73
|
+
verbose_analysis=verbose_analysis,
|
74
|
+
display_as=display_as,
|
75
|
+
verbose_length=verbose_length,
|
76
|
+
**kwargs,
|
77
|
+
):
|
78
|
+
analysis, str_ = i
|
79
|
+
str_ += "\n---------\n"
|
80
|
+
as_readable(str_, md=True, display_str=True)
|
81
|
+
outs.append(analysis)
|
82
|
+
else:
|
83
|
+
async for i in ReActStream(
|
84
|
+
branch=branch,
|
85
|
+
instruct=instruct,
|
86
|
+
interpret=interpret,
|
87
|
+
interpret_domain=interpret_domain,
|
88
|
+
interpret_style=interpret_style,
|
89
|
+
interpret_sample=interpret_sample,
|
90
|
+
interpret_model=interpret_model,
|
91
|
+
interpret_kwargs=interpret_kwargs,
|
92
|
+
tools=tools,
|
93
|
+
tool_schemas=tool_schemas,
|
94
|
+
response_format=response_format,
|
95
|
+
intermediate_response_options=intermediate_response_options,
|
96
|
+
intermediate_listable=intermediate_listable,
|
97
|
+
reasoning_effort=reasoning_effort,
|
98
|
+
extension_allowed=extension_allowed,
|
99
|
+
max_extensions=max_extensions,
|
100
|
+
response_kwargs=response_kwargs,
|
101
|
+
analysis_model=analysis_model,
|
102
|
+
display_as=display_as,
|
103
|
+
verbose_length=verbose_length,
|
104
|
+
**kwargs,
|
105
|
+
):
|
106
|
+
outs.append(i)
|
107
|
+
if return_analysis:
|
108
|
+
return outs
|
109
|
+
return outs[-1]
|
110
|
+
|
111
|
+
|
112
|
+
async def ReActStream(
|
113
|
+
branch: "Branch",
|
114
|
+
instruct: Instruct | dict[str, Any],
|
115
|
+
interpret: bool = False,
|
116
|
+
interpret_domain: str | None = None,
|
117
|
+
interpret_style: str | None = None,
|
118
|
+
interpret_sample: str | None = None,
|
119
|
+
interpret_model: str | None = None,
|
120
|
+
interpret_kwargs: dict | None = None,
|
121
|
+
tools: Any = None,
|
122
|
+
tool_schemas: Any = None,
|
123
|
+
response_format: type[BaseModel] | BaseModel = None,
|
124
|
+
intermediate_response_options: list[BaseModel] | BaseModel = None,
|
125
|
+
intermediate_listable: bool = False,
|
126
|
+
reasoning_effort: Literal["low", "medium", "high"] = None,
|
127
|
+
extension_allowed: bool = True,
|
128
|
+
max_extensions: int | None = 3,
|
129
|
+
response_kwargs: dict | None = None,
|
130
|
+
analysis_model: iModel | None = None,
|
131
|
+
verbose_analysis: bool = False,
|
132
|
+
display_as: Literal["json", "yaml"] = "yaml",
|
133
|
+
verbose_length: int = None,
|
134
|
+
**kwargs,
|
135
|
+
) -> AsyncGenerator:
|
136
|
+
irfm: FieldModel | None = None
|
137
|
+
|
138
|
+
if intermediate_response_options is not None:
|
139
|
+
iro = (
|
140
|
+
[intermediate_response_options]
|
141
|
+
if not isinstance(intermediate_response_options, list)
|
142
|
+
else intermediate_response_options
|
143
|
+
)
|
144
|
+
field_models = []
|
145
|
+
for i in iro:
|
146
|
+
type_ = validate_model_to_type(None, i)
|
147
|
+
fm = FieldModel(
|
148
|
+
name=str(type_.__name__).lower(),
|
149
|
+
annotation=type_ | None,
|
150
|
+
validator=lambda cls, x: None if x == {} else x,
|
151
|
+
)
|
152
|
+
field_models.append(fm)
|
153
|
+
|
154
|
+
m_ = ModelParams(
|
155
|
+
name="IntermediateResponseOptions", field_models=field_models
|
156
|
+
).create_new_model()
|
157
|
+
|
158
|
+
irfm = FieldModel(
|
159
|
+
name="intermediate_response_options",
|
160
|
+
annotation=(
|
161
|
+
m_ | None if not intermediate_listable else list[m_] | None
|
162
|
+
),
|
163
|
+
description="Optional intermediate deliverable outputs. fill as needed ",
|
164
|
+
validator=lambda cls, x: None if not x else x,
|
165
|
+
)
|
42
166
|
|
43
167
|
# If no tools or tool schemas are provided, default to "all tools"
|
44
168
|
if not tools and not tool_schemas:
|
@@ -60,15 +184,16 @@ async def ReAct(
|
|
60
184
|
**(interpret_kwargs or {}),
|
61
185
|
)
|
62
186
|
if verbose_analysis:
|
63
|
-
|
64
|
-
as_readable(
|
187
|
+
str_ = "\n### Interpreted instruction:\n"
|
188
|
+
str_ += as_readable(
|
65
189
|
instruction_str,
|
66
190
|
md=True,
|
67
|
-
format_curly=True,
|
68
|
-
display_str=True,
|
191
|
+
format_curly=True if display_as == "yaml" else False,
|
69
192
|
max_chars=verbose_length,
|
70
193
|
)
|
71
|
-
|
194
|
+
yield instruction_str, str_
|
195
|
+
else:
|
196
|
+
yield instruction_str
|
72
197
|
|
73
198
|
# Convert Instruct to dict if necessary
|
74
199
|
instruct_dict = (
|
@@ -98,19 +223,18 @@ async def ReAct(
|
|
98
223
|
chat_model=analysis_model or branch.chat_model,
|
99
224
|
**kwargs_for_operate,
|
100
225
|
)
|
101
|
-
analyses = [analysis]
|
102
|
-
|
103
226
|
# If verbose, show round #1 analysis
|
104
227
|
if verbose_analysis:
|
105
|
-
|
106
|
-
as_readable(
|
228
|
+
str_ = "\n### ReAct Round No.1 Analysis:\n"
|
229
|
+
str_ += as_readable(
|
107
230
|
analysis,
|
108
231
|
md=True,
|
109
|
-
format_curly=True,
|
110
|
-
display_str=True,
|
232
|
+
format_curly=True if display_as == "yaml" else False,
|
111
233
|
max_chars=verbose_length,
|
112
234
|
)
|
113
|
-
|
235
|
+
yield analysis, str_
|
236
|
+
else:
|
237
|
+
yield analysis
|
114
238
|
|
115
239
|
# Validate and clamp max_extensions if needed
|
116
240
|
if max_extensions and max_extensions > 100:
|
@@ -124,8 +248,13 @@ async def ReAct(
|
|
124
248
|
round_count = 1
|
125
249
|
|
126
250
|
while (
|
127
|
-
extension_allowed
|
128
|
-
|
251
|
+
extension_allowed and analysis.extension_needed
|
252
|
+
if hasattr(analysis, "extension_needed")
|
253
|
+
else (
|
254
|
+
analysis.get("extension_needed", None)
|
255
|
+
if isinstance(analysis, dict)
|
256
|
+
else False
|
257
|
+
)
|
129
258
|
and (extensions if max_extensions else 0) > 0
|
130
259
|
):
|
131
260
|
new_instruction = None
|
@@ -145,6 +274,21 @@ async def ReAct(
|
|
145
274
|
operate_kwargs["action_strategy"] = analysis.action_strategy
|
146
275
|
if analysis.action_batch_size:
|
147
276
|
operate_kwargs["action_batch_size"] = analysis.action_batch_size
|
277
|
+
if irfm:
|
278
|
+
operate_kwargs["field_models"] = operate_kwargs.get(
|
279
|
+
"field_models", []
|
280
|
+
) + [irfm]
|
281
|
+
if reasoning_effort:
|
282
|
+
guide = None
|
283
|
+
if reasoning_effort == "low":
|
284
|
+
guide = "Quick concise reasoning.\n"
|
285
|
+
if reasoning_effort == "medium":
|
286
|
+
guide = "Reasonably balanced reasoning.\n"
|
287
|
+
if reasoning_effort == "high":
|
288
|
+
guide = "Thorough, try as hard as you can in reasoning.\n"
|
289
|
+
operate_kwargs["guidance"] = guide + operate_kwargs.get(
|
290
|
+
"guidance", ""
|
291
|
+
)
|
148
292
|
|
149
293
|
analysis = await branch.operate(
|
150
294
|
instruction=new_instruction,
|
@@ -152,20 +296,22 @@ async def ReAct(
|
|
152
296
|
tool_schemas=tool_schemas,
|
153
297
|
**operate_kwargs,
|
154
298
|
)
|
155
|
-
analyses.append(analysis)
|
156
299
|
round_count += 1
|
157
300
|
|
158
301
|
# If verbose, show round analysis
|
159
302
|
if verbose_analysis:
|
160
|
-
|
161
|
-
|
303
|
+
str_ = f"\n### ReAct Round No.{round_count} Analysis:\n"
|
304
|
+
|
305
|
+
str_ += as_readable(
|
162
306
|
analysis,
|
163
307
|
md=True,
|
164
|
-
format_curly=True,
|
165
|
-
display_str=True,
|
308
|
+
format_curly=True if display_as == "yaml" else False,
|
166
309
|
max_chars=verbose_length,
|
167
310
|
)
|
168
|
-
|
311
|
+
|
312
|
+
yield analysis, str_
|
313
|
+
else:
|
314
|
+
yield analysis
|
169
315
|
|
170
316
|
if extensions:
|
171
317
|
extensions -= 1
|
@@ -177,28 +323,29 @@ async def ReAct(
|
|
177
323
|
if not response_format:
|
178
324
|
response_format = Analysis
|
179
325
|
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
326
|
+
try:
|
327
|
+
out = await branch.operate(
|
328
|
+
instruction=answer_prompt,
|
329
|
+
response_format=response_format,
|
330
|
+
**(response_kwargs or {}),
|
331
|
+
)
|
332
|
+
except Exception:
|
333
|
+
out = branch.msgs.last_response.response
|
334
|
+
|
185
335
|
if isinstance(out, Analysis):
|
186
|
-
out = out.
|
336
|
+
out = out.answer
|
187
337
|
|
188
338
|
if verbose_analysis:
|
189
|
-
|
190
|
-
as_readable(
|
191
|
-
|
339
|
+
str_ = "\n### ReAct Final Answer:\n"
|
340
|
+
str_ += as_readable(
|
341
|
+
out,
|
192
342
|
md=True,
|
193
|
-
format_curly=True,
|
194
|
-
display_str=True,
|
343
|
+
format_curly=True if display_as == "yaml" else False,
|
195
344
|
max_chars=verbose_length,
|
196
345
|
)
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
return out, analyses
|
201
|
-
return out
|
346
|
+
yield out, str_
|
347
|
+
else:
|
348
|
+
yield out
|
202
349
|
|
203
350
|
|
204
351
|
# TODO: Do partial intermeditate output for longer analysis with form and report
|
@@ -36,7 +36,9 @@ class ReActAnalysis(BaseModel):
|
|
36
36
|
FIRST_EXT_PROMPT: ClassVar[str] = (
|
37
37
|
"You can perform multiple reason-action steps for accuracy. "
|
38
38
|
"If you are not ready to finalize, set extension_needed to True. "
|
39
|
-
"
|
39
|
+
"hint: you should set extension_needed to True if the overall goal"
|
40
|
+
"is not yet achieved. Do not set it to False, if you are just providing"
|
41
|
+
"an interim answer. You have up to {extensions} expansions. Please continue."
|
40
42
|
)
|
41
43
|
CONTINUE_EXT_PROMPT: ClassVar[str] = (
|
42
44
|
"Another round is available. You may do multiple actions if needed. "
|
@@ -49,7 +51,11 @@ class ReActAnalysis(BaseModel):
|
|
49
51
|
|
50
52
|
analysis: str = Field(
|
51
53
|
...,
|
52
|
-
description=
|
54
|
+
description=(
|
55
|
+
"Free-form reasoning or chain-of-thought summary. Must be consistent with"
|
56
|
+
" the plan. Commonly used for divide_and_conquer, brainstorming, reflections, "
|
57
|
+
"regurgitation, review_checkpoints ...etc."
|
58
|
+
),
|
53
59
|
)
|
54
60
|
|
55
61
|
planned_actions: list[PlannedAction] = Field(
|
@@ -79,7 +79,7 @@ class EndpointConfig(BaseModel):
|
|
79
79
|
requires_tokens: bool = False
|
80
80
|
api_version: str | None = None
|
81
81
|
allowed_roles: list[str] | None = None
|
82
|
-
request_options: type | None = None
|
82
|
+
request_options: type | None = Field(None, exclude=True)
|
83
83
|
|
84
84
|
|
85
85
|
class EndPoint(ABC):
|
@@ -1,11 +1,19 @@
|
|
1
1
|
# Copyright (c) 2023 - 2025, HaiyangLi <quantocean.li at gmail dot com>
|
2
2
|
#
|
3
3
|
# SPDX-License-Identifier: Apache-2.0
|
4
|
-
|
4
|
+
import warnings
|
5
5
|
from collections.abc import AsyncGenerator
|
6
6
|
|
7
7
|
from .base import EndPoint
|
8
8
|
|
9
|
+
warnings.filterwarnings(
|
10
|
+
"ignore",
|
11
|
+
message=".*Valid config keys have changed in V2.*",
|
12
|
+
category=UserWarning,
|
13
|
+
module="pydantic._internal._config",
|
14
|
+
)
|
15
|
+
|
16
|
+
|
9
17
|
CHAT_COMPLETION_CONFIG = {
|
10
18
|
"endpoint": "chat/completions",
|
11
19
|
"method": "post",
|
lionagi/service/imodel.py
CHANGED
@@ -4,7 +4,6 @@
|
|
4
4
|
|
5
5
|
import asyncio
|
6
6
|
import os
|
7
|
-
import warnings
|
8
7
|
from collections.abc import AsyncGenerator, Callable
|
9
8
|
|
10
9
|
from pydantic import BaseModel
|
@@ -16,13 +15,6 @@ from .endpoints.base import APICalling, EndPoint
|
|
16
15
|
from .endpoints.match_endpoint import match_endpoint
|
17
16
|
from .endpoints.rate_limited_processor import RateLimitedAPIExecutor
|
18
17
|
|
19
|
-
warnings.filterwarnings(
|
20
|
-
"ignore",
|
21
|
-
message=".*Valid config keys have changed in V2.*",
|
22
|
-
category=UserWarning,
|
23
|
-
module="pydantic._internal._config",
|
24
|
-
)
|
25
|
-
|
26
18
|
|
27
19
|
class iModel:
|
28
20
|
"""Manages API calls for a specific provider with optional rate-limiting.
|
lionagi/session/branch.py
CHANGED
@@ -2,6 +2,7 @@
|
|
2
2
|
#
|
3
3
|
# SPDX-License-Identifier: Apache-2.0
|
4
4
|
|
5
|
+
from collections.abc import AsyncGenerator
|
5
6
|
from enum import Enum
|
6
7
|
from typing import TYPE_CHECKING, Any, Literal
|
7
8
|
|
@@ -9,6 +10,7 @@ import pandas as pd
|
|
9
10
|
from jinja2 import Template
|
10
11
|
from pydantic import BaseModel, Field, JsonValue, PrivateAttr
|
11
12
|
|
13
|
+
from lionagi.libs.schema.as_readable import as_readable
|
12
14
|
from lionagi.operatives.types import (
|
13
15
|
ActionManager,
|
14
16
|
FieldModel,
|
@@ -1621,13 +1623,18 @@ class Branch(Element, Communicatable, Relational):
|
|
1621
1623
|
interpret_domain: str | None = None,
|
1622
1624
|
interpret_style: str | None = None,
|
1623
1625
|
interpret_sample: str | None = None,
|
1626
|
+
interpret_model: str | None = None,
|
1624
1627
|
interpret_kwargs: dict | None = None,
|
1625
1628
|
tools: Any = None,
|
1626
1629
|
tool_schemas: Any = None,
|
1627
|
-
response_format: type[BaseModel] = None,
|
1628
|
-
|
1629
|
-
|
1630
|
+
response_format: type[BaseModel] | BaseModel = None,
|
1631
|
+
intermediate_response_options: list[BaseModel] | BaseModel = None,
|
1632
|
+
intermediate_listable: bool = False,
|
1633
|
+
reasoning_effort: Literal["low", "medium", "high"] = None,
|
1634
|
+
extension_allowed: bool = True,
|
1635
|
+
max_extensions: int | None = 3,
|
1630
1636
|
response_kwargs: dict | None = None,
|
1637
|
+
display_as: Literal["json", "yaml"] = "yaml",
|
1631
1638
|
return_analysis: bool = False,
|
1632
1639
|
analysis_model: iModel | None = None,
|
1633
1640
|
verbose: bool = False,
|
@@ -1721,8 +1728,69 @@ class Branch(Element, Communicatable, Relational):
|
|
1721
1728
|
verbose_action=verbose,
|
1722
1729
|
verbose_analysis=verbose,
|
1723
1730
|
verbose_length=verbose_length,
|
1731
|
+
interpret_model=interpret_model,
|
1732
|
+
intermediate_response_options=intermediate_response_options,
|
1733
|
+
intermediate_listable=intermediate_listable,
|
1734
|
+
reasoning_effort=reasoning_effort,
|
1735
|
+
display_as=display_as,
|
1724
1736
|
**kwargs,
|
1725
1737
|
)
|
1726
1738
|
|
1739
|
+
async def ReActStream(
|
1740
|
+
self,
|
1741
|
+
instruct: Instruct | dict[str, Any],
|
1742
|
+
interpret: bool = False,
|
1743
|
+
interpret_domain: str | None = None,
|
1744
|
+
interpret_style: str | None = None,
|
1745
|
+
interpret_sample: str | None = None,
|
1746
|
+
interpret_model: str | None = None,
|
1747
|
+
interpret_kwargs: dict | None = None,
|
1748
|
+
tools: Any = None,
|
1749
|
+
tool_schemas: Any = None,
|
1750
|
+
response_format: type[BaseModel] | BaseModel = None,
|
1751
|
+
intermediate_response_options: list[BaseModel] | BaseModel = None,
|
1752
|
+
intermediate_listable: bool = False,
|
1753
|
+
reasoning_effort: Literal["low", "medium", "high"] = None,
|
1754
|
+
extension_allowed: bool = True,
|
1755
|
+
max_extensions: int | None = 3,
|
1756
|
+
response_kwargs: dict | None = None,
|
1757
|
+
analysis_model: iModel | None = None,
|
1758
|
+
verbose: bool = False,
|
1759
|
+
display_as: Literal["json", "yaml"] = "yaml",
|
1760
|
+
verbose_length: int = None,
|
1761
|
+
**kwargs,
|
1762
|
+
) -> AsyncGenerator:
|
1763
|
+
from lionagi.operations.ReAct.ReAct import ReActStream
|
1764
|
+
|
1765
|
+
async for result in ReActStream(
|
1766
|
+
self,
|
1767
|
+
instruct,
|
1768
|
+
interpret=interpret,
|
1769
|
+
interpret_domain=interpret_domain,
|
1770
|
+
interpret_style=interpret_style,
|
1771
|
+
interpret_sample=interpret_sample,
|
1772
|
+
interpret_model=interpret_model,
|
1773
|
+
interpret_kwargs=interpret_kwargs,
|
1774
|
+
tools=tools,
|
1775
|
+
tool_schemas=tool_schemas,
|
1776
|
+
response_format=response_format,
|
1777
|
+
intermediate_response_options=intermediate_response_options,
|
1778
|
+
intermediate_listable=intermediate_listable,
|
1779
|
+
reasoning_effort=reasoning_effort,
|
1780
|
+
extension_allowed=extension_allowed,
|
1781
|
+
max_extensions=max_extensions,
|
1782
|
+
response_kwargs=response_kwargs,
|
1783
|
+
analysis_model=analysis_model,
|
1784
|
+
verbose_analysis=True,
|
1785
|
+
display_as=display_as,
|
1786
|
+
verbose_length=verbose_length,
|
1787
|
+
**kwargs,
|
1788
|
+
):
|
1789
|
+
analysis, str_ = result
|
1790
|
+
if verbose:
|
1791
|
+
str_ += "\n---------\n"
|
1792
|
+
as_readable(str_, md=True, display_str=True)
|
1793
|
+
yield analysis
|
1794
|
+
|
1727
1795
|
|
1728
1796
|
# File: lionagi/session/branch.py
|
lionagi/version.py
CHANGED
@@ -1 +1 @@
|
|
1
|
-
__version__ = "0.9.
|
1
|
+
__version__ = "0.9.2"
|
@@ -4,7 +4,7 @@ lionagi/_errors.py,sha256=JlBTFJnRWtVYcRxKb7fWFiJHLbykl1E19mSJ8sXYVxg,455
|
|
4
4
|
lionagi/_types.py,sha256=9g7iytvSj3UjZxD-jL06_fxuNfgZyWT3Qnp0XYp1wQU,63
|
5
5
|
lionagi/settings.py,sha256=W52mM34E6jXF3GyqCFzVREKZrmnUqtZm_BVDsUiDI_s,1627
|
6
6
|
lionagi/utils.py,sha256=_A98YIoJMeQXKchx9m_cWTOutjdZRZASWTOSIRGTOB4,73177
|
7
|
-
lionagi/version.py,sha256=
|
7
|
+
lionagi/version.py,sha256=gqT-BGoeEItda9fICQDvLbxEjWRIBhFJxPxxKvmHLUo,22
|
8
8
|
lionagi/libs/__init__.py,sha256=5y5joOZzfFWERl75auAcNcKC3lImVJ5ZZGvvHZUFCJM,112
|
9
9
|
lionagi/libs/parse.py,sha256=JRS3bql0InHJqATnAatl-hQv4N--XXw4P77JHhTFnrc,1011
|
10
10
|
lionagi/libs/file/__init__.py,sha256=5y5joOZzfFWERl75auAcNcKC3lImVJ5ZZGvvHZUFCJM,112
|
@@ -48,9 +48,9 @@ lionagi/operations/__init__.py,sha256=2HExKTx2J3iKWsvS9YaF6i5SZgqcpAJkVmWbi2H5A5
|
|
48
48
|
lionagi/operations/manager.py,sha256=H7UY86PIxvxKdzJY9YVsWyJcqlwLWhVyvm4sYePH_uY,565
|
49
49
|
lionagi/operations/types.py,sha256=fM8HphnbBifMzhoKKvdl3JxGCBHlEGPJEYkLWj9b7vE,704
|
50
50
|
lionagi/operations/utils.py,sha256=LrWr_JEyJmSw5RL03KZhWgDKYsjFk0-OS8SoaGU7Jhs,1220
|
51
|
-
lionagi/operations/ReAct/ReAct.py,sha256=
|
51
|
+
lionagi/operations/ReAct/ReAct.py,sha256=eBCQOzVHv85uEL4YH1qv8NhbzM0t-qyKZ4JI7tQRXQ8,11971
|
52
52
|
lionagi/operations/ReAct/__init__.py,sha256=5y5joOZzfFWERl75auAcNcKC3lImVJ5ZZGvvHZUFCJM,112
|
53
|
-
lionagi/operations/ReAct/utils.py,sha256=
|
53
|
+
lionagi/operations/ReAct/utils.py,sha256=jXf9LafAg0GtZajXqT4jOLJHW_Y4eL-hbz5_OlFCBh8,3612
|
54
54
|
lionagi/operations/_act/__init__.py,sha256=5y5joOZzfFWERl75auAcNcKC3lImVJ5ZZGvvHZUFCJM,112
|
55
55
|
lionagi/operations/_act/act.py,sha256=CunHTTZcS6xNUe0xKSDgtMJ7-ucSvHeW4BtmVjXnaxk,2958
|
56
56
|
lionagi/operations/brainstorm/__init__.py,sha256=5y5joOZzfFWERl75auAcNcKC3lImVJ5ZZGvvHZUFCJM,112
|
@@ -161,12 +161,12 @@ lionagi/protocols/messages/templates/instruction_message.jinja2,sha256=L-ptw5OHx
|
|
161
161
|
lionagi/protocols/messages/templates/system_message.jinja2,sha256=JRKJ0aFpYfaXSFouKc_N4unZ35C3yZTOWhIrIdCB5qk,215
|
162
162
|
lionagi/protocols/messages/templates/tool_schemas.jinja2,sha256=ozIaSDCRjIAhLyA8VM6S-YqS0w2NcctALSwx4LjDwII,126
|
163
163
|
lionagi/service/__init__.py,sha256=DMGXIqPsmut9H5GT0ZeSzQIzYzzPwI-2gLXydpbwiV8,21
|
164
|
-
lionagi/service/imodel.py,sha256=
|
164
|
+
lionagi/service/imodel.py,sha256=SgLLuNXSJwmHJTfRpqaUlC0zF2qOyasTkVqrg_dXrsw,14272
|
165
165
|
lionagi/service/manager.py,sha256=FkuqAtLErqLmXNnDtuAdTUFo4uuE_VL660BBGBhzInU,1435
|
166
166
|
lionagi/service/types.py,sha256=CHPi8Bxl_yJ1pl2jYZBOrTHbT8_oO9sK75d4LMB651g,486
|
167
167
|
lionagi/service/endpoints/__init__.py,sha256=5y5joOZzfFWERl75auAcNcKC3lImVJ5ZZGvvHZUFCJM,112
|
168
|
-
lionagi/service/endpoints/base.py,sha256=
|
169
|
-
lionagi/service/endpoints/chat_completion.py,sha256=
|
168
|
+
lionagi/service/endpoints/base.py,sha256=WuXs2tDrOxbbv9-UkiAgpVcM_6nuCNmvvry7eN1GuoI,23482
|
169
|
+
lionagi/service/endpoints/chat_completion.py,sha256=nihV7kCYm7ixdm8dH0JW7vKjqH9yIom4QDXGeDwuO6E,2964
|
170
170
|
lionagi/service/endpoints/match_endpoint.py,sha256=hPCqFwVirj5g9Husec980OCUynjRmr0zQzrs7O4yP74,1874
|
171
171
|
lionagi/service/endpoints/rate_limited_processor.py,sha256=P0CsMyhuG8OHCPYe2qez92Bm7v2ZRq4L5I6LOiAoGYs,5199
|
172
172
|
lionagi/service/endpoints/token_calculator.py,sha256=-AKwDvV7C8k8MTmd62ymT0ETSUPWBJ_DQKLZUutlyfg,6161
|
@@ -188,7 +188,7 @@ lionagi/service/providers/perplexity_/__init__.py,sha256=5y5joOZzfFWERl75auAcNcK
|
|
188
188
|
lionagi/service/providers/perplexity_/chat_completions.py,sha256=O4MIS_3xIINGjkAZdlw0Bu_jAfBDR4VZA1F8JW2EU1M,1197
|
189
189
|
lionagi/service/providers/perplexity_/models.py,sha256=gXH4XGkhZ4aFxvMSDTlHq9Rz1mhu3aTENXAtE-BIr6U,4866
|
190
190
|
lionagi/session/__init__.py,sha256=5y5joOZzfFWERl75auAcNcKC3lImVJ5ZZGvvHZUFCJM,112
|
191
|
-
lionagi/session/branch.py,sha256=
|
191
|
+
lionagi/session/branch.py,sha256=XL0P507Jfqk9LhC8rDvajkjVE8FkPx7hnLltb-LdqHw,71503
|
192
192
|
lionagi/session/prompts.py,sha256=AhuHL19s0TijVZX3tMKUKMi6l88xeVdpkuEn2vJSRyU,3236
|
193
193
|
lionagi/session/session.py,sha256=8SuNMiJX6IAW6Ou8aDK0LsVG7zcD5yd22sakMyrd3pw,8987
|
194
194
|
lionagi/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -196,7 +196,7 @@ lionagi/tools/base.py,sha256=ffaIcLF_uwEphCkP_wsa3UfkqVenML3HpsnR5kRCTtA,236
|
|
196
196
|
lionagi/tools/types.py,sha256=O6ipx7zX0piaIQ3c8V3zHWrXH-1gdIe-KQ4xTPSiLp0,63
|
197
197
|
lionagi/tools/file/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
198
198
|
lionagi/tools/file/reader.py,sha256=cMkS-r7wQb4gQSldLyCCOyD73VkUDSio9RxzsQ2xBxo,7706
|
199
|
-
lionagi-0.9.
|
200
|
-
lionagi-0.9.
|
201
|
-
lionagi-0.9.
|
202
|
-
lionagi-0.9.
|
199
|
+
lionagi-0.9.2.dist-info/METADATA,sha256=bs44CDbfErTh8xI14pq3HZTcqNpR5j6V-gwjWvPOLho,18053
|
200
|
+
lionagi-0.9.2.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
201
|
+
lionagi-0.9.2.dist-info/licenses/LICENSE,sha256=VXFWsdoN5AAknBCgFqQNgPWYx7OPp-PFEP961zGdOjc,11288
|
202
|
+
lionagi-0.9.2.dist-info/RECORD,,
|
File without changes
|
File without changes
|