lionagi 0.8.7__tar.gz → 0.9.0__tar.gz
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-0.8.7 → lionagi-0.9.0}/PKG-INFO +6 -3
- {lionagi-0.8.7 → lionagi-0.9.0}/README.md +4 -1
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/__init__.py +1 -1
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/_class_registry.py +1 -1
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/_errors.py +1 -1
- lionagi-0.9.0/lionagi/libs/__init__.py +3 -0
- lionagi-0.9.0/lionagi/libs/file/__init__.py +3 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/libs/file/chunk.py +1 -1
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/libs/file/file_ops.py +1 -1
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/libs/file/params.py +1 -1
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/libs/file/process.py +1 -1
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/libs/file/save.py +1 -1
- lionagi-0.9.0/lionagi/libs/nested/__init__.py +3 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/libs/nested/flatten.py +1 -1
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/libs/nested/nfilter.py +1 -1
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/libs/nested/nget.py +1 -1
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/libs/nested/ninsert.py +1 -1
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/libs/nested/nmerge.py +1 -1
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/libs/nested/npop.py +1 -1
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/libs/nested/nset.py +1 -1
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/libs/nested/unflatten.py +1 -1
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/libs/nested/utils.py +1 -1
- lionagi-0.9.0/lionagi/libs/package/__init__.py +3 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/libs/package/imports.py +1 -1
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/libs/package/management.py +1 -1
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/libs/package/params.py +1 -1
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/libs/package/system.py +1 -1
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/libs/parse.py +1 -1
- lionagi-0.9.0/lionagi/libs/schema/__init__.py +3 -0
- lionagi-0.9.0/lionagi/libs/schema/as_readable.py +174 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/libs/schema/extract_code_block.py +1 -1
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/libs/schema/extract_docstring.py +1 -1
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/libs/schema/function_to_schema.py +1 -1
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/libs/schema/json_schema.py +1 -1
- lionagi-0.9.0/lionagi/libs/validate/__init__.py +3 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/libs/validate/common_field_validators.py +1 -1
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/libs/validate/fuzzy_match_keys.py +1 -1
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/libs/validate/fuzzy_validate_mapping.py +1 -1
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/libs/validate/string_similarity.py +1 -1
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/libs/validate/validate_boolean.py +1 -1
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/operations/ReAct/ReAct.py +54 -8
- lionagi-0.9.0/lionagi/operations/ReAct/__init__.py +3 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/operations/ReAct/utils.py +6 -1
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/operations/__init__.py +1 -1
- lionagi-0.9.0/lionagi/operations/_act/__init__.py +3 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/operations/_act/act.py +6 -1
- lionagi-0.9.0/lionagi/operations/brainstorm/__init__.py +3 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/operations/brainstorm/brainstorm.py +1 -1
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/operations/brainstorm/prompt.py +1 -1
- lionagi-0.9.0/lionagi/operations/chat/__init__.py +3 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/operations/chat/chat.py +1 -1
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/operations/communicate/communicate.py +1 -1
- lionagi-0.9.0/lionagi/operations/instruct/__init__.py +3 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/operations/instruct/instruct.py +1 -1
- lionagi-0.9.0/lionagi/operations/interpret/__init__.py +3 -0
- lionagi-0.9.0/lionagi/operations/interpret/interpret.py +45 -0
- lionagi-0.9.0/lionagi/operations/operate/__init__.py +3 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/operations/operate/operate.py +1 -1
- lionagi-0.9.0/lionagi/operations/parse/__init__.py +3 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/operations/parse/parse.py +12 -2
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/operations/plan/__init__.py +1 -1
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/operations/plan/plan.py +1 -1
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/operations/plan/prompt.py +1 -1
- lionagi-0.9.0/lionagi/operations/select/__init__.py +3 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/operations/select/select.py +1 -1
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/operations/select/utils.py +1 -1
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/operations/types.py +1 -1
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/operations/utils.py +1 -1
- lionagi-0.9.0/lionagi/operatives/__init__.py +3 -0
- lionagi-0.9.0/lionagi/operatives/action/__init__.py +3 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/operatives/action/function_calling.py +1 -1
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/operatives/action/manager.py +1 -1
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/operatives/action/request_response_model.py +1 -1
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/operatives/action/tool.py +1 -1
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/operatives/action/utils.py +1 -1
- lionagi-0.9.0/lionagi/operatives/forms/__init__.py +3 -0
- lionagi-0.9.0/lionagi/operatives/instruct/__init__.py +3 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/operatives/instruct/base.py +1 -1
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/operatives/instruct/instruct.py +1 -1
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/operatives/instruct/instruct_collection.py +1 -1
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/operatives/instruct/node.py +1 -1
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/operatives/instruct/prompts.py +1 -1
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/operatives/instruct/reason.py +1 -1
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/operatives/manager.py +1 -1
- lionagi-0.9.0/lionagi/operatives/models/__init__.py +3 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/operatives/models/field_model.py +1 -1
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/operatives/models/model_params.py +1 -1
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/operatives/models/note.py +1 -1
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/operatives/models/operable_model.py +1 -1
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/operatives/models/schema_model.py +1 -1
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/operatives/operative.py +1 -1
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/operatives/step.py +1 -1
- lionagi-0.9.0/lionagi/operatives/strategies/__init__.py +3 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/operatives/strategies/base.py +1 -1
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/operatives/strategies/concurrent.py +1 -1
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/operatives/strategies/concurrent_chunk.py +1 -1
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/operatives/strategies/concurrent_sequential_chunk.py +1 -1
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/operatives/strategies/params.py +1 -1
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/operatives/strategies/sequential.py +1 -1
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/operatives/strategies/sequential_chunk.py +1 -1
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/operatives/strategies/sequential_concurrent_chunk.py +1 -1
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/operatives/strategies/utils.py +1 -1
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/operatives/types.py +1 -1
- lionagi-0.9.0/lionagi/protocols/__init__.py +3 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/protocols/_concepts.py +1 -1
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/protocols/adapters/adapter.py +1 -1
- lionagi-0.9.0/lionagi/protocols/generic/__init__.py +3 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/protocols/generic/element.py +1 -1
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/protocols/generic/event.py +11 -1
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/protocols/generic/log.py +1 -1
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/protocols/generic/pile.py +1 -1
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/protocols/generic/processor.py +11 -3
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/protocols/generic/progression.py +1 -1
- lionagi-0.9.0/lionagi/protocols/graph/__init__.py +3 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/protocols/graph/edge.py +1 -1
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/protocols/graph/graph.py +1 -1
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/protocols/graph/node.py +1 -1
- lionagi-0.9.0/lionagi/protocols/mail/__init__.py +3 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/protocols/mail/exchange.py +1 -1
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/protocols/mail/mail.py +1 -1
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/protocols/mail/mailbox.py +1 -1
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/protocols/mail/manager.py +1 -1
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/protocols/mail/package.py +1 -1
- lionagi-0.9.0/lionagi/protocols/messages/__init__.py +3 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/protocols/messages/action_request.py +1 -1
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/protocols/messages/action_response.py +1 -1
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/protocols/messages/assistant_response.py +1 -1
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/protocols/messages/base.py +1 -1
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/protocols/messages/instruction.py +2 -1
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/protocols/messages/manager.py +1 -1
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/protocols/messages/message.py +1 -1
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/protocols/messages/system.py +1 -1
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/protocols/types.py +1 -1
- lionagi-0.9.0/lionagi/service/endpoints/__init__.py +3 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/service/endpoints/base.py +192 -74
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/service/endpoints/chat_completion.py +11 -5
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/service/endpoints/match_endpoint.py +1 -1
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/service/endpoints/rate_limited_processor.py +18 -7
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/service/endpoints/token_calculator.py +1 -1
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/service/imodel.py +65 -12
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/service/manager.py +1 -1
- lionagi-0.9.0/lionagi/service/providers/__init__.py +3 -0
- lionagi-0.9.0/lionagi/service/providers/anthropic_/__init__.py +3 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/service/providers/anthropic_/messages.py +1 -1
- lionagi-0.9.0/lionagi/service/providers/groq_/__init__.py +3 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/service/providers/groq_/chat_completions.py +1 -1
- lionagi-0.9.0/lionagi/service/providers/openai_/__init__.py +3 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/service/providers/openai_/chat_completions.py +37 -2
- lionagi-0.9.0/lionagi/service/providers/openrouter_/__init__.py +3 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/service/providers/openrouter_/chat_completions.py +1 -1
- lionagi-0.9.0/lionagi/service/providers/perplexity_/__init__.py +3 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/service/providers/perplexity_/chat_completions.py +1 -1
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/service/types.py +1 -1
- lionagi-0.9.0/lionagi/session/__init__.py +3 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/session/branch.py +35 -8
- lionagi-0.9.0/lionagi/session/prompts.py +61 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/session/session.py +1 -1
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/settings.py +1 -1
- lionagi-0.9.0/lionagi/tools/file/__init__.py +0 -0
- {lionagi-0.8.7/lionagi/tools → lionagi-0.9.0/lionagi/tools/file}/reader.py +13 -8
- lionagi-0.9.0/lionagi/tools/types.py +3 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/utils.py +1 -1
- lionagi-0.9.0/lionagi/version.py +1 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/pyproject.toml +3 -2
- {lionagi-0.8.7 → lionagi-0.9.0}/uv.lock +57 -76
- lionagi-0.8.7/lionagi/libs/__init__.py +0 -3
- lionagi-0.8.7/lionagi/libs/file/__init__.py +0 -3
- lionagi-0.8.7/lionagi/libs/nested/__init__.py +0 -3
- lionagi-0.8.7/lionagi/libs/package/__init__.py +0 -3
- lionagi-0.8.7/lionagi/libs/schema/__init__.py +0 -3
- lionagi-0.8.7/lionagi/libs/schema/as_readable.py +0 -110
- lionagi-0.8.7/lionagi/libs/validate/__init__.py +0 -3
- lionagi-0.8.7/lionagi/operations/ReAct/__init__.py +0 -3
- lionagi-0.8.7/lionagi/operations/_act/__init__.py +0 -3
- lionagi-0.8.7/lionagi/operations/brainstorm/__init__.py +0 -3
- lionagi-0.8.7/lionagi/operations/chat/__init__.py +0 -3
- lionagi-0.8.7/lionagi/operations/instruct/__init__.py +0 -3
- lionagi-0.8.7/lionagi/operations/interpret/__init__.py +0 -3
- lionagi-0.8.7/lionagi/operations/interpret/interpret.py +0 -74
- lionagi-0.8.7/lionagi/operations/operate/__init__.py +0 -3
- lionagi-0.8.7/lionagi/operations/parse/__init__.py +0 -3
- lionagi-0.8.7/lionagi/operations/select/__init__.py +0 -3
- lionagi-0.8.7/lionagi/operatives/__init__.py +0 -3
- lionagi-0.8.7/lionagi/operatives/action/__init__.py +0 -3
- lionagi-0.8.7/lionagi/operatives/forms/__init__.py +0 -3
- lionagi-0.8.7/lionagi/operatives/instruct/__init__.py +0 -3
- lionagi-0.8.7/lionagi/operatives/models/__init__.py +0 -3
- lionagi-0.8.7/lionagi/operatives/strategies/__init__.py +0 -3
- lionagi-0.8.7/lionagi/protocols/__init__.py +0 -3
- lionagi-0.8.7/lionagi/protocols/generic/__init__.py +0 -3
- lionagi-0.8.7/lionagi/protocols/graph/__init__.py +0 -3
- lionagi-0.8.7/lionagi/protocols/mail/__init__.py +0 -3
- lionagi-0.8.7/lionagi/protocols/messages/__init__.py +0 -3
- lionagi-0.8.7/lionagi/service/endpoints/__init__.py +0 -3
- lionagi-0.8.7/lionagi/service/providers/__init__.py +0 -3
- lionagi-0.8.7/lionagi/service/providers/anthropic_/__init__.py +0 -3
- lionagi-0.8.7/lionagi/service/providers/groq_/__init__.py +0 -3
- lionagi-0.8.7/lionagi/service/providers/openai_/__init__.py +0 -3
- lionagi-0.8.7/lionagi/service/providers/openrouter_/__init__.py +0 -3
- lionagi-0.8.7/lionagi/service/providers/perplexity_/__init__.py +0 -3
- lionagi-0.8.7/lionagi/session/__init__.py +0 -3
- lionagi-0.8.7/lionagi/tools/types.py +0 -3
- lionagi-0.8.7/lionagi/version.py +0 -1
- {lionagi-0.8.7 → lionagi-0.9.0}/.env.example +0 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/.github/FUNDING.yml +0 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/.github/dependabot.yml +0 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/.github/workflows/ci.yml +0 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/.github/workflows/codeql.yml +0 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/.github/workflows/docs.yml +0 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/.github/workflows/release.yml +0 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/.gitignore +0 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/.pre-commit-config.yaml +0 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/CODE_OF_CONDUCT.md +0 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/CONTRIBUTING.md +0 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/LICENSE +0 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/cookbooks/ch01_get_started.md +0 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/cookbooks/ch02_concepts.md +0 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/dev_tools/count_code_base_lines.py +0 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/docs/Makefile +0 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/docs/_static/custom.css +0 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/docs/_templates/layout.html +0 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/docs/conf.py +0 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/docs/index.rst +0 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/docs/modules/action.rst +0 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/docs/modules/adapter.rst +0 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/docs/modules/branch.rst +0 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/docs/modules/branch_operations.rst +0 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/docs/modules/concepts.rst +0 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/docs/modules/element_id.rst +0 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/docs/modules/event.rst +0 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/docs/modules/form.rst +0 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/docs/modules/graph.rst +0 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/docs/modules/index.rst +0 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/docs/modules/instruct.rst +0 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/docs/modules/lib_file.rst +0 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/docs/modules/lib_nested.rst +0 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/docs/modules/lib_package.rst +0 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/docs/modules/lib_schema.rst +0 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/docs/modules/lib_validate.rst +0 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/docs/modules/log.rst +0 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/docs/modules/mail.rst +0 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/docs/modules/message.rst +0 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/docs/modules/models.rst +0 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/docs/modules/operative_step.rst +0 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/docs/modules/pile.rst +0 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/docs/modules/processor.rst +0 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/docs/modules/progression.rst +0 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/docs/modules/service.rst +0 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/docs/modules/session.rst +0 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/docs/modules/utils.rst +0 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/docs/tutorials/get_started.rst +0 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/docs/tutorials/get_started_pt2.rst +0 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/docs/tutorials/get_started_pt3.rst +0 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/docs/tutorials/index.rst +0 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/_types.py +0 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/libs/token_transform/__init__.py +0 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/libs/token_transform/llmlingua.py +0 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/libs/token_transform/perplexity.py +0 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/libs/token_transform/synthlang.py +0 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/operations/communicate/__init__.py +0 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/operations/manager.py +0 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/operations/translate/__init__.py +0 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/operations/translate/translate.py +0 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/operatives/forms/base.py +0 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/operatives/forms/flow.py +0 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/operatives/forms/form.py +0 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/operatives/forms/report.py +0 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/protocols/adapters/__init__.py +0 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/protocols/adapters/json_adapter.py +0 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/protocols/adapters/pandas_/__init__.py +0 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/protocols/adapters/pandas_/csv_adapter.py +0 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/protocols/adapters/pandas_/excel_adapter.py +0 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/protocols/adapters/pandas_/pd_dataframe_adapter.py +0 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/protocols/adapters/pandas_/pd_series_adapter.py +0 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/protocols/adapters/types.py +0 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/protocols/messages/templates/README.md +0 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/protocols/messages/templates/action_request.jinja2 +0 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/protocols/messages/templates/action_response.jinja2 +0 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/protocols/messages/templates/assistant_response.jinja2 +0 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/protocols/messages/templates/instruction_message.jinja2 +0 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/protocols/messages/templates/system_message.jinja2 +0 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/protocols/messages/templates/tool_schemas.jinja2 +0 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/service/__init__.py +0 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/service/providers/exa_/__init__.py +0 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/service/providers/exa_/models.py +0 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/service/providers/exa_/search.py +0 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/service/providers/exa_/types.py +0 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/service/providers/perplexity_/models.py +0 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/service/providers/types.py +0 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/tools/__init__.py +0 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/lionagi/tools/base.py +0 -0
- {lionagi-0.8.7 → lionagi-0.9.0}/prompts/doc_style.md +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: lionagi
|
3
|
-
Version: 0.
|
3
|
+
Version: 0.9.0
|
4
4
|
Summary: An Intelligence Operating System.
|
5
5
|
Author-email: HaiyangLi <quantocean.li@gmail.com>
|
6
6
|
License: Apache License
|
@@ -222,11 +222,11 @@ Requires-Python: >=3.10
|
|
222
222
|
Requires-Dist: aiocache>=0.12.0
|
223
223
|
Requires-Dist: aiohttp>=3.11.0
|
224
224
|
Requires-Dist: jinja2>=3.1.0
|
225
|
-
Requires-Dist: litellm>=1.55.3
|
226
225
|
Requires-Dist: pandas>=2.0.0
|
227
226
|
Requires-Dist: pillow>=10.0.0
|
228
227
|
Requires-Dist: pydantic>=2.0.0
|
229
228
|
Requires-Dist: python-dotenv>=1.0.1
|
229
|
+
Requires-Dist: tiktoken>=0.8.0
|
230
230
|
Description-Content-Type: text/markdown
|
231
231
|
|
232
232
|

|
@@ -256,11 +256,14 @@ pip install lionagi
|
|
256
256
|
```
|
257
257
|
|
258
258
|
Dependencies:
|
259
|
-
•
|
259
|
+
• aiocahce
|
260
|
+
• aiohttp
|
260
261
|
• jinja2
|
261
262
|
• pandas
|
262
263
|
• pillow
|
264
|
+
• pydantic
|
263
265
|
• python-dotenv
|
266
|
+
• tiktoken
|
264
267
|
|
265
268
|
## Quick Start
|
266
269
|
```python
|
@@ -0,0 +1,174 @@
|
|
1
|
+
# Copyright (c) 2023 - 2025, HaiyangLi <quantocean.li at gmail dot com>
|
2
|
+
#
|
3
|
+
# SPDX-License-Identifier: Apache-2.0
|
4
|
+
|
5
|
+
import json
|
6
|
+
from typing import Any
|
7
|
+
|
8
|
+
from lionagi.utils import to_dict
|
9
|
+
|
10
|
+
|
11
|
+
def in_notebook() -> bool:
|
12
|
+
"""
|
13
|
+
Checks if we're running inside a Jupyter notebook.
|
14
|
+
Returns True if yes, False otherwise.
|
15
|
+
"""
|
16
|
+
try:
|
17
|
+
from IPython import get_ipython
|
18
|
+
|
19
|
+
shell = get_ipython().__class__.__name__
|
20
|
+
return "ZMQInteractiveShell" in shell
|
21
|
+
except Exception:
|
22
|
+
return False
|
23
|
+
|
24
|
+
|
25
|
+
def format_dict(data: Any, indent: int = 0) -> str:
|
26
|
+
"""
|
27
|
+
Recursively format Python data (dicts, lists, strings, etc.) into a
|
28
|
+
YAML-like readable string.
|
29
|
+
|
30
|
+
- Multi-line strings are displayed using a '|' block style, each line indented.
|
31
|
+
- Lists are shown with a '- ' prefix per item at the appropriate indentation.
|
32
|
+
- Dict keys are shown as "key:" lines, with values on subsequent lines if complex.
|
33
|
+
"""
|
34
|
+
lines = []
|
35
|
+
prefix = " " * indent # 2 spaces per indent level
|
36
|
+
|
37
|
+
if isinstance(data, dict):
|
38
|
+
for key, value in data.items():
|
39
|
+
if isinstance(value, dict):
|
40
|
+
# Nested dict
|
41
|
+
lines.append(f"{prefix}{key}:")
|
42
|
+
lines.append(format_dict(value, indent + 1))
|
43
|
+
elif isinstance(value, list):
|
44
|
+
# List under a key
|
45
|
+
lines.append(f"{prefix}{key}:")
|
46
|
+
for item in value:
|
47
|
+
item_str = format_dict(item, indent + 2).lstrip()
|
48
|
+
lines.append(f"{prefix} - {item_str}")
|
49
|
+
elif isinstance(value, str) and "\n" in value:
|
50
|
+
# Multi-line string
|
51
|
+
lines.append(f"{prefix}{key}: |")
|
52
|
+
subprefix = " " * (indent + 1)
|
53
|
+
for line in value.splitlines():
|
54
|
+
lines.append(f"{subprefix}{line}")
|
55
|
+
else:
|
56
|
+
# Simple single-line scalar
|
57
|
+
item_str = format_dict(value, indent + 1).lstrip()
|
58
|
+
lines.append(f"{prefix}{key}: {item_str}")
|
59
|
+
return "\n".join(lines)
|
60
|
+
|
61
|
+
elif isinstance(data, list):
|
62
|
+
# For top-level or nested lists
|
63
|
+
for item in data:
|
64
|
+
item_str = format_dict(item, indent + 1).lstrip()
|
65
|
+
lines.append(f"{prefix}- {item_str}")
|
66
|
+
return "\n".join(lines)
|
67
|
+
|
68
|
+
# Base case: single-line scalar
|
69
|
+
return prefix + str(data)
|
70
|
+
|
71
|
+
|
72
|
+
def as_readable(
|
73
|
+
input_: Any,
|
74
|
+
/,
|
75
|
+
*,
|
76
|
+
md: bool = False,
|
77
|
+
format_curly: bool = False,
|
78
|
+
display_str: bool = False,
|
79
|
+
max_chars: int | None = None,
|
80
|
+
) -> str:
|
81
|
+
"""
|
82
|
+
Convert `input_` into a human-readable string. If `format_curly=True`, uses
|
83
|
+
a YAML-like style (`format_dict`). Otherwise, pretty-printed JSON.
|
84
|
+
|
85
|
+
- For Pydantic models or nested data, uses `to_dict` to get a dictionary.
|
86
|
+
- If the result is a list of items, each is processed and concatenated.
|
87
|
+
|
88
|
+
Args:
|
89
|
+
input_: The data to convert (could be a single item or list).
|
90
|
+
md: If True, wraps the final output in code fences for Markdown display.
|
91
|
+
format_curly: If True, use `format_dict`. Otherwise, produce JSON text.
|
92
|
+
|
93
|
+
Returns:
|
94
|
+
A formatted string representation of `input_`.
|
95
|
+
"""
|
96
|
+
|
97
|
+
# 1) Convert the input to a Python dict/list structure
|
98
|
+
# (handles recursion, Pydantic models, etc.)
|
99
|
+
def to_dict_safe(obj: Any) -> Any:
|
100
|
+
# Attempt to call to_dict with typical recursion flags
|
101
|
+
to_dict_kwargs = {
|
102
|
+
"use_model_dump": True,
|
103
|
+
"fuzzy_parse": True,
|
104
|
+
"recursive": True,
|
105
|
+
"recursive_python_only": False,
|
106
|
+
"max_recursive_depth": 5,
|
107
|
+
}
|
108
|
+
return to_dict(obj, **to_dict_kwargs)
|
109
|
+
|
110
|
+
def _inner(i_: Any) -> Any:
|
111
|
+
try:
|
112
|
+
if isinstance(i_, list):
|
113
|
+
# Already a list. Convert each item
|
114
|
+
items = [to_dict_safe(x) for x in i_]
|
115
|
+
else:
|
116
|
+
# Single item
|
117
|
+
maybe_list = to_dict_safe(i_)
|
118
|
+
# If it's a list, store as items; else just single
|
119
|
+
items = (
|
120
|
+
maybe_list
|
121
|
+
if isinstance(maybe_list, list)
|
122
|
+
else [maybe_list]
|
123
|
+
)
|
124
|
+
except Exception:
|
125
|
+
# If conversion fails, fallback to str
|
126
|
+
return str(i_)
|
127
|
+
|
128
|
+
# 2) For each item in `items`, either format with YAML-like or JSON
|
129
|
+
rendered = []
|
130
|
+
for item in items:
|
131
|
+
if format_curly:
|
132
|
+
# YAML-like
|
133
|
+
rendered.append(format_dict(item))
|
134
|
+
else:
|
135
|
+
# JSON approach
|
136
|
+
try:
|
137
|
+
# Provide indentation, ensure ASCII not forced
|
138
|
+
rendered.append(
|
139
|
+
json.dumps(item, indent=2, ensure_ascii=False)
|
140
|
+
)
|
141
|
+
except Exception:
|
142
|
+
# fallback
|
143
|
+
rendered.append(str(item))
|
144
|
+
|
145
|
+
# 3) Combine
|
146
|
+
final_str = "\n\n".join(rendered).strip()
|
147
|
+
|
148
|
+
# 4) If Markdown requested, wrap with code fences
|
149
|
+
# - If we used format_curly, we might do "```yaml" instead. But user specifically asked for JSON code blocks previously
|
150
|
+
if md:
|
151
|
+
if format_curly:
|
152
|
+
return f"```yaml\n{final_str}\n```"
|
153
|
+
else:
|
154
|
+
return f"```json\n{final_str}\n```"
|
155
|
+
|
156
|
+
return final_str
|
157
|
+
|
158
|
+
str_ = _inner(input_).strip()
|
159
|
+
if max_chars is not None and len(str_) > max_chars:
|
160
|
+
str1 = str_[:max_chars] + "...\n\n[Truncated output]\n\n"
|
161
|
+
if str_.endswith("\n```"):
|
162
|
+
str1 += "```"
|
163
|
+
str_ = str1
|
164
|
+
if display_str:
|
165
|
+
if md and in_notebook():
|
166
|
+
# If in IPython environment, display Markdown
|
167
|
+
from IPython.display import Markdown, display
|
168
|
+
|
169
|
+
display(Markdown(str_))
|
170
|
+
else:
|
171
|
+
# Otherwise, just print the string
|
172
|
+
print(str_)
|
173
|
+
else:
|
174
|
+
return str_
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (c) 2023 -
|
1
|
+
# Copyright (c) 2023 - 2025, HaiyangLi <quantocean.li at gmail dot com>
|
2
2
|
#
|
3
3
|
# SPDX-License-Identifier: Apache-2.0
|
4
4
|
|
@@ -7,11 +7,12 @@ from typing import TYPE_CHECKING, Any
|
|
7
7
|
|
8
8
|
from pydantic import BaseModel
|
9
9
|
|
10
|
+
from lionagi.libs.schema.as_readable import as_readable
|
10
11
|
from lionagi.operatives.types import Instruct
|
11
12
|
from lionagi.service.imodel import iModel
|
12
13
|
from lionagi.utils import copy
|
13
14
|
|
14
|
-
from .utils import ReActAnalysis
|
15
|
+
from .utils import Analysis, ReActAnalysis
|
15
16
|
|
16
17
|
if TYPE_CHECKING:
|
17
18
|
from lionagi.session.branch import Branch
|
@@ -24,6 +25,7 @@ async def ReAct(
|
|
24
25
|
interpret_domain: str | None = None,
|
25
26
|
interpret_style: str | None = None,
|
26
27
|
interpret_sample: str | None = None,
|
28
|
+
interpret_model: str | None = None,
|
27
29
|
interpret_kwargs: dict | None = None,
|
28
30
|
tools: Any = None,
|
29
31
|
tool_schemas: Any = None,
|
@@ -34,8 +36,10 @@ async def ReAct(
|
|
34
36
|
return_analysis: bool = False,
|
35
37
|
analysis_model: iModel | None = None,
|
36
38
|
verbose_analysis: bool = False,
|
39
|
+
verbose_length: int = None,
|
37
40
|
**kwargs,
|
38
41
|
):
|
42
|
+
|
39
43
|
# If no tools or tool schemas are provided, default to "all tools"
|
40
44
|
if not tools and not tool_schemas:
|
41
45
|
tools = True
|
@@ -52,10 +56,19 @@ async def ReAct(
|
|
52
56
|
domain=interpret_domain,
|
53
57
|
style=interpret_style,
|
54
58
|
sample_writing=interpret_sample,
|
59
|
+
interpret_model=interpret_model,
|
55
60
|
**(interpret_kwargs or {}),
|
56
61
|
)
|
57
62
|
if verbose_analysis:
|
58
|
-
print(
|
63
|
+
print("\n### Interpreted instruction:\n")
|
64
|
+
as_readable(
|
65
|
+
instruction_str,
|
66
|
+
md=True,
|
67
|
+
format_curly=True,
|
68
|
+
display_str=True,
|
69
|
+
max_chars=verbose_length,
|
70
|
+
)
|
71
|
+
print("\n----------------------------\n")
|
59
72
|
|
60
73
|
# Convert Instruct to dict if necessary
|
61
74
|
instruct_dict = (
|
@@ -89,9 +102,15 @@ async def ReAct(
|
|
89
102
|
|
90
103
|
# If verbose, show round #1 analysis
|
91
104
|
if verbose_analysis:
|
92
|
-
print(
|
93
|
-
|
105
|
+
print("\n### ReAct Round No.1 Analysis:\n")
|
106
|
+
as_readable(
|
107
|
+
analysis,
|
108
|
+
md=True,
|
109
|
+
format_curly=True,
|
110
|
+
display_str=True,
|
111
|
+
max_chars=verbose_length,
|
94
112
|
)
|
113
|
+
print("\n----------------------------\n")
|
95
114
|
|
96
115
|
# Validate and clamp max_extensions if needed
|
97
116
|
if max_extensions and max_extensions > 100:
|
@@ -138,9 +157,16 @@ async def ReAct(
|
|
138
157
|
|
139
158
|
# If verbose, show round analysis
|
140
159
|
if verbose_analysis:
|
141
|
-
print(
|
142
|
-
|
160
|
+
print(f"\n### ReAct Round No.{round_count} Analysis:\n")
|
161
|
+
as_readable(
|
162
|
+
analysis,
|
163
|
+
md=True,
|
164
|
+
format_curly=True,
|
165
|
+
display_str=True,
|
166
|
+
max_chars=verbose_length,
|
143
167
|
)
|
168
|
+
print("\n----------------------------\n")
|
169
|
+
|
144
170
|
if extensions:
|
145
171
|
extensions -= 1
|
146
172
|
|
@@ -148,11 +174,31 @@ async def ReAct(
|
|
148
174
|
answer_prompt = ReActAnalysis.ANSWER_PROMPT.format(
|
149
175
|
instruction=instruct_dict["instruction"]
|
150
176
|
)
|
151
|
-
|
177
|
+
if not response_format:
|
178
|
+
response_format = Analysis
|
179
|
+
|
180
|
+
out = await branch.operate(
|
152
181
|
instruction=answer_prompt,
|
153
182
|
response_format=response_format,
|
154
183
|
**(response_kwargs or {}),
|
155
184
|
)
|
185
|
+
if isinstance(out, Analysis):
|
186
|
+
out = out.analysis
|
187
|
+
|
188
|
+
if verbose_analysis:
|
189
|
+
print("\n### ReAct Response:\n")
|
190
|
+
as_readable(
|
191
|
+
analysis,
|
192
|
+
md=True,
|
193
|
+
format_curly=True,
|
194
|
+
display_str=True,
|
195
|
+
max_chars=verbose_length,
|
196
|
+
)
|
197
|
+
print("\n----------------------------\n")
|
198
|
+
|
156
199
|
if return_analysis:
|
157
200
|
return out, analyses
|
158
201
|
return out
|
202
|
+
|
203
|
+
|
204
|
+
# TODO: Do partial intermeditate output for longer analysis with form and report
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (c) 2023 -
|
1
|
+
# Copyright (c) 2023 - 2025, HaiyangLi <quantocean.li at gmail dot com>
|
2
2
|
#
|
3
3
|
# SPDX-License-Identifier: Apache-2.0
|
4
4
|
|
@@ -90,3 +90,8 @@ class ReActAnalysis(BaseModel):
|
|
90
90
|
"provide if and only if action_strategy is 'batch', this specifies the number of actions to run in parallel per batch."
|
91
91
|
),
|
92
92
|
)
|
93
|
+
|
94
|
+
|
95
|
+
class Analysis(BaseModel):
|
96
|
+
|
97
|
+
answer: str
|