lionagi 0.12.2__tar.gz → 0.12.4__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.12.4/.github/FUNDING.yml +15 -0
- lionagi-0.12.4/.github/workflows/ci.yml +68 -0
- lionagi-0.12.4/.github/workflows/codeql.yml +40 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/.github/workflows/docs.yml +1 -4
- lionagi-0.12.4/.github/workflows/release.yml +65 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/.gitignore +4 -1
- lionagi-0.12.4/.python-version +1 -0
- lionagi-0.12.4/CODE_OF_CONDUCT.md +75 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/PKG-INFO +33 -16
- {lionagi-0.12.2 → lionagi-0.12.4}/README.md +6 -7
- lionagi-0.12.4/lionagi/config.py +123 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/fields/file.py +1 -1
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/fields/reason.py +1 -1
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/file/concat.py +1 -6
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/file/concat_files.py +1 -5
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/file/save.py +1 -1
- lionagi-0.12.4/lionagi/libs/package/imports.py +21 -0
- lionagi-0.12.4/lionagi/libs/parse.py +30 -0
- lionagi-0.12.4/lionagi/libs/schema/load_pydantic_model_from_schema.py +259 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/token_transform/perplexity.py +2 -4
- lionagi-0.12.4/lionagi/libs/token_transform/synthlang_/resources/frameworks/framework_options.json +52 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/token_transform/synthlang_/translate_to_synthlang.py +1 -1
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/operations/chat/chat.py +2 -2
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/operations/communicate/communicate.py +20 -5
- lionagi-0.12.4/lionagi/operations/parse/parse.py +187 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/protocols/generic/log.py +1 -2
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/protocols/generic/pile.py +18 -4
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/protocols/messages/assistant_response.py +20 -1
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/protocols/messages/templates/README.md +6 -10
- lionagi-0.12.4/lionagi/service/connections/__init__.py +15 -0
- lionagi-0.12.4/lionagi/service/connections/api_calling.py +230 -0
- lionagi-0.12.4/lionagi/service/connections/endpoint.py +410 -0
- lionagi-0.12.4/lionagi/service/connections/endpoint_config.py +137 -0
- lionagi-0.12.4/lionagi/service/connections/header_factory.py +56 -0
- lionagi-0.12.4/lionagi/service/connections/match_endpoint.py +49 -0
- lionagi-0.12.4/lionagi/service/connections/providers/__init__.py +3 -0
- lionagi-0.12.4/lionagi/service/connections/providers/anthropic_.py +87 -0
- lionagi-0.12.4/lionagi/service/connections/providers/exa_.py +33 -0
- lionagi-0.12.4/lionagi/service/connections/providers/oai_.py +166 -0
- lionagi-0.12.4/lionagi/service/connections/providers/ollama_.py +122 -0
- lionagi-0.12.4/lionagi/service/connections/providers/perplexity_.py +29 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/service/imodel.py +36 -144
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/service/manager.py +1 -7
- {lionagi-0.12.2/lionagi/service/endpoints → lionagi-0.12.4/lionagi/service}/rate_limited_processor.py +4 -2
- lionagi-0.12.4/lionagi/service/resilience.py +545 -0
- lionagi-0.12.4/lionagi/service/third_party/README.md +71 -0
- lionagi-0.12.4/lionagi/service/third_party/__init__.py +0 -0
- lionagi-0.12.4/lionagi/service/third_party/anthropic_models.py +159 -0
- lionagi-0.12.4/lionagi/service/third_party/exa_models.py +165 -0
- lionagi-0.12.4/lionagi/service/third_party/openai_models.py +18241 -0
- lionagi-0.12.4/lionagi/service/third_party/pplx_models.py +156 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/service/types.py +5 -4
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/session/branch.py +12 -7
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/tools/file/reader.py +1 -1
- lionagi-0.12.4/lionagi/tools/memory/tools.py +497 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/utils.py +921 -123
- lionagi-0.12.4/lionagi/version.py +1 -0
- lionagi-0.12.4/main.py +6 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/pyproject.toml +54 -17
- lionagi-0.12.4/scripts/README.md +15 -0
- lionagi-0.12.4/scripts/concat.py +95 -0
- lionagi-0.12.4/scripts/config.py +18 -0
- lionagi-0.12.4/uv.lock +3989 -0
- lionagi-0.12.2/.github/workflows/ci.yml +0 -35
- lionagi-0.12.2/.github/workflows/codeql.yml +0 -40
- lionagi-0.12.2/.github/workflows/release.yml +0 -61
- lionagi-0.12.2/CODE_OF_CONDUCT.md +0 -104
- lionagi-0.12.2/lionagi/libs/file/create_path.py +0 -80
- lionagi-0.12.2/lionagi/libs/file/file_util.py +0 -358
- lionagi-0.12.2/lionagi/libs/package/imports.py +0 -190
- lionagi-0.12.2/lionagi/libs/parse/fuzzy_parse_json.py +0 -117
- lionagi-0.12.2/lionagi/libs/parse/to_dict.py +0 -336
- lionagi-0.12.2/lionagi/libs/parse/to_json.py +0 -61
- lionagi-0.12.2/lionagi/libs/parse/to_num.py +0 -378
- lionagi-0.12.2/lionagi/libs/parse/to_xml.py +0 -57
- lionagi-0.12.2/lionagi/libs/parse/xml_parser.py +0 -148
- lionagi-0.12.2/lionagi/libs/schema/breakdown_pydantic_annotation.py +0 -48
- lionagi-0.12.2/lionagi/libs/token_transform/synthlang_/resources/frameworks/framework_options.json +0 -52
- lionagi-0.12.2/lionagi/operations/parse/parse.py +0 -99
- lionagi-0.12.2/lionagi/service/endpoints/base.py +0 -706
- lionagi-0.12.2/lionagi/service/endpoints/chat_completion.py +0 -116
- lionagi-0.12.2/lionagi/service/endpoints/match_endpoint.py +0 -72
- lionagi-0.12.2/lionagi/service/providers/anthropic_/__init__.py +0 -3
- lionagi-0.12.2/lionagi/service/providers/anthropic_/messages.py +0 -99
- lionagi-0.12.2/lionagi/service/providers/exa_/models.py +0 -3
- lionagi-0.12.2/lionagi/service/providers/exa_/search.py +0 -80
- lionagi-0.12.2/lionagi/service/providers/exa_/types.py +0 -7
- lionagi-0.12.2/lionagi/service/providers/groq_/__init__.py +0 -3
- lionagi-0.12.2/lionagi/service/providers/groq_/chat_completions.py +0 -56
- lionagi-0.12.2/lionagi/service/providers/ollama_/__init__.py +0 -3
- lionagi-0.12.2/lionagi/service/providers/ollama_/chat_completions.py +0 -134
- lionagi-0.12.2/lionagi/service/providers/openai_/__init__.py +0 -3
- lionagi-0.12.2/lionagi/service/providers/openai_/chat_completions.py +0 -101
- lionagi-0.12.2/lionagi/service/providers/openai_/spec.py +0 -14
- lionagi-0.12.2/lionagi/service/providers/openrouter_/__init__.py +0 -3
- lionagi-0.12.2/lionagi/service/providers/openrouter_/chat_completions.py +0 -62
- lionagi-0.12.2/lionagi/service/providers/perplexity_/__init__.py +0 -3
- lionagi-0.12.2/lionagi/service/providers/perplexity_/chat_completions.py +0 -44
- lionagi-0.12.2/lionagi/service/providers/perplexity_/models.py +0 -5
- lionagi-0.12.2/lionagi/service/providers/types.py +0 -17
- lionagi-0.12.2/lionagi/session/__init__.py +0 -3
- lionagi-0.12.2/lionagi/tools/__init__.py +0 -3
- lionagi-0.12.2/lionagi/tools/file/__init__.py +0 -3
- lionagi-0.12.2/lionagi/version.py +0 -1
- lionagi-0.12.2/uv.lock +0 -4463
- {lionagi-0.12.2 → lionagi-0.12.4}/.coveragerc +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/.env.example +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/.github/dependabot.yml +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/.pre-commit-config.yaml +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/CONTRIBUTING.md +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/LICENSE +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/cookbooks/ch01_get_started.md +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/cookbooks/ch02_concepts.md +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/docs/Makefile +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/docs/_static/custom.css +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/docs/_templates/layout.html +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/docs/conf.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/docs/index.rst +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/docs/modules/action.rst +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/docs/modules/adapter.rst +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/docs/modules/branch.rst +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/docs/modules/branch_operations.rst +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/docs/modules/concepts.rst +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/docs/modules/element_id.rst +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/docs/modules/event.rst +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/docs/modules/form.rst +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/docs/modules/graph.rst +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/docs/modules/index.rst +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/docs/modules/instruct.rst +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/docs/modules/lib_file.rst +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/docs/modules/lib_nested.rst +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/docs/modules/lib_package.rst +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/docs/modules/lib_schema.rst +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/docs/modules/lib_validate.rst +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/docs/modules/log.rst +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/docs/modules/mail.rst +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/docs/modules/message.rst +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/docs/modules/models.rst +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/docs/modules/operative_step.rst +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/docs/modules/pile.rst +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/docs/modules/processor.rst +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/docs/modules/progression.rst +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/docs/modules/service.rst +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/docs/modules/session.rst +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/docs/modules/utils.rst +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/docs/tutorials/get_started.rst +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/docs/tutorials/get_started_pt2.rst +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/docs/tutorials/get_started_pt3.rst +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/docs/tutorials/index.rst +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/__init__.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/_class_registry.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/_errors.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/_types.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/adapters/__init__.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/adapters/adapter.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/adapters/json_adapter.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/adapters/pandas_/__init__.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/adapters/pandas_/csv_adapter.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/adapters/pandas_/excel_adapter.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/adapters/pandas_/pd_dataframe_adapter.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/adapters/pandas_/pd_series_adapter.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/adapters/toml_adapter.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/adapters/types.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/fields/__init__.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/fields/action.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/fields/base.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/fields/code.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/fields/instruct.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/fields/research.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/__init__.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/file/__init__.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/file/chunk.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/file/file_ops.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/file/params.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/file/process.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/nested/__init__.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/nested/flatten.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/nested/nfilter.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/nested/nget.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/nested/ninsert.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/nested/nmerge.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/nested/npop.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/nested/nset.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/nested/unflatten.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/nested/utils.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/package/__init__.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/package/management.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/package/params.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/package/system.py +0 -0
- {lionagi-0.12.2/lionagi/libs/parse → lionagi-0.12.4/lionagi/libs/schema}/__init__.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/schema/as_readable.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/schema/extract_code_block.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/schema/extract_docstring.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/schema/function_to_schema.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/schema/json_schema.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/token_transform/__init__.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/token_transform/base.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/token_transform/llmlingua.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/token_transform/symbolic_compress_context.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/token_transform/synthlang.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/token_transform/synthlang_/base.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/token_transform/synthlang_/resources/frameworks/abstract_algebra.toml +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/token_transform/synthlang_/resources/frameworks/category_theory.toml +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/token_transform/synthlang_/resources/frameworks/complex_analysis.toml +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/token_transform/synthlang_/resources/frameworks/group_theory.toml +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/token_transform/synthlang_/resources/frameworks/math_logic.toml +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/token_transform/synthlang_/resources/frameworks/reflective_patterns.toml +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/token_transform/synthlang_/resources/frameworks/set_theory.toml +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/token_transform/synthlang_/resources/frameworks/topology_fundamentals.toml +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/token_transform/synthlang_/resources/mapping/lion_emoji_mapping.toml +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/token_transform/synthlang_/resources/mapping/python_math_mapping.toml +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/token_transform/synthlang_/resources/mapping/rust_chinese_mapping.toml +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/token_transform/synthlang_/resources/utility/base_synthlang_system_prompt.toml +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/token_transform/types.py +0 -0
- {lionagi-0.12.2/lionagi/libs/schema → lionagi-0.12.4/lionagi/libs/validate}/__init__.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/validate/common_field_validators.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/validate/fuzzy_match_keys.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/validate/fuzzy_validate_mapping.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/validate/string_similarity.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/libs/validate/validate_boolean.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/models/__init__.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/models/field_model.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/models/hashable_model.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/models/model_params.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/models/note.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/models/operable_model.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/models/schema_model.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/operations/ReAct/ReAct.py +0 -0
- {lionagi-0.12.2/lionagi/libs/validate → lionagi-0.12.4/lionagi/operations/ReAct}/__init__.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/operations/ReAct/utils.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/operations/__init__.py +0 -0
- {lionagi-0.12.2/lionagi/operations/ReAct → lionagi-0.12.4/lionagi/operations/_act}/__init__.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/operations/_act/act.py +0 -0
- {lionagi-0.12.2/lionagi/operations/_act → lionagi-0.12.4/lionagi/operations/brainstorm}/__init__.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/operations/brainstorm/brainstorm.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/operations/brainstorm/prompt.py +0 -0
- {lionagi-0.12.2/lionagi/operations/brainstorm → lionagi-0.12.4/lionagi/operations/chat}/__init__.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/operations/communicate/__init__.py +0 -0
- {lionagi-0.12.2/lionagi/operations/chat → lionagi-0.12.4/lionagi/operations/instruct}/__init__.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/operations/instruct/instruct.py +0 -0
- {lionagi-0.12.2/lionagi/operations/instruct → lionagi-0.12.4/lionagi/operations/interpret}/__init__.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/operations/interpret/interpret.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/operations/manager.py +0 -0
- {lionagi-0.12.2/lionagi/operations/interpret → lionagi-0.12.4/lionagi/operations/operate}/__init__.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/operations/operate/operate.py +0 -0
- {lionagi-0.12.2/lionagi/operations/operate → lionagi-0.12.4/lionagi/operations/parse}/__init__.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/operations/plan/__init__.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/operations/plan/plan.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/operations/plan/prompt.py +0 -0
- {lionagi-0.12.2/lionagi/operations/parse → lionagi-0.12.4/lionagi/operations/select}/__init__.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/operations/select/select.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/operations/select/utils.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/operations/translate/__init__.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/operations/translate/translate.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/operations/types.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/operations/utils.py +0 -0
- {lionagi-0.12.2/lionagi/operations/select → lionagi-0.12.4/lionagi/protocols}/__init__.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/protocols/_concepts.py +0 -0
- {lionagi-0.12.2/lionagi/protocols → lionagi-0.12.4/lionagi/protocols/action}/__init__.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/protocols/action/function_calling.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/protocols/action/manager.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/protocols/action/tool.py +0 -0
- {lionagi-0.12.2/lionagi/protocols/action → lionagi-0.12.4/lionagi/protocols/forms}/__init__.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/protocols/forms/base.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/protocols/forms/flow.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/protocols/forms/form.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/protocols/forms/report.py +0 -0
- {lionagi-0.12.2/lionagi/protocols/forms → lionagi-0.12.4/lionagi/protocols/generic}/__init__.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/protocols/generic/element.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/protocols/generic/event.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/protocols/generic/processor.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/protocols/generic/progression.py +0 -0
- {lionagi-0.12.2/lionagi/protocols/generic → lionagi-0.12.4/lionagi/protocols/graph}/__init__.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/protocols/graph/edge.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/protocols/graph/graph.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/protocols/graph/node.py +0 -0
- {lionagi-0.12.2/lionagi/protocols/graph → lionagi-0.12.4/lionagi/protocols/mail}/__init__.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/protocols/mail/exchange.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/protocols/mail/mail.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/protocols/mail/mailbox.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/protocols/mail/manager.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/protocols/mail/package.py +0 -0
- {lionagi-0.12.2/lionagi/protocols/mail → lionagi-0.12.4/lionagi/protocols/messages}/__init__.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/protocols/messages/action_request.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/protocols/messages/action_response.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/protocols/messages/base.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/protocols/messages/instruction.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/protocols/messages/manager.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/protocols/messages/message.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/protocols/messages/system.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/protocols/messages/templates/action_request.jinja2 +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/protocols/messages/templates/action_response.jinja2 +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/protocols/messages/templates/assistant_response.jinja2 +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/protocols/messages/templates/instruction_message.jinja2 +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/protocols/messages/templates/system_message.jinja2 +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/protocols/messages/templates/tool_schemas.jinja2 +0 -0
- {lionagi-0.12.2/lionagi/protocols/messages → lionagi-0.12.4/lionagi/protocols/operatives}/__init__.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/protocols/operatives/operative.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/protocols/operatives/step.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/protocols/types.py +0 -0
- /lionagi-0.12.2/lionagi/service/providers/exa_/__init__.py → /lionagi-0.12.4/lionagi/py.typed +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/service/__init__.py +0 -0
- {lionagi-0.12.2/lionagi/service/endpoints → lionagi-0.12.4/lionagi/service}/token_calculator.py +0 -0
- {lionagi-0.12.2/lionagi/protocols/operatives → lionagi-0.12.4/lionagi/session}/__init__.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/session/prompts.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/session/session.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/settings.py +0 -0
- {lionagi-0.12.2/lionagi/service/endpoints → lionagi-0.12.4/lionagi/tools}/__init__.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/tools/base.py +0 -0
- {lionagi-0.12.2/lionagi/service/providers → lionagi-0.12.4/lionagi/tools/file}/__init__.py +0 -0
- {lionagi-0.12.2 → lionagi-0.12.4}/lionagi/tools/types.py +0 -0
@@ -0,0 +1,15 @@
|
|
1
|
+
# These are supported funding model platforms
|
2
|
+
|
3
|
+
github: [lion-agi]
|
4
|
+
patreon: # Replace with a single Patreon username
|
5
|
+
open_collective: # Replace with a single Open Collective username
|
6
|
+
ko_fi: # Replace with a single Ko-fi username
|
7
|
+
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
|
8
|
+
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
|
9
|
+
liberapay: # Replace with a single Liberapay username
|
10
|
+
issuehunt: # Replace with a single IssueHunt username
|
11
|
+
lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry
|
12
|
+
polar: # Replace with a single Polar username
|
13
|
+
buy_me_a_coffee: # Replace with a single Buy Me a Coffee username
|
14
|
+
thanks_dev: # Replace with a single thanks.dev username
|
15
|
+
custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
|
@@ -0,0 +1,68 @@
|
|
1
|
+
name: Continuous Integration
|
2
|
+
|
3
|
+
on:
|
4
|
+
push:
|
5
|
+
branches: [ main, develop ]
|
6
|
+
pull_request:
|
7
|
+
branches: [ main, develop ]
|
8
|
+
|
9
|
+
jobs:
|
10
|
+
test:
|
11
|
+
runs-on: ubuntu-latest
|
12
|
+
strategy:
|
13
|
+
matrix:
|
14
|
+
python-version: ['3.10', '3.11', '3.12', '3.13']
|
15
|
+
steps:
|
16
|
+
- uses: actions/checkout@v4
|
17
|
+
- name: Set up Python ${{ matrix.python-version }}
|
18
|
+
uses: actions/setup-python@v5
|
19
|
+
with:
|
20
|
+
python-version: ${{ matrix.python-version }}
|
21
|
+
|
22
|
+
- name: Install uv
|
23
|
+
run: |
|
24
|
+
curl -LsSf https://astral.sh/uv/install.sh | sh
|
25
|
+
echo "$HOME/.cargo/bin" >> $GITHUB_PATH
|
26
|
+
|
27
|
+
- name: Load cached dependencies
|
28
|
+
id: cached-uv-dependencies
|
29
|
+
uses: actions/cache@v4
|
30
|
+
with:
|
31
|
+
path: .venv
|
32
|
+
key: venv-${{ runner.os }}-${{ matrix.python-version }}-${{ hashFiles('pyproject.toml') }}
|
33
|
+
|
34
|
+
- name: Install dependencies
|
35
|
+
if: steps.cached-uv-dependencies.outputs.cache-hit != 'true'
|
36
|
+
run: |
|
37
|
+
uv venv
|
38
|
+
uv sync --extra all
|
39
|
+
|
40
|
+
- name: Run tests
|
41
|
+
run: |
|
42
|
+
source .venv/bin/activate
|
43
|
+
uv run pytest --asyncio-mode=auto --maxfail=1 --disable-warnings tests/
|
44
|
+
|
45
|
+
- name: Check code style and compatibility
|
46
|
+
run: |
|
47
|
+
source .venv/bin/activate
|
48
|
+
uv run black --check .
|
49
|
+
uv run isort --check-only .
|
50
|
+
|
51
|
+
publish:
|
52
|
+
needs: test
|
53
|
+
runs-on: ubuntu-latest
|
54
|
+
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
|
55
|
+
steps:
|
56
|
+
- uses: actions/checkout@v4
|
57
|
+
- name: Set up Python
|
58
|
+
uses: actions/setup-python@v5
|
59
|
+
with:
|
60
|
+
python-version: "3.12"
|
61
|
+
|
62
|
+
- name: Install uv
|
63
|
+
run: |
|
64
|
+
curl -LsSf https://astral.sh/uv/install.sh | sh
|
65
|
+
echo "$HOME/.cargo/bin" >> $GITHUB_PATH
|
66
|
+
|
67
|
+
- name: Build package
|
68
|
+
run: uv build
|
@@ -0,0 +1,40 @@
|
|
1
|
+
name: "CodeQL"
|
2
|
+
|
3
|
+
on:
|
4
|
+
push:
|
5
|
+
branches: [ main, develop ]
|
6
|
+
pull_request:
|
7
|
+
branches: [ main, develop ]
|
8
|
+
schedule:
|
9
|
+
- cron: '0 0 * * 0'
|
10
|
+
|
11
|
+
jobs:
|
12
|
+
analyze:
|
13
|
+
name: Analyze
|
14
|
+
runs-on: ubuntu-latest
|
15
|
+
permissions:
|
16
|
+
actions: read
|
17
|
+
contents: read
|
18
|
+
security-events: write
|
19
|
+
|
20
|
+
strategy:
|
21
|
+
fail-fast: false
|
22
|
+
matrix:
|
23
|
+
language: [ 'python' ]
|
24
|
+
|
25
|
+
steps:
|
26
|
+
- name: Checkout repository
|
27
|
+
uses: actions/checkout@v4
|
28
|
+
|
29
|
+
- name: Initialize CodeQL
|
30
|
+
uses: github/codeql-action/init@v3
|
31
|
+
with:
|
32
|
+
languages: ${{ matrix.language }}
|
33
|
+
|
34
|
+
- name: Autobuild
|
35
|
+
uses: github/codeql-action/autobuild@v3
|
36
|
+
|
37
|
+
- name: Perform CodeQL Analysis
|
38
|
+
uses: github/codeql-action/analyze@v3
|
39
|
+
|
40
|
+
# filepath: .github/workflows/codeql-analysis.yml
|
@@ -0,0 +1,65 @@
|
|
1
|
+
name: Release
|
2
|
+
|
3
|
+
on:
|
4
|
+
release:
|
5
|
+
types: [published]
|
6
|
+
|
7
|
+
permissions:
|
8
|
+
contents: read
|
9
|
+
|
10
|
+
jobs:
|
11
|
+
test:
|
12
|
+
runs-on: ubuntu-latest
|
13
|
+
strategy:
|
14
|
+
matrix:
|
15
|
+
python-version: ['3.10', '3.11', '3.12', '3.13']
|
16
|
+
steps:
|
17
|
+
- uses: actions/checkout@v4
|
18
|
+
- name: Set up Python ${{ matrix.python-version }}
|
19
|
+
uses: actions/setup-python@v5
|
20
|
+
with:
|
21
|
+
python-version: ${{ matrix.python-version }}
|
22
|
+
|
23
|
+
- name: Install uv
|
24
|
+
run: |
|
25
|
+
curl -LsSf https://astral.sh/uv/install.sh | sh
|
26
|
+
echo "$HOME/.cargo/bin" >> $GITHUB_PATH
|
27
|
+
|
28
|
+
- name: Install dependencies
|
29
|
+
run: |
|
30
|
+
uv venv
|
31
|
+
uv sync --extra all
|
32
|
+
|
33
|
+
- name: Run tests
|
34
|
+
run: |
|
35
|
+
source .venv/bin/activate
|
36
|
+
uv run pytest --asyncio-mode=auto --maxfail=1 --disable-warnings tests/
|
37
|
+
|
38
|
+
deploy:
|
39
|
+
needs: test
|
40
|
+
runs-on: ubuntu-latest
|
41
|
+
steps:
|
42
|
+
- uses: actions/checkout@v4
|
43
|
+
- name: Set up Python
|
44
|
+
uses: actions/setup-python@v5
|
45
|
+
with:
|
46
|
+
python-version: "3.12"
|
47
|
+
|
48
|
+
- name: Install uv
|
49
|
+
run: |
|
50
|
+
curl -LsSf https://astral.sh/uv/install.sh | sh
|
51
|
+
echo "$HOME/.cargo/bin" >> $GITHUB_PATH
|
52
|
+
|
53
|
+
- name: Install dependencies
|
54
|
+
run: |
|
55
|
+
uv venv
|
56
|
+
uv pip install twine
|
57
|
+
|
58
|
+
- name: Build package
|
59
|
+
run: uv build
|
60
|
+
|
61
|
+
- name: Publish package to PyPI
|
62
|
+
env:
|
63
|
+
TWINE_USERNAME: __token__
|
64
|
+
TWINE_PASSWORD: ${{ secrets.PYPI_API_KEY }}
|
65
|
+
run: uv run twine upload dist/*
|
@@ -0,0 +1 @@
|
|
1
|
+
3.10
|
@@ -0,0 +1,75 @@
|
|
1
|
+
# LionAGI Code of Conduct
|
2
|
+
|
3
|
+
## A. Our Pledge
|
4
|
+
|
5
|
+
In the interest of fostering an open and welcoming environment, we as members, contributors, and leaders of the LionAGI community pledge to make participation in our project and our community a harassment-free experience for everyone, regardless of background, identity, and personal characteristics.
|
6
|
+
|
7
|
+
We commit to act and interact in ways that contribute to an inclusive, diverse, and friendly community.
|
8
|
+
|
9
|
+
## B. Our Standards
|
10
|
+
|
11
|
+
Examples of behavior that contribute to a positive environment include:
|
12
|
+
|
13
|
+
* Demonstrating empathy and kindness toward other people.
|
14
|
+
* Being respectful of differing opinions, viewpoints, and experiences.
|
15
|
+
* Giving and gracefully accepting constructive feedback.
|
16
|
+
* Accepting responsibility for our actions, apologizing to those affected by our mistakes, and learning from the experience.
|
17
|
+
* Focusing on what is best for the community as a whole.
|
18
|
+
|
19
|
+
Examples of unacceptable behavior include:
|
20
|
+
|
21
|
+
* The use of sexualized language or imagery, and sexual attention or advances of any kind.
|
22
|
+
* Trolling, insulting or derogatory comments, and personal or political attacks.
|
23
|
+
* Public or private harassment.
|
24
|
+
* Publishing others' private information, such as a physical or email address, without explicit permission.
|
25
|
+
* Other conduct which could reasonably be considered inappropriate in a professional setting.
|
26
|
+
|
27
|
+
## C. Enforcement Responsibilities
|
28
|
+
|
29
|
+
Our community leaders are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
|
30
|
+
|
31
|
+
Community leaders have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned with this Code of Conduct.
|
32
|
+
|
33
|
+
## D. Scope
|
34
|
+
|
35
|
+
This Code of Conduct applies within all community spaces, including GitHub, Discord, and various social media platforms, and also applies when an individual is officially representing the community.
|
36
|
+
|
37
|
+
## E. Enforcement
|
38
|
+
|
39
|
+
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team via our Discord server. All complaints will be reviewed and investigated in a manner that ensures fairness and respect for all parties.
|
40
|
+
|
41
|
+
Community leaders are obligated to respect the privacy and security of the reporter of any incident.
|
42
|
+
|
43
|
+
## F. Enforcement Guidelines
|
44
|
+
|
45
|
+
Community leaders will follow these Community Impact Guidelines in determining the consequences for any action deemed in violation of this Code of Conduct:
|
46
|
+
|
47
|
+
### 1. Correction
|
48
|
+
|
49
|
+
**Community Impact**: Use of inappropriate language or behavior deemed unprofessional.
|
50
|
+
|
51
|
+
**Consequence**: A private written warning from community leaders, with an explanation of why the behavior was inappropriate.
|
52
|
+
|
53
|
+
### 2. Warning
|
54
|
+
|
55
|
+
**Community Impact**: A violation through a single incident or series of actions.
|
56
|
+
|
57
|
+
**Consequence**: A warning with consequences for continued behavior. This includes a temporary ban from community interaction if the behavior persists.
|
58
|
+
|
59
|
+
### 3. Temporary Ban
|
60
|
+
|
61
|
+
**Community Impact**: A serious violation of community standards.
|
62
|
+
|
63
|
+
**Consequence**: A temporary ban from any sort of interaction within the community.
|
64
|
+
|
65
|
+
### 4. Permanent Ban
|
66
|
+
|
67
|
+
**Community Impact**: Sustained inappropriate behavior, harassment, or aggression toward individuals.
|
68
|
+
|
69
|
+
**Consequence**: A permanent ban from any sort of public interaction within the community.
|
70
|
+
|
71
|
+
## G. Attribution
|
72
|
+
|
73
|
+
This Code of Conduct is adapted from the Contributor Covenant, version 2.0, available at [Contributor Covenant](https://www.contributor-covenant.org/version/2/0/code_of_conduct.html).
|
74
|
+
|
75
|
+
For answers to common questions about this code of conduct, see the [FAQ](https://www.contributor-covenant.org/faq).
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: lionagi
|
3
|
-
Version: 0.12.
|
3
|
+
Version: 0.12.4
|
4
4
|
Summary: An Intelligence Operating System.
|
5
5
|
Author-email: HaiyangLi <quantocean.li@gmail.com>, Liangbingyan Luo <llby_luo@outlook.com>
|
6
6
|
License: Apache License
|
@@ -219,19 +219,37 @@ Classifier: Programming Language :: Python :: 3.11
|
|
219
219
|
Classifier: Programming Language :: Python :: 3.12
|
220
220
|
Classifier: Programming Language :: Python :: 3.13
|
221
221
|
Requires-Python: >=3.10
|
222
|
-
Requires-Dist:
|
223
|
-
Requires-Dist:
|
222
|
+
Requires-Dist: aiocache>=0.12.0
|
223
|
+
Requires-Dist: aiohttp>=3.12.0
|
224
|
+
Requires-Dist: backoff>=2.2.1
|
225
|
+
Requires-Dist: jinja2>=3.1.0
|
224
226
|
Requires-Dist: pandas>=2.0.0
|
227
|
+
Requires-Dist: pillow>=11.0.0
|
228
|
+
Requires-Dist: pydantic-settings>=2.8.0
|
229
|
+
Requires-Dist: pydantic>2.0.0
|
230
|
+
Requires-Dist: python-dotenv>=1.1.0
|
225
231
|
Requires-Dist: tiktoken>=0.8.0
|
232
|
+
Requires-Dist: toml>=0.9.0
|
226
233
|
Provides-Extra: all
|
227
|
-
Requires-Dist:
|
228
|
-
Requires-Dist:
|
229
|
-
Provides-Extra:
|
230
|
-
Requires-Dist:
|
234
|
+
Requires-Dist: docling>=2.15.1; extra == 'all'
|
235
|
+
Requires-Dist: ollama>=0.5.0; extra == 'all'
|
236
|
+
Provides-Extra: docs
|
237
|
+
Requires-Dist: furo>=2024.8.6; extra == 'docs'
|
238
|
+
Requires-Dist: sphinx-autobuild>=2024.10.3; extra == 'docs'
|
239
|
+
Requires-Dist: sphinx>=8.1.3; extra == 'docs'
|
240
|
+
Provides-Extra: lint
|
241
|
+
Requires-Dist: black[jupyter]>=24.10.0; extra == 'lint'
|
242
|
+
Requires-Dist: isort>=5.13.2; extra == 'lint'
|
243
|
+
Requires-Dist: pre-commit>=4.0.1; extra == 'lint'
|
231
244
|
Provides-Extra: ollama
|
232
|
-
Requires-Dist:
|
245
|
+
Requires-Dist: ollama>=0.5.0; extra == 'ollama'
|
246
|
+
Provides-Extra: reader
|
247
|
+
Requires-Dist: docling>=2.15.1; extra == 'reader'
|
248
|
+
Provides-Extra: test
|
249
|
+
Requires-Dist: pytest-asyncio>=1.0.0; extra == 'test'
|
250
|
+
Requires-Dist: pytest>=8.3.4; extra == 'test'
|
233
251
|
Provides-Extra: tools
|
234
|
-
Requires-Dist:
|
252
|
+
Requires-Dist: docling>=2.15.1; extra == 'tools'
|
235
253
|
Description-Content-Type: text/markdown
|
236
254
|
|
237
255
|

|
@@ -239,9 +257,8 @@ Description-Content-Type: text/markdown
|
|
239
257
|

|
240
258
|
|
241
259
|
[Documentation](https://lion-agi.github.io/lionagi/) |
|
242
|
-
[Discord](https://discord.gg/
|
260
|
+
[Discord](https://discord.gg/JDj9ENhUE8) |
|
243
261
|
[PyPI](https://pypi.org/project/lionagi/) |
|
244
|
-
[Roadmap](https://trello.com/b/3seomsrI/lionagi)
|
245
262
|
|
246
263
|
# LION - Language InterOperable Network
|
247
264
|
|
@@ -267,9 +284,6 @@ integrations, and custom validations in a single coherent pipeline.
|
|
267
284
|
pip install lionagi
|
268
285
|
```
|
269
286
|
|
270
|
-
Dependencies: • aiocahce • aiohttp • jinja2 • pandas • pillow • pydantic
|
271
|
-
• python-dotenv • tiktoken
|
272
|
-
|
273
287
|
## Quick Start
|
274
288
|
|
275
289
|
```python
|
@@ -321,6 +335,10 @@ With fiery claws, dragons hide their laughter flaws!
|
|
321
335
|
LionAGI supports advanced multi-step reasoning with ReAct. Tools let the LLM
|
322
336
|
invoke external actions:
|
323
337
|
|
338
|
+
```
|
339
|
+
pip install "lionagi[reader]"
|
340
|
+
```
|
341
|
+
|
324
342
|
```python
|
325
343
|
from lionagi.tools.types import ReaderTool
|
326
344
|
|
@@ -375,8 +393,7 @@ Seamlessly route to different models in the same workflow.
|
|
375
393
|
### optional dependencies
|
376
394
|
|
377
395
|
```
|
378
|
-
pip install "lionagi[
|
379
|
-
pip install "lionagi[llms]"
|
396
|
+
pip install "lionagi[reader]"
|
380
397
|
pip install "lionagi[ollama]"
|
381
398
|
```
|
382
399
|
|
@@ -3,9 +3,8 @@
|
|
3
3
|

|
4
4
|
|
5
5
|
[Documentation](https://lion-agi.github.io/lionagi/) |
|
6
|
-
[Discord](https://discord.gg/
|
6
|
+
[Discord](https://discord.gg/JDj9ENhUE8) |
|
7
7
|
[PyPI](https://pypi.org/project/lionagi/) |
|
8
|
-
[Roadmap](https://trello.com/b/3seomsrI/lionagi)
|
9
8
|
|
10
9
|
# LION - Language InterOperable Network
|
11
10
|
|
@@ -31,9 +30,6 @@ integrations, and custom validations in a single coherent pipeline.
|
|
31
30
|
pip install lionagi
|
32
31
|
```
|
33
32
|
|
34
|
-
Dependencies: • aiocahce • aiohttp • jinja2 • pandas • pillow • pydantic
|
35
|
-
• python-dotenv • tiktoken
|
36
|
-
|
37
33
|
## Quick Start
|
38
34
|
|
39
35
|
```python
|
@@ -85,6 +81,10 @@ With fiery claws, dragons hide their laughter flaws!
|
|
85
81
|
LionAGI supports advanced multi-step reasoning with ReAct. Tools let the LLM
|
86
82
|
invoke external actions:
|
87
83
|
|
84
|
+
```
|
85
|
+
pip install "lionagi[reader]"
|
86
|
+
```
|
87
|
+
|
88
88
|
```python
|
89
89
|
from lionagi.tools.types import ReaderTool
|
90
90
|
|
@@ -139,8 +139,7 @@ Seamlessly route to different models in the same workflow.
|
|
139
139
|
### optional dependencies
|
140
140
|
|
141
141
|
```
|
142
|
-
pip install "lionagi[
|
143
|
-
pip install "lionagi[llms]"
|
142
|
+
pip install "lionagi[reader]"
|
144
143
|
pip install "lionagi[ollama]"
|
145
144
|
```
|
146
145
|
|
@@ -0,0 +1,123 @@
|
|
1
|
+
# Copyright (c) 2025, HaiyangLi <quantocean.li at gmail dot com>
|
2
|
+
#
|
3
|
+
# SPDX-License-Identifier: Apache-2.0
|
4
|
+
|
5
|
+
from typing import Any, ClassVar
|
6
|
+
|
7
|
+
from pydantic import BaseModel, Field, SecretStr
|
8
|
+
from pydantic_settings import BaseSettings, SettingsConfigDict
|
9
|
+
|
10
|
+
|
11
|
+
class CacheConfig(BaseModel):
|
12
|
+
"""Configuration for aiocache."""
|
13
|
+
|
14
|
+
ttl: int = 300
|
15
|
+
key: str | None = None
|
16
|
+
namespace: str | None = None
|
17
|
+
key_builder: Any = None
|
18
|
+
skip_cache_func: Any = lambda _: False
|
19
|
+
serializer: dict[str, Any] | None = None
|
20
|
+
plugins: Any = None
|
21
|
+
alias: str | None = None
|
22
|
+
noself: Any = lambda _: False
|
23
|
+
|
24
|
+
def as_kwargs(self) -> dict[str, Any]:
|
25
|
+
"""Convert config to kwargs dict for @cached decorator.
|
26
|
+
|
27
|
+
Removes unserialisable callables that aiocache can't pickle.
|
28
|
+
"""
|
29
|
+
raw = self.model_dump(exclude_none=True)
|
30
|
+
# Remove all unserialisable callables
|
31
|
+
unserialisable_keys = (
|
32
|
+
"key_builder",
|
33
|
+
"skip_cache_func",
|
34
|
+
"noself",
|
35
|
+
"serializer",
|
36
|
+
"plugins",
|
37
|
+
)
|
38
|
+
for key in unserialisable_keys:
|
39
|
+
raw.pop(key, None)
|
40
|
+
return raw
|
41
|
+
|
42
|
+
|
43
|
+
class AppSettings(BaseSettings, frozen=True):
|
44
|
+
"""Application settings with environment variable support."""
|
45
|
+
|
46
|
+
model_config = SettingsConfigDict(
|
47
|
+
env_file=(".env", ".env.local", ".secrets.env"),
|
48
|
+
env_file_encoding="utf-8",
|
49
|
+
case_sensitive=False,
|
50
|
+
extra="ignore",
|
51
|
+
)
|
52
|
+
|
53
|
+
aiocache_config: CacheConfig = Field(
|
54
|
+
default_factory=CacheConfig, description="Cache settings for aiocache"
|
55
|
+
)
|
56
|
+
|
57
|
+
# secrets
|
58
|
+
OPENAI_API_KEY: SecretStr | None = None
|
59
|
+
OPENROUTER_API_KEY: SecretStr | None = None
|
60
|
+
OLLAMA_API_KEY: SecretStr | None = None
|
61
|
+
EXA_API_KEY: SecretStr | None = None
|
62
|
+
PERPLEXITY_API_KEY: SecretStr | None = None
|
63
|
+
GROQ_API_KEY: SecretStr | None = None
|
64
|
+
ANTHROPIC_API_KEY: SecretStr | None = None
|
65
|
+
|
66
|
+
# defaults models
|
67
|
+
LIONAGI_EMBEDDING_PROVIDER: str = "openai"
|
68
|
+
LIONAGI_EMBEDDING_MODEL: str = "text-embedding-3-small"
|
69
|
+
|
70
|
+
LIONAGI_CHAT_PROVIDER: str = "openai"
|
71
|
+
LIONAGI_CHAT_MODEL: str = "gpt-4o"
|
72
|
+
|
73
|
+
# default storage
|
74
|
+
LIONAGI_AUTO_STORE_EVENT: bool = False
|
75
|
+
LIONAGI_STORAGE_PROVIDER: str = "async_qdrant"
|
76
|
+
|
77
|
+
LIONAGI_AUTO_EMBED_LOG: bool = False
|
78
|
+
|
79
|
+
# specific storage
|
80
|
+
LIONAGI_QDRANT_URL: str = "http://localhost:6333"
|
81
|
+
LIONAGI_DEFAULT_QDRANT_COLLECTION: str = "event_logs"
|
82
|
+
|
83
|
+
# Class variable to store the singleton instance
|
84
|
+
_instance: ClassVar[Any] = None
|
85
|
+
|
86
|
+
def get_secret(self, key_name: str) -> str:
|
87
|
+
"""
|
88
|
+
Get the secret value for a given key name.
|
89
|
+
|
90
|
+
Args:
|
91
|
+
key_name: The name of the secret key (e.g., "OPENAI_API_KEY")
|
92
|
+
|
93
|
+
Returns:
|
94
|
+
The secret value as a string
|
95
|
+
|
96
|
+
Raises:
|
97
|
+
AttributeError: If the key doesn't exist
|
98
|
+
ValueError: If the key exists but is None
|
99
|
+
"""
|
100
|
+
if not hasattr(self, key_name):
|
101
|
+
if "ollama" in key_name.lower():
|
102
|
+
return "ollama"
|
103
|
+
raise AttributeError(
|
104
|
+
f"Secret key '{key_name}' not found in settings"
|
105
|
+
)
|
106
|
+
|
107
|
+
secret = getattr(self, key_name)
|
108
|
+
if secret is None:
|
109
|
+
# Special case for Ollama - return "ollama" even if key exists but is None
|
110
|
+
if "ollama" in key_name.lower():
|
111
|
+
return "ollama"
|
112
|
+
raise ValueError(f"Secret key '{key_name}' is not set")
|
113
|
+
|
114
|
+
if isinstance(secret, SecretStr):
|
115
|
+
return secret.get_secret_value()
|
116
|
+
|
117
|
+
return str(secret)
|
118
|
+
|
119
|
+
|
120
|
+
# Create a singleton instance
|
121
|
+
settings = AppSettings()
|
122
|
+
# Store the instance in the class variable for singleton pattern
|
123
|
+
AppSettings._instance = settings
|
@@ -1,12 +1,7 @@
|
|
1
|
-
# Copyright (c) 2023 - 2025, HaiyangLi <quantocean.li at gmail dot com>
|
2
|
-
#
|
3
|
-
# SPDX-License-Identifier: Apache-2.0
|
4
|
-
|
5
1
|
from pathlib import Path
|
6
2
|
from typing import Any
|
7
3
|
|
8
|
-
from lionagi.
|
9
|
-
from lionagi.utils import lcall
|
4
|
+
from lionagi.utils import create_path, lcall
|
10
5
|
|
11
6
|
from .process import dir_to_files
|
12
7
|
|
@@ -1,10 +1,6 @@
|
|
1
|
-
# Copyright (c) 2023 - 2025, HaiyangLi <quantocean.li at gmail dot com>
|
2
|
-
#
|
3
|
-
# SPDX-License-Identifier: Apache-2.0
|
4
|
-
|
5
1
|
from pathlib import Path
|
6
2
|
|
7
|
-
from lionagi.
|
3
|
+
from lionagi.utils import create_path
|
8
4
|
|
9
5
|
from .process import dir_to_files
|
10
6
|
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# Copyright (c) 2023 - 2025, HaiyangLi <quantocean.li at gmail dot com>
|
2
|
+
#
|
3
|
+
# SPDX-License-Identifier: Apache-2.0
|
4
|
+
|
5
|
+
from lionagi.utils import (
|
6
|
+
check_import,
|
7
|
+
import_module,
|
8
|
+
install_import,
|
9
|
+
is_import_installed,
|
10
|
+
run_package_manager_command,
|
11
|
+
)
|
12
|
+
|
13
|
+
# backward compatibility
|
14
|
+
|
15
|
+
__all__ = (
|
16
|
+
"run_package_manager_command",
|
17
|
+
"check_import",
|
18
|
+
"import_module",
|
19
|
+
"install_import",
|
20
|
+
"is_import_installed",
|
21
|
+
)
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# Copyright (c) 2023 - 2025, HaiyangLi <quantocean.li at gmail dot com>
|
2
|
+
#
|
3
|
+
# SPDX-License-Identifier: Apache-2.0
|
4
|
+
|
5
|
+
from lionagi.libs.schema.as_readable import as_readable
|
6
|
+
from lionagi.libs.schema.extract_code_block import extract_code_block
|
7
|
+
from lionagi.libs.schema.function_to_schema import function_to_schema
|
8
|
+
from lionagi.libs.validate.fuzzy_match_keys import fuzzy_match_keys
|
9
|
+
from lionagi.libs.validate.fuzzy_validate_mapping import fuzzy_validate_mapping
|
10
|
+
from lionagi.libs.validate.string_similarity import string_similarity
|
11
|
+
from lionagi.utils import fuzzy_parse_json, to_dict, to_json, to_num
|
12
|
+
|
13
|
+
validate_keys = fuzzy_match_keys # for backward compatibility
|
14
|
+
validate_mapping = fuzzy_validate_mapping # for backward compatibility
|
15
|
+
|
16
|
+
|
17
|
+
__all__ = (
|
18
|
+
"as_readable",
|
19
|
+
"extract_code_block",
|
20
|
+
"function_to_schema",
|
21
|
+
"fuzzy_match_keys",
|
22
|
+
"fuzzy_validate_mapping",
|
23
|
+
"string_similarity",
|
24
|
+
"validate_keys",
|
25
|
+
"validate_mapping",
|
26
|
+
"to_dict",
|
27
|
+
"to_json",
|
28
|
+
"to_num",
|
29
|
+
"fuzzy_parse_json",
|
30
|
+
)
|