lionagi 0.5.0__py3-none-any.whl → 0.5.1__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/core/session/branch_mixins.py +41 -3
- lionagi/integrations/anthropic_/AnthropicService.py +4 -0
- lionagi/integrations/groq_/GroqService.py +4 -0
- lionagi/integrations/litellm_/imodel.py +4 -0
- lionagi/integrations/ollama_/OllamaService.py +4 -0
- lionagi/integrations/openai_/OpenAIModel.py +4 -0
- lionagi/integrations/perplexity_/PerplexityService.py +4 -0
- lionagi/service/imodel.py +22 -7
- lionagi/service/service.py +4 -0
- lionagi/version.py +1 -1
- {lionagi-0.5.0.dist-info → lionagi-0.5.1.dist-info}/METADATA +211 -14
- {lionagi-0.5.0.dist-info → lionagi-0.5.1.dist-info}/RECORD +14 -14
- {lionagi-0.5.0.dist-info → lionagi-0.5.1.dist-info}/WHEEL +0 -0
- {lionagi-0.5.0.dist-info → lionagi-0.5.1.dist-info}/licenses/LICENSE +0 -0
@@ -288,11 +288,39 @@ class BranchOperationMixin(ABC):
|
|
288
288
|
image_detail=image_detail,
|
289
289
|
tool_schemas=tool_schemas,
|
290
290
|
)
|
291
|
-
kwargs["messages"] = self.msgs.to_chat_msgs(progress)
|
292
|
-
kwargs["messages"].append(ins.chat_msg)
|
293
291
|
|
292
|
+
progress = progress or self.msgs.progress
|
293
|
+
messages = [self.msgs.messages[i] for i in progress]
|
294
|
+
|
295
|
+
if self.msgs.system and "system" not in imodel.allowed_roles:
|
296
|
+
messages = [msg for msg in messages if msg.role != "system"]
|
297
|
+
first_instruction = None
|
298
|
+
|
299
|
+
if len(messages) == 0:
|
300
|
+
first_instruction = ins.model_copy()
|
301
|
+
first_instruction.guidance = self.msgs.system.system_info + (
|
302
|
+
first_instruction.guidance or ""
|
303
|
+
)
|
304
|
+
messages.append(first_instruction)
|
305
|
+
elif len(messages) >= 1:
|
306
|
+
first_instruction = messages[0]
|
307
|
+
if not isinstance(first_instruction, Instruction):
|
308
|
+
raise ValueError(
|
309
|
+
"First message in progress must be an Instruction or System"
|
310
|
+
)
|
311
|
+
first_instruction = first_instruction.model_copy()
|
312
|
+
first_instruction.guidance = self.msgs.system.system_info + (
|
313
|
+
first_instruction.guidance or ""
|
314
|
+
)
|
315
|
+
messages[0] = first_instruction
|
316
|
+
|
317
|
+
else:
|
318
|
+
messages.append(ins)
|
319
|
+
|
320
|
+
kwargs["messages"] = [i.chat_msg for i in messages]
|
294
321
|
imodel = imodel or self.imodel
|
295
322
|
api_response = None
|
323
|
+
|
296
324
|
if isinstance(imodel, LiteiModel):
|
297
325
|
api_response = await imodel.invoke(**kwargs)
|
298
326
|
elif isinstance(imodel, iModel):
|
@@ -329,12 +357,22 @@ class BranchOperationMixin(ABC):
|
|
329
357
|
skip_validation: bool = False,
|
330
358
|
clear_messages: bool = False,
|
331
359
|
invoke_action: bool = True,
|
360
|
+
response_format: (
|
361
|
+
type[BaseModel] | BaseModel
|
362
|
+
) = None, # alias of request_model
|
332
363
|
**kwargs,
|
333
364
|
):
|
365
|
+
if response_format and request_model:
|
366
|
+
raise ValueError(
|
367
|
+
"Cannot specify both response_format and request_model"
|
368
|
+
"as they are aliases for the same parameter."
|
369
|
+
)
|
370
|
+
request_model = request_model or response_format
|
371
|
+
|
334
372
|
imodel = imodel or self.imodel
|
335
373
|
retry_imodel = retry_imodel or imodel
|
336
374
|
if clear_messages:
|
337
|
-
self.clear_messages()
|
375
|
+
self.msgs.clear_messages()
|
338
376
|
|
339
377
|
if num_parse_retries > 5:
|
340
378
|
logging.warning(
|
lionagi/service/imodel.py
CHANGED
@@ -9,6 +9,7 @@ from lionagi.service.service_match_util import (
|
|
9
9
|
|
10
10
|
|
11
11
|
class iModel:
|
12
|
+
|
12
13
|
def __init__(
|
13
14
|
self,
|
14
15
|
provider: str | Service,
|
@@ -20,25 +21,34 @@ class iModel:
|
|
20
21
|
interval_requests: int = None,
|
21
22
|
**kwargs,
|
22
23
|
):
|
23
|
-
|
24
24
|
if api_key is not None:
|
25
25
|
api_key = api_key
|
26
26
|
elif api_key_schema is not None:
|
27
27
|
api_key = api_key_schema
|
28
28
|
|
29
|
-
if
|
30
|
-
|
29
|
+
if task == "chat":
|
30
|
+
match provider:
|
31
|
+
case "openai":
|
32
|
+
task = "create_chat_completion"
|
33
|
+
case "anthropic":
|
34
|
+
task = "create_message"
|
35
|
+
case "groq":
|
36
|
+
task = "create_chat_completion"
|
37
|
+
case "perplexity":
|
38
|
+
task = "create_chat_completion"
|
39
|
+
|
40
|
+
if isinstance(provider, str):
|
41
|
+
if api_key is None:
|
31
42
|
match provider:
|
32
43
|
case "openai":
|
33
44
|
api_key = "OPENAI_API_KEY"
|
34
45
|
case "anthropic":
|
35
46
|
api_key = "ANTHROPIC_API_KEY"
|
36
|
-
case "
|
37
|
-
api_key = "
|
47
|
+
case "groq":
|
48
|
+
api_key = "GROQ_API_KEY"
|
38
49
|
case "perplexity":
|
39
|
-
api_key = "
|
50
|
+
api_key = "PERPLEXIY_API_KEY"
|
40
51
|
|
41
|
-
if isinstance(provider, str):
|
42
52
|
self.service = match_service(provider, api_key=api_key, **kwargs)
|
43
53
|
elif isinstance(provider, Service):
|
44
54
|
self.service = provider
|
@@ -80,6 +90,7 @@ class iModel:
|
|
80
90
|
self.data_model = self.service.match_data_model(self.task)
|
81
91
|
|
82
92
|
def parse_to_data_model(self, **kwargs):
|
93
|
+
|
83
94
|
if kwargs.get("model") and self.model:
|
84
95
|
if kwargs.get("model") != self.model:
|
85
96
|
raise ValueError(
|
@@ -106,5 +117,9 @@ class iModel:
|
|
106
117
|
def list_tasks(self):
|
107
118
|
return self.service.list_tasks()
|
108
119
|
|
120
|
+
@property
|
121
|
+
def allowed_roles(self):
|
122
|
+
return self.service.allowed_roles
|
123
|
+
|
109
124
|
|
110
125
|
__all__ = ["iModel"]
|
lionagi/service/service.py
CHANGED
lionagi/version.py
CHANGED
@@ -1 +1 @@
|
|
1
|
-
__version__ = "0.5.
|
1
|
+
__version__ = "0.5.1"
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: lionagi
|
3
|
-
Version: 0.5.
|
3
|
+
Version: 0.5.1
|
4
4
|
Summary: An AGentic Intelligence Operating System.
|
5
5
|
Author-email: HaiyangLi <quantocean.li@gmail.com>
|
6
6
|
License: Apache License
|
@@ -246,17 +246,35 @@ LION is designed to be:
|
|
246
246
|
- 🔧 **Flexible**: Build any workflow you need
|
247
247
|
- 🚀 **Efficient**: Minimal dependencies, maximum performance
|
248
248
|
|
249
|
+
|
250
|
+
|
251
|
+
## Installation
|
252
|
+
|
253
|
+
LION maintains minimal dependencies for maximum reliability:
|
254
|
+
|
255
|
+
```bash
|
256
|
+
uv pip install lionagi
|
257
|
+
```
|
258
|
+
|
259
|
+
Dependencies:
|
260
|
+
- litellm
|
261
|
+
- jinja2
|
262
|
+
- pandas
|
263
|
+
- pillow
|
264
|
+
- python-dotenv
|
265
|
+
|
266
|
+
|
249
267
|
## Quick Start
|
250
268
|
|
251
269
|
```python
|
252
270
|
from lionagi import iModel, Branch
|
253
271
|
|
254
272
|
# Initialize model
|
255
|
-
gpt4o = iModel(provider="openai", model="gpt-4o")
|
273
|
+
gpt4o = iModel(provider="openai", task="chat", model="gpt-4o")
|
256
274
|
|
257
275
|
hunter = Branch(
|
258
|
-
|
259
|
-
|
276
|
+
system="you are a hilarious dragon hunter who responds in 10 words rhymes",
|
277
|
+
imodel=gpt4o,
|
260
278
|
)
|
261
279
|
|
262
280
|
# Chat asynchronously
|
@@ -267,20 +285,199 @@ print(await hunter.communicate("I am a dragon"))
|
|
267
285
|
You claim to be a dragon, oh what a braggin'!
|
268
286
|
```
|
269
287
|
|
270
|
-
##
|
288
|
+
## 📦 Features
|
271
289
|
|
272
|
-
|
290
|
+
### 1. Model Agnostic Structured Output
|
273
291
|
|
274
|
-
|
275
|
-
|
292
|
+
LION provides a unified interface for interacting with any AI model, regardless of the underlying architecture. This allows you to easily switch between models without changing your code.
|
293
|
+
|
294
|
+
```python
|
295
|
+
from pydantic import BaseModel
|
296
|
+
|
297
|
+
class Joke(BaseModel):
|
298
|
+
joke: str
|
299
|
+
|
300
|
+
sonnet = iModel(
|
301
|
+
provider="anthropic",
|
302
|
+
model="claude-3-5-sonnet-20241022",
|
303
|
+
max_tokens=100, # max_tokens is required for anthropic models
|
304
|
+
)
|
305
|
+
|
306
|
+
response = await hunter.communicate(
|
307
|
+
instruction="I am a dragon",
|
308
|
+
response_format=Joke, # structured output in given pydantic model
|
309
|
+
clear_messages=True, # refresh the conversation
|
310
|
+
imodel=sonnet, # use sonnet model, which doesn't support structured output
|
311
|
+
)
|
312
|
+
|
313
|
+
print(type(response))
|
314
|
+
print(response.joke)
|
276
315
|
```
|
277
316
|
|
278
|
-
|
279
|
-
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
|
317
|
+
```
|
318
|
+
<class '__main__.Joke'>
|
319
|
+
Joke(joke='With fiery claws, dragons hide their laughter flaws!')
|
320
|
+
```
|
321
|
+
|
322
|
+
|
323
|
+
### 2. Complete Observability
|
324
|
+
|
325
|
+
```python
|
326
|
+
# using perplexity model
|
327
|
+
pplx_small = iModel(
|
328
|
+
provider="perplexity",
|
329
|
+
task="chat/completions",
|
330
|
+
model="llama-3.1-sonar-small-128k-online",
|
331
|
+
max_tokens=1000,
|
332
|
+
)
|
333
|
+
|
334
|
+
b = await hunter.communicate(
|
335
|
+
instruction="What makes a well-behaved dragon?",
|
336
|
+
clear_messages=True, # refresh the conversation
|
337
|
+
imodel=pplx_small, # use sonnet model
|
338
|
+
)
|
339
|
+
|
340
|
+
print(b)
|
341
|
+
```
|
342
|
+
|
343
|
+
```
|
344
|
+
A well-behaved dragon is one that's calm and bright,
|
345
|
+
No stress or fear, just a peaceful night.
|
346
|
+
It's active, not lethargic, with a happy face,
|
347
|
+
And behaviors like digging, not a frantic pace.
|
348
|
+
It's social, friendly, and never a fright,
|
349
|
+
Just a gentle soul, shining with delight
|
350
|
+
```
|
351
|
+
|
352
|
+
```python
|
353
|
+
hunter.msgs.last_response.model_response
|
354
|
+
```
|
355
|
+
|
356
|
+
```
|
357
|
+
{'id': '1be10f4c-0936-4050-ab48-91bd86ab11a5',
|
358
|
+
'model': 'llama-3.1-sonar-small-128k-online',
|
359
|
+
'object': 'chat.completion',
|
360
|
+
'created': 1734369700,
|
361
|
+
'choices': [{'index': 0,
|
362
|
+
'message': {'role': 'assistant',
|
363
|
+
'content': "A well-behaved dragon is one that's calm and bright,\nNo stress or fear, just a peaceful night.\nIt's active, not lethargic, with a happy face,\nAnd behaviors like digging, not a frantic pace.\nIt's social, friendly, and never a fright,\nJust a gentle soul, shining with delight"},
|
364
|
+
'finish_reason': 'stop',
|
365
|
+
'delta': {'role': 'assistant', 'content': ''}}],
|
366
|
+
'usage': {'prompt_tokens': 40, 'completion_tokens': 69, 'total_tokens': 109},
|
367
|
+
'citations': [{'url': 'https://dragonsdiet.com/blogs/dragon-care/15-bearded-dragon-behaviors-and-what-they-could-mean'},
|
368
|
+
{'url': 'https://masterbraeokk.tripod.com/dragons/behavior.html'},
|
369
|
+
{'url': 'https://files.eric.ed.gov/fulltext/ED247607.pdf'},
|
370
|
+
{'url': 'https://www.travelchinaguide.com/intro/social_customs/zodiac/dragon/five-elements.htm'},
|
371
|
+
{'url': 'https://www.travelchinaguide.com/intro/social_customs/zodiac/dragon/'}]}
|
372
|
+
```
|
373
|
+
|
374
|
+
|
375
|
+
### 3. Easy composition of complex workflows
|
376
|
+
|
377
|
+
```python
|
378
|
+
# chain of thoughts
|
379
|
+
from pydantic import Field
|
380
|
+
|
381
|
+
class Reason(BaseModel):
|
382
|
+
reason: str
|
383
|
+
confidence_score: float
|
384
|
+
|
385
|
+
class Thought(BaseModel):
|
386
|
+
thought: str
|
387
|
+
|
388
|
+
class Analysis(BaseModel):
|
389
|
+
thought: list[Thought] = Field(
|
390
|
+
default_factory=list,
|
391
|
+
description="concise Chain of thoughts from you, 3 step, each in 8 words"
|
392
|
+
)
|
393
|
+
analysis: str = Field(
|
394
|
+
...,
|
395
|
+
description="Final analysis of the dragon's psyche in 20 words",
|
396
|
+
)
|
397
|
+
reason: list[Reason] = Field(
|
398
|
+
default_factory=list,
|
399
|
+
description="Concise Reasoning behind the analysis, 3 support, each in 8 words"
|
400
|
+
)
|
401
|
+
|
402
|
+
context1 = "I am a dragon, I think therefore I am, I suffer from shiny objects syndrome"
|
403
|
+
context2 = "I like food and poetry, I use uv sometimes, it's cool but I am not familiar with pip"
|
404
|
+
|
405
|
+
async def analyze(context) -> Analysis:
|
406
|
+
psychologist = Branch(
|
407
|
+
system="you are a renowned dragon psychologist",
|
408
|
+
imodel=gpt4o,
|
409
|
+
)
|
410
|
+
return await psychologist.communicate(
|
411
|
+
instruction="analyze the dragon's psyche using chain of thoughts",
|
412
|
+
guidance="think step by step, reason with logic",
|
413
|
+
context=context,
|
414
|
+
response_format=Analysis,
|
415
|
+
)
|
416
|
+
|
417
|
+
```
|
418
|
+
|
419
|
+
```python
|
420
|
+
result1 = await analyze(context1)
|
421
|
+
|
422
|
+
print("\nThoughts:")
|
423
|
+
for i in result1.thought:
|
424
|
+
print(i.thought)
|
425
|
+
|
426
|
+
print("\nAnalysis:")
|
427
|
+
print(result1.analysis)
|
428
|
+
|
429
|
+
print("\nReasoning:")
|
430
|
+
for i in result1.reason:
|
431
|
+
print(i.reason)
|
432
|
+
```
|
433
|
+
|
434
|
+
```
|
435
|
+
|
436
|
+
Thoughts:
|
437
|
+
Dragons are attracted to shiny objects naturally.
|
438
|
+
This suggests a strong affinity for hoarding.
|
439
|
+
Reflects the dragon's inherent desire for possession.
|
440
|
+
|
441
|
+
Analysis:
|
442
|
+
The dragon demonstrates a compulsive hoarding behavior linked to attraction for shiny objects.
|
443
|
+
|
444
|
+
Reasoning:
|
445
|
+
Shiny objects trigger instinctual hoarding behavior.
|
446
|
+
Possession indicates a symbol of power and security.
|
447
|
+
Hoarding is reinforced by evolutionary survival mechanisms.
|
448
|
+
```
|
449
|
+
|
450
|
+
```python
|
451
|
+
result2 = await analyze(context2)
|
452
|
+
|
453
|
+
print("\nThoughts:")
|
454
|
+
for i in result2.thought:
|
455
|
+
print(i.thought)
|
456
|
+
|
457
|
+
print("\nAnalysis:")
|
458
|
+
print(result2.analysis)
|
459
|
+
|
460
|
+
print("\nReasoning:")
|
461
|
+
for i in result2.reason:
|
462
|
+
print(i.reason)
|
463
|
+
```
|
464
|
+
|
465
|
+
```
|
466
|
+
Thoughts:
|
467
|
+
Dragon enjoys both food and poetry regularly.
|
468
|
+
Dragon uses uv light with frequent interest.
|
469
|
+
Dragon is unfamiliar and not comfortable with pip.
|
470
|
+
|
471
|
+
Analysis:
|
472
|
+
The dragon is curious and exploratory, yet selectively cautious about unfamiliar methodologies.
|
473
|
+
|
474
|
+
Reasoning:
|
475
|
+
Preference for food and poetry suggests curiosity.
|
476
|
+
Frequent uv light use indicates exploratory nature.
|
477
|
+
Discomfort with pip usage shows selective caution.
|
478
|
+
```
|
479
|
+
|
480
|
+
|
284
481
|
|
285
482
|
## 🌟 Example Workflow
|
286
483
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
lionagi/__init__.py,sha256=kIVZqqp61CFddL5BbYynIPwRlg3oUbSVTnWh6QOyhaM,495
|
2
2
|
lionagi/settings.py,sha256=r3G-ihH5ehIKwsUdqSGKRwxKpXFj9v6kIaElZKQd7R4,2953
|
3
|
-
lionagi/version.py,sha256=
|
3
|
+
lionagi/version.py,sha256=eZ1bOun1DDVV0YLOBW4wj2FP1ajReLjbIrGmzN7ASBw,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
|
@@ -55,7 +55,7 @@ lionagi/core/models/schema_model.py,sha256=1GNCStg10VWyhqjN4ojxs9mt60T5o8I8_ZX7D
|
|
55
55
|
lionagi/core/models/types.py,sha256=I8khSl0c-O2UgYLMss5akvIFscogjfgKTE2sT6Tg50I,270
|
56
56
|
lionagi/core/session/__init__.py,sha256=v8vNyJVIVj8_Oz9RJdVe6ZKUQMYTgDh1VQpnr1KdLaw,112
|
57
57
|
lionagi/core/session/branch.py,sha256=MZXmE7Ne8_CGxgS_Jo5Qak3wJdvut4ZXgF2j8zPMstc,4241
|
58
|
-
lionagi/core/session/branch_mixins.py,sha256=
|
58
|
+
lionagi/core/session/branch_mixins.py,sha256=OvN29nHieren4YQQ47VQ3ZfxKPBwIR7_lrxcefSwJLc,19766
|
59
59
|
lionagi/core/session/session.py,sha256=0DW8HoU_Eqki4UeKIaEuXWBb08N_OkxoDWQyH211M9g,5195
|
60
60
|
lionagi/core/session/types.py,sha256=MUGTSa2HWK79p7z-CG22RFP07N5AKnPVNXZwZt_wIvU,202
|
61
61
|
lionagi/core/typing/__init__.py,sha256=THyLLjX2WgKkycQPNxXWWl1BVh7XCrQMuAh8WE4UhP8,226
|
@@ -67,7 +67,7 @@ lionagi/core/typing/typing_.py,sha256=VJj5W6y-JGK1ZzSbyDs4qAuq0cA5wp5HtRgZUsZ50E
|
|
67
67
|
lionagi/integrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
68
68
|
lionagi/integrations/services.py,sha256=qxffUaPKvp2Bb_LI3Uiyokm7l6ZAbRi0xKxZXCYs67c,498
|
69
69
|
lionagi/integrations/anthropic_/AnthropicModel.py,sha256=SOqO0xlmOZ9CMl7aEmQylXjDnHJ3c5oyR7POQLrWWGc,9064
|
70
|
-
lionagi/integrations/anthropic_/AnthropicService.py,sha256=
|
70
|
+
lionagi/integrations/anthropic_/AnthropicService.py,sha256=Z6fGD2nLEKOm3cDK4Gy0_Vl289KAxX1wswCWsEDpp4E,3656
|
71
71
|
lionagi/integrations/anthropic_/__init__.py,sha256=v8vNyJVIVj8_Oz9RJdVe6ZKUQMYTgDh1VQpnr1KdLaw,112
|
72
72
|
lionagi/integrations/anthropic_/anthropic_max_output_token_data.yaml,sha256=u_CT9UAXoNpbAWuPHMxH9g4erZW7XUwY4vdSXyE86t4,203
|
73
73
|
lionagi/integrations/anthropic_/anthropic_price_data.yaml,sha256=NCoBo5QFiBvrtztZf2FEyYvtKjIOYDuVMAVUINtp3OY,368
|
@@ -85,7 +85,7 @@ lionagi/integrations/anthropic_/api_endpoints/messages/response/content_models.p
|
|
85
85
|
lionagi/integrations/anthropic_/api_endpoints/messages/response/response_body.py,sha256=96e2GAAiTGkExRullvAsAOGhPPHNByhnv6DK_wz1j40,3213
|
86
86
|
lionagi/integrations/anthropic_/api_endpoints/messages/response/usage_models.py,sha256=s6oe5iOU027M7YPS10upnvcPsuFbTV1ZM00lInHPKvA,695
|
87
87
|
lionagi/integrations/groq_/GroqModel.py,sha256=8vIHjzcYoIeRvzXQpBDd-ASx6gXckr5qhmUqJJ9UL1g,11721
|
88
|
-
lionagi/integrations/groq_/GroqService.py,sha256=
|
88
|
+
lionagi/integrations/groq_/GroqService.py,sha256=v3bn04njIwV7ysOlfLCmapOhHZJy3bNUTr0i12tFqME,4644
|
89
89
|
lionagi/integrations/groq_/__init__.py,sha256=v8vNyJVIVj8_Oz9RJdVe6ZKUQMYTgDh1VQpnr1KdLaw,112
|
90
90
|
lionagi/integrations/groq_/groq_max_output_token_data.yaml,sha256=Y0PbyZ7pyyV1zi7ZJSJGVPsZDhSeN2JMOyghzkqqoKc,559
|
91
91
|
lionagi/integrations/groq_/groq_price_data.yaml,sha256=HmN_2-QliKvaC8Ghq7QJAD97ubMYzPSy7EGgqzgCz48,1234
|
@@ -97,9 +97,9 @@ lionagi/integrations/groq_/api_endpoints/groq_request.py,sha256=u-GJuu0ZsY7jMWaX
|
|
97
97
|
lionagi/integrations/groq_/api_endpoints/match_response.py,sha256=95vRKsR1QYPPmBY36dC5azdKn5UlXNRrTQqTUZro_YM,3756
|
98
98
|
lionagi/integrations/groq_/api_endpoints/response_utils.py,sha256=P5kRsGHe-Rx9xejfRcU8q680yotcWLTSaSUuqXATcho,3710
|
99
99
|
lionagi/integrations/litellm_/__init__.py,sha256=v8vNyJVIVj8_Oz9RJdVe6ZKUQMYTgDh1VQpnr1KdLaw,112
|
100
|
-
lionagi/integrations/litellm_/imodel.py,sha256=
|
100
|
+
lionagi/integrations/litellm_/imodel.py,sha256=8TalouW9bb1TBlbPeRJjySHrR6u9Chgru43qmYTIYBE,2183
|
101
101
|
lionagi/integrations/ollama_/OllamaModel.py,sha256=5kBYIWShsSpQpSgOxdbRk2_4jmss6Y8iISjUcS3KoWw,8341
|
102
|
-
lionagi/integrations/ollama_/OllamaService.py,sha256=
|
102
|
+
lionagi/integrations/ollama_/OllamaService.py,sha256=bJ4kk1FPjn_kecLzxTJgVj05KZPzF5FclHoDA3jdAlg,4080
|
103
103
|
lionagi/integrations/ollama_/__init__.py,sha256=v8vNyJVIVj8_Oz9RJdVe6ZKUQMYTgDh1VQpnr1KdLaw,112
|
104
104
|
lionagi/integrations/ollama_/api_endpoints/__init__.py,sha256=v8vNyJVIVj8_Oz9RJdVe6ZKUQMYTgDh1VQpnr1KdLaw,112
|
105
105
|
lionagi/integrations/ollama_/api_endpoints/api_request.py,sha256=N3frStr_ZJmqu5WMmJXioxnXy5m10bZNwO9vjifcGVw,6843
|
@@ -126,7 +126,7 @@ lionagi/integrations/ollama_/api_endpoints/model/list_model.py,sha256=OrGdJa0evj
|
|
126
126
|
lionagi/integrations/ollama_/api_endpoints/model/pull_model.py,sha256=fiZJcQSRn73SJA9GdlfPBG5RiMISQwBc0y7S_zAlOGA,923
|
127
127
|
lionagi/integrations/ollama_/api_endpoints/model/push_model.py,sha256=yDOMVu3ajdNFT1cuzb4R_3qDxlk0qT4aM2oget3aHZ4,961
|
128
128
|
lionagi/integrations/ollama_/api_endpoints/model/show_model.py,sha256=CclV6pEmm5iYM25ePnMAiicVJmZzolDim7BsQoEJAw0,864
|
129
|
-
lionagi/integrations/openai_/OpenAIModel.py,sha256=
|
129
|
+
lionagi/integrations/openai_/OpenAIModel.py,sha256=TOQtliWIV_LsfkfmVK8BHVNMnni-jh60EBN1uj73lCI,15816
|
130
130
|
lionagi/integrations/openai_/OpenAIService.py,sha256=P0sGnxeWPKe15_KndqCgEdM74AKVJ6NJsgFGORqqlrk,13507
|
131
131
|
lionagi/integrations/openai_/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
132
132
|
lionagi/integrations/openai_/openai_max_output_token_data.yaml,sha256=3gd8TGnFjy4AdHzvsV9wZjK_r_o26pe3Th75n5eN2zs,263
|
@@ -219,7 +219,7 @@ lionagi/integrations/pandas_/search_keywords.py,sha256=AJfN8QVu6rUni6As8AOTnzne_
|
|
219
219
|
lionagi/integrations/pandas_/to_df.py,sha256=3vAOCj0Ib2PZNCblg1oA20PjRIrUXR86FHICQLNhLu0,5757
|
220
220
|
lionagi/integrations/pandas_/update_cells.py,sha256=7X1bGcPvnEINrLM_zFCWUXIkrFdMGV3TjoEYBq_SThs,1658
|
221
221
|
lionagi/integrations/perplexity_/PerplexityModel.py,sha256=FfOR3WwOgZZEw97mai3D9PJS5C1jsZii2tAX5n0IR8s,9171
|
222
|
-
lionagi/integrations/perplexity_/PerplexityService.py,sha256=
|
222
|
+
lionagi/integrations/perplexity_/PerplexityService.py,sha256=q5Ruy60H3cL2a4LOUjB2JI6bkMwKiWVSlrjpATREwqM,3641
|
223
223
|
lionagi/integrations/perplexity_/__init__.py,sha256=v8vNyJVIVj8_Oz9RJdVe6ZKUQMYTgDh1VQpnr1KdLaw,112
|
224
224
|
lionagi/integrations/perplexity_/perplexity_max_output_token_data.yaml,sha256=SY6nDrDRhI_HzEBYHaANR_Mc5GRa0SY9Pw_wRuVBlV4,121
|
225
225
|
lionagi/integrations/perplexity_/perplexity_price_data.yaml,sha256=eyp_jZktnEbsEv9VJ0TLNzjp99VdOEA0E-el_dAzCTc,284
|
@@ -350,9 +350,9 @@ lionagi/protocols/registries/_component_registry.py,sha256=MRA8bAgmjqNsFUnzq1I7J
|
|
350
350
|
lionagi/protocols/registries/_pile_registry.py,sha256=iHiQsd0dapzu7L2YA-VPo7qAw6gjWdDETKe_zh1zhHk,543
|
351
351
|
lionagi/service/__init__.py,sha256=xuMab03l9QSeBmq0GXjkTE-Oh2R10l0aful5swKrjas,296
|
352
352
|
lionagi/service/complete_request_info.py,sha256=V9cWqmQ-fo952EWCooAvezaM_xuxYU4Xy0Jo_0XJnug,301
|
353
|
-
lionagi/service/imodel.py,sha256=
|
353
|
+
lionagi/service/imodel.py,sha256=laiwc4FvO0jHpf7Q9GrL0VIABCIInkn0ld8XUcbabKo,4191
|
354
354
|
lionagi/service/rate_limiter.py,sha256=1cCtKfpOo_8h4ZN-oX5HXtnq0iGjF1rxi8htyu65kMU,3746
|
355
|
-
lionagi/service/service.py,sha256=
|
355
|
+
lionagi/service/service.py,sha256=58FPZzLM85fNm4WgSzmZRwbHHuLUW1K0VagKZ7A2ZAs,1077
|
356
356
|
lionagi/service/service_match_util.py,sha256=Re2zJgqsBV9LnDcn5N9pUGMQB_O8-jCTR3ZH6-nxFds,4301
|
357
357
|
lionagi/service/service_util.py,sha256=z0tU_wAgWq_gDfm_QeNfDbrsmseumoNxVQ1bEpOCBzg,2985
|
358
358
|
lionagi/service/token_calculator.py,sha256=6FQ7GvCq4nBo_7QbNyekYJmQrVIzL0CNwiztK3QSR3M,1486
|
@@ -367,7 +367,7 @@ lionagi/strategies/sequential_chunk.py,sha256=jG_WZXG-Ra3yd30CmX4b3XeCNAUrZGA2-i
|
|
367
367
|
lionagi/strategies/sequential_concurrent_chunk.py,sha256=H7GShaqYlD5XxNJMG2GdOR4Vl8JHDhZb5jxNq8zY0hI,3365
|
368
368
|
lionagi/strategies/types.py,sha256=fEvE4d1H4SeCcXcd2dz3q4k8jFIBtxYzjxDN7eJRLtI,769
|
369
369
|
lionagi/strategies/utils.py,sha256=DX1dvxia8cNRqEJJbssJ3mgRzo7kgWCTA4y5DYLCCZE,1281
|
370
|
-
lionagi-0.5.
|
371
|
-
lionagi-0.5.
|
372
|
-
lionagi-0.5.
|
373
|
-
lionagi-0.5.
|
370
|
+
lionagi-0.5.1.dist-info/METADATA,sha256=FkuZDqqzBAOOQ-y96QXAK_E__O5tbVZAhxIsQggkL7U,22672
|
371
|
+
lionagi-0.5.1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
372
|
+
lionagi-0.5.1.dist-info/licenses/LICENSE,sha256=VXFWsdoN5AAknBCgFqQNgPWYx7OPp-PFEP961zGdOjc,11288
|
373
|
+
lionagi-0.5.1.dist-info/RECORD,,
|
File without changes
|
File without changes
|