lionagi 0.5.4__py3-none-any.whl → 0.5.5__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.
@@ -253,6 +253,8 @@ class ActionManager:
253
253
  ValueError: If a specified tool is not registered.
254
254
  TypeError: If an unsupported tool type is provided.
255
255
  """
256
+ if isinstance(tools, list | tuple) and len(tools) == 1:
257
+ tools = tools[0]
256
258
  if isinstance(tools, bool):
257
259
  if tools:
258
260
  tool_kwarg = {"tools": self.schema_list}
@@ -146,6 +146,16 @@ class AssistantResponse(RoledMessage):
146
146
  """
147
147
  return copy(self.content["assistant_response"])
148
148
 
149
+ @response.setter
150
+ def response(self, value: str) -> None:
151
+ """
152
+ Set the assistant response content.
153
+
154
+ Args:
155
+ value: The new response content
156
+ """
157
+ self.content["assistant_response"] = value
158
+
149
159
  @property
150
160
  def model_response(self) -> dict | list[dict]:
151
161
  """
@@ -68,7 +68,7 @@ class MessageField(str, Enum):
68
68
  LION_CLASS = "lion_class"
69
69
  ROLE = "role"
70
70
  CONTENT = "content"
71
- id = "id"
71
+ LN_ID = "ln_id"
72
72
  SENDER = "sender"
73
73
  RECIPIENT = "recipient"
74
74
  METADATA = "metadata"
@@ -498,6 +498,19 @@ class MessageManager:
498
498
  ]
499
499
  )
500
500
 
501
+ def remove_last_instruction_tool_schemas(self) -> None:
502
+ id_ = self.last_instruction.ln_id
503
+ self.messages[id_].tool_schemas = None
504
+
505
+ def concat_recent_action_responses_to_instruction(
506
+ self, instruction: Instruction
507
+ ) -> None:
508
+ for i in reversed(self.messages.progress):
509
+ if isinstance(self.messages[i], ActionResponse):
510
+ instruction.context.append(self.messages[i].content.to_dict())
511
+ else:
512
+ break
513
+
501
514
  def to_chat_msgs(self, progress=None) -> list[dict]:
502
515
  """
503
516
  Convert messages to chat format.
@@ -92,9 +92,11 @@ def format_text_item(item: Any) -> str:
92
92
  for j in item:
93
93
  if isinstance(j, dict):
94
94
  for k, v in j.items():
95
- msg += f"- {k}: {v} \n\n"
95
+ if v is not None:
96
+ msg += f"- {k}: {v} \n\n"
96
97
  else:
97
- msg += f"{j}\n"
98
+ if j is not None:
99
+ msg += f"{j}\n"
98
100
  return msg
99
101
 
100
102
 
@@ -33,6 +33,7 @@ from ..communication.types import (
33
33
  ActionResponse,
34
34
  AssistantResponse,
35
35
  Instruction,
36
+ RoledMessage,
36
37
  )
37
38
 
38
39
 
@@ -149,6 +150,8 @@ class BranchOperationMixin(ABC):
149
150
  if auto_retry_parse is True:
150
151
  operative.auto_retry_parse = True
151
152
 
153
+ if actions:
154
+ tools = tools or True
152
155
  if invoke_actions and tools:
153
156
  tool_schemas = self.get_tool_schema(tools)
154
157
 
@@ -275,7 +278,7 @@ class BranchOperationMixin(ABC):
275
278
  **kwargs,
276
279
  ) -> tuple[Instruction, AssistantResponse]:
277
280
 
278
- ins = self.msgs.create_instruction(
281
+ ins: Instruction = self.msgs.create_instruction(
279
282
  instruction=instruction,
280
283
  guidance=guidance,
281
284
  context=context,
@@ -289,7 +292,57 @@ class BranchOperationMixin(ABC):
289
292
  )
290
293
 
291
294
  progress = progress or self.msgs.progress
292
- messages = [self.msgs.messages[i] for i in progress]
295
+ messages: list[RoledMessage] = [
296
+ self.msgs.messages[i] for i in progress
297
+ ]
298
+
299
+ use_ins = None
300
+ if imodel.sequential_exchange:
301
+ _to_use = []
302
+ _action_responses: set[ActionResponse] = set()
303
+
304
+ for i in messages:
305
+ if isinstance(i, ActionResponse):
306
+ _action_responses.add(i)
307
+ if isinstance(i, AssistantResponse):
308
+ _to_use.append(i.model_copy())
309
+ if isinstance(i, Instruction):
310
+ if _action_responses:
311
+ j = i.model_copy()
312
+ d_ = [k.content.to_dict() for k in _action_responses]
313
+ for z in d_:
314
+ if z not in j.context:
315
+ j.context.append(z)
316
+
317
+ _to_use.append(j)
318
+ _action_responses = set()
319
+ else:
320
+ _to_use.append(i)
321
+
322
+ messages = _to_use
323
+ if _action_responses:
324
+ j = ins.model_copy()
325
+ d_ = [k.content.to_dict() for k in _action_responses]
326
+ for z in d_:
327
+ if z not in j.context:
328
+ j.context.append(z)
329
+ use_ins = j
330
+
331
+ if messages and len(messages) > 1:
332
+ _msgs = [messages[0]]
333
+
334
+ for i in messages[1:]:
335
+ if isinstance(i, AssistantResponse):
336
+ if isinstance(_msgs[-1], AssistantResponse):
337
+ _msgs[-1].response = (
338
+ f"{_msgs[-1].response}\n\n{i.response}"
339
+ )
340
+ else:
341
+ _msgs.append(i)
342
+ else:
343
+ if isinstance(_msgs[-1], AssistantResponse):
344
+ _msgs.append(i)
345
+ messages = _msgs
293
346
 
294
347
  if self.msgs.system and "system" not in imodel.allowed_roles:
295
348
  messages = [msg for msg in messages if msg.role != "system"]
@@ -312,9 +365,10 @@ class BranchOperationMixin(ABC):
312
365
  first_instruction.guidance or ""
313
366
  )
314
367
  messages[0] = first_instruction
368
+ messages.append(use_ins or ins)
315
369
 
316
370
  else:
317
- messages.append(ins)
371
+ messages.append(use_ins or ins)
318
372
 
319
373
  kwargs["messages"] = [i.chat_msg for i in messages]
320
374
  imodel = imodel or self.imodel
@@ -331,6 +385,7 @@ class BranchOperationMixin(ABC):
331
385
  sender=self,
332
386
  recipient=self.user,
333
387
  )
388
+
334
389
  return ins, res
335
390
 
336
391
  async def communicate(
@@ -346,7 +401,6 @@ class BranchOperationMixin(ABC):
346
401
  imodel: iModel = None,
347
402
  images: list = None,
348
403
  image_detail: Literal["low", "high", "auto"] = None,
349
- tools: str | FUNCTOOL | list[FUNCTOOL | str] | bool = None,
350
404
  num_parse_retries: int = 0,
351
405
  retry_imodel: iModel = None,
352
406
  retry_kwargs: dict = {},
@@ -355,7 +409,6 @@ class BranchOperationMixin(ABC):
355
409
  ] = "return_value",
356
410
  skip_validation: bool = False,
357
411
  clear_messages: bool = False,
358
- invoke_action: bool = True,
359
412
  response_format: (
360
413
  type[BaseModel] | BaseModel
361
414
  ) = None, # alias of request_model
@@ -380,10 +433,6 @@ class BranchOperationMixin(ABC):
380
433
  )
381
434
  num_parse_retries = 5
382
435
 
383
- tool_schemas = None
384
- if invoke_action and tools:
385
- tool_schemas = self.get_tool_schema(tools)
386
-
387
436
  ins, res = await self._invoke_imodel(
388
437
  instruction=instruction,
389
438
  guidance=guidance,
@@ -395,36 +444,14 @@ class BranchOperationMixin(ABC):
395
444
  imodel=imodel,
396
445
  images=images,
397
446
  image_detail=image_detail,
398
- tool_schemas=tool_schemas,
399
447
  **kwargs,
400
448
  )
401
- await self.msgs.a_add_message(instruction=ins)
402
- await self.msgs.a_add_message(assistant_response=res)
403
-
404
- action_request_models = None
405
- action_response_models = None
449
+ self.msgs.add_message(instruction=ins)
450
+ self.msgs.add_message(assistant_response=res)
406
451
 
407
452
  if skip_validation:
408
453
  return res.response
409
454
 
410
- if invoke_action and tools:
411
- action_request_models = ActionRequestModel.create(res.response)
412
-
413
- if action_request_models and invoke_action:
414
- action_response_models = await alcall(
415
- action_request_models,
416
- self.invoke_action,
417
- suppress_errors=True,
418
- )
419
-
420
- if action_request_models and not action_response_models:
421
- for i in action_request_models:
422
- await self.msgs.a_add_message(
423
- action_request_model=i,
424
- sender=self,
425
- recipient=None,
426
- )
427
-
428
455
  _d = None
429
456
  if request_fields is not None or request_model is not None:
430
457
  parse_success = None
@@ -475,9 +502,12 @@ class BranchOperationMixin(ABC):
475
502
  if _d and isinstance(_d, dict):
476
503
  parse_success = True
477
504
  if res not in self.msgs.messages:
478
- await self.msgs.a_add_message(
479
- assistant_response=res
480
- )
505
+ if isinstance(
506
+ self.msgs.messages[-1], AssistantResponse
507
+ ):
508
+ self.msgs.messages[-1].response = res.response
509
+ else:
510
+ self.msgs.add_message(assistant_response=res)
481
511
  return _d
482
512
 
483
513
  elif request_model:
@@ -495,9 +525,16 @@ class BranchOperationMixin(ABC):
495
525
  _d = request_model.model_validate(_d)
496
526
  parse_success = True
497
527
  if res not in self.msgs.messages:
498
- await self.msgs.a_add_message(
499
- assistant_response=res
500
- )
528
+ if isinstance(
529
+ self.msgs.messages[-1], AssistantResponse
530
+ ):
531
+ self.msgs.messages[-1].response = (
532
+ res.response
533
+ )
534
+ else:
535
+ self.msgs.add_message(
536
+ assistant_response=res
537
+ )
501
538
  return _d
502
539
  except Exception as e:
503
540
  logging.warning(
@@ -4,6 +4,7 @@
4
4
 
5
5
  from pathlib import Path
6
6
 
7
+ import yaml
7
8
  from dotenv import load_dotenv
8
9
  from pydantic import (
9
10
  BaseModel,
@@ -33,12 +34,6 @@ price_config_file_name = path / "anthropic_price_data.yaml"
33
34
  max_output_token_file_name = path / "anthropic_max_output_token_data.yaml"
34
35
 
35
36
 
36
- class _ModuleImportClass:
37
- from lionagi.libs.package.imports import check_import
38
-
39
- yaml = check_import("yaml", pip_name="pyyaml")
40
-
41
-
42
37
  class AnthropicModel(BaseModel):
43
38
  model: str = Field(description="ID of the model to use.")
44
39
 
@@ -239,7 +234,7 @@ class AnthropicModel(BaseModel):
239
234
  )
240
235
  if estimated_output_len == 0:
241
236
  with open(max_output_token_file_name) as file:
242
- output_token_config = _ModuleImportClass.yaml.safe_load(file)
237
+ output_token_config = yaml.safe_load(file)
243
238
  estimated_output_len = output_token_config.get(self.model, 0)
244
239
  self.estimated_output_len = estimated_output_len
245
240
 
@@ -261,13 +256,13 @@ class AnthropicModel(BaseModel):
261
256
  num_of_input_tokens = self.text_token_calculator.calculate(input_text)
262
257
 
263
258
  with open(price_config_file_name) as file:
264
- price_config = _ModuleImportClass.yaml.safe_load(file)
259
+ price_config = yaml.safe_load(file)
265
260
 
266
261
  model_price_info_dict = price_config["model"][self.model]
267
262
  estimated_price = (
268
263
  model_price_info_dict["input_tokens"] * num_of_input_tokens
269
264
  + model_price_info_dict["output_tokens"]
270
265
  * estimated_num_of_output_tokens
271
- )
266
+ ) / 1_000_000
272
267
 
273
268
  return estimated_price
@@ -51,6 +51,11 @@ class AnthropicService(Service):
51
51
  # Map model versions to their base models for shared rate limiting
52
52
  shared_models = {
53
53
  "claude-3-opus-20240229": "claude-3-opus",
54
+ "claude-3-sonnet-20241022": "claude-3-sonnet",
55
+ "claude-3-haiku-20241022": "claude-3-haiku",
56
+ "claude-3-opus-latest": "claude-3-opus",
57
+ "claude-3-sonnet-latest": "claude-3-sonnet",
58
+ "claude-3-haiku-latest": "claude-3-haiku",
54
59
  "claude-3-sonnet-20240229": "claude-3-sonnet",
55
60
  "claude-3-haiku-20240307": "claude-3-haiku",
56
61
  }
@@ -115,3 +120,8 @@ class AnthropicService(Service):
115
120
  @property
116
121
  def allowed_roles(self):
117
122
  return ["user", "assistant"]
123
+
124
+ @property
125
+ def sequential_exchange(self):
126
+ """whether the service requires user/assistant exchange"""
127
+ return True
@@ -2,6 +2,11 @@
2
2
  #
3
3
  # SPDX-License-Identifier: Apache-2.0
4
4
 
5
+ claude-3-5-sonnet-20241022: 8192 # Latest model
6
+ claude-3-5-haiku-20241022: 8192 # Latest model
5
7
  claude-3-opus-20240229: 4096
6
8
  claude-3-sonnet-20240229: 4096
7
9
  claude-3-haiku-20240307: 4096
10
+ claude-2.1: 4096
11
+ claude-2.0: 4096
12
+ claude-instant-1.2: 4096
@@ -3,12 +3,32 @@
3
3
  # SPDX-License-Identifier: Apache-2.0
4
4
 
5
5
  model:
6
+ # Latest Models (3.5 series)
7
+ claude-3-5-sonnet-20241022:
8
+ input_tokens: 3.0
9
+ output_tokens: 15.0
10
+ claude-3-5-haiku-20241022:
11
+ input_tokens: 0.80
12
+ output_tokens: 4.0
13
+
14
+ # Claude 3 Models
6
15
  claude-3-opus-20240229:
7
- input_tokens: 0.000015
8
- output_tokens: 0.000075
16
+ input_tokens: 15.0
17
+ output_tokens: 75.0
9
18
  claude-3-sonnet-20240229:
10
- input_tokens: 0.000003
11
- output_tokens: 0.000015
19
+ input_tokens: 3.0
20
+ output_tokens: 15.0
12
21
  claude-3-haiku-20240307:
13
- input_tokens: 0.0000005
14
- output_tokens: 0.0000025
22
+ input_tokens: 0.25
23
+ output_tokens: 1.25
24
+
25
+ # Legacy Models
26
+ claude-2.1:
27
+ input_tokens: 8.0
28
+ output_tokens: 24.0
29
+ claude-2.0:
30
+ input_tokens: 8.0
31
+ output_tokens: 24.0
32
+ claude-instant-1.2:
33
+ input_tokens: 0.8
34
+ output_tokens: 2.4
@@ -2,4 +2,4 @@
2
2
  #
3
3
  # SPDX-License-Identifier: Apache-2.0
4
4
 
5
- __version__ = "1.0.0"
5
+ __version__ = "1.0.1"
@@ -149,3 +149,8 @@ class GroqService(Service):
149
149
  @property
150
150
  def allowed_roles(self):
151
151
  return ["user", "assistant", "system"]
152
+
153
+ @property
154
+ def sequential_exchange(self):
155
+ """whether the service requires user/assistant exchange"""
156
+ return True
@@ -2,4 +2,4 @@
2
2
  #
3
3
  # SPDX-License-Identifier: Apache-2.0
4
4
 
5
- __version__ = "1.0.0"
5
+ __version__ = "1.0.1"
@@ -69,3 +69,8 @@ class LiteiModel:
69
69
  @property
70
70
  def allowed_roles(self):
71
71
  return ["user", "assistant", "system"]
72
+
73
+ @property
74
+ def sequential_exchange(self):
75
+ """whether the service requires user/assistant exchange"""
76
+ return False
@@ -417,7 +417,3 @@ class OpenAIModel(BaseModel):
417
417
  "Estimating price currently only supports chat/completions endpoint"
418
418
  )
419
419
  return estimated_price
420
-
421
- @property
422
- def allowed_roles(self):
423
- return ["user", "assistant", "system"]
@@ -424,3 +424,12 @@ class OpenAIService(Service):
424
424
  method="POST",
425
425
  content_type="application/json",
426
426
  )
427
+
428
+ @property
429
+ def allowed_roles(self):
430
+ return ["user", "assistant", "system"]
431
+
432
+ @property
433
+ def sequential_exchange(self):
434
+ """whether the service requires user/assistant exchange"""
435
+ return False
@@ -1 +1 @@
1
- __version__ = "1.0.2"
1
+ __version__ = "1.0.3"
@@ -111,3 +111,8 @@ class PerplexityService(Service):
111
111
  @property
112
112
  def allowed_roles(self):
113
113
  return ["user", "assistant", "system"]
114
+
115
+ @property
116
+ def sequential_exchange(self):
117
+ """whether the service requires user/assistant exchange"""
118
+ return True
@@ -1 +1 @@
1
- __version__ = "1.0.0"
1
+ __version__ = "1.0.1"
lionagi/service/imodel.py CHANGED
@@ -121,5 +121,10 @@ class iModel:
121
121
  def allowed_roles(self):
122
122
  return self.service.allowed_roles
123
123
 
124
+ @property
125
+ def sequential_exchange(self):
126
+ """whether the service requires user/assistant exchange"""
127
+ return self.service.sequential_exchange
128
+
124
129
 
125
130
  __all__ = ["iModel"]
lionagi/version.py CHANGED
@@ -1 +1 @@
1
- __version__ = "0.5.4"
1
+ __version__ = "0.5.5"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: lionagi
3
- Version: 0.5.4
3
+ Version: 0.5.5
4
4
  Summary: An AGentic Intelligence Operating System.
5
5
  Author-email: HaiyangLi <quantocean.li@gmail.com>
6
6
  License: Apache License
@@ -1,10 +1,10 @@
1
1
  lionagi/__init__.py,sha256=oybfu2VsZc4ElN7ZeaW3KQrz8T8EcSDHPA8lUE-8G2I,537
2
2
  lionagi/settings.py,sha256=BOjxRV4N9zQJervvajPhbaHmgZ-nhbCy7AaQJi3Avug,2726
3
- lionagi/version.py,sha256=DITpct-LrdIsTgwx2NgH5Ghx5y8Xgz1YMimy1ZV5RTY,22
3
+ lionagi/version.py,sha256=78mfpLewKVki6c9UONSUdlVme_JsN9ZwIfp4Hf4jmG0,22
4
4
  lionagi/core/__init__.py,sha256=v8vNyJVIVj8_Oz9RJdVe6ZKUQMYTgDh1VQpnr1KdLaw,112
5
5
  lionagi/core/_class_registry.py,sha256=srSWefqCS9EZrMvyA8zCrZ9KFvzAhTIj8g6mJG5KlIc,1982
6
6
  lionagi/core/action/__init__.py,sha256=v8vNyJVIVj8_Oz9RJdVe6ZKUQMYTgDh1VQpnr1KdLaw,112
7
- lionagi/core/action/action_manager.py,sha256=8yNWV5x8YtaoL2A_U_5xjJdruqwWw8TLPAtq3f3DC7M,10143
7
+ lionagi/core/action/action_manager.py,sha256=R7gXNu--lM8DSFNMP1fUOcNzWPsAE49qizpw8pP11fo,10236
8
8
  lionagi/core/action/base.py,sha256=M2K3irxpp7fDwczefzZdUsHhGd_21l1xhFT9iNSbiK0,4110
9
9
  lionagi/core/action/function_calling.py,sha256=7N5UFLbHPy6yvPrR6RH9SNSwt73s0X_3iAnOV8YMy0Q,6001
10
10
  lionagi/core/action/tool.py,sha256=pDiyttx0obu0qDskz7POHxbyqTwHuD7HCeE31LkzRMg,6884
@@ -12,14 +12,14 @@ lionagi/core/action/types.py,sha256=KqW5ZHXssfxuf1kIiIUoj-r3KIZEoQ_GkZ04tL6fUPQ,
12
12
  lionagi/core/communication/__init__.py,sha256=v8vNyJVIVj8_Oz9RJdVe6ZKUQMYTgDh1VQpnr1KdLaw,112
13
13
  lionagi/core/communication/action_request.py,sha256=gicqQIs7VLOhnkQYsUuRmSLGittODiG3Pk74FayPSeM,5006
14
14
  lionagi/core/communication/action_response.py,sha256=QONcRtvV7Ympbzkdg5gnV0DqCC97Y-gvaA0D7EkjswM,4505
15
- lionagi/core/communication/assistant_response.py,sha256=WTQjBxAckMILocaZEsOP6u1mfKr3DhYVt4K8TyAh7Ek,5760
15
+ lionagi/core/communication/assistant_response.py,sha256=IidDoxC54lxnDT194w5exWC9hDb0TxTY2mmwzbQwbOg,6004
16
16
  lionagi/core/communication/base_mail.py,sha256=Et-WrHlw2x75mLIKy-wMUj3YlGGL_2BF9r1REuiZtM8,1704
17
17
  lionagi/core/communication/instruction.py,sha256=Iy3G1sp0lPuA4Ak9pLobIipou4ePLsMdGGvRq6L58UU,12454
18
- lionagi/core/communication/message.py,sha256=60yaub4C_JFnMR76D_DeYfQ_mQYoZ0eBF9Vqk2UadUw,8550
19
- lionagi/core/communication/message_manager.py,sha256=RnSYJUnKOKBS8dfY2804Zq2sD-C5qDvBXNxXRsMfRe0,16987
18
+ lionagi/core/communication/message.py,sha256=ZE4hJfDN1LLOGYM-nxFZDIP6v8b3fMNcziS7Pj1gYNA,8556
19
+ lionagi/core/communication/message_manager.py,sha256=MRl7_RdgOOHedUOVZ7FT9DtsWK4C4nj5NzTXgJV71aw,17478
20
20
  lionagi/core/communication/system.py,sha256=5DoDODZePy4EDpE3oI5RpkzBXVp9WC2Mf4B3fPImItI,3824
21
21
  lionagi/core/communication/types.py,sha256=rBGMpE3NW0SGKc-wJdJvT-VrO3wpjwjQhoWzSC2Dqh0,745
22
- lionagi/core/communication/utils.py,sha256=9kaBLH2eA2XqhW_aQvqziwm__z-WlBKSM0pwWX4BFjk,6959
22
+ lionagi/core/communication/utils.py,sha256=5W0xW6Tx-DF4Vzpjpk01g1960mNjvBUWrDLGU-thBaQ,7031
23
23
  lionagi/core/communication/templates/README.md,sha256=Ch4JrKSjd85fLitAYO1OhZjNOGKHoEwaKQlcV16jiUI,1286
24
24
  lionagi/core/communication/templates/action_request.jinja2,sha256=d6OmxHKyvvNDSK4bnBM3TGSUk_HeE_Q2EtLAQ0ZBEJg,120
25
25
  lionagi/core/communication/templates/action_response.jinja2,sha256=Mg0UxmXlIvtP_KPB0GcJxE1TP6lml9BwdPkW1PZxkg8,142
@@ -55,7 +55,7 @@ lionagi/core/models/schema_model.py,sha256=H2tSX3r0U6MDNi929rWmAZy3nUKMP47RG-Ma0
55
55
  lionagi/core/models/types.py,sha256=elcUuz_9dx4AhZddnICF-Cs62VJWIBqMET7MiRe4c1I,447
56
56
  lionagi/core/session/__init__.py,sha256=v8vNyJVIVj8_Oz9RJdVe6ZKUQMYTgDh1VQpnr1KdLaw,112
57
57
  lionagi/core/session/branch.py,sha256=r6yNXwTm0oYA-9YOereuvLJtDnhj9IJWJ5fjTyKN88U,4406
58
- lionagi/core/session/branch_mixins.py,sha256=C9lGHmD1AmXAePw0kGIeuZjZ7SzOrFcIwV6rVaGhoGg,19623
58
+ lionagi/core/session/branch_mixins.py,sha256=7uVqxkgvbj53JlDk9roL032c2YeNl_bq5UQSxw24raQ,21240
59
59
  lionagi/core/session/session.py,sha256=cutece_iTs5K_m5soRfU9oTfHmw1icDEvx77E1RelIM,5129
60
60
  lionagi/core/session/types.py,sha256=MUGTSa2HWK79p7z-CG22RFP07N5AKnPVNXZwZt_wIvU,202
61
61
  lionagi/core/typing/__init__.py,sha256=Y9BK1OUXzjQgIo3epCVwWqUYhFwQQ_ayhRwI1UOmINg,228
@@ -65,12 +65,12 @@ lionagi/core/typing/_pydantic.py,sha256=xMNyT0rDhSpKkEDfzj6GHobqlTtRn48svhmA75LP
65
65
  lionagi/core/typing/_typing.py,sha256=VJj5W6y-JGK1ZzSbyDs4qAuq0cA5wp5HtRgZUsZ50E0,869
66
66
  lionagi/integrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
67
67
  lionagi/integrations/_services.py,sha256=qxffUaPKvp2Bb_LI3Uiyokm7l6ZAbRi0xKxZXCYs67c,498
68
- lionagi/integrations/anthropic_/AnthropicModel.py,sha256=3Mzw7g6KjCZMzRgURH1AgqUJvmS3AqZaF5k_q4f77j8,9228
69
- lionagi/integrations/anthropic_/AnthropicService.py,sha256=Z6fGD2nLEKOm3cDK4Gy0_Vl289KAxX1wswCWsEDpp4E,3656
68
+ lionagi/integrations/anthropic_/AnthropicModel.py,sha256=6O9-GAQnq-Erhx62pxQDRuVL-vpCFUWMEe3V6HmR1MA,9076
69
+ lionagi/integrations/anthropic_/AnthropicService.py,sha256=t1LL_64xmz4vFDGVGm8M7Stion8LwfJVVEPvdtYwDtg,4074
70
70
  lionagi/integrations/anthropic_/__init__.py,sha256=v8vNyJVIVj8_Oz9RJdVe6ZKUQMYTgDh1VQpnr1KdLaw,112
71
- lionagi/integrations/anthropic_/anthropic_max_output_token_data.yaml,sha256=u_CT9UAXoNpbAWuPHMxH9g4erZW7XUwY4vdSXyE86t4,203
72
- lionagi/integrations/anthropic_/anthropic_price_data.yaml,sha256=NCoBo5QFiBvrtztZf2FEyYvtKjIOYDuVMAVUINtp3OY,368
73
- lionagi/integrations/anthropic_/version.py,sha256=g_pWEWcI5s734NFznrQH3zktRFXpvlB2P-8lty7inwI,135
71
+ lionagi/integrations/anthropic_/anthropic_max_output_token_data.yaml,sha256=MCgwrtCwaVE9SJar3NNKI51uuwQ2Nzko979lTd5mEeU,360
72
+ lionagi/integrations/anthropic_/anthropic_price_data.yaml,sha256=tviu4PY-xjo-9vhx--Vsp0ZNYVhgcaQAAfZvD7GxErc,756
73
+ lionagi/integrations/anthropic_/version.py,sha256=25-aR3n_vIk4o62w93ToEUcEYbH9ZPmmJjwkf4fvZls,135
74
74
  lionagi/integrations/anthropic_/api_endpoints/__init__.py,sha256=v8vNyJVIVj8_Oz9RJdVe6ZKUQMYTgDh1VQpnr1KdLaw,112
75
75
  lionagi/integrations/anthropic_/api_endpoints/api_request.py,sha256=JWp-m4DFFwrR13ckTMnfg2ULOJAmHDheuXDNR24vk4s,10368
76
76
  lionagi/integrations/anthropic_/api_endpoints/data_models.py,sha256=qX6U9G_ZNlASyvhQ3WzgdR0kMvSWbO-kbQyo6R7pIAc,978
@@ -84,19 +84,19 @@ lionagi/integrations/anthropic_/api_endpoints/messages/response/content_models.p
84
84
  lionagi/integrations/anthropic_/api_endpoints/messages/response/response_body.py,sha256=96e2GAAiTGkExRullvAsAOGhPPHNByhnv6DK_wz1j40,3213
85
85
  lionagi/integrations/anthropic_/api_endpoints/messages/response/usage_models.py,sha256=s6oe5iOU027M7YPS10upnvcPsuFbTV1ZM00lInHPKvA,695
86
86
  lionagi/integrations/groq_/GroqModel.py,sha256=y2KaFe8GmlTBnBRvB09dNjYYhNEjq2wujYfB8YzGNHI,11950
87
- lionagi/integrations/groq_/GroqService.py,sha256=v3bn04njIwV7ysOlfLCmapOhHZJy3bNUTr0i12tFqME,4644
87
+ lionagi/integrations/groq_/GroqService.py,sha256=GKYDONxZpzcH7XgVlLg0Tw2wWBAAcOywsBcahbOQPCU,4781
88
88
  lionagi/integrations/groq_/__init__.py,sha256=v8vNyJVIVj8_Oz9RJdVe6ZKUQMYTgDh1VQpnr1KdLaw,112
89
89
  lionagi/integrations/groq_/groq_max_output_token_data.yaml,sha256=Y0PbyZ7pyyV1zi7ZJSJGVPsZDhSeN2JMOyghzkqqoKc,559
90
90
  lionagi/integrations/groq_/groq_price_data.yaml,sha256=HmN_2-QliKvaC8Ghq7QJAD97ubMYzPSy7EGgqzgCz48,1234
91
91
  lionagi/integrations/groq_/groq_rate_limits.yaml,sha256=x8hiZx_-H3ZyMznnxgFCQidWMEK5jIzBvrYpxb8gFYI,2863
92
- lionagi/integrations/groq_/version.py,sha256=g_pWEWcI5s734NFznrQH3zktRFXpvlB2P-8lty7inwI,135
92
+ lionagi/integrations/groq_/version.py,sha256=25-aR3n_vIk4o62w93ToEUcEYbH9ZPmmJjwkf4fvZls,135
93
93
  lionagi/integrations/groq_/api_endpoints/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
94
94
  lionagi/integrations/groq_/api_endpoints/data_models.py,sha256=bwqAbERAT1xAzLkMKkBrHOLr-hLDcblW4pcQ5Oqmyq8,5424
95
95
  lionagi/integrations/groq_/api_endpoints/groq_request.py,sha256=u-GJuu0ZsY7jMWaXtNXnud7Pw3Pxs6Cc280UnTHk3YE,10383
96
96
  lionagi/integrations/groq_/api_endpoints/match_response.py,sha256=95vRKsR1QYPPmBY36dC5azdKn5UlXNRrTQqTUZro_YM,3756
97
97
  lionagi/integrations/groq_/api_endpoints/response_utils.py,sha256=P5kRsGHe-Rx9xejfRcU8q680yotcWLTSaSUuqXATcho,3710
98
98
  lionagi/integrations/litellm_/__init__.py,sha256=v8vNyJVIVj8_Oz9RJdVe6ZKUQMYTgDh1VQpnr1KdLaw,112
99
- lionagi/integrations/litellm_/imodel.py,sha256=YBaG5f8BavbhooVv7xQXC68K6N7AxPMcUAhgJ1TlYNw,2227
99
+ lionagi/integrations/litellm_/imodel.py,sha256=M52linffjZuytzHzhJStPLcMa90oCs-pfVljzdK-0Es,2365
100
100
  lionagi/integrations/ollama_/OllamaModel.py,sha256=5kBYIWShsSpQpSgOxdbRk2_4jmss6Y8iISjUcS3KoWw,8341
101
101
  lionagi/integrations/ollama_/OllamaService.py,sha256=bJ4kk1FPjn_kecLzxTJgVj05KZPzF5FclHoDA3jdAlg,4080
102
102
  lionagi/integrations/ollama_/__init__.py,sha256=v8vNyJVIVj8_Oz9RJdVe6ZKUQMYTgDh1VQpnr1KdLaw,112
@@ -125,12 +125,12 @@ lionagi/integrations/ollama_/api_endpoints/model/list_model.py,sha256=OrGdJa0evj
125
125
  lionagi/integrations/ollama_/api_endpoints/model/pull_model.py,sha256=fiZJcQSRn73SJA9GdlfPBG5RiMISQwBc0y7S_zAlOGA,923
126
126
  lionagi/integrations/ollama_/api_endpoints/model/push_model.py,sha256=yDOMVu3ajdNFT1cuzb4R_3qDxlk0qT4aM2oget3aHZ4,961
127
127
  lionagi/integrations/ollama_/api_endpoints/model/show_model.py,sha256=CclV6pEmm5iYM25ePnMAiicVJmZzolDim7BsQoEJAw0,864
128
- lionagi/integrations/openai_/OpenAIModel.py,sha256=4SYgSlz5ZMcpEGf_epF8n4emd7ze1UutTjKDJvZDYcQ,15980
129
- lionagi/integrations/openai_/OpenAIService.py,sha256=P0sGnxeWPKe15_KndqCgEdM74AKVJ6NJsgFGORqqlrk,13507
128
+ lionagi/integrations/openai_/OpenAIModel.py,sha256=6cv6NIkCMjZ7k2v-kvtCVXjIOHgwwPfGuJV7ttL7Q4M,15889
129
+ lionagi/integrations/openai_/OpenAIService.py,sha256=H48XqIv1IBzraPUGqryQzy83dMxBq4_qmTAo65MCBQE,13736
130
130
  lionagi/integrations/openai_/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
131
131
  lionagi/integrations/openai_/openai_max_output_token_data.yaml,sha256=3gd8TGnFjy4AdHzvsV9wZjK_r_o26pe3Th75n5eN2zs,263
132
132
  lionagi/integrations/openai_/openai_price_data.yaml,sha256=O8mRk8_-MVVLMMlRRIggVirq-d91U6aNhpl9F3L7EL4,780
133
- lionagi/integrations/openai_/version.py,sha256=Y3LSfRioSl2xch70pq_ULlvyECXyEtN3krVaWeGyaxk,22
133
+ lionagi/integrations/openai_/version.py,sha256=2plzdEEb24FLjE2I2XyBBcJEPYWHccNL4SgtLC_6erg,22
134
134
  lionagi/integrations/openai_/api_endpoints/__init__.py,sha256=Ave6AXUYRyaRqCwSS3usjr8Jvog26Rjc5HdsCPRAGLk,68
135
135
  lionagi/integrations/openai_/api_endpoints/api_request.py,sha256=2hS3tEQlglgvw5Jw6c0JL5GXfQDv0gRo5TWcyTsCUJA,10567
136
136
  lionagi/integrations/openai_/api_endpoints/data_models.py,sha256=Jiob2b_2W8idS-mNOjnK8cP_vbphArqoOAC6e5DXmc8,627
@@ -218,11 +218,11 @@ lionagi/integrations/pandas_/search_keywords.py,sha256=AJfN8QVu6rUni6As8AOTnzne_
218
218
  lionagi/integrations/pandas_/to_df.py,sha256=3vAOCj0Ib2PZNCblg1oA20PjRIrUXR86FHICQLNhLu0,5757
219
219
  lionagi/integrations/pandas_/update_cells.py,sha256=7X1bGcPvnEINrLM_zFCWUXIkrFdMGV3TjoEYBq_SThs,1658
220
220
  lionagi/integrations/perplexity_/PerplexityModel.py,sha256=06kURklzmc3f-TPwdB3a2zbYttfBTSlBrgZG_Tkw680,9335
221
- lionagi/integrations/perplexity_/PerplexityService.py,sha256=q5Ruy60H3cL2a4LOUjB2JI6bkMwKiWVSlrjpATREwqM,3641
221
+ lionagi/integrations/perplexity_/PerplexityService.py,sha256=fyI7S1I9Pxdr1DHxFTkUmTP6djIQLPLlkKyEKGz5QLg,3778
222
222
  lionagi/integrations/perplexity_/__init__.py,sha256=v8vNyJVIVj8_Oz9RJdVe6ZKUQMYTgDh1VQpnr1KdLaw,112
223
223
  lionagi/integrations/perplexity_/perplexity_max_output_token_data.yaml,sha256=SY6nDrDRhI_HzEBYHaANR_Mc5GRa0SY9Pw_wRuVBlV4,121
224
224
  lionagi/integrations/perplexity_/perplexity_price_data.yaml,sha256=eyp_jZktnEbsEv9VJ0TLNzjp99VdOEA0E-el_dAzCTc,284
225
- lionagi/integrations/perplexity_/version.py,sha256=J-j-u0itpEFT6irdmWmixQqYMadNl1X91TxUmoiLHMI,22
225
+ lionagi/integrations/perplexity_/version.py,sha256=d4QHYmS_30j0hPN8NmNPnQ_Z0TphDRbu4MtQj9cT9e8,22
226
226
  lionagi/integrations/perplexity_/api_endpoints/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
227
227
  lionagi/integrations/perplexity_/api_endpoints/api_request.py,sha256=jcBlSkTta0HIyg-mbY_iNpSoQwuDuQKryFTb0p5JjCM,6657
228
228
  lionagi/integrations/perplexity_/api_endpoints/data_models.py,sha256=kQQorMksoibGopJm5oXpoR5pH_ZyLdnpmA5xd855P2c,1689
@@ -351,7 +351,7 @@ lionagi/protocols/registries/_component_registry.py,sha256=C04oie1-CQJCoXsjZ6hYA
351
351
  lionagi/protocols/registries/_pile_registry.py,sha256=l2RbkjW6OGOHsgPIq9OitIi27r8Fk0vziMI8N_tP3nQ,656
352
352
  lionagi/service/__init__.py,sha256=AQS0ezBCtjZOUbT_QEH-Ev5l41-Pk0_KgmKHUgf_Y_A,375
353
353
  lionagi/service/complete_request_info.py,sha256=V9cWqmQ-fo952EWCooAvezaM_xuxYU4Xy0Jo_0XJnug,301
354
- lionagi/service/imodel.py,sha256=laiwc4FvO0jHpf7Q9GrL0VIABCIInkn0ld8XUcbabKo,4191
354
+ lionagi/service/imodel.py,sha256=OK71j_hCJb9LATocPJfaDRpXfVpq_Z9r3F6OeOgrgyg,4356
355
355
  lionagi/service/rate_limiter.py,sha256=1cCtKfpOo_8h4ZN-oX5HXtnq0iGjF1rxi8htyu65kMU,3746
356
356
  lionagi/service/service.py,sha256=58FPZzLM85fNm4WgSzmZRwbHHuLUW1K0VagKZ7A2ZAs,1077
357
357
  lionagi/service/service_match_util.py,sha256=gjGzfQeQqkyxMrKx8aINS47r3Pmugbcx8JjmvbEBg7Y,4305
@@ -368,7 +368,7 @@ lionagi/strategies/sequential_chunk.py,sha256=jG_WZXG-Ra3yd30CmX4b3XeCNAUrZGA2-i
368
368
  lionagi/strategies/sequential_concurrent_chunk.py,sha256=H7GShaqYlD5XxNJMG2GdOR4Vl8JHDhZb5jxNq8zY0hI,3365
369
369
  lionagi/strategies/types.py,sha256=fEvE4d1H4SeCcXcd2dz3q4k8jFIBtxYzjxDN7eJRLtI,769
370
370
  lionagi/strategies/utils.py,sha256=DX1dvxia8cNRqEJJbssJ3mgRzo7kgWCTA4y5DYLCCZE,1281
371
- lionagi-0.5.4.dist-info/METADATA,sha256=or-K2I6vye-JTu559FMXpy14cZlI5_3xLAgLCURMu1w,22736
372
- lionagi-0.5.4.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
373
- lionagi-0.5.4.dist-info/licenses/LICENSE,sha256=VXFWsdoN5AAknBCgFqQNgPWYx7OPp-PFEP961zGdOjc,11288
374
- lionagi-0.5.4.dist-info/RECORD,,
371
+ lionagi-0.5.5.dist-info/METADATA,sha256=tVI6_Y0Ykz5C8X0ptfBdfK9vke6V3m4ZyIkBrFpTIoE,22736
372
+ lionagi-0.5.5.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
373
+ lionagi-0.5.5.dist-info/licenses/LICENSE,sha256=VXFWsdoN5AAknBCgFqQNgPWYx7OPp-PFEP961zGdOjc,11288
374
+ lionagi-0.5.5.dist-info/RECORD,,