lionagi 0.13.7__tar.gz → 0.14.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.
Files changed (282) hide show
  1. {lionagi-0.13.7 → lionagi-0.14.0}/PKG-INFO +1 -1
  2. {lionagi-0.13.7 → lionagi-0.14.0}/cookbooks/001_branch_converse.ipynb +47 -51
  3. {lionagi-0.13.7 → lionagi-0.14.0}/cookbooks/002_branch_interact.ipynb +226 -239
  4. lionagi-0.14.0/cookbooks/003_branch_info.ipynb +284 -0
  5. {lionagi-0.13.7 → lionagi-0.14.0}/cookbooks/004_conversation_patterns.ipynb +51 -29
  6. {lionagi-0.13.7 → lionagi-0.14.0}/cookbooks/005_react_basics.ipynb +246 -212
  7. lionagi-0.13.7/cookbooks/006_operation_graphs_claim_validation.ipynb → lionagi-0.14.0/cookbooks/006_operation_graphs_claim_extraction.ipynb +277 -53
  8. {lionagi-0.13.7 → lionagi-0.14.0}/cookbooks/data/002_comedian.json +142 -142
  9. {lionagi-0.13.7 → lionagi-0.14.0}/cookbooks/data/002_critic.json +66 -66
  10. lionagi-0.14.0/lionagi/libs/concurrency/__init__.py +25 -0
  11. lionagi-0.14.0/lionagi/libs/concurrency/cancel.py +134 -0
  12. lionagi-0.14.0/lionagi/libs/concurrency/errors.py +35 -0
  13. lionagi-0.14.0/lionagi/libs/concurrency/patterns.py +252 -0
  14. lionagi-0.14.0/lionagi/libs/concurrency/primitives.py +242 -0
  15. lionagi-0.14.0/lionagi/libs/concurrency/task.py +109 -0
  16. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/operations/builder.py +46 -0
  17. lionagi-0.14.0/lionagi/operations/flow.py +331 -0
  18. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/operations/node.py +2 -1
  19. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/protocols/graph/edge.py +1 -1
  20. lionagi-0.14.0/lionagi/version.py +1 -0
  21. {lionagi-0.13.7 → lionagi-0.14.0}/pyproject.toml +1 -1
  22. {lionagi-0.13.7 → lionagi-0.14.0}/uv.lock +1 -1
  23. lionagi-0.13.7/cookbooks/003_branch_info.ipynb +0 -275
  24. lionagi-0.13.7/lionagi/operations/flow.py +0 -422
  25. lionagi-0.13.7/lionagi/version.py +0 -1
  26. {lionagi-0.13.7 → lionagi-0.14.0}/.coveragerc +0 -0
  27. {lionagi-0.13.7 → lionagi-0.14.0}/.env.example +0 -0
  28. {lionagi-0.13.7 → lionagi-0.14.0}/.github/FUNDING.yml +0 -0
  29. {lionagi-0.13.7 → lionagi-0.14.0}/.github/dependabot.yml +0 -0
  30. {lionagi-0.13.7 → lionagi-0.14.0}/.github/workflows/ci.yml +0 -0
  31. {lionagi-0.13.7 → lionagi-0.14.0}/.github/workflows/codeql.yml +0 -0
  32. {lionagi-0.13.7 → lionagi-0.14.0}/.github/workflows/docs.yml +0 -0
  33. {lionagi-0.13.7 → lionagi-0.14.0}/.github/workflows/release.yml +0 -0
  34. {lionagi-0.13.7 → lionagi-0.14.0}/.gitignore +0 -0
  35. {lionagi-0.13.7 → lionagi-0.14.0}/.pre-commit-config.yaml +0 -0
  36. {lionagi-0.13.7 → lionagi-0.14.0}/.python-version +0 -0
  37. {lionagi-0.13.7 → lionagi-0.14.0}/CODE_OF_CONDUCT.md +0 -0
  38. {lionagi-0.13.7 → lionagi-0.14.0}/CONTRIBUTING.md +0 -0
  39. {lionagi-0.13.7 → lionagi-0.14.0}/LICENSE +0 -0
  40. {lionagi-0.13.7 → lionagi-0.14.0}/README.md +0 -0
  41. {lionagi-0.13.7 → lionagi-0.14.0}/assets/operation_builder.gif +0 -0
  42. {lionagi-0.13.7 → lionagi-0.14.0}/cookbooks/data/006_lion_proof_ch2.md +0 -0
  43. {lionagi-0.13.7 → lionagi-0.14.0}/cookbooks/using_claude_code.py +0 -0
  44. {lionagi-0.13.7 → lionagi-0.14.0}/docs/Makefile +0 -0
  45. {lionagi-0.13.7 → lionagi-0.14.0}/docs/_static/custom.css +0 -0
  46. {lionagi-0.13.7 → lionagi-0.14.0}/docs/_templates/layout.html +0 -0
  47. {lionagi-0.13.7 → lionagi-0.14.0}/docs/conf.py +0 -0
  48. {lionagi-0.13.7 → lionagi-0.14.0}/docs/index.rst +0 -0
  49. {lionagi-0.13.7 → lionagi-0.14.0}/docs/modules/action.rst +0 -0
  50. {lionagi-0.13.7 → lionagi-0.14.0}/docs/modules/adapter.rst +0 -0
  51. {lionagi-0.13.7 → lionagi-0.14.0}/docs/modules/branch.rst +0 -0
  52. {lionagi-0.13.7 → lionagi-0.14.0}/docs/modules/branch_operations.rst +0 -0
  53. {lionagi-0.13.7 → lionagi-0.14.0}/docs/modules/concepts.rst +0 -0
  54. {lionagi-0.13.7 → lionagi-0.14.0}/docs/modules/element_id.rst +0 -0
  55. {lionagi-0.13.7 → lionagi-0.14.0}/docs/modules/event.rst +0 -0
  56. {lionagi-0.13.7 → lionagi-0.14.0}/docs/modules/form.rst +0 -0
  57. {lionagi-0.13.7 → lionagi-0.14.0}/docs/modules/graph.rst +0 -0
  58. {lionagi-0.13.7 → lionagi-0.14.0}/docs/modules/index.rst +0 -0
  59. {lionagi-0.13.7 → lionagi-0.14.0}/docs/modules/instruct.rst +0 -0
  60. {lionagi-0.13.7 → lionagi-0.14.0}/docs/modules/lib_file.rst +0 -0
  61. {lionagi-0.13.7 → lionagi-0.14.0}/docs/modules/lib_nested.rst +0 -0
  62. {lionagi-0.13.7 → lionagi-0.14.0}/docs/modules/lib_package.rst +0 -0
  63. {lionagi-0.13.7 → lionagi-0.14.0}/docs/modules/lib_schema.rst +0 -0
  64. {lionagi-0.13.7 → lionagi-0.14.0}/docs/modules/lib_validate.rst +0 -0
  65. {lionagi-0.13.7 → lionagi-0.14.0}/docs/modules/log.rst +0 -0
  66. {lionagi-0.13.7 → lionagi-0.14.0}/docs/modules/mail.rst +0 -0
  67. {lionagi-0.13.7 → lionagi-0.14.0}/docs/modules/message.rst +0 -0
  68. {lionagi-0.13.7 → lionagi-0.14.0}/docs/modules/models.rst +0 -0
  69. {lionagi-0.13.7 → lionagi-0.14.0}/docs/modules/operative_step.rst +0 -0
  70. {lionagi-0.13.7 → lionagi-0.14.0}/docs/modules/pile.rst +0 -0
  71. {lionagi-0.13.7 → lionagi-0.14.0}/docs/modules/processor.rst +0 -0
  72. {lionagi-0.13.7 → lionagi-0.14.0}/docs/modules/progression.rst +0 -0
  73. {lionagi-0.13.7 → lionagi-0.14.0}/docs/modules/service.rst +0 -0
  74. {lionagi-0.13.7 → lionagi-0.14.0}/docs/modules/session.rst +0 -0
  75. {lionagi-0.13.7 → lionagi-0.14.0}/docs/modules/utils.rst +0 -0
  76. {lionagi-0.13.7 → lionagi-0.14.0}/docs/tutorials/get_started.rst +0 -0
  77. {lionagi-0.13.7 → lionagi-0.14.0}/docs/tutorials/get_started_pt2.rst +0 -0
  78. {lionagi-0.13.7 → lionagi-0.14.0}/docs/tutorials/get_started_pt3.rst +0 -0
  79. {lionagi-0.13.7 → lionagi-0.14.0}/docs/tutorials/index.rst +0 -0
  80. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/__init__.py +0 -0
  81. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/_class_registry.py +0 -0
  82. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/_errors.py +0 -0
  83. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/_types.py +0 -0
  84. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/config.py +0 -0
  85. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/fields/__init__.py +0 -0
  86. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/fields/action.py +0 -0
  87. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/fields/base.py +0 -0
  88. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/fields/code.py +0 -0
  89. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/fields/file.py +0 -0
  90. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/fields/instruct.py +0 -0
  91. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/fields/reason.py +0 -0
  92. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/fields/research.py +0 -0
  93. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/libs/__init__.py +0 -0
  94. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/libs/file/__init__.py +0 -0
  95. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/libs/file/chunk.py +0 -0
  96. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/libs/file/concat.py +0 -0
  97. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/libs/file/concat_files.py +0 -0
  98. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/libs/file/file_ops.py +0 -0
  99. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/libs/file/params.py +0 -0
  100. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/libs/file/process.py +0 -0
  101. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/libs/file/save.py +0 -0
  102. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/libs/nested/__init__.py +0 -0
  103. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/libs/nested/flatten.py +0 -0
  104. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/libs/nested/nfilter.py +0 -0
  105. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/libs/nested/nget.py +0 -0
  106. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/libs/nested/ninsert.py +0 -0
  107. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/libs/nested/nmerge.py +0 -0
  108. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/libs/nested/npop.py +0 -0
  109. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/libs/nested/nset.py +0 -0
  110. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/libs/nested/unflatten.py +0 -0
  111. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/libs/nested/utils.py +0 -0
  112. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/libs/package/__init__.py +0 -0
  113. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/libs/package/imports.py +0 -0
  114. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/libs/package/management.py +0 -0
  115. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/libs/package/params.py +0 -0
  116. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/libs/package/system.py +0 -0
  117. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/libs/parse.py +0 -0
  118. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/libs/schema/__init__.py +0 -0
  119. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/libs/schema/as_readable.py +0 -0
  120. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/libs/schema/extract_code_block.py +0 -0
  121. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/libs/schema/extract_docstring.py +0 -0
  122. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/libs/schema/function_to_schema.py +0 -0
  123. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/libs/schema/json_schema.py +0 -0
  124. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/libs/schema/load_pydantic_model_from_schema.py +0 -0
  125. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/libs/token_transform/__init__.py +0 -0
  126. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/libs/token_transform/base.py +0 -0
  127. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/libs/token_transform/llmlingua.py +0 -0
  128. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/libs/token_transform/perplexity.py +0 -0
  129. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/libs/token_transform/symbolic_compress_context.py +0 -0
  130. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/libs/token_transform/synthlang.py +0 -0
  131. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/libs/token_transform/synthlang_/base.py +0 -0
  132. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/libs/token_transform/synthlang_/resources/frameworks/abstract_algebra.toml +0 -0
  133. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/libs/token_transform/synthlang_/resources/frameworks/category_theory.toml +0 -0
  134. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/libs/token_transform/synthlang_/resources/frameworks/complex_analysis.toml +0 -0
  135. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/libs/token_transform/synthlang_/resources/frameworks/framework_options.json +0 -0
  136. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/libs/token_transform/synthlang_/resources/frameworks/group_theory.toml +0 -0
  137. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/libs/token_transform/synthlang_/resources/frameworks/math_logic.toml +0 -0
  138. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/libs/token_transform/synthlang_/resources/frameworks/reflective_patterns.toml +0 -0
  139. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/libs/token_transform/synthlang_/resources/frameworks/set_theory.toml +0 -0
  140. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/libs/token_transform/synthlang_/resources/frameworks/topology_fundamentals.toml +0 -0
  141. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/libs/token_transform/synthlang_/resources/mapping/lion_emoji_mapping.toml +0 -0
  142. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/libs/token_transform/synthlang_/resources/mapping/python_math_mapping.toml +0 -0
  143. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/libs/token_transform/synthlang_/resources/mapping/rust_chinese_mapping.toml +0 -0
  144. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/libs/token_transform/synthlang_/resources/utility/base_synthlang_system_prompt.toml +0 -0
  145. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/libs/token_transform/synthlang_/translate_to_synthlang.py +0 -0
  146. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/libs/token_transform/types.py +0 -0
  147. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/libs/validate/__init__.py +0 -0
  148. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/libs/validate/common_field_validators.py +0 -0
  149. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/libs/validate/fuzzy_match_keys.py +0 -0
  150. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/libs/validate/fuzzy_validate_mapping.py +0 -0
  151. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/libs/validate/string_similarity.py +0 -0
  152. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/libs/validate/validate_boolean.py +0 -0
  153. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/models/__init__.py +0 -0
  154. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/models/field_model.py +0 -0
  155. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/models/hashable_model.py +0 -0
  156. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/models/model_params.py +0 -0
  157. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/models/note.py +0 -0
  158. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/models/operable_model.py +0 -0
  159. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/models/schema_model.py +0 -0
  160. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/operations/ReAct/ReAct.py +0 -0
  161. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/operations/ReAct/__init__.py +0 -0
  162. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/operations/ReAct/utils.py +0 -0
  163. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/operations/__init__.py +0 -0
  164. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/operations/_act/__init__.py +0 -0
  165. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/operations/_act/act.py +0 -0
  166. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/operations/brainstorm/__init__.py +0 -0
  167. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/operations/brainstorm/brainstorm.py +0 -0
  168. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/operations/brainstorm/prompt.py +0 -0
  169. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/operations/chat/__init__.py +0 -0
  170. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/operations/chat/chat.py +0 -0
  171. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/operations/communicate/__init__.py +0 -0
  172. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/operations/communicate/communicate.py +0 -0
  173. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/operations/instruct/__init__.py +0 -0
  174. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/operations/instruct/instruct.py +0 -0
  175. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/operations/interpret/__init__.py +0 -0
  176. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/operations/interpret/interpret.py +0 -0
  177. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/operations/manager.py +0 -0
  178. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/operations/operate/__init__.py +0 -0
  179. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/operations/operate/operate.py +0 -0
  180. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/operations/parse/__init__.py +0 -0
  181. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/operations/parse/parse.py +0 -0
  182. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/operations/plan/__init__.py +0 -0
  183. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/operations/plan/plan.py +0 -0
  184. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/operations/plan/prompt.py +0 -0
  185. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/operations/select/__init__.py +0 -0
  186. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/operations/select/select.py +0 -0
  187. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/operations/select/utils.py +0 -0
  188. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/operations/translate/__init__.py +0 -0
  189. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/operations/translate/translate.py +0 -0
  190. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/operations/types.py +0 -0
  191. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/operations/utils.py +0 -0
  192. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/protocols/__init__.py +0 -0
  193. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/protocols/_concepts.py +0 -0
  194. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/protocols/action/__init__.py +0 -0
  195. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/protocols/action/function_calling.py +0 -0
  196. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/protocols/action/manager.py +0 -0
  197. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/protocols/action/tool.py +0 -0
  198. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/protocols/forms/__init__.py +0 -0
  199. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/protocols/forms/base.py +0 -0
  200. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/protocols/forms/flow.py +0 -0
  201. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/protocols/forms/form.py +0 -0
  202. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/protocols/forms/report.py +0 -0
  203. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/protocols/generic/__init__.py +0 -0
  204. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/protocols/generic/element.py +0 -0
  205. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/protocols/generic/event.py +0 -0
  206. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/protocols/generic/log.py +0 -0
  207. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/protocols/generic/pile.py +0 -0
  208. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/protocols/generic/processor.py +0 -0
  209. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/protocols/generic/progression.py +0 -0
  210. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/protocols/graph/__init__.py +0 -0
  211. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/protocols/graph/graph.py +0 -0
  212. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/protocols/graph/node.py +0 -0
  213. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/protocols/mail/__init__.py +0 -0
  214. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/protocols/mail/exchange.py +0 -0
  215. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/protocols/mail/mail.py +0 -0
  216. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/protocols/mail/mailbox.py +0 -0
  217. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/protocols/mail/manager.py +0 -0
  218. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/protocols/mail/package.py +0 -0
  219. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/protocols/messages/__init__.py +0 -0
  220. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/protocols/messages/action_request.py +0 -0
  221. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/protocols/messages/action_response.py +0 -0
  222. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/protocols/messages/assistant_response.py +0 -0
  223. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/protocols/messages/base.py +0 -0
  224. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/protocols/messages/instruction.py +0 -0
  225. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/protocols/messages/manager.py +0 -0
  226. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/protocols/messages/message.py +0 -0
  227. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/protocols/messages/system.py +0 -0
  228. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/protocols/messages/templates/README.md +0 -0
  229. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/protocols/messages/templates/action_request.jinja2 +0 -0
  230. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/protocols/messages/templates/action_response.jinja2 +0 -0
  231. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/protocols/messages/templates/assistant_response.jinja2 +0 -0
  232. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/protocols/messages/templates/instruction_message.jinja2 +0 -0
  233. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/protocols/messages/templates/system_message.jinja2 +0 -0
  234. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/protocols/messages/templates/tool_schemas.jinja2 +0 -0
  235. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/protocols/operatives/__init__.py +0 -0
  236. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/protocols/operatives/operative.py +0 -0
  237. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/protocols/operatives/step.py +0 -0
  238. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/protocols/types.py +0 -0
  239. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/py.typed +0 -0
  240. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/service/__init__.py +0 -0
  241. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/service/connections/__init__.py +0 -0
  242. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/service/connections/api_calling.py +0 -0
  243. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/service/connections/endpoint.py +0 -0
  244. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/service/connections/endpoint_config.py +0 -0
  245. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/service/connections/header_factory.py +0 -0
  246. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/service/connections/match_endpoint.py +0 -0
  247. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/service/connections/providers/__init__.py +0 -0
  248. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/service/connections/providers/anthropic_.py +0 -0
  249. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/service/connections/providers/claude_code_.py +0 -0
  250. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/service/connections/providers/claude_code_cli.py +0 -0
  251. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/service/connections/providers/exa_.py +0 -0
  252. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/service/connections/providers/oai_.py +0 -0
  253. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/service/connections/providers/ollama_.py +0 -0
  254. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/service/connections/providers/perplexity_.py +0 -0
  255. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/service/imodel.py +0 -0
  256. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/service/manager.py +0 -0
  257. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/service/rate_limited_processor.py +0 -0
  258. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/service/resilience.py +0 -0
  259. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/service/third_party/README.md +0 -0
  260. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/service/third_party/__init__.py +0 -0
  261. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/service/third_party/anthropic_models.py +0 -0
  262. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/service/third_party/exa_models.py +0 -0
  263. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/service/third_party/openai_models.py +0 -0
  264. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/service/third_party/pplx_models.py +0 -0
  265. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/service/token_calculator.py +0 -0
  266. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/service/types.py +0 -0
  267. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/session/__init__.py +0 -0
  268. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/session/branch.py +0 -0
  269. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/session/prompts.py +0 -0
  270. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/session/session.py +2 -2
  271. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/settings.py +0 -0
  272. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/tools/__init__.py +0 -0
  273. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/tools/base.py +0 -0
  274. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/tools/file/__init__.py +0 -0
  275. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/tools/file/reader.py +0 -0
  276. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/tools/memory/tools.py +0 -0
  277. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/tools/types.py +0 -0
  278. {lionagi-0.13.7 → lionagi-0.14.0}/lionagi/utils.py +0 -0
  279. {lionagi-0.13.7 → lionagi-0.14.0}/main.py +0 -0
  280. {lionagi-0.13.7 → lionagi-0.14.0}/scripts/README.md +0 -0
  281. {lionagi-0.13.7 → lionagi-0.14.0}/scripts/concat.py +0 -0
  282. {lionagi-0.13.7 → lionagi-0.14.0}/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.0
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
@@ -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>"
@@ -91,9 +91,7 @@
91
91
  ],
92
92
  "source": [
93
93
  "# create a branch with gpt-4.1-nano model, need an OpenAI API key\n",
94
- "comedian1 = Branch(\n",
95
- " chat_model=iModel(model=\"openai/gpt-4.1-nano\"), system=SYSTEM\n",
96
- ")\n",
94
+ "comedian1 = Branch(chat_model=iModel(model=\"openai/gpt-4.1-nano\"), system=SYSTEM)\n",
97
95
  "joke1 = await comedian1.chat(prompt1)\n",
98
96
  "\n",
99
97
  "Markdown(f\"**comedian1**: {joke1}\")"
@@ -140,22 +138,22 @@
140
138
  "data": {
141
139
  "text/markdown": [
142
140
  "**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",
141
+ "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
142
  "\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",
143
+ "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
144
  "\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",
145
+ "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
146
  "\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",
147
+ "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
148
  "\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",
149
+ "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
150
  "\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",
151
+ "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
152
  "\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",
153
+ "Let me structure this as an exchange where each animal acknowledges the other's role in providing comfort or stability.\n",
156
154
  "</think>\n",
157
155
  "\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."
156
+ "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
157
  ],
160
158
  "text/plain": [
161
159
  "<IPython.core.display.Markdown object>"
@@ -169,9 +167,7 @@
169
167
  "source": [
170
168
  "# Need to install \"lionagi[ollama]\" to use Ollama models\n",
171
169
  "\n",
172
- "comedian2 = Branch(\n",
173
- " chat_model=iModel(model=\"ollama/deepseek-r1:1.5b\"), system=SYSTEM\n",
174
- ")\n",
170
+ "comedian2 = Branch(chat_model=iModel(model=\"ollama/deepseek-r1:1.5b\"), system=SYSTEM)\n",
175
171
  "joke2 = await comedian2.communicate(prompt1)\n",
176
172
  "\n",
177
173
  "Markdown(f\"**comedian2**: {joke2}\")"
@@ -179,7 +175,7 @@
179
175
  },
180
176
  {
181
177
  "cell_type": "code",
182
- "execution_count": null,
178
+ "execution_count": 5,
183
179
  "metadata": {},
184
180
  "outputs": [
185
181
  {
@@ -215,12 +211,12 @@
215
211
  " <tbody>\n",
216
212
  " <tr>\n",
217
213
  " <th>0</th>\n",
218
- " <td>1.753069e+09</td>\n",
214
+ " <td>1.753196e+09</td>\n",
219
215
  " <td>system</td>\n",
220
216
  " <td>{'system_message': 'As a comedian, you are sar...</td>\n",
221
- " <td>935c1318-3f5a-4172-b4c4-728bb8948880</td>\n",
217
+ " <td>51f0b9b6-c278-4c8a-996a-3da8c3ad3bdd</td>\n",
222
218
  " <td>system</td>\n",
223
- " <td>6e490b3f-7b51-4657-95b6-6e66362338b3</td>\n",
219
+ " <td>b7ced6ad-8b83-4ddb-84a4-21b2cc6f0b35</td>\n",
224
220
  " <td>{'lion_class': 'lionagi.protocols.messages.sys...</td>\n",
225
221
  " </tr>\n",
226
222
  " </tbody>\n",
@@ -229,19 +225,19 @@
229
225
  ],
230
226
  "text/plain": [
231
227
  " created_at role content \\\n",
232
- "0 1.753069e+09 system {'system_message': 'As a comedian, you are sar... \n",
228
+ "0 1.753196e+09 system {'system_message': 'As a comedian, you are sar... \n",
233
229
  "\n",
234
230
  " id sender \\\n",
235
- "0 935c1318-3f5a-4172-b4c4-728bb8948880 system \n",
231
+ "0 51f0b9b6-c278-4c8a-996a-3da8c3ad3bdd system \n",
236
232
  "\n",
237
233
  " recipient \\\n",
238
- "0 6e490b3f-7b51-4657-95b6-6e66362338b3 \n",
234
+ "0 b7ced6ad-8b83-4ddb-84a4-21b2cc6f0b35 \n",
239
235
  "\n",
240
236
  " metadata \n",
241
237
  "0 {'lion_class': 'lionagi.protocols.messages.sys... "
242
238
  ]
243
239
  },
244
- "execution_count": 9,
240
+ "execution_count": 5,
245
241
  "metadata": {},
246
242
  "output_type": "execute_result"
247
243
  }
@@ -254,7 +250,7 @@
254
250
  },
255
251
  {
256
252
  "cell_type": "code",
257
- "execution_count": null,
253
+ "execution_count": 6,
258
254
  "metadata": {},
259
255
  "outputs": [
260
256
  {
@@ -290,34 +286,34 @@
290
286
  " <tbody>\n",
291
287
  " <tr>\n",
292
288
  " <th>0</th>\n",
293
- " <td>1.753069e+09</td>\n",
289
+ " <td>1.753196e+09</td>\n",
294
290
  " <td>system</td>\n",
295
291
  " <td>{'system_message': 'As a comedian, you are sar...</td>\n",
296
- " <td>6c39df29-c90e-4a74-a404-7678d6f1f9bd</td>\n",
292
+ " <td>670fbe44-1efa-49fe-bbc8-ff08a356c634</td>\n",
297
293
  " <td>system</td>\n",
298
- " <td>3c5be94e-00b2-46d7-9f0f-7715e768c7c7</td>\n",
294
+ " <td>6eeb5846-5bb0-446f-bec3-f9b8ab10ef65</td>\n",
299
295
  " <td>{'lion_class': 'lionagi.protocols.messages.sys...</td>\n",
300
296
  " </tr>\n",
301
297
  " <tr>\n",
302
298
  " <th>1</th>\n",
303
- " <td>1.753069e+09</td>\n",
299
+ " <td>1.753196e+09</td>\n",
304
300
  " <td>user</td>\n",
305
301
  " <td>{'context': [], 'instruction': 'short joke: a ...</td>\n",
306
- " <td>41ca3cce-a47e-4496-88c7-fd31a34eefb7</td>\n",
302
+ " <td>94f80a80-fcac-41d8-912b-8c06c3874df6</td>\n",
307
303
  " <td>user</td>\n",
308
- " <td>3c5be94e-00b2-46d7-9f0f-7715e768c7c7</td>\n",
304
+ " <td>6eeb5846-5bb0-446f-bec3-f9b8ab10ef65</td>\n",
309
305
  " <td>{'lion_class': 'lionagi.protocols.messages.ins...</td>\n",
310
306
  " </tr>\n",
311
307
  " <tr>\n",
312
308
  " <th>2</th>\n",
313
- " <td>1.753069e+09</td>\n",
309
+ " <td>1.753196e+09</td>\n",
314
310
  " <td>assistant</td>\n",
315
311
  " <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",
312
+ "Okay, so I nee...</td>\n",
313
+ " <td>44a82dd2-02e5-47a0-96fc-3636af5ada0a</td>\n",
314
+ " <td>6eeb5846-5bb0-446f-bec3-f9b8ab10ef65</td>\n",
319
315
  " <td>user</td>\n",
320
- " <td>{'model_response': {'id': 'chatcmpl-198', 'obj...</td>\n",
316
+ " <td>{'model_response': {'id': 'chatcmpl-532', 'obj...</td>\n",
321
317
  " </tr>\n",
322
318
  " </tbody>\n",
323
319
  "</table>\n",
@@ -325,25 +321,25 @@
325
321
  ],
326
322
  "text/plain": [
327
323
  " 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",
324
+ "0 1.753196e+09 system {'system_message': 'As a comedian, you are sar... \n",
325
+ "1 1.753196e+09 user {'context': [], 'instruction': 'short joke: a ... \n",
326
+ "2 1.753196e+09 assistant {'assistant_response': '<think>\n",
327
+ "Okay, so I nee... \n",
332
328
  "\n",
333
329
  " 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",
330
+ "0 670fbe44-1efa-49fe-bbc8-ff08a356c634 system \n",
331
+ "1 94f80a80-fcac-41d8-912b-8c06c3874df6 user \n",
332
+ "2 44a82dd2-02e5-47a0-96fc-3636af5ada0a 6eeb5846-5bb0-446f-bec3-f9b8ab10ef65 \n",
337
333
  "\n",
338
334
  " recipient \\\n",
339
- "0 3c5be94e-00b2-46d7-9f0f-7715e768c7c7 \n",
340
- "1 3c5be94e-00b2-46d7-9f0f-7715e768c7c7 \n",
335
+ "0 6eeb5846-5bb0-446f-bec3-f9b8ab10ef65 \n",
336
+ "1 6eeb5846-5bb0-446f-bec3-f9b8ab10ef65 \n",
341
337
  "2 user \n",
342
338
  "\n",
343
339
  " metadata \n",
344
340
  "0 {'lion_class': 'lionagi.protocols.messages.sys... \n",
345
341
  "1 {'lion_class': 'lionagi.protocols.messages.ins... \n",
346
- "2 {'model_response': {'id': 'chatcmpl-198', 'obj... "
342
+ "2 {'model_response': {'id': 'chatcmpl-532', 'obj... "
347
343
  ]
348
344
  },
349
345
  "execution_count": 6,
@@ -359,24 +355,24 @@
359
355
  },
360
356
  {
361
357
  "cell_type": "code",
362
- "execution_count": null,
358
+ "execution_count": 7,
363
359
  "metadata": {},
364
360
  "outputs": [
365
361
  {
366
362
  "data": {
367
363
  "text/plain": [
368
- "{'model_response': {'id': 'chatcmpl-198',\n",
364
+ "{'model_response': {'id': 'chatcmpl-532',\n",
369
365
  " 'object': 'chat.completion',\n",
370
- " 'created': 1753069177,\n",
366
+ " 'created': 1753196352,\n",
371
367
  " 'model': 'deepseek-r1:1.5b',\n",
372
368
  " 'system_fingerprint': 'fp_ollama',\n",
373
369
  " 'choices': [{'index': 0,\n",
374
370
  " '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",
371
+ " '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
372
  " 'finish_reason': 'stop'}],\n",
377
373
  " 'usage': {'prompt_tokens': 40,\n",
378
- " 'completion_tokens': 379,\n",
379
- " 'total_tokens': 419}}}"
374
+ " 'completion_tokens': 311,\n",
375
+ " 'total_tokens': 351}}}"
380
376
  ]
381
377
  },
382
378
  "execution_count": 7,