lionagi 0.13.7__tar.gz → 0.14.1__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.
Files changed (282) hide show
  1. {lionagi-0.13.7 → lionagi-0.14.1}/PKG-INFO +2 -2
  2. {lionagi-0.13.7 → lionagi-0.14.1}/cookbooks/001_branch_converse.ipynb +45 -45
  3. {lionagi-0.13.7 → lionagi-0.14.1}/cookbooks/002_branch_interact.ipynb +224 -220
  4. lionagi-0.14.1/cookbooks/003_branch_info.ipynb +284 -0
  5. {lionagi-0.13.7 → lionagi-0.14.1}/cookbooks/004_conversation_patterns.ipynb +50 -26
  6. {lionagi-0.13.7 → lionagi-0.14.1}/cookbooks/005_react_basics.ipynb +244 -203
  7. lionagi-0.13.7/cookbooks/006_operation_graphs_claim_validation.ipynb → lionagi-0.14.1/cookbooks/006_operation_graphs_claim_extraction.ipynb +276 -50
  8. {lionagi-0.13.7 → lionagi-0.14.1}/cookbooks/data/002_comedian.json +146 -146
  9. {lionagi-0.13.7 → lionagi-0.14.1}/cookbooks/data/002_critic.json +66 -66
  10. lionagi-0.14.1/lionagi/libs/concurrency/__init__.py +25 -0
  11. lionagi-0.14.1/lionagi/libs/concurrency/cancel.py +134 -0
  12. lionagi-0.14.1/lionagi/libs/concurrency/errors.py +35 -0
  13. lionagi-0.14.1/lionagi/libs/concurrency/patterns.py +252 -0
  14. lionagi-0.14.1/lionagi/libs/concurrency/primitives.py +242 -0
  15. lionagi-0.14.1/lionagi/libs/concurrency/task.py +109 -0
  16. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/operations/builder.py +46 -0
  17. lionagi-0.14.1/lionagi/operations/flow.py +331 -0
  18. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/operations/node.py +2 -1
  19. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/protocols/generic/pile.py +41 -156
  20. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/protocols/graph/edge.py +1 -1
  21. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/protocols/graph/node.py +27 -55
  22. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/protocols/types.py +1 -2
  23. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/service/connections/providers/claude_code_.py +31 -8
  24. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/service/connections/providers/claude_code_cli.py +2 -3
  25. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/session/session.py +8 -8
  26. lionagi-0.14.1/lionagi/version.py +1 -0
  27. {lionagi-0.13.7 → lionagi-0.14.1}/pyproject.toml +2 -2
  28. {lionagi-0.13.7 → lionagi-0.14.1}/uv.lock +5 -5
  29. lionagi-0.13.7/cookbooks/003_branch_info.ipynb +0 -275
  30. lionagi-0.13.7/lionagi/operations/flow.py +0 -422
  31. lionagi-0.13.7/lionagi/version.py +0 -1
  32. {lionagi-0.13.7 → lionagi-0.14.1}/.coveragerc +0 -0
  33. {lionagi-0.13.7 → lionagi-0.14.1}/.env.example +0 -0
  34. {lionagi-0.13.7 → lionagi-0.14.1}/.github/FUNDING.yml +0 -0
  35. {lionagi-0.13.7 → lionagi-0.14.1}/.github/dependabot.yml +0 -0
  36. {lionagi-0.13.7 → lionagi-0.14.1}/.github/workflows/ci.yml +0 -0
  37. {lionagi-0.13.7 → lionagi-0.14.1}/.github/workflows/codeql.yml +0 -0
  38. {lionagi-0.13.7 → lionagi-0.14.1}/.github/workflows/docs.yml +0 -0
  39. {lionagi-0.13.7 → lionagi-0.14.1}/.github/workflows/release.yml +0 -0
  40. {lionagi-0.13.7 → lionagi-0.14.1}/.gitignore +0 -0
  41. {lionagi-0.13.7 → lionagi-0.14.1}/.pre-commit-config.yaml +0 -0
  42. {lionagi-0.13.7 → lionagi-0.14.1}/.python-version +0 -0
  43. {lionagi-0.13.7 → lionagi-0.14.1}/CODE_OF_CONDUCT.md +0 -0
  44. {lionagi-0.13.7 → lionagi-0.14.1}/CONTRIBUTING.md +0 -0
  45. {lionagi-0.13.7 → lionagi-0.14.1}/LICENSE +0 -0
  46. {lionagi-0.13.7 → lionagi-0.14.1}/README.md +0 -0
  47. {lionagi-0.13.7 → lionagi-0.14.1}/assets/operation_builder.gif +0 -0
  48. {lionagi-0.13.7 → lionagi-0.14.1}/cookbooks/data/006_lion_proof_ch2.md +0 -0
  49. {lionagi-0.13.7 → lionagi-0.14.1}/cookbooks/using_claude_code.py +0 -0
  50. {lionagi-0.13.7 → lionagi-0.14.1}/docs/Makefile +0 -0
  51. {lionagi-0.13.7 → lionagi-0.14.1}/docs/_static/custom.css +0 -0
  52. {lionagi-0.13.7 → lionagi-0.14.1}/docs/_templates/layout.html +0 -0
  53. {lionagi-0.13.7 → lionagi-0.14.1}/docs/conf.py +0 -0
  54. {lionagi-0.13.7 → lionagi-0.14.1}/docs/index.rst +0 -0
  55. {lionagi-0.13.7 → lionagi-0.14.1}/docs/modules/action.rst +0 -0
  56. {lionagi-0.13.7 → lionagi-0.14.1}/docs/modules/adapter.rst +0 -0
  57. {lionagi-0.13.7 → lionagi-0.14.1}/docs/modules/branch.rst +0 -0
  58. {lionagi-0.13.7 → lionagi-0.14.1}/docs/modules/branch_operations.rst +0 -0
  59. {lionagi-0.13.7 → lionagi-0.14.1}/docs/modules/concepts.rst +0 -0
  60. {lionagi-0.13.7 → lionagi-0.14.1}/docs/modules/element_id.rst +0 -0
  61. {lionagi-0.13.7 → lionagi-0.14.1}/docs/modules/event.rst +0 -0
  62. {lionagi-0.13.7 → lionagi-0.14.1}/docs/modules/form.rst +0 -0
  63. {lionagi-0.13.7 → lionagi-0.14.1}/docs/modules/graph.rst +0 -0
  64. {lionagi-0.13.7 → lionagi-0.14.1}/docs/modules/index.rst +0 -0
  65. {lionagi-0.13.7 → lionagi-0.14.1}/docs/modules/instruct.rst +0 -0
  66. {lionagi-0.13.7 → lionagi-0.14.1}/docs/modules/lib_file.rst +0 -0
  67. {lionagi-0.13.7 → lionagi-0.14.1}/docs/modules/lib_nested.rst +0 -0
  68. {lionagi-0.13.7 → lionagi-0.14.1}/docs/modules/lib_package.rst +0 -0
  69. {lionagi-0.13.7 → lionagi-0.14.1}/docs/modules/lib_schema.rst +0 -0
  70. {lionagi-0.13.7 → lionagi-0.14.1}/docs/modules/lib_validate.rst +0 -0
  71. {lionagi-0.13.7 → lionagi-0.14.1}/docs/modules/log.rst +0 -0
  72. {lionagi-0.13.7 → lionagi-0.14.1}/docs/modules/mail.rst +0 -0
  73. {lionagi-0.13.7 → lionagi-0.14.1}/docs/modules/message.rst +0 -0
  74. {lionagi-0.13.7 → lionagi-0.14.1}/docs/modules/models.rst +0 -0
  75. {lionagi-0.13.7 → lionagi-0.14.1}/docs/modules/operative_step.rst +0 -0
  76. {lionagi-0.13.7 → lionagi-0.14.1}/docs/modules/pile.rst +0 -0
  77. {lionagi-0.13.7 → lionagi-0.14.1}/docs/modules/processor.rst +0 -0
  78. {lionagi-0.13.7 → lionagi-0.14.1}/docs/modules/progression.rst +0 -0
  79. {lionagi-0.13.7 → lionagi-0.14.1}/docs/modules/service.rst +0 -0
  80. {lionagi-0.13.7 → lionagi-0.14.1}/docs/modules/session.rst +0 -0
  81. {lionagi-0.13.7 → lionagi-0.14.1}/docs/modules/utils.rst +0 -0
  82. {lionagi-0.13.7 → lionagi-0.14.1}/docs/tutorials/get_started.rst +0 -0
  83. {lionagi-0.13.7 → lionagi-0.14.1}/docs/tutorials/get_started_pt2.rst +0 -0
  84. {lionagi-0.13.7 → lionagi-0.14.1}/docs/tutorials/get_started_pt3.rst +0 -0
  85. {lionagi-0.13.7 → lionagi-0.14.1}/docs/tutorials/index.rst +0 -0
  86. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/__init__.py +0 -0
  87. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/_class_registry.py +0 -0
  88. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/_errors.py +0 -0
  89. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/_types.py +0 -0
  90. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/config.py +0 -0
  91. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/fields/__init__.py +0 -0
  92. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/fields/action.py +0 -0
  93. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/fields/base.py +0 -0
  94. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/fields/code.py +0 -0
  95. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/fields/file.py +0 -0
  96. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/fields/instruct.py +0 -0
  97. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/fields/reason.py +0 -0
  98. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/fields/research.py +0 -0
  99. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/libs/__init__.py +0 -0
  100. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/libs/file/__init__.py +0 -0
  101. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/libs/file/chunk.py +0 -0
  102. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/libs/file/concat.py +0 -0
  103. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/libs/file/concat_files.py +0 -0
  104. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/libs/file/file_ops.py +0 -0
  105. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/libs/file/params.py +0 -0
  106. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/libs/file/process.py +0 -0
  107. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/libs/file/save.py +0 -0
  108. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/libs/nested/__init__.py +0 -0
  109. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/libs/nested/flatten.py +0 -0
  110. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/libs/nested/nfilter.py +0 -0
  111. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/libs/nested/nget.py +0 -0
  112. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/libs/nested/ninsert.py +0 -0
  113. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/libs/nested/nmerge.py +0 -0
  114. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/libs/nested/npop.py +0 -0
  115. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/libs/nested/nset.py +0 -0
  116. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/libs/nested/unflatten.py +0 -0
  117. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/libs/nested/utils.py +0 -0
  118. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/libs/package/__init__.py +0 -0
  119. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/libs/package/imports.py +0 -0
  120. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/libs/package/management.py +0 -0
  121. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/libs/package/params.py +0 -0
  122. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/libs/package/system.py +0 -0
  123. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/libs/parse.py +0 -0
  124. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/libs/schema/__init__.py +0 -0
  125. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/libs/schema/as_readable.py +0 -0
  126. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/libs/schema/extract_code_block.py +0 -0
  127. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/libs/schema/extract_docstring.py +0 -0
  128. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/libs/schema/function_to_schema.py +0 -0
  129. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/libs/schema/json_schema.py +0 -0
  130. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/libs/schema/load_pydantic_model_from_schema.py +0 -0
  131. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/libs/token_transform/__init__.py +0 -0
  132. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/libs/token_transform/base.py +0 -0
  133. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/libs/token_transform/llmlingua.py +0 -0
  134. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/libs/token_transform/perplexity.py +0 -0
  135. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/libs/token_transform/symbolic_compress_context.py +0 -0
  136. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/libs/token_transform/synthlang.py +0 -0
  137. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/libs/token_transform/synthlang_/base.py +0 -0
  138. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/libs/token_transform/synthlang_/resources/frameworks/abstract_algebra.toml +0 -0
  139. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/libs/token_transform/synthlang_/resources/frameworks/category_theory.toml +0 -0
  140. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/libs/token_transform/synthlang_/resources/frameworks/complex_analysis.toml +0 -0
  141. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/libs/token_transform/synthlang_/resources/frameworks/framework_options.json +0 -0
  142. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/libs/token_transform/synthlang_/resources/frameworks/group_theory.toml +0 -0
  143. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/libs/token_transform/synthlang_/resources/frameworks/math_logic.toml +0 -0
  144. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/libs/token_transform/synthlang_/resources/frameworks/reflective_patterns.toml +0 -0
  145. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/libs/token_transform/synthlang_/resources/frameworks/set_theory.toml +0 -0
  146. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/libs/token_transform/synthlang_/resources/frameworks/topology_fundamentals.toml +0 -0
  147. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/libs/token_transform/synthlang_/resources/mapping/lion_emoji_mapping.toml +0 -0
  148. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/libs/token_transform/synthlang_/resources/mapping/python_math_mapping.toml +0 -0
  149. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/libs/token_transform/synthlang_/resources/mapping/rust_chinese_mapping.toml +0 -0
  150. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/libs/token_transform/synthlang_/resources/utility/base_synthlang_system_prompt.toml +0 -0
  151. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/libs/token_transform/synthlang_/translate_to_synthlang.py +0 -0
  152. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/libs/token_transform/types.py +0 -0
  153. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/libs/validate/__init__.py +0 -0
  154. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/libs/validate/common_field_validators.py +0 -0
  155. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/libs/validate/fuzzy_match_keys.py +0 -0
  156. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/libs/validate/fuzzy_validate_mapping.py +0 -0
  157. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/libs/validate/string_similarity.py +0 -0
  158. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/libs/validate/validate_boolean.py +0 -0
  159. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/models/__init__.py +0 -0
  160. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/models/field_model.py +0 -0
  161. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/models/hashable_model.py +0 -0
  162. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/models/model_params.py +0 -0
  163. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/models/note.py +0 -0
  164. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/models/operable_model.py +0 -0
  165. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/models/schema_model.py +0 -0
  166. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/operations/ReAct/ReAct.py +0 -0
  167. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/operations/ReAct/__init__.py +0 -0
  168. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/operations/ReAct/utils.py +0 -0
  169. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/operations/__init__.py +0 -0
  170. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/operations/_act/__init__.py +0 -0
  171. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/operations/_act/act.py +0 -0
  172. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/operations/brainstorm/__init__.py +0 -0
  173. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/operations/brainstorm/brainstorm.py +0 -0
  174. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/operations/brainstorm/prompt.py +0 -0
  175. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/operations/chat/__init__.py +0 -0
  176. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/operations/chat/chat.py +0 -0
  177. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/operations/communicate/__init__.py +0 -0
  178. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/operations/communicate/communicate.py +0 -0
  179. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/operations/instruct/__init__.py +0 -0
  180. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/operations/instruct/instruct.py +0 -0
  181. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/operations/interpret/__init__.py +0 -0
  182. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/operations/interpret/interpret.py +0 -0
  183. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/operations/manager.py +0 -0
  184. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/operations/operate/__init__.py +0 -0
  185. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/operations/operate/operate.py +0 -0
  186. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/operations/parse/__init__.py +0 -0
  187. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/operations/parse/parse.py +0 -0
  188. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/operations/plan/__init__.py +0 -0
  189. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/operations/plan/plan.py +0 -0
  190. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/operations/plan/prompt.py +0 -0
  191. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/operations/select/__init__.py +0 -0
  192. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/operations/select/select.py +0 -0
  193. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/operations/select/utils.py +0 -0
  194. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/operations/translate/__init__.py +0 -0
  195. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/operations/translate/translate.py +0 -0
  196. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/operations/types.py +0 -0
  197. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/operations/utils.py +0 -0
  198. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/protocols/__init__.py +0 -0
  199. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/protocols/_concepts.py +0 -0
  200. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/protocols/action/__init__.py +0 -0
  201. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/protocols/action/function_calling.py +0 -0
  202. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/protocols/action/manager.py +0 -0
  203. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/protocols/action/tool.py +0 -0
  204. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/protocols/forms/__init__.py +0 -0
  205. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/protocols/forms/base.py +0 -0
  206. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/protocols/forms/flow.py +0 -0
  207. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/protocols/forms/form.py +0 -0
  208. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/protocols/forms/report.py +0 -0
  209. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/protocols/generic/__init__.py +0 -0
  210. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/protocols/generic/element.py +0 -0
  211. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/protocols/generic/event.py +0 -0
  212. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/protocols/generic/log.py +0 -0
  213. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/protocols/generic/processor.py +0 -0
  214. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/protocols/generic/progression.py +0 -0
  215. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/protocols/graph/__init__.py +0 -0
  216. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/protocols/graph/graph.py +0 -0
  217. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/protocols/mail/__init__.py +0 -0
  218. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/protocols/mail/exchange.py +0 -0
  219. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/protocols/mail/mail.py +0 -0
  220. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/protocols/mail/mailbox.py +0 -0
  221. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/protocols/mail/manager.py +0 -0
  222. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/protocols/mail/package.py +0 -0
  223. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/protocols/messages/__init__.py +0 -0
  224. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/protocols/messages/action_request.py +0 -0
  225. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/protocols/messages/action_response.py +0 -0
  226. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/protocols/messages/assistant_response.py +0 -0
  227. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/protocols/messages/base.py +0 -0
  228. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/protocols/messages/instruction.py +0 -0
  229. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/protocols/messages/manager.py +0 -0
  230. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/protocols/messages/message.py +0 -0
  231. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/protocols/messages/system.py +0 -0
  232. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/protocols/messages/templates/README.md +0 -0
  233. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/protocols/messages/templates/action_request.jinja2 +0 -0
  234. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/protocols/messages/templates/action_response.jinja2 +0 -0
  235. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/protocols/messages/templates/assistant_response.jinja2 +0 -0
  236. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/protocols/messages/templates/instruction_message.jinja2 +0 -0
  237. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/protocols/messages/templates/system_message.jinja2 +0 -0
  238. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/protocols/messages/templates/tool_schemas.jinja2 +0 -0
  239. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/protocols/operatives/__init__.py +0 -0
  240. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/protocols/operatives/operative.py +0 -0
  241. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/protocols/operatives/step.py +0 -0
  242. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/py.typed +0 -0
  243. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/service/__init__.py +0 -0
  244. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/service/connections/__init__.py +0 -0
  245. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/service/connections/api_calling.py +0 -0
  246. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/service/connections/endpoint.py +0 -0
  247. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/service/connections/endpoint_config.py +0 -0
  248. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/service/connections/header_factory.py +0 -0
  249. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/service/connections/match_endpoint.py +0 -0
  250. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/service/connections/providers/__init__.py +0 -0
  251. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/service/connections/providers/anthropic_.py +0 -0
  252. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/service/connections/providers/exa_.py +0 -0
  253. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/service/connections/providers/oai_.py +0 -0
  254. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/service/connections/providers/ollama_.py +0 -0
  255. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/service/connections/providers/perplexity_.py +0 -0
  256. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/service/imodel.py +0 -0
  257. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/service/manager.py +0 -0
  258. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/service/rate_limited_processor.py +0 -0
  259. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/service/resilience.py +0 -0
  260. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/service/third_party/README.md +0 -0
  261. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/service/third_party/__init__.py +0 -0
  262. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/service/third_party/anthropic_models.py +0 -0
  263. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/service/third_party/exa_models.py +0 -0
  264. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/service/third_party/openai_models.py +0 -0
  265. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/service/third_party/pplx_models.py +0 -0
  266. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/service/token_calculator.py +0 -0
  267. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/service/types.py +0 -0
  268. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/session/__init__.py +0 -0
  269. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/session/branch.py +0 -0
  270. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/session/prompts.py +0 -0
  271. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/settings.py +0 -0
  272. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/tools/__init__.py +0 -0
  273. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/tools/base.py +0 -0
  274. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/tools/file/__init__.py +0 -0
  275. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/tools/file/reader.py +0 -0
  276. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/tools/memory/tools.py +0 -0
  277. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/tools/types.py +0 -0
  278. {lionagi-0.13.7 → lionagi-0.14.1}/lionagi/utils.py +0 -0
  279. {lionagi-0.13.7 → lionagi-0.14.1}/main.py +0 -0
  280. {lionagi-0.13.7 → lionagi-0.14.1}/scripts/README.md +0 -0
  281. {lionagi-0.13.7 → lionagi-0.14.1}/scripts/concat.py +0 -0
  282. {lionagi-0.13.7 → lionagi-0.14.1}/scripts/config.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: lionagi
3
- Version: 0.13.7
3
+ Version: 0.14.1
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
@@ -229,7 +229,7 @@ Requires-Dist: matplotlib>=3.9.0
229
229
  Requires-Dist: pillow>=11.0.0
230
230
  Requires-Dist: psutil>=7.0.0
231
231
  Requires-Dist: pydantic-settings>=2.8.0
232
- Requires-Dist: pydapter[pandas]>=0.3.2
232
+ Requires-Dist: pydapter[pandas]>=1.0.0
233
233
  Requires-Dist: python-dotenv>=1.1.0
234
234
  Requires-Dist: tiktoken>=0.8.0
235
235
  Requires-Dist: toml>=0.9.0
@@ -78,7 +78,7 @@
78
78
  {
79
79
  "data": {
80
80
  "text/markdown": [
81
- "**comedian1**: A blue whale and a big shark walk into a bar. They start dancing—turns out, even in the ocean, they're just trying to groove away from their terrible dating profiles."
81
+ "**comedian1**: So a blue whale and a big shark walk into a bar, see each other, and suddenly break out into dance. Guess they're just trying to out-swim each other in the dance floor—because nothing says \"peak aquatic rivalry\" like a synchronized swim… in flip-flops."
82
82
  ],
83
83
  "text/plain": [
84
84
  "<IPython.core.display.Markdown object>"
@@ -140,22 +140,22 @@
140
140
  "data": {
141
141
  "text/markdown": [
142
142
  "**comedian2**: <think>\n",
143
- "Okay, so I have this user query. Let's see what they're asking for. They want me to be a comedian who’s sarcastically funny and come up with a joke based on them. The setup is that a blue whale and a big shark meet at the bar and start dancing. Hmm.\n",
143
+ "Okay, so I need to create a joke for this scenario. The premise is that a blue whale and a big shark meet at the bar and start dancing as if they're both just having fun. However, it's important these two represent a pair of opposites.\n",
144
144
  "\n",
145
- "Alright, I need to think about how a blue whale and a shark can go smoothly or maybe accidentally dance together in a bar. Well, they're both water-based creatures. That could be a funny angle. Maybe the idea of them being on the water side? \n",
145
+ "First, I should think about the qualities each animal brings. Blue whales are big and have that iconic black fur; they're often associated with luxury and status. Big sharks are also large but might bring the feel of danger or raw anger to the party, especially during the heat.\n",
146
146
  "\n",
147
- "So, starting with that theme, maybe something about not wanting to be too far from shorelines because there’s a lot of activity when they’re out. That ties into their characteristics. Also, considering the bar itself—sharks can be seen drinking, etc.\n",
147
+ "The issue here is how to combine these two so they don't end up arguing over their similarities. I need a neutral way for them to dance together instead.\n",
148
148
  "\n",
149
- "Putting it all together, I should avoid sounding too serious and add some humor through their behaviors. Maybe include something playful like swishing arms or bellowing in fits. \n",
149
+ "I should come up with a situation where both animals find solace in each other's company. Maybe something that highlights their mutual love or support without making them argue.\n",
150
150
  "\n",
151
- "The user also mentioned a short joke, so keeping it concise is key. I need to make sure it's clear and gets the point across without being too wordy.\n",
151
+ "What emotions could work here? Fear might come to mind when big sharks are around, especially in the heat of dinner or socializing at a bar. But that could create some tension at the end.\n",
152
152
  "\n",
153
- "Alright, let me try formulating that. Maybe something about not wanting to be too far from shorelines because there’s a lot of activities out. That ties into both the blue whale and shark characteristics. \n",
153
+ "Another angle is their emotional journey—exploiting and then surrendering by dancing together. It shows mutual support but also highlights their contrasting traits over time. That seems relatable.\n",
154
154
  "\n",
155
- "Then have them start dancing together at the bar, keeping it humorous yet appropriate, adding some flair to make it light despite being the opposite in many ways.\n",
155
+ "Let me structure this as an exchange where each animal acknowledges the other's role in providing comfort or stability.\n",
156
156
  "</think>\n",
157
157
  "\n",
158
- "The blue whale and the big shark aren’t exactly on the same boat when they pop into the bar. They’re both waterberms, like moths trapped under a glass. You know what happens next? They’ll start bellowing in fits and swishing arms like they’ve seen too many fish in total."
158
+ "Oh, I've had a lot easier since you came to the bar. Maybe next time I'll keep it simple and just come with both my teeth and my legs."
159
159
  ],
160
160
  "text/plain": [
161
161
  "<IPython.core.display.Markdown object>"
@@ -179,7 +179,7 @@
179
179
  },
180
180
  {
181
181
  "cell_type": "code",
182
- "execution_count": null,
182
+ "execution_count": 5,
183
183
  "metadata": {},
184
184
  "outputs": [
185
185
  {
@@ -215,12 +215,12 @@
215
215
  " <tbody>\n",
216
216
  " <tr>\n",
217
217
  " <th>0</th>\n",
218
- " <td>1.753069e+09</td>\n",
218
+ " <td>1.753196e+09</td>\n",
219
219
  " <td>system</td>\n",
220
220
  " <td>{'system_message': 'As a comedian, you are sar...</td>\n",
221
- " <td>935c1318-3f5a-4172-b4c4-728bb8948880</td>\n",
221
+ " <td>51f0b9b6-c278-4c8a-996a-3da8c3ad3bdd</td>\n",
222
222
  " <td>system</td>\n",
223
- " <td>6e490b3f-7b51-4657-95b6-6e66362338b3</td>\n",
223
+ " <td>b7ced6ad-8b83-4ddb-84a4-21b2cc6f0b35</td>\n",
224
224
  " <td>{'lion_class': 'lionagi.protocols.messages.sys...</td>\n",
225
225
  " </tr>\n",
226
226
  " </tbody>\n",
@@ -229,19 +229,19 @@
229
229
  ],
230
230
  "text/plain": [
231
231
  " created_at role content \\\n",
232
- "0 1.753069e+09 system {'system_message': 'As a comedian, you are sar... \n",
232
+ "0 1.753196e+09 system {'system_message': 'As a comedian, you are sar... \n",
233
233
  "\n",
234
234
  " id sender \\\n",
235
- "0 935c1318-3f5a-4172-b4c4-728bb8948880 system \n",
235
+ "0 51f0b9b6-c278-4c8a-996a-3da8c3ad3bdd system \n",
236
236
  "\n",
237
237
  " recipient \\\n",
238
- "0 6e490b3f-7b51-4657-95b6-6e66362338b3 \n",
238
+ "0 b7ced6ad-8b83-4ddb-84a4-21b2cc6f0b35 \n",
239
239
  "\n",
240
240
  " metadata \n",
241
241
  "0 {'lion_class': 'lionagi.protocols.messages.sys... "
242
242
  ]
243
243
  },
244
- "execution_count": 9,
244
+ "execution_count": 5,
245
245
  "metadata": {},
246
246
  "output_type": "execute_result"
247
247
  }
@@ -254,7 +254,7 @@
254
254
  },
255
255
  {
256
256
  "cell_type": "code",
257
- "execution_count": null,
257
+ "execution_count": 6,
258
258
  "metadata": {},
259
259
  "outputs": [
260
260
  {
@@ -290,34 +290,34 @@
290
290
  " <tbody>\n",
291
291
  " <tr>\n",
292
292
  " <th>0</th>\n",
293
- " <td>1.753069e+09</td>\n",
293
+ " <td>1.753196e+09</td>\n",
294
294
  " <td>system</td>\n",
295
295
  " <td>{'system_message': 'As a comedian, you are sar...</td>\n",
296
- " <td>6c39df29-c90e-4a74-a404-7678d6f1f9bd</td>\n",
296
+ " <td>670fbe44-1efa-49fe-bbc8-ff08a356c634</td>\n",
297
297
  " <td>system</td>\n",
298
- " <td>3c5be94e-00b2-46d7-9f0f-7715e768c7c7</td>\n",
298
+ " <td>6eeb5846-5bb0-446f-bec3-f9b8ab10ef65</td>\n",
299
299
  " <td>{'lion_class': 'lionagi.protocols.messages.sys...</td>\n",
300
300
  " </tr>\n",
301
301
  " <tr>\n",
302
302
  " <th>1</th>\n",
303
- " <td>1.753069e+09</td>\n",
303
+ " <td>1.753196e+09</td>\n",
304
304
  " <td>user</td>\n",
305
305
  " <td>{'context': [], 'instruction': 'short joke: a ...</td>\n",
306
- " <td>41ca3cce-a47e-4496-88c7-fd31a34eefb7</td>\n",
306
+ " <td>94f80a80-fcac-41d8-912b-8c06c3874df6</td>\n",
307
307
  " <td>user</td>\n",
308
- " <td>3c5be94e-00b2-46d7-9f0f-7715e768c7c7</td>\n",
308
+ " <td>6eeb5846-5bb0-446f-bec3-f9b8ab10ef65</td>\n",
309
309
  " <td>{'lion_class': 'lionagi.protocols.messages.ins...</td>\n",
310
310
  " </tr>\n",
311
311
  " <tr>\n",
312
312
  " <th>2</th>\n",
313
- " <td>1.753069e+09</td>\n",
313
+ " <td>1.753196e+09</td>\n",
314
314
  " <td>assistant</td>\n",
315
315
  " <td>{'assistant_response': '&lt;think&gt;\n",
316
- "Okay, so I hav...</td>\n",
317
- " <td>eac70edd-6338-40eb-8525-a8bd25ee5836</td>\n",
318
- " <td>3c5be94e-00b2-46d7-9f0f-7715e768c7c7</td>\n",
316
+ "Okay, so I nee...</td>\n",
317
+ " <td>44a82dd2-02e5-47a0-96fc-3636af5ada0a</td>\n",
318
+ " <td>6eeb5846-5bb0-446f-bec3-f9b8ab10ef65</td>\n",
319
319
  " <td>user</td>\n",
320
- " <td>{'model_response': {'id': 'chatcmpl-198', 'obj...</td>\n",
320
+ " <td>{'model_response': {'id': 'chatcmpl-532', 'obj...</td>\n",
321
321
  " </tr>\n",
322
322
  " </tbody>\n",
323
323
  "</table>\n",
@@ -325,25 +325,25 @@
325
325
  ],
326
326
  "text/plain": [
327
327
  " created_at role content \\\n",
328
- "0 1.753069e+09 system {'system_message': 'As a comedian, you are sar... \n",
329
- "1 1.753069e+09 user {'context': [], 'instruction': 'short joke: a ... \n",
330
- "2 1.753069e+09 assistant {'assistant_response': '<think>\n",
331
- "Okay, so I hav... \n",
328
+ "0 1.753196e+09 system {'system_message': 'As a comedian, you are sar... \n",
329
+ "1 1.753196e+09 user {'context': [], 'instruction': 'short joke: a ... \n",
330
+ "2 1.753196e+09 assistant {'assistant_response': '<think>\n",
331
+ "Okay, so I nee... \n",
332
332
  "\n",
333
333
  " id sender \\\n",
334
- "0 6c39df29-c90e-4a74-a404-7678d6f1f9bd system \n",
335
- "1 41ca3cce-a47e-4496-88c7-fd31a34eefb7 user \n",
336
- "2 eac70edd-6338-40eb-8525-a8bd25ee5836 3c5be94e-00b2-46d7-9f0f-7715e768c7c7 \n",
334
+ "0 670fbe44-1efa-49fe-bbc8-ff08a356c634 system \n",
335
+ "1 94f80a80-fcac-41d8-912b-8c06c3874df6 user \n",
336
+ "2 44a82dd2-02e5-47a0-96fc-3636af5ada0a 6eeb5846-5bb0-446f-bec3-f9b8ab10ef65 \n",
337
337
  "\n",
338
338
  " recipient \\\n",
339
- "0 3c5be94e-00b2-46d7-9f0f-7715e768c7c7 \n",
340
- "1 3c5be94e-00b2-46d7-9f0f-7715e768c7c7 \n",
339
+ "0 6eeb5846-5bb0-446f-bec3-f9b8ab10ef65 \n",
340
+ "1 6eeb5846-5bb0-446f-bec3-f9b8ab10ef65 \n",
341
341
  "2 user \n",
342
342
  "\n",
343
343
  " metadata \n",
344
344
  "0 {'lion_class': 'lionagi.protocols.messages.sys... \n",
345
345
  "1 {'lion_class': 'lionagi.protocols.messages.ins... \n",
346
- "2 {'model_response': {'id': 'chatcmpl-198', 'obj... "
346
+ "2 {'model_response': {'id': 'chatcmpl-532', 'obj... "
347
347
  ]
348
348
  },
349
349
  "execution_count": 6,
@@ -359,24 +359,24 @@
359
359
  },
360
360
  {
361
361
  "cell_type": "code",
362
- "execution_count": null,
362
+ "execution_count": 7,
363
363
  "metadata": {},
364
364
  "outputs": [
365
365
  {
366
366
  "data": {
367
367
  "text/plain": [
368
- "{'model_response': {'id': 'chatcmpl-198',\n",
368
+ "{'model_response': {'id': 'chatcmpl-532',\n",
369
369
  " 'object': 'chat.completion',\n",
370
- " 'created': 1753069177,\n",
370
+ " 'created': 1753196352,\n",
371
371
  " 'model': 'deepseek-r1:1.5b',\n",
372
372
  " 'system_fingerprint': 'fp_ollama',\n",
373
373
  " 'choices': [{'index': 0,\n",
374
374
  " 'message': {'role': 'assistant',\n",
375
- " 'content': \"<think>\\nOkay, so I have this user query. Let's see what they're asking for. They want me to be a comedian who’s sarcastically funny and come up with a joke based on them. The setup is that a blue whale and a big shark meet at the bar and start dancing. Hmm.\\n\\nAlright, I need to think about how a blue whale and a shark can go smoothly or maybe accidentally dance together in a bar. Well, they're both water-based creatures. That could be a funny angle. Maybe the idea of them being on the water side? \\n\\nSo, starting with that theme, maybe something about not wanting to be too far from shorelines because there’s a lot of activity when they’re out. That ties into their characteristics. Also, considering the bar itself—sharks can be seen drinking, etc.\\n\\nPutting it all together, I should avoid sounding too serious and add some humor through their behaviors. Maybe include something playful like swishing arms or bellowing in fits. \\n\\nThe user also mentioned a short joke, so keeping it concise is key. I need to make sure it's clear and gets the point across without being too wordy.\\n\\nAlright, let me try formulating that. Maybe something about not wanting to be too far from shorelines because there’s a lot of activities out. That ties into both the blue whale and shark characteristics. \\n\\nThen have them start dancing together at the bar, keeping it humorous yet appropriate, adding some flair to make it light despite being the opposite in many ways.\\n</think>\\n\\nThe blue whale and the big shark aren’t exactly on the same boat when they pop into the bar. They’re both waterberms, like moths trapped under a glass. You know what happens next? They’ll start bellowing in fits and swishing arms like they’ve seen too many fish in total.\"},\n",
375
+ " 'content': \"<think>\\nOkay, so I need to create a joke for this scenario. The premise is that a blue whale and a big shark meet at the bar and start dancing as if they're both just having fun. However, it's important these two represent a pair of opposites.\\n\\nFirst, I should think about the qualities each animal brings. Blue whales are big and have that iconic black fur; they're often associated with luxury and status. Big sharks are also large but might bring the feel of danger or raw anger to the party, especially during the heat.\\n\\nThe issue here is how to combine these two so they don't end up arguing over their similarities. I need a neutral way for them to dance together instead.\\n\\nI should come up with a situation where both animals find solace in each other's company. Maybe something that highlights their mutual love or support without making them argue.\\n\\nWhat emotions could work here? Fear might come to mind when big sharks are around, especially in the heat of dinner or socializing at a bar. But that could create some tension at the end.\\n\\nAnother angle is their emotional journey—exploiting and then surrendering by dancing together. It shows mutual support but also highlights their contrasting traits over time. That seems relatable.\\n\\nLet me structure this as an exchange where each animal acknowledges the other's role in providing comfort or stability.\\n</think>\\n\\nOh, I've had a lot easier since you came to the bar. Maybe next time I'll keep it simple and just come with both my teeth and my legs.\"},\n",
376
376
  " 'finish_reason': 'stop'}],\n",
377
377
  " 'usage': {'prompt_tokens': 40,\n",
378
- " 'completion_tokens': 379,\n",
379
- " 'total_tokens': 419}}}"
378
+ " 'completion_tokens': 311,\n",
379
+ " 'total_tokens': 351}}}"
380
380
  ]
381
381
  },
382
382
  "execution_count": 7,