lionagi 0.5.0__tar.gz → 0.5.1__tar.gz

Sign up to get free protection for your applications and to get access to all the features.
Files changed (388) hide show
  1. {lionagi-0.5.0 → lionagi-0.5.1}/.env.example +2 -3
  2. {lionagi-0.5.0 → lionagi-0.5.1}/PKG-INFO +211 -14
  3. lionagi-0.5.1/README.md +318 -0
  4. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/core/session/branch_mixins.py +41 -3
  5. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/anthropic_/AnthropicService.py +4 -0
  6. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/groq_/GroqService.py +4 -0
  7. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/litellm_/imodel.py +4 -0
  8. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/ollama_/OllamaService.py +4 -0
  9. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/openai_/OpenAIModel.py +4 -0
  10. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/perplexity_/PerplexityService.py +4 -0
  11. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/service/imodel.py +22 -7
  12. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/service/service.py +4 -0
  13. lionagi-0.5.1/lionagi/version.py +1 -0
  14. {lionagi-0.5.0 → lionagi-0.5.1}/pyproject.toml +1 -1
  15. {lionagi-0.5.0 → lionagi-0.5.1}/uv.lock +1 -1
  16. lionagi-0.5.0/README.md +0 -121
  17. lionagi-0.5.0/lionagi/version.py +0 -1
  18. {lionagi-0.5.0 → lionagi-0.5.1}/.github/FUNDING.yml +0 -0
  19. {lionagi-0.5.0 → lionagi-0.5.1}/.github/dependabot.yml +0 -0
  20. {lionagi-0.5.0 → lionagi-0.5.1}/.github/workflows/ci.yml +0 -0
  21. {lionagi-0.5.0 → lionagi-0.5.1}/.github/workflows/codeql.yml +0 -0
  22. {lionagi-0.5.0 → lionagi-0.5.1}/.github/workflows/release.yml +0 -0
  23. {lionagi-0.5.0 → lionagi-0.5.1}/.gitignore +0 -0
  24. {lionagi-0.5.0 → lionagi-0.5.1}/.pre-commit-config.yaml +0 -0
  25. {lionagi-0.5.0 → lionagi-0.5.1}/.python-version +0 -0
  26. {lionagi-0.5.0 → lionagi-0.5.1}/CODE_OF_CONDUCT.md +0 -0
  27. {lionagi-0.5.0 → lionagi-0.5.1}/CONTRIBUTING.md +0 -0
  28. {lionagi-0.5.0 → lionagi-0.5.1}/LICENSE +0 -0
  29. {lionagi-0.5.0 → lionagi-0.5.1}/docs/api_reference/action.md +0 -0
  30. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/__init__.py +0 -0
  31. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/core/__init__.py +0 -0
  32. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/core/_class_registry.py +0 -0
  33. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/core/action/__init__.py +0 -0
  34. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/core/action/action_manager.py +0 -0
  35. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/core/action/base.py +0 -0
  36. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/core/action/function_calling.py +0 -0
  37. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/core/action/tool.py +0 -0
  38. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/core/action/types.py +0 -0
  39. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/core/communication/__init__.py +0 -0
  40. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/core/communication/action_request.py +0 -0
  41. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/core/communication/action_response.py +0 -0
  42. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/core/communication/assistant_response.py +0 -0
  43. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/core/communication/base_mail.py +0 -0
  44. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/core/communication/instruction.py +0 -0
  45. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/core/communication/message.py +0 -0
  46. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/core/communication/message_manager.py +0 -0
  47. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/core/communication/system.py +0 -0
  48. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/core/communication/templates/README.md +0 -0
  49. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/core/communication/templates/action_request.jinja2 +0 -0
  50. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/core/communication/templates/action_response.jinja2 +0 -0
  51. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/core/communication/templates/assistant_response.jinja2 +0 -0
  52. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/core/communication/templates/instruction_message.jinja2 +0 -0
  53. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/core/communication/templates/system_message.jinja2 +0 -0
  54. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/core/communication/templates/tool_schemas.jinja2 +0 -0
  55. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/core/communication/types.py +0 -0
  56. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/core/communication/utils.py +0 -0
  57. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/core/forms/__init__.py +0 -0
  58. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/core/forms/base.py +0 -0
  59. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/core/forms/form.py +0 -0
  60. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/core/forms/report.py +0 -0
  61. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/core/forms/types.py +0 -0
  62. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/core/forms/utils.py +0 -0
  63. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/core/generic/__init__.py +0 -0
  64. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/core/generic/component.py +0 -0
  65. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/core/generic/edge.py +0 -0
  66. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/core/generic/element.py +0 -0
  67. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/core/generic/graph.py +0 -0
  68. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/core/generic/log.py +0 -0
  69. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/core/generic/log_manager.py +0 -0
  70. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/core/generic/node.py +0 -0
  71. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/core/generic/pile.py +0 -0
  72. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/core/generic/progression.py +0 -0
  73. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/core/generic/types.py +0 -0
  74. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/core/generic/utils.py +0 -0
  75. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/core/models/__init__.py +0 -0
  76. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/core/models/base.py +0 -0
  77. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/core/models/field_model.py +0 -0
  78. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/core/models/new_model_params.py +0 -0
  79. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/core/models/note.py +0 -0
  80. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/core/models/operable_model.py +0 -0
  81. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/core/models/schema_model.py +0 -0
  82. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/core/models/types.py +0 -0
  83. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/core/session/__init__.py +0 -0
  84. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/core/session/branch.py +0 -0
  85. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/core/session/session.py +0 -0
  86. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/core/session/types.py +0 -0
  87. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/core/typing/__init__.py +0 -0
  88. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/core/typing/concepts.py +0 -0
  89. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/core/typing/config.py +0 -0
  90. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/core/typing/id.py +0 -0
  91. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/core/typing/pydantic_.py +0 -0
  92. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/core/typing/typing_.py +0 -0
  93. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/__init__.py +0 -0
  94. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/anthropic_/AnthropicModel.py +0 -0
  95. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/anthropic_/__init__.py +0 -0
  96. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/anthropic_/anthropic_max_output_token_data.yaml +0 -0
  97. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/anthropic_/anthropic_price_data.yaml +0 -0
  98. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/anthropic_/api_endpoints/__init__.py +0 -0
  99. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/anthropic_/api_endpoints/api_request.py +0 -0
  100. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/anthropic_/api_endpoints/data_models.py +0 -0
  101. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/anthropic_/api_endpoints/match_response.py +0 -0
  102. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/anthropic_/api_endpoints/messages/__init__.py +0 -0
  103. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/anthropic_/api_endpoints/messages/request/__init__.py +0 -0
  104. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/anthropic_/api_endpoints/messages/request/message_models.py +0 -0
  105. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/anthropic_/api_endpoints/messages/request/request_body.py +0 -0
  106. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/anthropic_/api_endpoints/messages/response/__init__.py +0 -0
  107. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/anthropic_/api_endpoints/messages/response/content_models.py +0 -0
  108. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/anthropic_/api_endpoints/messages/response/response_body.py +0 -0
  109. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/anthropic_/api_endpoints/messages/response/usage_models.py +0 -0
  110. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/anthropic_/version.py +0 -0
  111. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/groq_/GroqModel.py +0 -0
  112. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/groq_/__init__.py +0 -0
  113. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/groq_/api_endpoints/__init__.py +0 -0
  114. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/groq_/api_endpoints/data_models.py +0 -0
  115. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/groq_/api_endpoints/groq_request.py +0 -0
  116. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/groq_/api_endpoints/match_response.py +0 -0
  117. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/groq_/api_endpoints/response_utils.py +0 -0
  118. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/groq_/groq_max_output_token_data.yaml +0 -0
  119. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/groq_/groq_price_data.yaml +0 -0
  120. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/groq_/groq_rate_limits.yaml +0 -0
  121. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/groq_/version.py +0 -0
  122. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/litellm_/__init__.py +0 -0
  123. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/ollama_/OllamaModel.py +0 -0
  124. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/ollama_/__init__.py +0 -0
  125. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/ollama_/api_endpoints/__init__.py +0 -0
  126. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/ollama_/api_endpoints/api_request.py +0 -0
  127. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/ollama_/api_endpoints/chat_completion/__init__.py +0 -0
  128. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/ollama_/api_endpoints/chat_completion/message_models.py +0 -0
  129. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/ollama_/api_endpoints/chat_completion/request_body.py +0 -0
  130. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/ollama_/api_endpoints/chat_completion/response_body.py +0 -0
  131. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/ollama_/api_endpoints/chat_completion/tool_models.py +0 -0
  132. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/ollama_/api_endpoints/completion/__init__.py +0 -0
  133. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/ollama_/api_endpoints/completion/request_body.py +0 -0
  134. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/ollama_/api_endpoints/completion/response_body.py +0 -0
  135. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/ollama_/api_endpoints/data_models.py +0 -0
  136. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/ollama_/api_endpoints/embedding/__init__.py +0 -0
  137. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/ollama_/api_endpoints/embedding/request_body.py +0 -0
  138. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/ollama_/api_endpoints/embedding/response_body.py +0 -0
  139. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/ollama_/api_endpoints/match_data_model.py +0 -0
  140. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/ollama_/api_endpoints/match_response.py +0 -0
  141. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/ollama_/api_endpoints/model/__init__.py +0 -0
  142. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/ollama_/api_endpoints/model/copy_model.py +0 -0
  143. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/ollama_/api_endpoints/model/create_model.py +0 -0
  144. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/ollama_/api_endpoints/model/delete_model.py +0 -0
  145. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/ollama_/api_endpoints/model/list_model.py +0 -0
  146. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/ollama_/api_endpoints/model/pull_model.py +0 -0
  147. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/ollama_/api_endpoints/model/push_model.py +0 -0
  148. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/ollama_/api_endpoints/model/show_model.py +0 -0
  149. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/ollama_/api_endpoints/option_models.py +0 -0
  150. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/openai_/OpenAIService.py +0 -0
  151. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/openai_/__init__.py +0 -0
  152. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/openai_/api_endpoints/__init__.py +0 -0
  153. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/openai_/api_endpoints/api_request.py +0 -0
  154. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/openai_/api_endpoints/audio/__init__.py +0 -0
  155. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/openai_/api_endpoints/audio/speech_models.py +0 -0
  156. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/openai_/api_endpoints/audio/transcription_models.py +0 -0
  157. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/openai_/api_endpoints/audio/translation_models.py +0 -0
  158. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/openai_/api_endpoints/audio/types.py +0 -0
  159. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/openai_/api_endpoints/batch/__init__.py +0 -0
  160. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/openai_/api_endpoints/batch/batch_models.py +0 -0
  161. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/openai_/api_endpoints/batch/cancel_batch.py +0 -0
  162. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/openai_/api_endpoints/batch/create_batch.py +0 -0
  163. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/openai_/api_endpoints/batch/list_batch.py +0 -0
  164. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/openai_/api_endpoints/batch/request_object_models.py +0 -0
  165. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/openai_/api_endpoints/batch/retrieve_batch.py +0 -0
  166. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/openai_/api_endpoints/batch/types.py +0 -0
  167. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/openai_/api_endpoints/chat_completions/__init__.py +0 -0
  168. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/openai_/api_endpoints/chat_completions/request/__init__.py +0 -0
  169. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/openai_/api_endpoints/chat_completions/request/message_models.py +0 -0
  170. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/openai_/api_endpoints/chat_completions/request/request_body.py +0 -0
  171. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/openai_/api_endpoints/chat_completions/request/response_format.py +0 -0
  172. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/openai_/api_endpoints/chat_completions/request/stream_options.py +0 -0
  173. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/openai_/api_endpoints/chat_completions/request/tool_choice_models.py +0 -0
  174. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/openai_/api_endpoints/chat_completions/request/tool_models.py +0 -0
  175. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/openai_/api_endpoints/chat_completions/request/types.py +0 -0
  176. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/openai_/api_endpoints/chat_completions/response/__init__.py +0 -0
  177. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/openai_/api_endpoints/chat_completions/response/choice_models.py +0 -0
  178. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/openai_/api_endpoints/chat_completions/response/function_models.py +0 -0
  179. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/openai_/api_endpoints/chat_completions/response/log_prob_models.py +0 -0
  180. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/openai_/api_endpoints/chat_completions/response/message_models.py +0 -0
  181. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/openai_/api_endpoints/chat_completions/response/response_body.py +0 -0
  182. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/openai_/api_endpoints/chat_completions/response/types.py +0 -0
  183. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/openai_/api_endpoints/chat_completions/response/usage_models.py +0 -0
  184. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/openai_/api_endpoints/chat_completions/util.py +0 -0
  185. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/openai_/api_endpoints/data_models.py +0 -0
  186. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/openai_/api_endpoints/embeddings/__init__.py +0 -0
  187. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/openai_/api_endpoints/embeddings/request_body.py +0 -0
  188. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/openai_/api_endpoints/embeddings/response_body.py +0 -0
  189. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/openai_/api_endpoints/files/__init__.py +0 -0
  190. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/openai_/api_endpoints/files/delete_file.py +0 -0
  191. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/openai_/api_endpoints/files/file_models.py +0 -0
  192. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/openai_/api_endpoints/files/list_files.py +0 -0
  193. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/openai_/api_endpoints/files/retrieve_file.py +0 -0
  194. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/openai_/api_endpoints/files/upload_file.py +0 -0
  195. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/openai_/api_endpoints/fine_tuning/__init__.py +0 -0
  196. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/openai_/api_endpoints/fine_tuning/cancel_jobs.py +0 -0
  197. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/openai_/api_endpoints/fine_tuning/create_jobs.py +0 -0
  198. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/openai_/api_endpoints/fine_tuning/fine_tuning_job_checkpoint_models.py +0 -0
  199. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/openai_/api_endpoints/fine_tuning/fine_tuning_job_event_models.py +0 -0
  200. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/openai_/api_endpoints/fine_tuning/fine_tuning_job_models.py +0 -0
  201. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/openai_/api_endpoints/fine_tuning/list_fine_tuning_checkpoints.py +0 -0
  202. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/openai_/api_endpoints/fine_tuning/list_fine_tuning_events.py +0 -0
  203. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/openai_/api_endpoints/fine_tuning/list_fine_tuning_jobs.py +0 -0
  204. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/openai_/api_endpoints/fine_tuning/retrieve_jobs.py +0 -0
  205. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/openai_/api_endpoints/fine_tuning/training_format.py +0 -0
  206. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/openai_/api_endpoints/images/__init__.py +0 -0
  207. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/openai_/api_endpoints/images/image_edit_models.py +0 -0
  208. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/openai_/api_endpoints/images/image_models.py +0 -0
  209. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/openai_/api_endpoints/images/image_variation_models.py +0 -0
  210. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/openai_/api_endpoints/images/response_body.py +0 -0
  211. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/openai_/api_endpoints/match_data_model.py +0 -0
  212. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/openai_/api_endpoints/match_response.py +0 -0
  213. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/openai_/api_endpoints/models/__init__.py +0 -0
  214. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/openai_/api_endpoints/models/delete_fine_tuned_model.py +0 -0
  215. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/openai_/api_endpoints/models/models_models.py +0 -0
  216. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/openai_/api_endpoints/models/retrieve_model.py +0 -0
  217. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/openai_/api_endpoints/moderations/__init__.py +0 -0
  218. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/openai_/api_endpoints/moderations/request_body.py +0 -0
  219. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/openai_/api_endpoints/moderations/response_body.py +0 -0
  220. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/openai_/api_endpoints/uploads/__init__.py +0 -0
  221. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/openai_/api_endpoints/uploads/add_upload_part.py +0 -0
  222. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/openai_/api_endpoints/uploads/cancel_upload.py +0 -0
  223. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/openai_/api_endpoints/uploads/complete_upload.py +0 -0
  224. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/openai_/api_endpoints/uploads/create_upload.py +0 -0
  225. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/openai_/api_endpoints/uploads/uploads_models.py +0 -0
  226. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/openai_/image_token_calculator/__init__.py +0 -0
  227. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/openai_/image_token_calculator/image_token_calculator.py +0 -0
  228. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/openai_/image_token_calculator/openai_image_token_data.yaml +0 -0
  229. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/openai_/openai_max_output_token_data.yaml +0 -0
  230. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/openai_/openai_price_data.yaml +0 -0
  231. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/openai_/version.py +0 -0
  232. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/pandas_/__init__.py +0 -0
  233. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/pandas_/extend_df.py +0 -0
  234. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/pandas_/read.py +0 -0
  235. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/pandas_/remove_rows.py +0 -0
  236. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/pandas_/replace_keywords.py +0 -0
  237. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/pandas_/save.py +0 -0
  238. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/pandas_/search_keywords.py +0 -0
  239. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/pandas_/to_df.py +0 -0
  240. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/pandas_/update_cells.py +0 -0
  241. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/perplexity_/PerplexityModel.py +0 -0
  242. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/perplexity_/__init__.py +0 -0
  243. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/perplexity_/api_endpoints/__init__.py +0 -0
  244. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/perplexity_/api_endpoints/api_request.py +0 -0
  245. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/perplexity_/api_endpoints/chat_completions/__init__.py +0 -0
  246. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/perplexity_/api_endpoints/chat_completions/request/__init__.py +0 -0
  247. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/perplexity_/api_endpoints/chat_completions/request/request_body.py +0 -0
  248. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/perplexity_/api_endpoints/chat_completions/response/__init__.py +0 -0
  249. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/perplexity_/api_endpoints/chat_completions/response/response_body.py +0 -0
  250. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/perplexity_/api_endpoints/data_models.py +0 -0
  251. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/perplexity_/api_endpoints/match_response.py +0 -0
  252. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/perplexity_/perplexity_max_output_token_data.yaml +0 -0
  253. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/perplexity_/perplexity_price_data.yaml +0 -0
  254. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/perplexity_/version.py +0 -0
  255. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/pydantic_/__init__.py +0 -0
  256. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/pydantic_/break_down_annotation.py +0 -0
  257. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/pydantic_/new_model.py +0 -0
  258. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/integrations/services.py +0 -0
  259. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/libs/__init__.py +0 -0
  260. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/libs/compress/__init__.py +0 -0
  261. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/libs/compress/models.py +0 -0
  262. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/libs/compress/utils.py +0 -0
  263. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/libs/constants.py +0 -0
  264. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/libs/file/__init__.py +0 -0
  265. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/libs/file/chunk.py +0 -0
  266. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/libs/file/file_ops.py +0 -0
  267. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/libs/file/params.py +0 -0
  268. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/libs/file/path.py +0 -0
  269. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/libs/file/process.py +0 -0
  270. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/libs/file/save.py +0 -0
  271. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/libs/file/types.py +0 -0
  272. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/libs/func/__init__.py +0 -0
  273. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/libs/func/async_calls/__init__.py +0 -0
  274. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/libs/func/async_calls/alcall.py +0 -0
  275. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/libs/func/async_calls/bcall.py +0 -0
  276. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/libs/func/async_calls/mcall.py +0 -0
  277. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/libs/func/async_calls/pcall.py +0 -0
  278. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/libs/func/async_calls/rcall.py +0 -0
  279. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/libs/func/async_calls/tcall.py +0 -0
  280. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/libs/func/async_calls/ucall.py +0 -0
  281. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/libs/func/decorators.py +0 -0
  282. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/libs/func/lcall.py +0 -0
  283. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/libs/func/params.py +0 -0
  284. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/libs/func/throttle.py +0 -0
  285. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/libs/func/types.py +0 -0
  286. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/libs/func/utils.py +0 -0
  287. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/libs/package/__init__.py +0 -0
  288. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/libs/package/imports.py +0 -0
  289. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/libs/package/management.py +0 -0
  290. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/libs/package/params.py +0 -0
  291. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/libs/package/system.py +0 -0
  292. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/libs/package/types.py +0 -0
  293. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/libs/parse/__init__.py +0 -0
  294. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/libs/parse/flatten/__init__.py +0 -0
  295. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/libs/parse/flatten/flatten.py +0 -0
  296. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/libs/parse/flatten/params.py +0 -0
  297. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/libs/parse/flatten/unflatten.py +0 -0
  298. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/libs/parse/json/__init__.py +0 -0
  299. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/libs/parse/json/as_readable.py +0 -0
  300. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/libs/parse/json/extract.py +0 -0
  301. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/libs/parse/json/parse.py +0 -0
  302. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/libs/parse/json/schema.py +0 -0
  303. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/libs/parse/json/to_json.py +0 -0
  304. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/libs/parse/nested/__init__.py +0 -0
  305. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/libs/parse/nested/nfilter.py +0 -0
  306. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/libs/parse/nested/nget.py +0 -0
  307. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/libs/parse/nested/ninsert.py +0 -0
  308. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/libs/parse/nested/nmerge.py +0 -0
  309. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/libs/parse/nested/npop.py +0 -0
  310. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/libs/parse/nested/nset.py +0 -0
  311. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/libs/parse/nested/to_flat_list.py +0 -0
  312. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/libs/parse/nested/utils.py +0 -0
  313. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/libs/parse/params.py +0 -0
  314. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/libs/parse/string_parse/__init__.py +0 -0
  315. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/libs/parse/string_parse/code_block.py +0 -0
  316. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/libs/parse/string_parse/docstring.py +0 -0
  317. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/libs/parse/string_parse/function_.py +0 -0
  318. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/libs/parse/type_convert/__init__.py +0 -0
  319. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/libs/parse/type_convert/params.py +0 -0
  320. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/libs/parse/type_convert/to_dict.py +0 -0
  321. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/libs/parse/type_convert/to_list.py +0 -0
  322. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/libs/parse/type_convert/to_num.py +0 -0
  323. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/libs/parse/type_convert/to_str.py +0 -0
  324. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/libs/parse/types.py +0 -0
  325. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/libs/parse/validate/__init__.py +0 -0
  326. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/libs/parse/validate/boolean.py +0 -0
  327. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/libs/parse/validate/keys.py +0 -0
  328. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/libs/parse/validate/mapping.py +0 -0
  329. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/libs/parse/validate/params.py +0 -0
  330. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/libs/parse/xml/__init__.py +0 -0
  331. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/libs/parse/xml/convert.py +0 -0
  332. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/libs/parse/xml/parser.py +0 -0
  333. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/libs/string_similarity/__init__.py +0 -0
  334. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/libs/string_similarity/algorithms.py +0 -0
  335. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/libs/string_similarity/matcher.py +0 -0
  336. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/libs/string_similarity/utils.py +0 -0
  337. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/libs/utils.py +0 -0
  338. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/operations/__init__.py +0 -0
  339. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/operations/brainstorm/__init__.py +0 -0
  340. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/operations/brainstorm/brainstorm.py +0 -0
  341. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/operations/brainstorm/prompt.py +0 -0
  342. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/operations/plan/__init__.py +0 -0
  343. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/operations/plan/plan.py +0 -0
  344. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/operations/plan/prompt.py +0 -0
  345. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/operations/select/__init__.py +0 -0
  346. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/operations/select/prompt.py +0 -0
  347. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/operations/select/select.py +0 -0
  348. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/operations/select/utils.py +0 -0
  349. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/operations/utils.py +0 -0
  350. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/protocols/__init__.py +0 -0
  351. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/protocols/adapters/__init__.py +0 -0
  352. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/protocols/adapters/adapter.py +0 -0
  353. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/protocols/adapters/json_adapter.py +0 -0
  354. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/protocols/adapters/pandas_adapter.py +0 -0
  355. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/protocols/configs/__init__.py +0 -0
  356. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/protocols/configs/branch_config.py +0 -0
  357. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/protocols/configs/id_config.py +0 -0
  358. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/protocols/configs/imodel_config.py +0 -0
  359. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/protocols/configs/log_config.py +0 -0
  360. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/protocols/configs/retry_config.py +0 -0
  361. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/protocols/operatives/__init__.py +0 -0
  362. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/protocols/operatives/action.py +0 -0
  363. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/protocols/operatives/instruct.py +0 -0
  364. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/protocols/operatives/operative.py +0 -0
  365. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/protocols/operatives/prompts.py +0 -0
  366. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/protocols/operatives/reason.py +0 -0
  367. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/protocols/operatives/step.py +0 -0
  368. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/protocols/registries/__init__.py +0 -0
  369. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/protocols/registries/_component_registry.py +0 -0
  370. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/protocols/registries/_pile_registry.py +0 -0
  371. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/service/__init__.py +0 -0
  372. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/service/complete_request_info.py +0 -0
  373. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/service/rate_limiter.py +0 -0
  374. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/service/service_match_util.py +0 -0
  375. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/service/service_util.py +0 -0
  376. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/service/token_calculator.py +0 -0
  377. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/settings.py +0 -0
  378. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/strategies/__init__.py +0 -0
  379. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/strategies/base.py +0 -0
  380. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/strategies/concurrent.py +0 -0
  381. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/strategies/concurrent_chunk.py +0 -0
  382. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/strategies/concurrent_sequential_chunk.py +0 -0
  383. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/strategies/params.py +0 -0
  384. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/strategies/sequential.py +0 -0
  385. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/strategies/sequential_chunk.py +0 -0
  386. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/strategies/sequential_concurrent_chunk.py +0 -0
  387. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/strategies/types.py +0 -0
  388. {lionagi-0.5.0 → lionagi-0.5.1}/lionagi/strategies/utils.py +0 -0
@@ -2,6 +2,5 @@
2
2
  # model providers
3
3
  # OPENAI_API_KEY=
4
4
  # ANTHROPIC_API_KEY=
5
-
6
- # scrape youtube
7
- # RAPIDAPI_KEY=
5
+ # PERPLEXITY_API_KEY=
6
+ # GROK_API_KEY=
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: lionagi
3
- Version: 0.5.0
3
+ Version: 0.5.1
4
4
  Summary: An AGentic Intelligence Operating System.
5
5
  Author-email: HaiyangLi <quantocean.li@gmail.com>
6
6
  License: Apache License
@@ -246,17 +246,35 @@ LION is designed to be:
246
246
  - 🔧 **Flexible**: Build any workflow you need
247
247
  - 🚀 **Efficient**: Minimal dependencies, maximum performance
248
248
 
249
+
250
+
251
+ ## Installation
252
+
253
+ LION maintains minimal dependencies for maximum reliability:
254
+
255
+ ```bash
256
+ uv pip install lionagi
257
+ ```
258
+
259
+ Dependencies:
260
+ - litellm
261
+ - jinja2
262
+ - pandas
263
+ - pillow
264
+ - python-dotenv
265
+
266
+
249
267
  ## Quick Start
250
268
 
251
269
  ```python
252
270
  from lionagi import iModel, Branch
253
271
 
254
272
  # Initialize model
255
- gpt4o = iModel(provider="openai", model="gpt-4o")
273
+ gpt4o = iModel(provider="openai", task="chat", model="gpt-4o")
256
274
 
257
275
  hunter = Branch(
258
- system="you are a hilarious dragon hunter who responds in 10 words rhymes",
259
- imodel=gpt4o,
276
+ system="you are a hilarious dragon hunter who responds in 10 words rhymes",
277
+ imodel=gpt4o,
260
278
  )
261
279
 
262
280
  # Chat asynchronously
@@ -267,20 +285,199 @@ print(await hunter.communicate("I am a dragon"))
267
285
  You claim to be a dragon, oh what a braggin'!
268
286
  ```
269
287
 
270
- ## Installation
288
+ ## 📦 Features
271
289
 
272
- LION maintains minimal dependencies for maximum reliability:
290
+ ### 1. Model Agnostic Structured Output
273
291
 
274
- ```bash
275
- uv pip install lionagi
292
+ LION provides a unified interface for interacting with any AI model, regardless of the underlying architecture. This allows you to easily switch between models without changing your code.
293
+
294
+ ```python
295
+ from pydantic import BaseModel
296
+
297
+ class Joke(BaseModel):
298
+ joke: str
299
+
300
+ sonnet = iModel(
301
+ provider="anthropic",
302
+ model="claude-3-5-sonnet-20241022",
303
+ max_tokens=100, # max_tokens is required for anthropic models
304
+ )
305
+
306
+ response = await hunter.communicate(
307
+ instruction="I am a dragon",
308
+ response_format=Joke, # structured output in given pydantic model
309
+ clear_messages=True, # refresh the conversation
310
+ imodel=sonnet, # use sonnet model, which doesn't support structured output
311
+ )
312
+
313
+ print(type(response))
314
+ print(response.joke)
276
315
  ```
277
316
 
278
- Dependencies:
279
- - litellm
280
- - jinja2
281
- - pandas
282
- - pillow
283
- - python-dotenv
317
+ ```
318
+ <class '__main__.Joke'>
319
+ Joke(joke='With fiery claws, dragons hide their laughter flaws!')
320
+ ```
321
+
322
+
323
+ ### 2. Complete Observability
324
+
325
+ ```python
326
+ # using perplexity model
327
+ pplx_small = iModel(
328
+ provider="perplexity",
329
+ task="chat/completions",
330
+ model="llama-3.1-sonar-small-128k-online",
331
+ max_tokens=1000,
332
+ )
333
+
334
+ b = await hunter.communicate(
335
+ instruction="What makes a well-behaved dragon?",
336
+ clear_messages=True, # refresh the conversation
337
+ imodel=pplx_small, # use sonnet model
338
+ )
339
+
340
+ print(b)
341
+ ```
342
+
343
+ ```
344
+ A well-behaved dragon is one that's calm and bright,
345
+ No stress or fear, just a peaceful night.
346
+ It's active, not lethargic, with a happy face,
347
+ And behaviors like digging, not a frantic pace.
348
+ It's social, friendly, and never a fright,
349
+ Just a gentle soul, shining with delight
350
+ ```
351
+
352
+ ```python
353
+ hunter.msgs.last_response.model_response
354
+ ```
355
+
356
+ ```
357
+ {'id': '1be10f4c-0936-4050-ab48-91bd86ab11a5',
358
+ 'model': 'llama-3.1-sonar-small-128k-online',
359
+ 'object': 'chat.completion',
360
+ 'created': 1734369700,
361
+ 'choices': [{'index': 0,
362
+ 'message': {'role': 'assistant',
363
+ 'content': "A well-behaved dragon is one that's calm and bright,\nNo stress or fear, just a peaceful night.\nIt's active, not lethargic, with a happy face,\nAnd behaviors like digging, not a frantic pace.\nIt's social, friendly, and never a fright,\nJust a gentle soul, shining with delight"},
364
+ 'finish_reason': 'stop',
365
+ 'delta': {'role': 'assistant', 'content': ''}}],
366
+ 'usage': {'prompt_tokens': 40, 'completion_tokens': 69, 'total_tokens': 109},
367
+ 'citations': [{'url': 'https://dragonsdiet.com/blogs/dragon-care/15-bearded-dragon-behaviors-and-what-they-could-mean'},
368
+ {'url': 'https://masterbraeokk.tripod.com/dragons/behavior.html'},
369
+ {'url': 'https://files.eric.ed.gov/fulltext/ED247607.pdf'},
370
+ {'url': 'https://www.travelchinaguide.com/intro/social_customs/zodiac/dragon/five-elements.htm'},
371
+ {'url': 'https://www.travelchinaguide.com/intro/social_customs/zodiac/dragon/'}]}
372
+ ```
373
+
374
+
375
+ ### 3. Easy composition of complex workflows
376
+
377
+ ```python
378
+ # chain of thoughts
379
+ from pydantic import Field
380
+
381
+ class Reason(BaseModel):
382
+ reason: str
383
+ confidence_score: float
384
+
385
+ class Thought(BaseModel):
386
+ thought: str
387
+
388
+ class Analysis(BaseModel):
389
+ thought: list[Thought] = Field(
390
+ default_factory=list,
391
+ description="concise Chain of thoughts from you, 3 step, each in 8 words"
392
+ )
393
+ analysis: str = Field(
394
+ ...,
395
+ description="Final analysis of the dragon's psyche in 20 words",
396
+ )
397
+ reason: list[Reason] = Field(
398
+ default_factory=list,
399
+ description="Concise Reasoning behind the analysis, 3 support, each in 8 words"
400
+ )
401
+
402
+ context1 = "I am a dragon, I think therefore I am, I suffer from shiny objects syndrome"
403
+ context2 = "I like food and poetry, I use uv sometimes, it's cool but I am not familiar with pip"
404
+
405
+ async def analyze(context) -> Analysis:
406
+ psychologist = Branch(
407
+ system="you are a renowned dragon psychologist",
408
+ imodel=gpt4o,
409
+ )
410
+ return await psychologist.communicate(
411
+ instruction="analyze the dragon's psyche using chain of thoughts",
412
+ guidance="think step by step, reason with logic",
413
+ context=context,
414
+ response_format=Analysis,
415
+ )
416
+
417
+ ```
418
+
419
+ ```python
420
+ result1 = await analyze(context1)
421
+
422
+ print("\nThoughts:")
423
+ for i in result1.thought:
424
+ print(i.thought)
425
+
426
+ print("\nAnalysis:")
427
+ print(result1.analysis)
428
+
429
+ print("\nReasoning:")
430
+ for i in result1.reason:
431
+ print(i.reason)
432
+ ```
433
+
434
+ ```
435
+
436
+ Thoughts:
437
+ Dragons are attracted to shiny objects naturally.
438
+ This suggests a strong affinity for hoarding.
439
+ Reflects the dragon's inherent desire for possession.
440
+
441
+ Analysis:
442
+ The dragon demonstrates a compulsive hoarding behavior linked to attraction for shiny objects.
443
+
444
+ Reasoning:
445
+ Shiny objects trigger instinctual hoarding behavior.
446
+ Possession indicates a symbol of power and security.
447
+ Hoarding is reinforced by evolutionary survival mechanisms.
448
+ ```
449
+
450
+ ```python
451
+ result2 = await analyze(context2)
452
+
453
+ print("\nThoughts:")
454
+ for i in result2.thought:
455
+ print(i.thought)
456
+
457
+ print("\nAnalysis:")
458
+ print(result2.analysis)
459
+
460
+ print("\nReasoning:")
461
+ for i in result2.reason:
462
+ print(i.reason)
463
+ ```
464
+
465
+ ```
466
+ Thoughts:
467
+ Dragon enjoys both food and poetry regularly.
468
+ Dragon uses uv light with frequent interest.
469
+ Dragon is unfamiliar and not comfortable with pip.
470
+
471
+ Analysis:
472
+ The dragon is curious and exploratory, yet selectively cautious about unfamiliar methodologies.
473
+
474
+ Reasoning:
475
+ Preference for food and poetry suggests curiosity.
476
+ Frequent uv light use indicates exploratory nature.
477
+ Discomfort with pip usage shows selective caution.
478
+ ```
479
+
480
+
284
481
 
285
482
  ## 🌟 Example Workflow
286
483
 
@@ -0,0 +1,318 @@
1
+ ![PyPI - Version](https://img.shields.io/pypi/v/lionagi?labelColor=233476aa&color=231fc935)
2
+ ![PyPI - Downloads](https://img.shields.io/pypi/dm/lionagi?color=blue)
3
+ ![Python Version](https://img.shields.io/badge/python-3.11%2B-blue)
4
+
5
+ [Documentation](https://ocean-lion.com/Welcome) | [Discord](https://discord.gg/aqSJ2v46vu) | [PyPI](https://pypi.org/project/lionagi/) | [Roadmap](https://trello.com/b/3seomsrI/lionagi)
6
+
7
+ # LION Framework
8
+ ### Language InterOperable Network - The Future of Controlled AI Operations
9
+
10
+ > Harness the power of next-generation AI while maintaining complete control and reliability.
11
+
12
+ ## Why LION?
13
+
14
+ The AI revolution is transforming how we work - but with great power comes great responsibility. LION provides the control mechanisms and reliability features needed to safely integrate advanced AI capabilities into enterprise workflows.
15
+
16
+ LION is designed to be:
17
+ - 🔒 **Controlled**: Built-in safety mechanisms and verification
18
+ - 🎯 **Precise**: Exact control over AI behaviors
19
+ - 🔧 **Flexible**: Build any workflow you need
20
+ - 🚀 **Efficient**: Minimal dependencies, maximum performance
21
+
22
+
23
+
24
+ ## Installation
25
+
26
+ LION maintains minimal dependencies for maximum reliability:
27
+
28
+ ```bash
29
+ uv pip install lionagi
30
+ ```
31
+
32
+ Dependencies:
33
+ - litellm
34
+ - jinja2
35
+ - pandas
36
+ - pillow
37
+ - python-dotenv
38
+
39
+
40
+ ## Quick Start
41
+
42
+ ```python
43
+ from lionagi import iModel, Branch
44
+
45
+ # Initialize model
46
+ gpt4o = iModel(provider="openai", task="chat", model="gpt-4o")
47
+
48
+ hunter = Branch(
49
+ system="you are a hilarious dragon hunter who responds in 10 words rhymes",
50
+ imodel=gpt4o,
51
+ )
52
+
53
+ # Chat asynchronously
54
+ print(await hunter.communicate("I am a dragon"))
55
+ ```
56
+
57
+ ```
58
+ You claim to be a dragon, oh what a braggin'!
59
+ ```
60
+
61
+ ## 📦 Features
62
+
63
+ ### 1. Model Agnostic Structured Output
64
+
65
+ LION provides a unified interface for interacting with any AI model, regardless of the underlying architecture. This allows you to easily switch between models without changing your code.
66
+
67
+ ```python
68
+ from pydantic import BaseModel
69
+
70
+ class Joke(BaseModel):
71
+ joke: str
72
+
73
+ sonnet = iModel(
74
+ provider="anthropic",
75
+ model="claude-3-5-sonnet-20241022",
76
+ max_tokens=100, # max_tokens is required for anthropic models
77
+ )
78
+
79
+ response = await hunter.communicate(
80
+ instruction="I am a dragon",
81
+ response_format=Joke, # structured output in given pydantic model
82
+ clear_messages=True, # refresh the conversation
83
+ imodel=sonnet, # use sonnet model, which doesn't support structured output
84
+ )
85
+
86
+ print(type(response))
87
+ print(response.joke)
88
+ ```
89
+
90
+ ```
91
+ <class '__main__.Joke'>
92
+ Joke(joke='With fiery claws, dragons hide their laughter flaws!')
93
+ ```
94
+
95
+
96
+ ### 2. Complete Observability
97
+
98
+ ```python
99
+ # using perplexity model
100
+ pplx_small = iModel(
101
+ provider="perplexity",
102
+ task="chat/completions",
103
+ model="llama-3.1-sonar-small-128k-online",
104
+ max_tokens=1000,
105
+ )
106
+
107
+ b = await hunter.communicate(
108
+ instruction="What makes a well-behaved dragon?",
109
+ clear_messages=True, # refresh the conversation
110
+ imodel=pplx_small, # use sonnet model
111
+ )
112
+
113
+ print(b)
114
+ ```
115
+
116
+ ```
117
+ A well-behaved dragon is one that's calm and bright,
118
+ No stress or fear, just a peaceful night.
119
+ It's active, not lethargic, with a happy face,
120
+ And behaviors like digging, not a frantic pace.
121
+ It's social, friendly, and never a fright,
122
+ Just a gentle soul, shining with delight
123
+ ```
124
+
125
+ ```python
126
+ hunter.msgs.last_response.model_response
127
+ ```
128
+
129
+ ```
130
+ {'id': '1be10f4c-0936-4050-ab48-91bd86ab11a5',
131
+ 'model': 'llama-3.1-sonar-small-128k-online',
132
+ 'object': 'chat.completion',
133
+ 'created': 1734369700,
134
+ 'choices': [{'index': 0,
135
+ 'message': {'role': 'assistant',
136
+ 'content': "A well-behaved dragon is one that's calm and bright,\nNo stress or fear, just a peaceful night.\nIt's active, not lethargic, with a happy face,\nAnd behaviors like digging, not a frantic pace.\nIt's social, friendly, and never a fright,\nJust a gentle soul, shining with delight"},
137
+ 'finish_reason': 'stop',
138
+ 'delta': {'role': 'assistant', 'content': ''}}],
139
+ 'usage': {'prompt_tokens': 40, 'completion_tokens': 69, 'total_tokens': 109},
140
+ 'citations': [{'url': 'https://dragonsdiet.com/blogs/dragon-care/15-bearded-dragon-behaviors-and-what-they-could-mean'},
141
+ {'url': 'https://masterbraeokk.tripod.com/dragons/behavior.html'},
142
+ {'url': 'https://files.eric.ed.gov/fulltext/ED247607.pdf'},
143
+ {'url': 'https://www.travelchinaguide.com/intro/social_customs/zodiac/dragon/five-elements.htm'},
144
+ {'url': 'https://www.travelchinaguide.com/intro/social_customs/zodiac/dragon/'}]}
145
+ ```
146
+
147
+
148
+ ### 3. Easy composition of complex workflows
149
+
150
+ ```python
151
+ # chain of thoughts
152
+ from pydantic import Field
153
+
154
+ class Reason(BaseModel):
155
+ reason: str
156
+ confidence_score: float
157
+
158
+ class Thought(BaseModel):
159
+ thought: str
160
+
161
+ class Analysis(BaseModel):
162
+ thought: list[Thought] = Field(
163
+ default_factory=list,
164
+ description="concise Chain of thoughts from you, 3 step, each in 8 words"
165
+ )
166
+ analysis: str = Field(
167
+ ...,
168
+ description="Final analysis of the dragon's psyche in 20 words",
169
+ )
170
+ reason: list[Reason] = Field(
171
+ default_factory=list,
172
+ description="Concise Reasoning behind the analysis, 3 support, each in 8 words"
173
+ )
174
+
175
+ context1 = "I am a dragon, I think therefore I am, I suffer from shiny objects syndrome"
176
+ context2 = "I like food and poetry, I use uv sometimes, it's cool but I am not familiar with pip"
177
+
178
+ async def analyze(context) -> Analysis:
179
+ psychologist = Branch(
180
+ system="you are a renowned dragon psychologist",
181
+ imodel=gpt4o,
182
+ )
183
+ return await psychologist.communicate(
184
+ instruction="analyze the dragon's psyche using chain of thoughts",
185
+ guidance="think step by step, reason with logic",
186
+ context=context,
187
+ response_format=Analysis,
188
+ )
189
+
190
+ ```
191
+
192
+ ```python
193
+ result1 = await analyze(context1)
194
+
195
+ print("\nThoughts:")
196
+ for i in result1.thought:
197
+ print(i.thought)
198
+
199
+ print("\nAnalysis:")
200
+ print(result1.analysis)
201
+
202
+ print("\nReasoning:")
203
+ for i in result1.reason:
204
+ print(i.reason)
205
+ ```
206
+
207
+ ```
208
+
209
+ Thoughts:
210
+ Dragons are attracted to shiny objects naturally.
211
+ This suggests a strong affinity for hoarding.
212
+ Reflects the dragon's inherent desire for possession.
213
+
214
+ Analysis:
215
+ The dragon demonstrates a compulsive hoarding behavior linked to attraction for shiny objects.
216
+
217
+ Reasoning:
218
+ Shiny objects trigger instinctual hoarding behavior.
219
+ Possession indicates a symbol of power and security.
220
+ Hoarding is reinforced by evolutionary survival mechanisms.
221
+ ```
222
+
223
+ ```python
224
+ result2 = await analyze(context2)
225
+
226
+ print("\nThoughts:")
227
+ for i in result2.thought:
228
+ print(i.thought)
229
+
230
+ print("\nAnalysis:")
231
+ print(result2.analysis)
232
+
233
+ print("\nReasoning:")
234
+ for i in result2.reason:
235
+ print(i.reason)
236
+ ```
237
+
238
+ ```
239
+ Thoughts:
240
+ Dragon enjoys both food and poetry regularly.
241
+ Dragon uses uv light with frequent interest.
242
+ Dragon is unfamiliar and not comfortable with pip.
243
+
244
+ Analysis:
245
+ The dragon is curious and exploratory, yet selectively cautious about unfamiliar methodologies.
246
+
247
+ Reasoning:
248
+ Preference for food and poetry suggests curiosity.
249
+ Frequent uv light use indicates exploratory nature.
250
+ Discomfort with pip usage shows selective caution.
251
+ ```
252
+
253
+
254
+
255
+ ## 🌟 Example Workflow
256
+
257
+ Below is an example of what you can build with LION. Note that these are sample implementations - LION provides the building blocks, you create the workflows that fit your needs.
258
+
259
+ ```mermaid
260
+ sequenceDiagram
261
+ autonumber
262
+ participant Client
263
+ participant Orchestrator
264
+ participant ResearchAgent
265
+ participant AnalysisAgent
266
+ participant ValidationAgent
267
+ participant Tools
268
+
269
+ Client->>+Orchestrator: Submit Complex Task
270
+ Note over Orchestrator: Task Analysis & Planning
271
+
272
+ %% Research Phase
273
+ Orchestrator->>+ResearchAgent: Delegate Research
274
+ activate ResearchAgent
275
+ ResearchAgent->>Tools: Access Data Sources
276
+ Tools-->>ResearchAgent: Raw Data
277
+ ResearchAgent-->>-Orchestrator: Research Results
278
+ deactivate ResearchAgent
279
+
280
+ %% Analysis Phase
281
+ Orchestrator->>+AnalysisAgent: Process Data
282
+ activate AnalysisAgent
283
+ AnalysisAgent->>Tools: Apply Models
284
+ Tools-->>AnalysisAgent: Analysis Results
285
+ AnalysisAgent-->>-Orchestrator: Processed Insights
286
+ deactivate AnalysisAgent
287
+
288
+ %% Validation Phase
289
+ Orchestrator->>+ValidationAgent: Verify Results
290
+ activate ValidationAgent
291
+ ValidationAgent->>Tools: Apply Safety Checks
292
+ Tools-->>ValidationAgent: Validation Status
293
+ ValidationAgent-->>-Orchestrator: Verified Results
294
+ deactivate ValidationAgent
295
+
296
+ Orchestrator-->>-Client: Return Validated Output
297
+ ```
298
+
299
+
300
+ ## 🤝 Contributing
301
+
302
+ Join our [Discord community](https://discord.gg/aqSJ2v46vu) to:
303
+ - Share ideas
304
+ - Report issues
305
+ - Contribute code
306
+ - Learn from others
307
+
308
+ ## 📚 Citation
309
+
310
+ ```bibtex
311
+ @software{Li_LionAGI_2023,
312
+ author = {Haiyang Li},
313
+ month = {12},
314
+ year = {2023},
315
+ title = {LionAGI: Intelligent Integration Framework},
316
+ url = {https://github.com/lion-agi/lionagi},
317
+ }
318
+ ```
@@ -288,11 +288,39 @@ class BranchOperationMixin(ABC):
288
288
  image_detail=image_detail,
289
289
  tool_schemas=tool_schemas,
290
290
  )
291
- kwargs["messages"] = self.msgs.to_chat_msgs(progress)
292
- kwargs["messages"].append(ins.chat_msg)
293
291
 
292
+ progress = progress or self.msgs.progress
293
+ messages = [self.msgs.messages[i] for i in progress]
294
+
295
+ if self.msgs.system and "system" not in imodel.allowed_roles:
296
+ messages = [msg for msg in messages if msg.role != "system"]
297
+ first_instruction = None
298
+
299
+ if len(messages) == 0:
300
+ first_instruction = ins.model_copy()
301
+ first_instruction.guidance = self.msgs.system.system_info + (
302
+ first_instruction.guidance or ""
303
+ )
304
+ messages.append(first_instruction)
305
+ elif len(messages) >= 1:
306
+ first_instruction = messages[0]
307
+ if not isinstance(first_instruction, Instruction):
308
+ raise ValueError(
309
+ "First message in progress must be an Instruction or System"
310
+ )
311
+ first_instruction = first_instruction.model_copy()
312
+ first_instruction.guidance = self.msgs.system.system_info + (
313
+ first_instruction.guidance or ""
314
+ )
315
+ messages[0] = first_instruction
316
+
317
+ else:
318
+ messages.append(ins)
319
+
320
+ kwargs["messages"] = [i.chat_msg for i in messages]
294
321
  imodel = imodel or self.imodel
295
322
  api_response = None
323
+
296
324
  if isinstance(imodel, LiteiModel):
297
325
  api_response = await imodel.invoke(**kwargs)
298
326
  elif isinstance(imodel, iModel):
@@ -329,12 +357,22 @@ class BranchOperationMixin(ABC):
329
357
  skip_validation: bool = False,
330
358
  clear_messages: bool = False,
331
359
  invoke_action: bool = True,
360
+ response_format: (
361
+ type[BaseModel] | BaseModel
362
+ ) = None, # alias of request_model
332
363
  **kwargs,
333
364
  ):
365
+ if response_format and request_model:
366
+ raise ValueError(
367
+ "Cannot specify both response_format and request_model"
368
+ "as they are aliases for the same parameter."
369
+ )
370
+ request_model = request_model or response_format
371
+
334
372
  imodel = imodel or self.imodel
335
373
  retry_imodel = retry_imodel or imodel
336
374
  if clear_messages:
337
- self.clear_messages()
375
+ self.msgs.clear_messages()
338
376
 
339
377
  if num_parse_retries > 5:
340
378
  logging.warning(
@@ -111,3 +111,7 @@ class AnthropicService(Service):
111
111
  return self.check_rate_limiter(
112
112
  model_obj, limit_requests=limit_requests, limit_tokens=limit_tokens
113
113
  )
114
+
115
+ @property
116
+ def allowed_roles(self):
117
+ return ["user", "assistant"]
@@ -145,3 +145,7 @@ class GroqService(Service):
145
145
  model_obj,
146
146
  limit_requests=limit_requests,
147
147
  )
148
+
149
+ @property
150
+ def allowed_roles(self):
151
+ return ["user", "assistant", "system"]
@@ -67,3 +67,7 @@ class LiteiModel:
67
67
  v = str(v)
68
68
  hashable_items.append((k, v))
69
69
  return hash(frozenset(hashable_items))
70
+
71
+ @property
72
+ def allowed_roles(self):
73
+ return ["user", "assistant", "system"]
@@ -136,3 +136,7 @@ class OllamaService(Service):
136
136
  # List Running Models
137
137
  def list_running_models(self):
138
138
  return OllamaRequest(endpoint="ps", method="GET")
139
+
140
+ @property
141
+ def allowed_roles(self):
142
+ return ["user", "assistant", "system"]
@@ -412,3 +412,7 @@ class OpenAIModel(BaseModel):
412
412
  "Estimating price currently only supports chat/completions endpoint"
413
413
  )
414
414
  return estimated_price
415
+
416
+ @property
417
+ def allowed_roles(self):
418
+ return ["user", "assistant", "system"]
@@ -107,3 +107,7 @@ class PerplexityService(Service):
107
107
  return self.check_rate_limiter(
108
108
  model_obj, limit_requests=limit_requests, limit_tokens=limit_tokens
109
109
  )
110
+
111
+ @property
112
+ def allowed_roles(self):
113
+ return ["user", "assistant", "system"]