camel-ai 0.2.59__tar.gz → 0.2.61__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.

Potentially problematic release.


This version of camel-ai might be problematic. Click here for more details.

Files changed (417) hide show
  1. {camel_ai-0.2.59 → camel_ai-0.2.61}/PKG-INFO +17 -9
  2. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/__init__.py +1 -1
  3. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/agents/chat_agent.py +158 -7
  4. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/configs/anthropic_config.py +6 -5
  5. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/configs/cohere_config.py +1 -1
  6. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/configs/mistral_config.py +1 -1
  7. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/configs/openai_config.py +3 -0
  8. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/configs/reka_config.py +1 -1
  9. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/configs/samba_config.py +2 -2
  10. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/datagen/cot_datagen.py +29 -34
  11. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/datagen/evol_instruct/scorer.py +22 -23
  12. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/datagen/evol_instruct/templates.py +46 -46
  13. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/datasets/static_dataset.py +144 -0
  14. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/embeddings/jina_embedding.py +8 -1
  15. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/embeddings/sentence_transformers_embeddings.py +2 -2
  16. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/embeddings/vlm_embedding.py +9 -2
  17. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/loaders/__init__.py +5 -2
  18. camel_ai-0.2.61/camel/loaders/chunkr_reader.py +193 -0
  19. camel_ai-0.2.61/camel/loaders/mistral_reader.py +148 -0
  20. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/memories/blocks/chat_history_block.py +1 -2
  21. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/memories/records.py +3 -0
  22. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/messages/base.py +15 -3
  23. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/models/azure_openai_model.py +1 -0
  24. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/models/model_factory.py +2 -2
  25. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/models/model_manager.py +7 -3
  26. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/retrievers/bm25_retriever.py +1 -2
  27. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/retrievers/hybrid_retrival.py +2 -2
  28. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/societies/workforce/workforce.py +65 -24
  29. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/storages/__init__.py +2 -0
  30. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/storages/vectordb_storages/__init__.py +2 -0
  31. camel_ai-0.2.61/camel/storages/vectordb_storages/faiss.py +712 -0
  32. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/storages/vectordb_storages/oceanbase.py +1 -2
  33. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/toolkits/__init__.py +2 -0
  34. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/toolkits/async_browser_toolkit.py +80 -524
  35. camel_ai-0.2.61/camel/toolkits/bohrium_toolkit.py +318 -0
  36. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/toolkits/browser_toolkit.py +221 -541
  37. camel_ai-0.2.61/camel/toolkits/browser_toolkit_commons.py +568 -0
  38. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/toolkits/dalle_toolkit.py +4 -0
  39. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/toolkits/excel_toolkit.py +8 -2
  40. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/toolkits/file_write_toolkit.py +76 -29
  41. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/toolkits/github_toolkit.py +43 -25
  42. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/toolkits/image_analysis_toolkit.py +3 -0
  43. camel_ai-0.2.61/camel/toolkits/jina_reranker_toolkit.py +348 -0
  44. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/toolkits/mcp_toolkit.py +134 -16
  45. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/toolkits/page_script.js +40 -28
  46. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/toolkits/twitter_toolkit.py +6 -1
  47. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/toolkits/video_analysis_toolkit.py +3 -0
  48. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/toolkits/video_download_toolkit.py +3 -0
  49. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/toolkits/wolfram_alpha_toolkit.py +51 -23
  50. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/types/enums.py +27 -6
  51. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/utils/__init__.py +2 -0
  52. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/utils/commons.py +27 -0
  53. {camel_ai-0.2.59 → camel_ai-0.2.61}/pyproject.toml +25 -11
  54. camel_ai-0.2.59/camel/loaders/chunkr_reader.py +0 -167
  55. camel_ai-0.2.59/camel/toolkits/jina_reranker_toolkit.py +0 -231
  56. {camel_ai-0.2.59 → camel_ai-0.2.61}/.gitignore +0 -0
  57. {camel_ai-0.2.59 → camel_ai-0.2.61}/LICENSE +0 -0
  58. {camel_ai-0.2.59 → camel_ai-0.2.61}/README.md +0 -0
  59. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/agents/__init__.py +0 -0
  60. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/agents/_types.py +0 -0
  61. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/agents/_utils.py +0 -0
  62. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/agents/base.py +0 -0
  63. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/agents/critic_agent.py +0 -0
  64. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/agents/deductive_reasoner_agent.py +0 -0
  65. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/agents/embodied_agent.py +0 -0
  66. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/agents/knowledge_graph_agent.py +0 -0
  67. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/agents/mcp_agent.py +0 -0
  68. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/agents/multi_hop_generator_agent.py +0 -0
  69. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/agents/programmed_agent_instruction.py +0 -0
  70. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/agents/repo_agent.py +0 -0
  71. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/agents/role_assignment_agent.py +0 -0
  72. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/agents/search_agent.py +0 -0
  73. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/agents/task_agent.py +0 -0
  74. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/agents/tool_agents/__init__.py +0 -0
  75. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/agents/tool_agents/base.py +0 -0
  76. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/agents/tool_agents/hugging_face_tool_agent.py +0 -0
  77. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/benchmarks/__init__.py +0 -0
  78. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/benchmarks/apibank.py +0 -0
  79. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/benchmarks/apibench.py +0 -0
  80. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/benchmarks/base.py +0 -0
  81. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/benchmarks/browsecomp.py +0 -0
  82. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/benchmarks/gaia.py +0 -0
  83. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/benchmarks/nexus.py +0 -0
  84. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/benchmarks/ragbench.py +0 -0
  85. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/bots/__init__.py +0 -0
  86. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/bots/discord/__init__.py +0 -0
  87. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/bots/discord/discord_app.py +0 -0
  88. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/bots/discord/discord_installation.py +0 -0
  89. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/bots/discord/discord_store.py +0 -0
  90. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/bots/slack/__init__.py +0 -0
  91. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/bots/slack/models.py +0 -0
  92. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/bots/slack/slack_app.py +0 -0
  93. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/bots/telegram_bot.py +0 -0
  94. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/configs/__init__.py +0 -0
  95. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/configs/aiml_config.py +0 -0
  96. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/configs/base_config.py +0 -0
  97. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/configs/bedrock_config.py +0 -0
  98. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/configs/deepseek_config.py +0 -0
  99. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/configs/gemini_config.py +0 -0
  100. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/configs/groq_config.py +0 -0
  101. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/configs/internlm_config.py +0 -0
  102. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/configs/litellm_config.py +0 -0
  103. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/configs/lmstudio_config.py +0 -0
  104. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/configs/modelscope_config.py +0 -0
  105. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/configs/moonshot_config.py +0 -0
  106. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/configs/netmind_config.py +0 -0
  107. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/configs/novita_config.py +0 -0
  108. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/configs/nvidia_config.py +0 -0
  109. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/configs/ollama_config.py +0 -0
  110. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/configs/openrouter_config.py +0 -0
  111. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/configs/ppio_config.py +0 -0
  112. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/configs/qwen_config.py +0 -0
  113. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/configs/sglang_config.py +0 -0
  114. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/configs/siliconflow_config.py +0 -0
  115. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/configs/togetherai_config.py +0 -0
  116. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/configs/vllm_config.py +0 -0
  117. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/configs/watsonx_config.py +0 -0
  118. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/configs/yi_config.py +0 -0
  119. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/configs/zhipuai_config.py +0 -0
  120. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/data_collector/__init__.py +0 -0
  121. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/data_collector/alpaca_collector.py +0 -0
  122. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/data_collector/base.py +0 -0
  123. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/data_collector/sharegpt_collector.py +0 -0
  124. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/datagen/__init__.py +0 -0
  125. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/datagen/evol_instruct/__init__.py +0 -0
  126. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/datagen/evol_instruct/evol_instruct.py +0 -0
  127. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/datagen/self_improving_cot.py +0 -0
  128. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/datagen/self_instruct/__init__.py +0 -0
  129. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/datagen/self_instruct/filter/__init__.py +0 -0
  130. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/datagen/self_instruct/filter/filter_function.py +0 -0
  131. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/datagen/self_instruct/filter/filter_registry.py +0 -0
  132. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/datagen/self_instruct/filter/instruction_filter.py +0 -0
  133. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/datagen/self_instruct/self_instruct.py +0 -0
  134. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/datagen/self_instruct/templates.py +0 -0
  135. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/datagen/source2synth/__init__.py +0 -0
  136. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/datagen/source2synth/data_processor.py +0 -0
  137. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/datagen/source2synth/models.py +0 -0
  138. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/datagen/source2synth/user_data_processor_config.py +0 -0
  139. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/datahubs/__init__.py +0 -0
  140. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/datahubs/base.py +0 -0
  141. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/datahubs/huggingface.py +0 -0
  142. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/datahubs/models.py +0 -0
  143. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/datasets/__init__.py +0 -0
  144. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/datasets/base_generator.py +0 -0
  145. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/datasets/few_shot_generator.py +0 -0
  146. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/datasets/models.py +0 -0
  147. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/datasets/self_instruct_generator.py +0 -0
  148. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/embeddings/__init__.py +0 -0
  149. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/embeddings/azure_embedding.py +0 -0
  150. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/embeddings/base.py +0 -0
  151. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/embeddings/gemini_embedding.py +0 -0
  152. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/embeddings/mistral_embedding.py +0 -0
  153. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/embeddings/openai_compatible_embedding.py +0 -0
  154. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/embeddings/openai_embedding.py +0 -0
  155. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/embeddings/together_embedding.py +0 -0
  156. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/environments/__init__.py +0 -0
  157. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/environments/models.py +0 -0
  158. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/environments/multi_step.py +0 -0
  159. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/environments/single_step.py +0 -0
  160. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/environments/tic_tac_toe.py +0 -0
  161. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/extractors/__init__.py +0 -0
  162. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/extractors/base.py +0 -0
  163. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/extractors/python_strategies.py +0 -0
  164. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/generators.py +0 -0
  165. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/human.py +0 -0
  166. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/interpreters/__init__.py +0 -0
  167. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/interpreters/base.py +0 -0
  168. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/interpreters/docker/Dockerfile +0 -0
  169. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/interpreters/docker_interpreter.py +0 -0
  170. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/interpreters/e2b_interpreter.py +0 -0
  171. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/interpreters/internal_python_interpreter.py +0 -0
  172. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/interpreters/interpreter_error.py +0 -0
  173. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/interpreters/ipython_interpreter.py +0 -0
  174. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/interpreters/subprocess_interpreter.py +0 -0
  175. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/loaders/apify_reader.py +0 -0
  176. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/loaders/base_io.py +0 -0
  177. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/loaders/crawl4ai_reader.py +0 -0
  178. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/loaders/firecrawl_reader.py +0 -0
  179. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/loaders/jina_url_reader.py +0 -0
  180. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/loaders/markitdown.py +0 -0
  181. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/loaders/mineru_extractor.py +0 -0
  182. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/loaders/pandas_reader.py +0 -0
  183. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/loaders/scrapegraph_reader.py +0 -0
  184. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/loaders/unstructured_io.py +0 -0
  185. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/logger.py +0 -0
  186. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/memories/__init__.py +0 -0
  187. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/memories/agent_memories.py +0 -0
  188. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/memories/base.py +0 -0
  189. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/memories/blocks/__init__.py +0 -0
  190. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/memories/blocks/vectordb_block.py +0 -0
  191. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/memories/context_creators/__init__.py +0 -0
  192. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/memories/context_creators/score_based.py +0 -0
  193. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/messages/__init__.py +0 -0
  194. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/messages/conversion/__init__.py +0 -0
  195. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/messages/conversion/alpaca.py +0 -0
  196. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/messages/conversion/conversation_models.py +0 -0
  197. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/messages/conversion/sharegpt/__init__.py +0 -0
  198. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/messages/conversion/sharegpt/function_call_formatter.py +0 -0
  199. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/messages/conversion/sharegpt/hermes/__init__.py +0 -0
  200. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/messages/conversion/sharegpt/hermes/hermes_function_formatter.py +0 -0
  201. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/messages/func_message.py +0 -0
  202. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/models/__init__.py +0 -0
  203. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/models/_utils.py +0 -0
  204. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/models/aiml_model.py +0 -0
  205. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/models/anthropic_model.py +0 -0
  206. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/models/aws_bedrock_model.py +0 -0
  207. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/models/base_audio_model.py +0 -0
  208. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/models/base_model.py +0 -0
  209. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/models/cohere_model.py +0 -0
  210. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/models/deepseek_model.py +0 -0
  211. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/models/fish_audio_model.py +0 -0
  212. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/models/gemini_model.py +0 -0
  213. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/models/groq_model.py +0 -0
  214. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/models/internlm_model.py +0 -0
  215. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/models/litellm_model.py +0 -0
  216. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/models/lmstudio_model.py +0 -0
  217. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/models/mistral_model.py +0 -0
  218. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/models/modelscope_model.py +0 -0
  219. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/models/moonshot_model.py +0 -0
  220. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/models/nemotron_model.py +0 -0
  221. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/models/netmind_model.py +0 -0
  222. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/models/novita_model.py +0 -0
  223. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/models/nvidia_model.py +0 -0
  224. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/models/ollama_model.py +0 -0
  225. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/models/openai_audio_models.py +0 -0
  226. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/models/openai_compatible_model.py +0 -0
  227. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/models/openai_model.py +0 -0
  228. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/models/openrouter_model.py +0 -0
  229. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/models/ppio_model.py +0 -0
  230. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/models/qwen_model.py +0 -0
  231. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/models/reka_model.py +0 -0
  232. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/models/reward/__init__.py +0 -0
  233. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/models/reward/base_reward_model.py +0 -0
  234. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/models/reward/evaluator.py +0 -0
  235. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/models/reward/nemotron_model.py +0 -0
  236. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/models/reward/skywork_model.py +0 -0
  237. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/models/samba_model.py +0 -0
  238. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/models/sglang_model.py +0 -0
  239. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/models/siliconflow_model.py +0 -0
  240. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/models/stub_model.py +0 -0
  241. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/models/togetherai_model.py +0 -0
  242. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/models/vllm_model.py +0 -0
  243. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/models/volcano_model.py +0 -0
  244. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/models/watsonx_model.py +0 -0
  245. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/models/yi_model.py +0 -0
  246. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/models/zhipuai_model.py +0 -0
  247. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/personas/__init__.py +0 -0
  248. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/personas/persona.py +0 -0
  249. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/personas/persona_hub.py +0 -0
  250. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/prompts/__init__.py +0 -0
  251. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/prompts/ai_society.py +0 -0
  252. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/prompts/base.py +0 -0
  253. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/prompts/code.py +0 -0
  254. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/prompts/evaluation.py +0 -0
  255. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/prompts/generate_text_embedding_data.py +0 -0
  256. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/prompts/image_craft.py +0 -0
  257. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/prompts/misalignment.py +0 -0
  258. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/prompts/multi_condition_image_craft.py +0 -0
  259. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/prompts/object_recognition.py +0 -0
  260. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/prompts/persona_hub.py +0 -0
  261. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/prompts/prompt_templates.py +0 -0
  262. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/prompts/role_description_prompt_template.py +0 -0
  263. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/prompts/solution_extraction.py +0 -0
  264. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/prompts/task_prompt_template.py +0 -0
  265. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/prompts/translation.py +0 -0
  266. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/prompts/video_description_prompt.py +0 -0
  267. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/py.typed +0 -0
  268. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/responses/__init__.py +0 -0
  269. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/responses/agent_responses.py +0 -0
  270. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/retrievers/__init__.py +0 -0
  271. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/retrievers/auto_retriever.py +0 -0
  272. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/retrievers/base.py +0 -0
  273. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/retrievers/cohere_rerank_retriever.py +0 -0
  274. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/retrievers/vector_retriever.py +0 -0
  275. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/runtime/__init__.py +0 -0
  276. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/runtime/api.py +0 -0
  277. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/runtime/base.py +0 -0
  278. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/runtime/configs.py +0 -0
  279. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/runtime/daytona_runtime.py +0 -0
  280. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/runtime/docker_runtime.py +0 -0
  281. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/runtime/llm_guard_runtime.py +0 -0
  282. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/runtime/remote_http_runtime.py +0 -0
  283. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/runtime/ubuntu_docker_runtime.py +0 -0
  284. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/runtime/utils/__init__.py +0 -0
  285. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/runtime/utils/function_risk_toolkit.py +0 -0
  286. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/runtime/utils/ignore_risk_toolkit.py +0 -0
  287. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/schemas/__init__.py +0 -0
  288. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/schemas/base.py +0 -0
  289. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/schemas/openai_converter.py +0 -0
  290. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/schemas/outlines_converter.py +0 -0
  291. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/societies/__init__.py +0 -0
  292. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/societies/babyagi_playing.py +0 -0
  293. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/societies/role_playing.py +0 -0
  294. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/societies/workforce/__init__.py +0 -0
  295. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/societies/workforce/base.py +0 -0
  296. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/societies/workforce/prompts.py +0 -0
  297. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/societies/workforce/role_playing_worker.py +0 -0
  298. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/societies/workforce/single_agent_worker.py +0 -0
  299. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/societies/workforce/task_channel.py +0 -0
  300. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/societies/workforce/utils.py +0 -0
  301. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/societies/workforce/worker.py +0 -0
  302. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/storages/graph_storages/__init__.py +0 -0
  303. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/storages/graph_storages/base.py +0 -0
  304. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/storages/graph_storages/graph_element.py +0 -0
  305. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/storages/graph_storages/nebula_graph.py +0 -0
  306. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/storages/graph_storages/neo4j_graph.py +0 -0
  307. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/storages/key_value_storages/__init__.py +0 -0
  308. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/storages/key_value_storages/base.py +0 -0
  309. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/storages/key_value_storages/in_memory.py +0 -0
  310. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/storages/key_value_storages/json.py +0 -0
  311. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/storages/key_value_storages/mem0_cloud.py +0 -0
  312. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/storages/key_value_storages/redis.py +0 -0
  313. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/storages/object_storages/__init__.py +0 -0
  314. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/storages/object_storages/amazon_s3.py +0 -0
  315. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/storages/object_storages/azure_blob.py +0 -0
  316. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/storages/object_storages/base.py +0 -0
  317. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/storages/object_storages/google_cloud.py +0 -0
  318. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/storages/vectordb_storages/base.py +0 -0
  319. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/storages/vectordb_storages/milvus.py +0 -0
  320. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/storages/vectordb_storages/qdrant.py +0 -0
  321. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/storages/vectordb_storages/tidb.py +0 -0
  322. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/tasks/__init__.py +0 -0
  323. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/tasks/task.py +0 -0
  324. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/tasks/task_prompt.py +0 -0
  325. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/terminators/__init__.py +0 -0
  326. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/terminators/base.py +0 -0
  327. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/terminators/response_terminator.py +0 -0
  328. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/terminators/token_limit_terminator.py +0 -0
  329. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/toolkits/aci_toolkit.py +0 -0
  330. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/toolkits/arxiv_toolkit.py +0 -0
  331. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/toolkits/ask_news_toolkit.py +0 -0
  332. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/toolkits/audio_analysis_toolkit.py +0 -0
  333. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/toolkits/base.py +0 -0
  334. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/toolkits/code_execution.py +0 -0
  335. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/toolkits/dappier_toolkit.py +0 -0
  336. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/toolkits/data_commons_toolkit.py +0 -0
  337. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/toolkits/function_tool.py +0 -0
  338. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/toolkits/google_calendar_toolkit.py +0 -0
  339. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/toolkits/google_maps_toolkit.py +0 -0
  340. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/toolkits/google_scholar_toolkit.py +0 -0
  341. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/toolkits/human_toolkit.py +0 -0
  342. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/toolkits/klavis_toolkit.py +0 -0
  343. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/toolkits/linkedin_toolkit.py +0 -0
  344. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/toolkits/math_toolkit.py +0 -0
  345. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/toolkits/memory_toolkit.py +0 -0
  346. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/toolkits/meshy_toolkit.py +0 -0
  347. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/toolkits/mineru_toolkit.py +0 -0
  348. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/toolkits/networkx_toolkit.py +0 -0
  349. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/toolkits/notion_toolkit.py +0 -0
  350. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/toolkits/open_api_specs/biztoc/__init__.py +0 -0
  351. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/toolkits/open_api_specs/biztoc/ai-plugin.json +0 -0
  352. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/toolkits/open_api_specs/biztoc/openapi.yaml +0 -0
  353. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/toolkits/open_api_specs/coursera/__init__.py +0 -0
  354. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/toolkits/open_api_specs/coursera/openapi.yaml +0 -0
  355. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/toolkits/open_api_specs/create_qr_code/__init__.py +0 -0
  356. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/toolkits/open_api_specs/create_qr_code/openapi.yaml +0 -0
  357. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/toolkits/open_api_specs/klarna/__init__.py +0 -0
  358. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/toolkits/open_api_specs/klarna/openapi.yaml +0 -0
  359. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/toolkits/open_api_specs/nasa_apod/__init__.py +0 -0
  360. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/toolkits/open_api_specs/nasa_apod/openapi.yaml +0 -0
  361. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/toolkits/open_api_specs/outschool/__init__.py +0 -0
  362. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/toolkits/open_api_specs/outschool/ai-plugin.json +0 -0
  363. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/toolkits/open_api_specs/outschool/openapi.yaml +0 -0
  364. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/toolkits/open_api_specs/outschool/paths/__init__.py +0 -0
  365. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/toolkits/open_api_specs/outschool/paths/get_classes.py +0 -0
  366. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/toolkits/open_api_specs/outschool/paths/search_teachers.py +0 -0
  367. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/toolkits/open_api_specs/security_config.py +0 -0
  368. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/toolkits/open_api_specs/speak/__init__.py +0 -0
  369. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/toolkits/open_api_specs/speak/openapi.yaml +0 -0
  370. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/toolkits/open_api_specs/web_scraper/__init__.py +0 -0
  371. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/toolkits/open_api_specs/web_scraper/ai-plugin.json +0 -0
  372. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/toolkits/open_api_specs/web_scraper/openapi.yaml +0 -0
  373. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/toolkits/open_api_specs/web_scraper/paths/__init__.py +0 -0
  374. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/toolkits/open_api_specs/web_scraper/paths/scraper.py +0 -0
  375. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/toolkits/open_api_toolkit.py +0 -0
  376. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/toolkits/openai_agent_toolkit.py +0 -0
  377. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/toolkits/openbb_toolkit.py +0 -0
  378. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/toolkits/playwright_mcp_toolkit.py +0 -0
  379. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/toolkits/pubmed_toolkit.py +0 -0
  380. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/toolkits/pulse_mcp_search_toolkit.py +0 -0
  381. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/toolkits/pyautogui_toolkit.py +0 -0
  382. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/toolkits/reddit_toolkit.py +0 -0
  383. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/toolkits/retrieval_toolkit.py +0 -0
  384. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/toolkits/search_toolkit.py +0 -0
  385. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/toolkits/searxng_toolkit.py +0 -0
  386. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/toolkits/semantic_scholar_toolkit.py +0 -0
  387. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/toolkits/slack_toolkit.py +0 -0
  388. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/toolkits/stripe_toolkit.py +0 -0
  389. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/toolkits/sympy_toolkit.py +0 -0
  390. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/toolkits/terminal_toolkit.py +0 -0
  391. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/toolkits/thinking_toolkit.py +0 -0
  392. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/toolkits/weather_toolkit.py +0 -0
  393. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/toolkits/whatsapp_toolkit.py +0 -0
  394. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/toolkits/zapier_toolkit.py +0 -0
  395. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/types/__init__.py +0 -0
  396. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/types/agents/__init__.py +0 -0
  397. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/types/agents/tool_calling_record.py +0 -0
  398. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/types/mcp_registries.py +0 -0
  399. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/types/openai_types.py +0 -0
  400. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/types/unified_model_type.py +0 -0
  401. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/utils/async_func.py +0 -0
  402. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/utils/chunker/__init__.py +0 -0
  403. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/utils/chunker/base.py +0 -0
  404. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/utils/chunker/code_chunker.py +0 -0
  405. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/utils/chunker/uio_chunker.py +0 -0
  406. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/utils/constants.py +0 -0
  407. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/utils/deduplication.py +0 -0
  408. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/utils/filename.py +0 -0
  409. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/utils/mcp.py +0 -0
  410. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/utils/response_format.py +0 -0
  411. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/utils/token_counting.py +0 -0
  412. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/verifiers/__init__.py +0 -0
  413. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/verifiers/base.py +0 -0
  414. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/verifiers/math_verifier.py +0 -0
  415. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/verifiers/models.py +0 -0
  416. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/verifiers/physics_verifier.py +0 -0
  417. {camel_ai-0.2.59 → camel_ai-0.2.61}/camel/verifiers/python_verifier.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: camel-ai
3
- Version: 0.2.59
3
+ Version: 0.2.61
4
4
  Summary: Communicative Agents for AI Society Study
5
5
  Project-URL: Homepage, https://www.camel-ai.org/
6
6
  Project-URL: Repository, https://github.com/camel-ai/camel
@@ -16,6 +16,7 @@ Requires-Dist: httpx<1.0.0dev,>=0.28.0
16
16
  Requires-Dist: jsonschema<5,>=4
17
17
  Requires-Dist: mcp>=1.3.0
18
18
  Requires-Dist: openai<2,>=1.68.0
19
+ Requires-Dist: pillow<11.0.0,>=10.1.0
19
20
  Requires-Dist: psutil<6,>=5.9.8
20
21
  Requires-Dist: pydantic>=2.10.6
21
22
  Requires-Dist: tiktoken<0.8,>=0.7.0
@@ -31,6 +32,7 @@ Requires-Dist: arxiv<3,>=2.1.3; extra == 'all'
31
32
  Requires-Dist: azure-storage-blob<13,>=12.21.0; extra == 'all'
32
33
  Requires-Dist: beautifulsoup4<5,>=4; extra == 'all'
33
34
  Requires-Dist: botocore<2,>=1.35.3; extra == 'all'
35
+ Requires-Dist: chunkr-ai>=0.0.50; extra == 'all'
34
36
  Requires-Dist: cohere<6,>=5.11.0; extra == 'all'
35
37
  Requires-Dist: crawl4ai>=0.3.745; extra == 'all'
36
38
  Requires-Dist: dappier<0.4,>=0.3.3; extra == 'all'
@@ -46,6 +48,7 @@ Requires-Dist: docx>=0.2.4; extra == 'all'
46
48
  Requires-Dist: duckduckgo-search<7,>=6.3.5; extra == 'all'
47
49
  Requires-Dist: e2b-code-interpreter<2,>=1.0.3; extra == 'all'
48
50
  Requires-Dist: exa-py<2,>=1.10.0; extra == 'all'
51
+ Requires-Dist: faiss-cpu<2,>=1.7.2; extra == 'all'
49
52
  Requires-Dist: fastapi>=0.115.11; extra == 'all'
50
53
  Requires-Dist: ffmpeg-python<0.3,>=0.2.0; extra == 'all'
51
54
  Requires-Dist: firecrawl-py<2,>=1.0.0; extra == 'all'
@@ -77,14 +80,13 @@ Requires-Dist: neo4j<6,>=5.18.0; extra == 'all'
77
80
  Requires-Dist: networkx<4,>=3.4.2; extra == 'all'
78
81
  Requires-Dist: newspaper3k<0.3,>=0.2.8; extra == 'all'
79
82
  Requires-Dist: notion-client<3,>=2.2.1; extra == 'all'
80
- Requires-Dist: numpy~=1.26; extra == 'all'
83
+ Requires-Dist: numpy<=2.2,>=1.2; extra == 'all'
81
84
  Requires-Dist: openapi-spec-validator<0.8,>=0.7.1; extra == 'all'
82
85
  Requires-Dist: opencv-python<5,>=4; extra == 'all'
83
86
  Requires-Dist: openpyxl>=3.1.5; extra == 'all'
84
87
  Requires-Dist: outlines<0.2,>=0.1.7; extra == 'all'
85
88
  Requires-Dist: pandas<2,>=1.5.3; extra == 'all'
86
89
  Requires-Dist: pandasai<3,>=2.3.0; extra == 'all'
87
- Requires-Dist: pillow<11.0.0,>=10.1.0; extra == 'all'
88
90
  Requires-Dist: playwright>=1.50.0; extra == 'all'
89
91
  Requires-Dist: prance<24,>=23.6.21.0; extra == 'all'
90
92
  Requires-Dist: praw<8,>=7.7.1; extra == 'all'
@@ -92,6 +94,7 @@ Requires-Dist: pre-commit<4,>=3; extra == 'all'
92
94
  Requires-Dist: pyautogui<0.10,>=0.9.54; extra == 'all'
93
95
  Requires-Dist: pydub<0.26,>=0.25.1; extra == 'all'
94
96
  Requires-Dist: pygithub<3,>=2.6.0; extra == 'all'
97
+ Requires-Dist: pylatex>=1.4.2; extra == 'all'
95
98
  Requires-Dist: pymilvus<3,>=2.4.0; extra == 'all'
96
99
  Requires-Dist: pymupdf<2,>=1.22.5; extra == 'all'
97
100
  Requires-Dist: pyobvector>=0.1.18; extra == 'all'
@@ -150,7 +153,7 @@ Requires-Dist: datacommons-pandas<0.0.4,>=0.0.3; extra == 'data-tools'
150
153
  Requires-Dist: datacommons<2,>=1.4.3; extra == 'data-tools'
151
154
  Requires-Dist: math-verify<0.8,>=0.7.0; extra == 'data-tools'
152
155
  Requires-Dist: networkx<4,>=3.4.2; extra == 'data-tools'
153
- Requires-Dist: numpy~=1.26; extra == 'data-tools'
156
+ Requires-Dist: numpy<=2.2,>=1.2; extra == 'data-tools'
154
157
  Requires-Dist: pandas<2,>=1.5.3; extra == 'data-tools'
155
158
  Requires-Dist: rouge<2,>=1.0.1; extra == 'data-tools'
156
159
  Requires-Dist: stripe<12,>=11.3.0; extra == 'data-tools'
@@ -193,16 +196,18 @@ Requires-Dist: sphinx<8,>=7; extra == 'docs'
193
196
  Requires-Dist: sphinxext-rediraffe<0.3,>=0.2.7; extra == 'docs'
194
197
  Provides-Extra: document-tools
195
198
  Requires-Dist: beautifulsoup4<5,>=4; extra == 'document-tools'
199
+ Requires-Dist: chunkr-ai>=0.0.50; extra == 'document-tools'
196
200
  Requires-Dist: crawl4ai>=0.3.745; extra == 'document-tools'
197
201
  Requires-Dist: docx2txt<0.9,>=0.8; extra == 'document-tools'
198
202
  Requires-Dist: docx>=0.2.4; extra == 'document-tools'
199
203
  Requires-Dist: fpdf>=1.7.2; extra == 'document-tools'
200
204
  Requires-Dist: markitdown==0.1.1; extra == 'document-tools'
201
- Requires-Dist: numpy~=1.26; extra == 'document-tools'
205
+ Requires-Dist: numpy<=2.2,>=1.2; extra == 'document-tools'
202
206
  Requires-Dist: openapi-spec-validator<0.8,>=0.7.1; extra == 'document-tools'
203
207
  Requires-Dist: openpyxl>=3.1.5; extra == 'document-tools'
204
208
  Requires-Dist: pandasai<3,>=2.3.0; extra == 'document-tools'
205
209
  Requires-Dist: prance<24,>=23.6.21.0; extra == 'document-tools'
210
+ Requires-Dist: pylatex>=1.4.2; extra == 'document-tools'
206
211
  Requires-Dist: pymupdf<2,>=1.22.5; extra == 'document-tools'
207
212
  Requires-Dist: tabulate>=0.9.0; extra == 'document-tools'
208
213
  Requires-Dist: unstructured==0.16.20; extra == 'document-tools'
@@ -219,7 +224,6 @@ Requires-Dist: transformers<5,>=4; extra == 'huggingface'
219
224
  Provides-Extra: media-tools
220
225
  Requires-Dist: ffmpeg-python<0.3,>=0.2.0; extra == 'media-tools'
221
226
  Requires-Dist: imageio[pyav]<3,>=2.34.2; extra == 'media-tools'
222
- Requires-Dist: pillow<11.0.0,>=10.1.0; extra == 'media-tools'
223
227
  Requires-Dist: pydub<0.26,>=0.25.1; extra == 'media-tools'
224
228
  Requires-Dist: scenedetect>=0.6.5.2; extra == 'media-tools'
225
229
  Requires-Dist: yt-dlp<2025,>=2024.11.4; extra == 'media-tools'
@@ -236,6 +240,7 @@ Requires-Dist: aci-sdk>=1.0.0b1; extra == 'owl'
236
240
  Requires-Dist: anthropic<0.50.0,>=0.47.0; extra == 'owl'
237
241
  Requires-Dist: beautifulsoup4<5,>=4; extra == 'owl'
238
242
  Requires-Dist: chunkr-ai>=0.0.41; extra == 'owl'
243
+ Requires-Dist: chunkr-ai>=0.0.50; extra == 'owl'
239
244
  Requires-Dist: crawl4ai>=0.3.745; extra == 'owl'
240
245
  Requires-Dist: datasets<4,>=3; extra == 'owl'
241
246
  Requires-Dist: docx2txt<0.9,>=0.8; extra == 'owl'
@@ -249,18 +254,18 @@ Requires-Dist: imageio[pyav]<3,>=2.34.2; extra == 'owl'
249
254
  Requires-Dist: mcp-server-fetch==2025.1.17; extra == 'owl'
250
255
  Requires-Dist: mcp-simple-arxiv==0.2.2; extra == 'owl'
251
256
  Requires-Dist: newspaper3k<0.3,>=0.2.8; extra == 'owl'
252
- Requires-Dist: numpy~=1.26; extra == 'owl'
257
+ Requires-Dist: numpy<=2.2,>=1.2; extra == 'owl'
253
258
  Requires-Dist: openapi-spec-validator<0.8,>=0.7.1; extra == 'owl'
254
259
  Requires-Dist: opencv-python<5,>=4; extra == 'owl'
255
260
  Requires-Dist: openpyxl>=3.1.5; extra == 'owl'
256
261
  Requires-Dist: outlines<0.2,>=0.1.7; extra == 'owl'
257
262
  Requires-Dist: pandas<2,>=1.5.3; extra == 'owl'
258
263
  Requires-Dist: pandasai<3,>=2.3.0; extra == 'owl'
259
- Requires-Dist: pillow<11.0.0,>=10.1.0; extra == 'owl'
260
264
  Requires-Dist: playwright>=1.50.0; extra == 'owl'
261
265
  Requires-Dist: prance<24,>=23.6.21.0; extra == 'owl'
262
266
  Requires-Dist: pyautogui<0.10,>=0.9.54; extra == 'owl'
263
267
  Requires-Dist: pydub<0.26,>=0.25.1; extra == 'owl'
268
+ Requires-Dist: pylatex>=1.4.2; extra == 'owl'
264
269
  Requires-Dist: pymupdf<2,>=1.22.5; extra == 'owl'
265
270
  Requires-Dist: python-dotenv<2,>=1.0.0; extra == 'owl'
266
271
  Requires-Dist: requests-oauthlib<2,>=1.3.1; extra == 'owl'
@@ -279,12 +284,14 @@ Requires-Dist: wikipedia<2,>=1; extra == 'owl'
279
284
  Requires-Dist: xls2xlsx>=0.2.0; extra == 'owl'
280
285
  Requires-Dist: yt-dlp<2025,>=2024.11.4; extra == 'owl'
281
286
  Provides-Extra: rag
287
+ Requires-Dist: chunkr-ai>=0.0.50; extra == 'rag'
282
288
  Requires-Dist: cohere<6,>=5.11.0; extra == 'rag'
283
289
  Requires-Dist: crawl4ai>=0.3.745; extra == 'rag'
290
+ Requires-Dist: faiss-cpu<2,>=1.7.2; extra == 'rag'
284
291
  Requires-Dist: google-genai>=1.13.0; extra == 'rag'
285
292
  Requires-Dist: nebula3-python==3.8.2; extra == 'rag'
286
293
  Requires-Dist: neo4j<6,>=5.18.0; extra == 'rag'
287
- Requires-Dist: numpy~=1.26; extra == 'rag'
294
+ Requires-Dist: numpy<=2.2,>=1.2; extra == 'rag'
288
295
  Requires-Dist: pandasai<3,>=2.3.0; extra == 'rag'
289
296
  Requires-Dist: pymilvus<3,>=2.4.0; extra == 'rag'
290
297
  Requires-Dist: pyobvector>=0.1.18; extra == 'rag'
@@ -300,6 +307,7 @@ Requires-Dist: scholarly[tor]==1.7.11; extra == 'research-tools'
300
307
  Provides-Extra: storage
301
308
  Requires-Dist: azure-storage-blob<13,>=12.21.0; extra == 'storage'
302
309
  Requires-Dist: botocore<2,>=1.35.3; extra == 'storage'
310
+ Requires-Dist: faiss-cpu<2,>=1.7.2; extra == 'storage'
303
311
  Requires-Dist: google-cloud-storage<3,>=2.18.0; extra == 'storage'
304
312
  Requires-Dist: mem0ai>=0.1.73; extra == 'storage'
305
313
  Requires-Dist: nebula3-python==3.8.2; extra == 'storage'
@@ -14,7 +14,7 @@
14
14
 
15
15
  from camel.logger import disable_logging, enable_logging, set_log_level
16
16
 
17
- __version__ = '0.2.59'
17
+ __version__ = '0.2.61'
18
18
 
19
19
  __all__ = [
20
20
  '__version__',
@@ -75,7 +75,10 @@ from camel.types import (
75
75
  RoleType,
76
76
  )
77
77
  from camel.types.agents import ToolCallingRecord
78
- from camel.utils import get_model_encoding
78
+ from camel.utils import (
79
+ get_model_encoding,
80
+ model_from_json_schema,
81
+ )
79
82
 
80
83
  if TYPE_CHECKING:
81
84
  from camel.terminators import ResponseTerminator
@@ -163,6 +166,7 @@ class ChatAgent(BaseAgent):
163
166
  model: Optional[
164
167
  Union[
165
168
  BaseModelBackend,
169
+ ModelManager,
166
170
  Tuple[str, str],
167
171
  str,
168
172
  ModelType,
@@ -188,12 +192,15 @@ class ChatAgent(BaseAgent):
188
192
  agent_id: Optional[str] = None,
189
193
  stop_event: Optional[threading.Event] = None,
190
194
  ) -> None:
191
- # Resolve model backends and set up model manager
192
- resolved_models = self._resolve_models(model)
193
- self.model_backend = ModelManager(
194
- resolved_models,
195
- scheduling_strategy=scheduling_strategy,
196
- )
195
+ if isinstance(model, ModelManager):
196
+ self.model_backend = model
197
+ else:
198
+ # Resolve model backends and set up model manager
199
+ resolved_models = self._resolve_models(model)
200
+ self.model_backend = ModelManager(
201
+ resolved_models,
202
+ scheduling_strategy=scheduling_strategy,
203
+ )
197
204
  self.model_type = self.model_backend.model_type
198
205
 
199
206
  # Assign unique ID
@@ -1706,3 +1713,147 @@ class ChatAgent(BaseAgent):
1706
1713
  return (
1707
1714
  f"ChatAgent({self.role_name}, {self.role_type}, {self.model_type})"
1708
1715
  )
1716
+
1717
+ def to_mcp(
1718
+ self,
1719
+ name: str = "CAMEL-ChatAgent",
1720
+ description: str = "A helpful assistant using the CAMEL AI framework.",
1721
+ dependencies: Optional[List[str]] = None,
1722
+ host: str = "localhost",
1723
+ port: int = 8000,
1724
+ ):
1725
+ r"""Expose this ChatAgent as an MCP server.
1726
+
1727
+ Args:
1728
+ name (str): Name of the MCP server.
1729
+ (default: :obj:`CAMEL-ChatAgent`)
1730
+ description (Optional[List[str]]): Description of the agent. If
1731
+ None, a generic description is used. (default: :obj:`A helpful
1732
+ assistant using the CAMEL AI framework.`)
1733
+ dependencies (Optional[List[str]]): Additional
1734
+ dependencies for the MCP server. (default: :obj:`None`)
1735
+ host (str): Host to bind to for HTTP transport.
1736
+ (default: :obj:`localhost`)
1737
+ port (int): Port to bind to for HTTP transport.
1738
+ (default: :obj:`8000`)
1739
+
1740
+ Returns:
1741
+ FastMCP: An MCP server instance that can be run.
1742
+ """
1743
+ try:
1744
+ from mcp.server.fastmcp import FastMCP
1745
+ except ImportError:
1746
+ raise ImportError(
1747
+ "The 'mcp' package is required to use the to_mcp method. "
1748
+ "Install it with 'pip install mcp'."
1749
+ )
1750
+
1751
+ # Combine dependencies
1752
+ all_dependencies = ["camel-ai[all]"]
1753
+ if dependencies:
1754
+ all_dependencies.extend(dependencies)
1755
+
1756
+ mcp_server = FastMCP(
1757
+ name,
1758
+ dependencies=all_dependencies,
1759
+ host=host,
1760
+ port=port,
1761
+ )
1762
+
1763
+ # Store agent reference
1764
+ agent_instance = self
1765
+
1766
+ # Define functions first
1767
+ async def step(message, response_format=None):
1768
+ r"""Execute a single step in the chat session with the agent."""
1769
+ format_cls = None
1770
+ if response_format:
1771
+ format_cls = model_from_json_schema(
1772
+ "DynamicResponseFormat", response_format
1773
+ )
1774
+ response = await agent_instance.astep(message, format_cls)
1775
+ return {
1776
+ "status": "success",
1777
+ "messages": [msg.to_dict() for msg in response.msgs],
1778
+ "terminated": response.terminated,
1779
+ "info": response.info,
1780
+ }
1781
+
1782
+ # Reset tool
1783
+ def reset():
1784
+ r"""Reset the chat agent to its initial state."""
1785
+ agent_instance.reset()
1786
+ return {"status": "success", "message": "Agent reset successfully"}
1787
+
1788
+ # Set language tool
1789
+ def set_output_language(language):
1790
+ r"""Set the output language for the chat agent."""
1791
+ agent_instance.output_language = language
1792
+ return {
1793
+ "status": "success",
1794
+ "message": f"Output language set to '{language}'",
1795
+ }
1796
+
1797
+ # Agent info resource and tool
1798
+ def get_agent_info():
1799
+ r"""Get information about the agent."""
1800
+ info = {
1801
+ "agent_id": agent_instance.agent_id,
1802
+ "model_type": str(agent_instance.model_type),
1803
+ "role_name": agent_instance.role_name,
1804
+ "role_type": str(agent_instance.role_type),
1805
+ "output_language": agent_instance.output_language or "None",
1806
+ "description": description,
1807
+ }
1808
+ return info
1809
+
1810
+ # Chat history resource and tool
1811
+ def get_chat_history():
1812
+ r"""Get the chat history for the agent."""
1813
+ # Convert messages to simple serializable format
1814
+ messages = []
1815
+ for msg in agent_instance.chat_history:
1816
+ # Create a simplified version of each message
1817
+ msg_dict = {
1818
+ "role": msg.get("role", ""),
1819
+ "content": msg.get("content", ""),
1820
+ }
1821
+ # Include function calls if present
1822
+ if "function_call" in msg:
1823
+ msg_dict["function_call"] = {
1824
+ "name": msg["function_call"].get("name", ""),
1825
+ "arguments": msg["function_call"].get("arguments", ""),
1826
+ }
1827
+ messages.append(msg_dict)
1828
+ return messages
1829
+
1830
+ # Available tools resource and tool
1831
+ def get_available_tools():
1832
+ r"""Get a list of available internal tools."""
1833
+ tool_info = {}
1834
+ for name, tool in agent_instance.tool_dict.items():
1835
+ tool_info[name] = {
1836
+ "name": name,
1837
+ "description": tool.get_function_description() or "",
1838
+ "parameters": [
1839
+ {"name": param_name, "type": str(param_type)}
1840
+ for param_name, param_type in tool.get_parameters().items() # noqa: E501
1841
+ ],
1842
+ }
1843
+ return tool_info
1844
+
1845
+ # Now register everything using decorators
1846
+ mcp_server.tool()(step)
1847
+ mcp_server.tool()(reset)
1848
+ mcp_server.tool()(set_output_language)
1849
+
1850
+ mcp_server.resource("agent://")(get_agent_info)
1851
+ mcp_server.tool()(get_agent_info)
1852
+
1853
+ mcp_server.resource("history://")(get_chat_history)
1854
+ mcp_server.tool()(get_chat_history)
1855
+
1856
+ mcp_server.resource("tools://")(get_available_tools)
1857
+ mcp_server.tool()(get_available_tools)
1858
+
1859
+ return mcp_server
@@ -56,14 +56,14 @@ class AnthropicConfig(BaseConfig):
56
56
  metadata about the request. Can include user_id as an external
57
57
  identifier for the user associated with the request.
58
58
  (default: :obj:`None`)
59
- thinking (dict, optional): Configuration for enabling
60
- Claude's extended thinking. When enabled, responses include
61
- thinking content blocks showing Claude's thinking process.
62
- (default: :obj:`None`)
63
59
  tool_choice (dict, optional): How the model should
64
60
  use the provided tools. The model can use a specific tool, any
65
61
  available tool, decide by itself, or not use tools at all.
66
62
  (default: :obj:`None`)
63
+ extra_headers (Optional[dict], optional): Additional headers for the
64
+ request. (default: :obj:`None`)
65
+ extra_body (dict, optional): Extra body parameters to be passed to
66
+ the Anthropic API.
67
67
  """
68
68
 
69
69
  max_tokens: Optional[int] = None
@@ -73,8 +73,9 @@ class AnthropicConfig(BaseConfig):
73
73
  top_k: Optional[int] = None
74
74
  stream: Optional[bool] = None
75
75
  metadata: Optional[dict] = None
76
- thinking: Optional[dict] = None
77
76
  tool_choice: Optional[dict] = None
77
+ extra_headers: Optional[dict] = None
78
+ extra_body: Optional[dict] = None
78
79
 
79
80
 
80
81
  ANTHROPIC_API_PARAMS = {param for param in AnthropicConfig.model_fields.keys()}
@@ -74,4 +74,4 @@ class CohereConfig(BaseConfig):
74
74
  p: Optional[float] = None
75
75
 
76
76
 
77
- COHERE_API_PARAMS = {param for param in CohereConfig().model_fields.keys()}
77
+ COHERE_API_PARAMS = {param for param in CohereConfig.model_fields.keys()}
@@ -76,4 +76,4 @@ class MistralConfig(BaseConfig):
76
76
  return response_format
77
77
 
78
78
 
79
- MISTRAL_API_PARAMS = {param for param in MistralConfig().model_fields.keys()}
79
+ MISTRAL_API_PARAMS = {param for param in MistralConfig.model_fields.keys()}
@@ -104,6 +104,8 @@ class ChatGPTConfig(BaseConfig):
104
104
  parallel_tool_calls (bool, optional): A parameter specifying whether
105
105
  the model should call tools in parallel or not.
106
106
  (default: :obj:`None`)
107
+ extra_headers: Optional[Dict[str, str]]: Extra headers to use for the
108
+ model. (default: :obj:`None`)
107
109
  """
108
110
 
109
111
  temperature: Optional[float] = None
@@ -120,6 +122,7 @@ class ChatGPTConfig(BaseConfig):
120
122
  tool_choice: Optional[Union[Dict[str, str], str]] = None
121
123
  reasoning_effort: Optional[str] = None
122
124
  parallel_tool_calls: Optional[bool] = None
125
+ extra_headers: Optional[Dict[str, str]] = None
123
126
 
124
127
 
125
128
  OPENAI_API_PARAMS = {param for param in ChatGPTConfig.model_fields.keys()}
@@ -66,4 +66,4 @@ class RekaConfig(BaseConfig):
66
66
  use_search_engine: Optional[bool] = None
67
67
 
68
68
 
69
- REKA_API_PARAMS = {param for param in RekaConfig().model_fields.keys()}
69
+ REKA_API_PARAMS = {param for param in RekaConfig.model_fields.keys()}
@@ -65,7 +65,7 @@ class SambaVerseAPIConfig(BaseConfig):
65
65
 
66
66
 
67
67
  SAMBA_VERSE_API_PARAMS = {
68
- param for param in SambaVerseAPIConfig().model_fields.keys()
68
+ param for param in SambaVerseAPIConfig.model_fields.keys()
69
69
  }
70
70
 
71
71
 
@@ -160,5 +160,5 @@ class SambaCloudAPIConfig(BaseConfig):
160
160
 
161
161
 
162
162
  SAMBA_CLOUD_API_PARAMS = {
163
- param for param in SambaCloudAPIConfig().model_fields.keys()
163
+ param for param in SambaCloudAPIConfig.model_fields.keys()
164
164
  }
@@ -204,26 +204,23 @@ class CoTDataGenerator:
204
204
  logger.info("Answer verification result: %s", is_correct)
205
205
  return is_correct
206
206
 
207
- def monte_carlo_tree_search(
207
+ def evaluate_partial_solution(
208
208
  self, question: str, partial_solution: str = ""
209
209
  ) -> float:
210
- r"""Perform Monte Carlo Tree Search to find the best solution.
210
+ r"""Evaluate the quality of a partial solution against the
211
+ golden answer.
211
212
 
212
- Process:
213
- a. Selection: Choose promising partial solutions based on previous
214
- scores
215
- b. Expansion: Generate new solution steps using the generator agent
216
- c. Simulation: Evaluate solution quality using similarity scores
217
- d. Backpropagation: Update solution tree with new findings
213
+ This function generates a similarity score between the given partial
214
+ solution and the correct answer (golden answer).
218
215
 
219
216
  Args:
220
- question (str): The question to solve.
221
- partial_solution (str): The current partial solution.
217
+ question (str): The question being solved.
218
+ partial_solution (str): The partial solution generated so far.
222
219
  (default::obj:`""`)
223
220
 
224
221
  Returns:
225
- float: The similarity score between the current
226
- solution and golden answer.
222
+ float: A similarity score between 0 and 1, indicating how close the
223
+ partial solution is to the golden answer.
227
224
  """
228
225
  if question not in self.golden_answers:
229
226
  raise ValueError(
@@ -293,10 +290,21 @@ class CoTDataGenerator:
293
290
  r"""Solve a question using a multi-step approach.
294
291
 
295
292
  The solution process follows these steps:
296
- 1. Try to solve directly - if correct, return the solution
297
- 2. If not correct, use Monte Carlo Tree Search to find a good solution
298
- 3. If the solution isn't perfect, use binary search to locate errors
299
- 4. Generate a new solution based on the correct part
293
+ 1. Try to solve directly - if correct, return the solution.
294
+ 2. If not correct, perform a search by iteratively generating
295
+ new solutions and evaluating their similarity scores to
296
+ find a good solution. The search process involves:
297
+ a. Generation: Generate new solution candidates using
298
+ the generator agent.
299
+ b. Evaluation: Score each solution candidate for similarity
300
+ to the golden answer.
301
+ c. Selection: Keep the best-scoring candidate found so far.
302
+ d. Early stopping: If a sufficiently high-scoring solution
303
+ is found (score > 0.9), stop early.
304
+ 3. If the solution isn't perfect, use binary search to locate
305
+ errors.
306
+ 4. Generate a new solution based on the correct part of the
307
+ initial solution.
300
308
 
301
309
  Args:
302
310
  question (str): The question to solve.
@@ -304,14 +312,14 @@ class CoTDataGenerator:
304
312
  Returns:
305
313
  str: The best solution found.
306
314
  """
315
+
307
316
  # 1. Try direct solution first
308
317
  solution = self.get_answer(question)
309
318
  if self.verify_answer(question, solution):
310
319
  logger.info("Initial solution is correct")
311
320
  return solution
312
321
 
313
- # 2. If direct solution fails, try Monte Carlo Tree Search
314
- # to find a solution with high similarity score
322
+ # 2. If direct solution fails, iteratively search for a better solution
315
323
  best_solution = ""
316
324
  best_score: float = 0.0
317
325
  for i in range(self.search_limit):
@@ -319,23 +327,10 @@ class CoTDataGenerator:
319
327
  current_solution = self.get_answer(question, best_solution)
320
328
 
321
329
  # Evaluate solution similarity score
322
- prompt = (
323
- f"Please evaluate this solution and "
324
- f"give a score between 0-1:\n"
325
- f"Question: {question}\n"
326
- f"Solution: {current_solution}\n"
327
- f"Correct answer: {self.golden_answers.get(question, '')}\n"
328
- f"Return a JSON object with a single field 'score' containing "
329
- f"a float between 0 and 1, like this: {{'score': 0.85}}\n"
330
- )
331
- self.generator_agent.reset()
332
- response = self.generator_agent.step(prompt)
333
330
  try:
334
- response = self.generator_agent.step(
335
- prompt, response_format=AgentResponse
331
+ score = self.evaluate_partial_solution(
332
+ question, current_solution
336
333
  )
337
- agent_response = response.msgs[0].parsed.score # type: ignore [union-attr]
338
- score = agent_response
339
334
 
340
335
  # Exit early if we find a very good solution (score > 0.9)
341
336
  if score > 0.9:
@@ -357,7 +352,7 @@ class CoTDataGenerator:
357
352
  best_score,
358
353
  )
359
354
  except Exception as e:
360
- logger.error("Error parsing agent response: %s", str(e))
355
+ logger.error("Error evaluating partial solution: %s", str(e))
361
356
  continue
362
357
 
363
358
  # 3. If the answer is not completely correct,
@@ -38,24 +38,27 @@ class BaseScorer(ABC):
38
38
 
39
39
  class MathScorer(BaseScorer):
40
40
  def __init__(self, agent: Optional[ChatAgent] = None):
41
- self.system_msg = (
42
- "You are an evaluator for math problems. Your task is to compare "
43
- "a new math problem against a reference math problem, and rate it "
44
- "in **four dimensions**, each scored from 1 to 5.\n\n"
45
- "1. Diversity (1-5): How novel is the new problem compared to the "
46
- "reference? 1 = very similar, 5 = completely different.\n"
47
- "2. Difficulty (1-5): Rate the relative difficulty compared to the"
48
- " reference problem. 1 = much less difficult, "
49
- "3 = similar difficulty, 5 = much more difficult.\n"
50
- "3. Validity (1-5): How well-defined and sound is the problem?"
51
- "1 = very vague or flawed, 5 = very clear and rigorous.\n"
52
- "4. Solvability (1-5): How likely is the problem solvable using "
53
- "standard math techniques? 1 = very unsolvable or ambiguous, "
54
- "5 = very clearly solvable.\n\n"
55
- "Respond with a JSON object like: "
56
- "{ \"diversity\": ..., \"difficulty\": ..., "
57
- "\"validity\": ..., \"solvability\": ... }"
58
- )
41
+ self.system_msg = """
42
+ You are an evaluator for math problems. Your task is to compare a new math
43
+ problem against a reference math problem by trying to solve it, and rate it
44
+ in **three dimensions**.
45
+
46
+ 1. Diversity (1-5): How novel is the new problem compared to the
47
+ reference? 1 = almost the same, 5 = completely different.
48
+
49
+ 2. Difficulty (1-10): Rate the relative difficulty compared to the reference
50
+ problem. 1 = much less difficult, 5 = similar difficulty, 10 = much more
51
+ difficult. The difficulty should be based on the complexity of reasoning—i.e.,
52
+ problems that require multi-step reasoning or clever methods to solve.
53
+
54
+ 3. Solvability (1-10): How likely is the problem solvable using standard math
55
+ techniques and only contain one question that could be answered by a number or
56
+ a formula? 1 = very unsolvable or ambiguous, 10 = solvable and could be
57
+ answered by a number or a formula.
58
+
59
+ Respond with a JSON object like:
60
+ { "solution": ..., "diversity": ..., "difficulty": ..., "solvability": ... }
61
+ """
59
62
  self.agent = agent or ChatAgent(self.system_msg)
60
63
 
61
64
  class MathScoreSchema(BaseModel):
@@ -69,10 +72,6 @@ class MathScorer(BaseScorer):
69
72
  difficulty: int = Field(
70
73
  ..., description="Score for the relative difficulty"
71
74
  )
72
- validity: int = Field(
73
- ...,
74
- description="Score for how well-defined and sound the problem is",
75
- )
76
75
  solvability: int = Field(
77
76
  ...,
78
77
  description="Score for the solvability of the problem",
@@ -95,7 +94,7 @@ class MathScorer(BaseScorer):
95
94
  query = (
96
95
  f"Reference problem:\n{reference_problem}\n\n"
97
96
  f"New problem:\n{new_problem}\n\n"
98
- "Provide scores in JSON format."
97
+ "Try to solve the new problem. Then provide scores in JSON format."
99
98
  )
100
99
  response = self.agent.step(query, response_format=self.MathScoreSchema)
101
100
  score_data = json.loads(response.msg.content)