camel-ai 0.2.48__tar.gz → 0.2.50__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 (400) hide show
  1. {camel_ai-0.2.48 → camel_ai-0.2.50}/PKG-INFO +4 -1
  2. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/__init__.py +1 -1
  3. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/agents/chat_agent.py +159 -15
  4. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/configs/__init__.py +9 -0
  5. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/configs/modelscope_config.py +4 -1
  6. camel_ai-0.2.50/camel/configs/netmind_config.py +82 -0
  7. camel_ai-0.2.50/camel/configs/novita_config.py +102 -0
  8. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/configs/qwen_config.py +0 -7
  9. camel_ai-0.2.50/camel/configs/watsonx_config.py +96 -0
  10. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/models/__init__.py +6 -0
  11. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/models/model_factory.py +32 -6
  12. camel_ai-0.2.50/camel/models/modelscope_model.py +270 -0
  13. camel_ai-0.2.48/camel/models/qwen_model.py → camel_ai-0.2.50/camel/models/netmind_model.py +19 -18
  14. camel_ai-0.2.50/camel/models/novita_model.py +95 -0
  15. camel_ai-0.2.50/camel/models/qwen_model.py +268 -0
  16. camel_ai-0.2.50/camel/models/watsonx_model.py +253 -0
  17. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/societies/workforce/prompts.py +31 -4
  18. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/societies/workforce/role_playing_worker.py +1 -1
  19. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/societies/workforce/single_agent_worker.py +3 -1
  20. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/societies/workforce/workforce.py +1 -1
  21. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/storages/vectordb_storages/milvus.py +9 -8
  22. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/toolkits/browser_toolkit.py +53 -55
  23. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/types/enums.py +265 -0
  24. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/types/unified_model_type.py +15 -0
  25. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/utils/__init__.py +2 -0
  26. camel_ai-0.2.50/camel/utils/filename.py +80 -0
  27. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/utils/mcp.py +1 -1
  28. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/verifiers/__init__.py +2 -0
  29. camel_ai-0.2.50/camel/verifiers/physics_verifier.py +881 -0
  30. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/verifiers/python_verifier.py +16 -31
  31. {camel_ai-0.2.48 → camel_ai-0.2.50}/pyproject.toml +6 -2
  32. camel_ai-0.2.48/camel/models/modelscope_model.py +0 -97
  33. {camel_ai-0.2.48 → camel_ai-0.2.50}/.gitignore +0 -0
  34. {camel_ai-0.2.48 → camel_ai-0.2.50}/LICENSE +0 -0
  35. {camel_ai-0.2.48 → camel_ai-0.2.50}/README.md +0 -0
  36. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/agents/__init__.py +0 -0
  37. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/agents/_types.py +0 -0
  38. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/agents/_utils.py +0 -0
  39. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/agents/base.py +0 -0
  40. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/agents/critic_agent.py +0 -0
  41. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/agents/deductive_reasoner_agent.py +0 -0
  42. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/agents/embodied_agent.py +0 -0
  43. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/agents/knowledge_graph_agent.py +0 -0
  44. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/agents/multi_hop_generator_agent.py +0 -0
  45. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/agents/programmed_agent_instruction.py +0 -0
  46. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/agents/repo_agent.py +0 -0
  47. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/agents/role_assignment_agent.py +0 -0
  48. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/agents/search_agent.py +0 -0
  49. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/agents/task_agent.py +0 -0
  50. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/agents/tool_agents/__init__.py +0 -0
  51. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/agents/tool_agents/base.py +0 -0
  52. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/agents/tool_agents/hugging_face_tool_agent.py +0 -0
  53. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/benchmarks/__init__.py +0 -0
  54. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/benchmarks/apibank.py +0 -0
  55. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/benchmarks/apibench.py +0 -0
  56. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/benchmarks/base.py +0 -0
  57. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/benchmarks/gaia.py +0 -0
  58. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/benchmarks/nexus.py +0 -0
  59. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/benchmarks/ragbench.py +0 -0
  60. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/bots/__init__.py +0 -0
  61. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/bots/discord/__init__.py +0 -0
  62. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/bots/discord/discord_app.py +0 -0
  63. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/bots/discord/discord_installation.py +0 -0
  64. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/bots/discord/discord_store.py +0 -0
  65. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/bots/slack/__init__.py +0 -0
  66. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/bots/slack/models.py +0 -0
  67. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/bots/slack/slack_app.py +0 -0
  68. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/bots/telegram_bot.py +0 -0
  69. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/configs/aiml_config.py +0 -0
  70. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/configs/anthropic_config.py +0 -0
  71. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/configs/base_config.py +0 -0
  72. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/configs/bedrock_config.py +0 -0
  73. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/configs/cohere_config.py +0 -0
  74. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/configs/deepseek_config.py +0 -0
  75. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/configs/gemini_config.py +0 -0
  76. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/configs/groq_config.py +0 -0
  77. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/configs/internlm_config.py +0 -0
  78. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/configs/litellm_config.py +0 -0
  79. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/configs/lmstudio_config.py +0 -0
  80. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/configs/mistral_config.py +0 -0
  81. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/configs/moonshot_config.py +0 -0
  82. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/configs/nvidia_config.py +0 -0
  83. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/configs/ollama_config.py +0 -0
  84. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/configs/openai_config.py +0 -0
  85. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/configs/openrouter_config.py +0 -0
  86. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/configs/ppio_config.py +0 -0
  87. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/configs/reka_config.py +0 -0
  88. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/configs/samba_config.py +0 -0
  89. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/configs/sglang_config.py +0 -0
  90. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/configs/siliconflow_config.py +0 -0
  91. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/configs/togetherai_config.py +0 -0
  92. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/configs/vllm_config.py +0 -0
  93. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/configs/yi_config.py +0 -0
  94. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/configs/zhipuai_config.py +0 -0
  95. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/data_collector/__init__.py +0 -0
  96. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/data_collector/alpaca_collector.py +0 -0
  97. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/data_collector/base.py +0 -0
  98. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/data_collector/sharegpt_collector.py +0 -0
  99. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/datagen/__init__.py +0 -0
  100. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/datagen/cot_datagen.py +0 -0
  101. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/datagen/evol_instruct/__init__.py +0 -0
  102. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/datagen/evol_instruct/evol_instruct.py +0 -0
  103. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/datagen/evol_instruct/scorer.py +0 -0
  104. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/datagen/evol_instruct/templates.py +0 -0
  105. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/datagen/self_improving_cot.py +0 -0
  106. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/datagen/self_instruct/__init__.py +0 -0
  107. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/datagen/self_instruct/filter/__init__.py +0 -0
  108. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/datagen/self_instruct/filter/filter_function.py +0 -0
  109. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/datagen/self_instruct/filter/filter_registry.py +0 -0
  110. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/datagen/self_instruct/filter/instruction_filter.py +0 -0
  111. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/datagen/self_instruct/self_instruct.py +0 -0
  112. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/datagen/self_instruct/templates.py +0 -0
  113. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/datagen/source2synth/__init__.py +0 -0
  114. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/datagen/source2synth/data_processor.py +0 -0
  115. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/datagen/source2synth/models.py +0 -0
  116. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/datagen/source2synth/user_data_processor_config.py +0 -0
  117. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/datahubs/__init__.py +0 -0
  118. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/datahubs/base.py +0 -0
  119. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/datahubs/huggingface.py +0 -0
  120. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/datahubs/models.py +0 -0
  121. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/datasets/__init__.py +0 -0
  122. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/datasets/base_generator.py +0 -0
  123. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/datasets/few_shot_generator.py +0 -0
  124. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/datasets/models.py +0 -0
  125. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/datasets/self_instruct_generator.py +0 -0
  126. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/datasets/static_dataset.py +0 -0
  127. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/embeddings/__init__.py +0 -0
  128. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/embeddings/azure_embedding.py +0 -0
  129. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/embeddings/base.py +0 -0
  130. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/embeddings/jina_embedding.py +0 -0
  131. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/embeddings/mistral_embedding.py +0 -0
  132. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/embeddings/openai_compatible_embedding.py +0 -0
  133. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/embeddings/openai_embedding.py +0 -0
  134. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/embeddings/sentence_transformers_embeddings.py +0 -0
  135. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/embeddings/together_embedding.py +0 -0
  136. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/embeddings/vlm_embedding.py +0 -0
  137. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/environments/__init__.py +0 -0
  138. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/environments/models.py +0 -0
  139. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/environments/multi_step.py +0 -0
  140. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/environments/single_step.py +0 -0
  141. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/environments/tic_tac_toe.py +0 -0
  142. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/extractors/__init__.py +0 -0
  143. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/extractors/base.py +0 -0
  144. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/extractors/python_strategies.py +0 -0
  145. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/generators.py +0 -0
  146. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/human.py +0 -0
  147. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/interpreters/__init__.py +0 -0
  148. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/interpreters/base.py +0 -0
  149. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/interpreters/docker/Dockerfile +0 -0
  150. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/interpreters/docker_interpreter.py +0 -0
  151. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/interpreters/e2b_interpreter.py +0 -0
  152. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/interpreters/internal_python_interpreter.py +0 -0
  153. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/interpreters/interpreter_error.py +0 -0
  154. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/interpreters/ipython_interpreter.py +0 -0
  155. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/interpreters/subprocess_interpreter.py +0 -0
  156. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/loaders/__init__.py +0 -0
  157. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/loaders/apify_reader.py +0 -0
  158. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/loaders/base_io.py +0 -0
  159. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/loaders/chunkr_reader.py +0 -0
  160. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/loaders/crawl4ai_reader.py +0 -0
  161. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/loaders/firecrawl_reader.py +0 -0
  162. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/loaders/jina_url_reader.py +0 -0
  163. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/loaders/mineru_extractor.py +0 -0
  164. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/loaders/pandas_reader.py +0 -0
  165. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/loaders/scrapegraph_reader.py +0 -0
  166. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/loaders/unstructured_io.py +0 -0
  167. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/logger.py +0 -0
  168. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/memories/__init__.py +0 -0
  169. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/memories/agent_memories.py +0 -0
  170. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/memories/base.py +0 -0
  171. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/memories/blocks/__init__.py +0 -0
  172. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/memories/blocks/chat_history_block.py +0 -0
  173. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/memories/blocks/vectordb_block.py +0 -0
  174. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/memories/context_creators/__init__.py +0 -0
  175. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/memories/context_creators/score_based.py +0 -0
  176. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/memories/records.py +0 -0
  177. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/messages/__init__.py +0 -0
  178. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/messages/base.py +0 -0
  179. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/messages/conversion/__init__.py +0 -0
  180. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/messages/conversion/alpaca.py +0 -0
  181. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/messages/conversion/conversation_models.py +0 -0
  182. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/messages/conversion/sharegpt/__init__.py +0 -0
  183. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/messages/conversion/sharegpt/function_call_formatter.py +0 -0
  184. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/messages/conversion/sharegpt/hermes/__init__.py +0 -0
  185. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/messages/conversion/sharegpt/hermes/hermes_function_formatter.py +0 -0
  186. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/messages/func_message.py +0 -0
  187. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/models/_utils.py +0 -0
  188. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/models/aiml_model.py +0 -0
  189. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/models/anthropic_model.py +0 -0
  190. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/models/aws_bedrock_model.py +0 -0
  191. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/models/azure_openai_model.py +0 -0
  192. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/models/base_audio_model.py +0 -0
  193. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/models/base_model.py +0 -0
  194. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/models/cohere_model.py +0 -0
  195. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/models/deepseek_model.py +0 -0
  196. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/models/fish_audio_model.py +0 -0
  197. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/models/gemini_model.py +0 -0
  198. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/models/groq_model.py +0 -0
  199. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/models/internlm_model.py +0 -0
  200. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/models/litellm_model.py +0 -0
  201. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/models/lmstudio_model.py +0 -0
  202. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/models/mistral_model.py +0 -0
  203. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/models/model_manager.py +0 -0
  204. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/models/moonshot_model.py +0 -0
  205. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/models/nemotron_model.py +0 -0
  206. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/models/nvidia_model.py +0 -0
  207. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/models/ollama_model.py +0 -0
  208. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/models/openai_audio_models.py +0 -0
  209. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/models/openai_compatible_model.py +0 -0
  210. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/models/openai_model.py +0 -0
  211. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/models/openrouter_model.py +0 -0
  212. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/models/ppio_model.py +0 -0
  213. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/models/reka_model.py +0 -0
  214. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/models/reward/__init__.py +0 -0
  215. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/models/reward/base_reward_model.py +0 -0
  216. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/models/reward/evaluator.py +0 -0
  217. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/models/reward/nemotron_model.py +0 -0
  218. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/models/reward/skywork_model.py +0 -0
  219. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/models/samba_model.py +0 -0
  220. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/models/sglang_model.py +0 -0
  221. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/models/siliconflow_model.py +0 -0
  222. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/models/stub_model.py +0 -0
  223. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/models/togetherai_model.py +0 -0
  224. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/models/vllm_model.py +0 -0
  225. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/models/volcano_model.py +0 -0
  226. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/models/yi_model.py +0 -0
  227. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/models/zhipuai_model.py +0 -0
  228. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/personas/__init__.py +0 -0
  229. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/personas/persona.py +0 -0
  230. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/personas/persona_hub.py +0 -0
  231. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/prompts/__init__.py +0 -0
  232. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/prompts/ai_society.py +0 -0
  233. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/prompts/base.py +0 -0
  234. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/prompts/code.py +0 -0
  235. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/prompts/evaluation.py +0 -0
  236. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/prompts/generate_text_embedding_data.py +0 -0
  237. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/prompts/image_craft.py +0 -0
  238. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/prompts/misalignment.py +0 -0
  239. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/prompts/multi_condition_image_craft.py +0 -0
  240. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/prompts/object_recognition.py +0 -0
  241. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/prompts/persona_hub.py +0 -0
  242. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/prompts/prompt_templates.py +0 -0
  243. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/prompts/role_description_prompt_template.py +0 -0
  244. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/prompts/solution_extraction.py +0 -0
  245. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/prompts/task_prompt_template.py +0 -0
  246. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/prompts/translation.py +0 -0
  247. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/prompts/video_description_prompt.py +0 -0
  248. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/py.typed +0 -0
  249. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/responses/__init__.py +0 -0
  250. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/responses/agent_responses.py +0 -0
  251. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/retrievers/__init__.py +0 -0
  252. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/retrievers/auto_retriever.py +0 -0
  253. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/retrievers/base.py +0 -0
  254. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/retrievers/bm25_retriever.py +0 -0
  255. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/retrievers/cohere_rerank_retriever.py +0 -0
  256. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/retrievers/hybrid_retrival.py +0 -0
  257. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/retrievers/vector_retriever.py +0 -0
  258. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/runtime/__init__.py +0 -0
  259. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/runtime/api.py +0 -0
  260. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/runtime/base.py +0 -0
  261. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/runtime/configs.py +0 -0
  262. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/runtime/docker_runtime.py +0 -0
  263. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/runtime/llm_guard_runtime.py +0 -0
  264. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/runtime/remote_http_runtime.py +0 -0
  265. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/runtime/ubuntu_docker_runtime.py +0 -0
  266. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/runtime/utils/__init__.py +0 -0
  267. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/runtime/utils/function_risk_toolkit.py +0 -0
  268. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/runtime/utils/ignore_risk_toolkit.py +0 -0
  269. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/schemas/__init__.py +0 -0
  270. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/schemas/base.py +0 -0
  271. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/schemas/openai_converter.py +0 -0
  272. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/schemas/outlines_converter.py +0 -0
  273. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/societies/__init__.py +0 -0
  274. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/societies/babyagi_playing.py +0 -0
  275. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/societies/role_playing.py +0 -0
  276. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/societies/workforce/__init__.py +0 -0
  277. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/societies/workforce/base.py +0 -0
  278. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/societies/workforce/task_channel.py +0 -0
  279. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/societies/workforce/utils.py +0 -0
  280. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/societies/workforce/worker.py +0 -0
  281. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/storages/__init__.py +0 -0
  282. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/storages/graph_storages/__init__.py +0 -0
  283. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/storages/graph_storages/base.py +0 -0
  284. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/storages/graph_storages/graph_element.py +0 -0
  285. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/storages/graph_storages/nebula_graph.py +0 -0
  286. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/storages/graph_storages/neo4j_graph.py +0 -0
  287. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/storages/key_value_storages/__init__.py +0 -0
  288. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/storages/key_value_storages/base.py +0 -0
  289. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/storages/key_value_storages/in_memory.py +0 -0
  290. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/storages/key_value_storages/json.py +0 -0
  291. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/storages/key_value_storages/mem0_cloud.py +0 -0
  292. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/storages/key_value_storages/redis.py +0 -0
  293. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/storages/object_storages/__init__.py +0 -0
  294. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/storages/object_storages/amazon_s3.py +0 -0
  295. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/storages/object_storages/azure_blob.py +0 -0
  296. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/storages/object_storages/base.py +0 -0
  297. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/storages/object_storages/google_cloud.py +0 -0
  298. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/storages/vectordb_storages/__init__.py +0 -0
  299. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/storages/vectordb_storages/base.py +0 -0
  300. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/storages/vectordb_storages/oceanbase.py +0 -0
  301. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/storages/vectordb_storages/qdrant.py +0 -0
  302. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/storages/vectordb_storages/tidb.py +0 -0
  303. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/tasks/__init__.py +0 -0
  304. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/tasks/task.py +0 -0
  305. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/tasks/task_prompt.py +0 -0
  306. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/terminators/__init__.py +0 -0
  307. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/terminators/base.py +0 -0
  308. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/terminators/response_terminator.py +0 -0
  309. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/terminators/token_limit_terminator.py +0 -0
  310. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/toolkits/__init__.py +0 -0
  311. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/toolkits/arxiv_toolkit.py +0 -0
  312. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/toolkits/ask_news_toolkit.py +0 -0
  313. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/toolkits/audio_analysis_toolkit.py +0 -0
  314. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/toolkits/base.py +0 -0
  315. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/toolkits/code_execution.py +0 -0
  316. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/toolkits/dalle_toolkit.py +0 -0
  317. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/toolkits/dappier_toolkit.py +0 -0
  318. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/toolkits/data_commons_toolkit.py +0 -0
  319. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/toolkits/excel_toolkit.py +0 -0
  320. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/toolkits/file_write_toolkit.py +0 -0
  321. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/toolkits/function_tool.py +0 -0
  322. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/toolkits/github_toolkit.py +0 -0
  323. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/toolkits/google_calendar_toolkit.py +0 -0
  324. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/toolkits/google_maps_toolkit.py +0 -0
  325. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/toolkits/google_scholar_toolkit.py +0 -0
  326. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/toolkits/human_toolkit.py +0 -0
  327. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/toolkits/image_analysis_toolkit.py +0 -0
  328. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/toolkits/jina_reranker_toolkit.py +0 -0
  329. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/toolkits/linkedin_toolkit.py +0 -0
  330. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/toolkits/math_toolkit.py +0 -0
  331. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/toolkits/mcp_toolkit.py +0 -0
  332. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/toolkits/memory_toolkit.py +0 -0
  333. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/toolkits/meshy_toolkit.py +0 -0
  334. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/toolkits/mineru_toolkit.py +0 -0
  335. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/toolkits/networkx_toolkit.py +0 -0
  336. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/toolkits/notion_toolkit.py +0 -0
  337. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/toolkits/open_api_specs/biztoc/__init__.py +0 -0
  338. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/toolkits/open_api_specs/biztoc/ai-plugin.json +0 -0
  339. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/toolkits/open_api_specs/biztoc/openapi.yaml +0 -0
  340. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/toolkits/open_api_specs/coursera/__init__.py +0 -0
  341. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/toolkits/open_api_specs/coursera/openapi.yaml +0 -0
  342. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/toolkits/open_api_specs/create_qr_code/__init__.py +0 -0
  343. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/toolkits/open_api_specs/create_qr_code/openapi.yaml +0 -0
  344. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/toolkits/open_api_specs/klarna/__init__.py +0 -0
  345. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/toolkits/open_api_specs/klarna/openapi.yaml +0 -0
  346. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/toolkits/open_api_specs/nasa_apod/__init__.py +0 -0
  347. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/toolkits/open_api_specs/nasa_apod/openapi.yaml +0 -0
  348. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/toolkits/open_api_specs/outschool/__init__.py +0 -0
  349. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/toolkits/open_api_specs/outschool/ai-plugin.json +0 -0
  350. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/toolkits/open_api_specs/outschool/openapi.yaml +0 -0
  351. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/toolkits/open_api_specs/outschool/paths/__init__.py +0 -0
  352. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/toolkits/open_api_specs/outschool/paths/get_classes.py +0 -0
  353. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/toolkits/open_api_specs/outschool/paths/search_teachers.py +0 -0
  354. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/toolkits/open_api_specs/security_config.py +0 -0
  355. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/toolkits/open_api_specs/speak/__init__.py +0 -0
  356. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/toolkits/open_api_specs/speak/openapi.yaml +0 -0
  357. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/toolkits/open_api_specs/web_scraper/__init__.py +0 -0
  358. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/toolkits/open_api_specs/web_scraper/ai-plugin.json +0 -0
  359. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/toolkits/open_api_specs/web_scraper/openapi.yaml +0 -0
  360. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/toolkits/open_api_specs/web_scraper/paths/__init__.py +0 -0
  361. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/toolkits/open_api_specs/web_scraper/paths/scraper.py +0 -0
  362. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/toolkits/open_api_toolkit.py +0 -0
  363. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/toolkits/openai_agent_toolkit.py +0 -0
  364. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/toolkits/openbb_toolkit.py +0 -0
  365. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/toolkits/page_script.js +0 -0
  366. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/toolkits/pubmed_toolkit.py +0 -0
  367. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/toolkits/pyautogui_toolkit.py +0 -0
  368. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/toolkits/reddit_toolkit.py +0 -0
  369. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/toolkits/retrieval_toolkit.py +0 -0
  370. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/toolkits/search_toolkit.py +0 -0
  371. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/toolkits/searxng_toolkit.py +0 -0
  372. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/toolkits/semantic_scholar_toolkit.py +0 -0
  373. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/toolkits/slack_toolkit.py +0 -0
  374. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/toolkits/stripe_toolkit.py +0 -0
  375. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/toolkits/sympy_toolkit.py +0 -0
  376. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/toolkits/terminal_toolkit.py +0 -0
  377. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/toolkits/thinking_toolkit.py +0 -0
  378. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/toolkits/twitter_toolkit.py +0 -0
  379. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/toolkits/video_analysis_toolkit.py +0 -0
  380. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/toolkits/video_download_toolkit.py +0 -0
  381. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/toolkits/weather_toolkit.py +0 -0
  382. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/toolkits/whatsapp_toolkit.py +0 -0
  383. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/toolkits/zapier_toolkit.py +0 -0
  384. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/types/__init__.py +0 -0
  385. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/types/agents/__init__.py +0 -0
  386. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/types/agents/tool_calling_record.py +0 -0
  387. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/types/openai_types.py +0 -0
  388. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/utils/async_func.py +0 -0
  389. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/utils/chunker/__init__.py +0 -0
  390. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/utils/chunker/base.py +0 -0
  391. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/utils/chunker/code_chunker.py +0 -0
  392. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/utils/chunker/uio_chunker.py +0 -0
  393. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/utils/commons.py +0 -0
  394. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/utils/constants.py +0 -0
  395. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/utils/deduplication.py +0 -0
  396. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/utils/response_format.py +0 -0
  397. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/utils/token_counting.py +0 -0
  398. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/verifiers/base.py +0 -0
  399. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/verifiers/math_verifier.py +0 -0
  400. {camel_ai-0.2.48 → camel_ai-0.2.50}/camel/verifiers/models.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: camel-ai
3
- Version: 0.2.48
3
+ Version: 0.2.50
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
@@ -56,6 +56,7 @@ Requires-Dist: google-cloud-storage<3,>=2.18.0; extra == 'all'
56
56
  Requires-Dist: googlemaps<5,>=4.10.0; extra == 'all'
57
57
  Requires-Dist: gradio<4,>=3; extra == 'all'
58
58
  Requires-Dist: html2text>=2024.2.26; extra == 'all'
59
+ Requires-Dist: ibm-watsonx-ai>=1.3.11; extra == 'all'
59
60
  Requires-Dist: imageio[pyav]<3,>=2.34.2; extra == 'all'
60
61
  Requires-Dist: ipykernel<7,>=6.0.0; extra == 'all'
61
62
  Requires-Dist: jupyter-client<9,>=8.6.2; extra == 'all'
@@ -219,6 +220,7 @@ Provides-Extra: model-platforms
219
220
  Requires-Dist: anthropic<0.50.0,>=0.47.0; extra == 'model-platforms'
220
221
  Requires-Dist: cohere<6,>=5.11.0; extra == 'model-platforms'
221
222
  Requires-Dist: fish-audio-sdk<2025,>=2024.12.5; extra == 'model-platforms'
223
+ Requires-Dist: ibm-watsonx-ai>=1.3.11; extra == 'model-platforms'
222
224
  Requires-Dist: litellm<2,>=1.38.1; extra == 'model-platforms'
223
225
  Requires-Dist: mistralai<2,>=1.1.0; extra == 'model-platforms'
224
226
  Requires-Dist: reka-api<4,>=3.0.8; extra == 'model-platforms'
@@ -249,6 +251,7 @@ Requires-Dist: pandasai<3,>=2.3.0; extra == 'owl'
249
251
  Requires-Dist: pillow<11.0.0,>=10.1.0; extra == 'owl'
250
252
  Requires-Dist: playwright>=1.50.0; extra == 'owl'
251
253
  Requires-Dist: prance<24,>=23.6.21.0; extra == 'owl'
254
+ Requires-Dist: pyautogui<0.10,>=0.9.54; extra == 'owl'
252
255
  Requires-Dist: pydub<0.26,>=0.25.1; extra == 'owl'
253
256
  Requires-Dist: pymupdf<2,>=1.22.5; extra == 'owl'
254
257
  Requires-Dist: python-dotenv<2,>=1.0.0; extra == 'owl'
@@ -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.48'
17
+ __version__ = '0.2.50'
18
18
 
19
19
  __all__ = [
20
20
  '__version__',
@@ -28,6 +28,7 @@ from typing import (
28
28
  List,
29
29
  Optional,
30
30
  Set,
31
+ Tuple,
31
32
  Type,
32
33
  Union,
33
34
  )
@@ -78,7 +79,6 @@ from camel.utils import get_model_encoding
78
79
  if TYPE_CHECKING:
79
80
  from camel.terminators import ResponseTerminator
80
81
 
81
-
82
82
  logger = logging.getLogger(__name__)
83
83
 
84
84
  # AgentOps decorator setting
@@ -110,10 +110,17 @@ class ChatAgent(BaseAgent):
110
110
 
111
111
  Args:
112
112
  system_message (Union[BaseMessage, str], optional): The system message
113
- for the chat agent.
114
- model (BaseModelBackend, optional): The model backend to use for
115
- generating responses. (default: :obj:`ModelPlatformType.DEFAULT`
116
- with `ModelType.DEFAULT`)
113
+ for the chat agent. (default: :obj:`None`)
114
+ model (Union[BaseModelBackend, Tuple[str, str], str, ModelType,
115
+ Tuple[ModelPlatformType, ModelType], List[BaseModelBackend],
116
+ List[str], List[ModelType], List[Tuple[str, str]],
117
+ List[Tuple[ModelPlatformType, ModelType]]], optional):
118
+ The model backend(s) to use. Can be a single instance,
119
+ a specification (string, enum, tuple), or a list of instances
120
+ or specifications to be managed by `ModelManager`. If a list of
121
+ specifications (not `BaseModelBackend` instances) is provided,
122
+ they will be instantiated using `ModelFactory`. (default:
123
+ :obj:`ModelPlatformType.DEFAULT` with `ModelType.DEFAULT`)
117
124
  memory (AgentMemory, optional): The agent memory for managing chat
118
125
  messages. If `None`, a :obj:`ChatHistoryMemory` will be used.
119
126
  (default: :obj:`None`)
@@ -150,7 +157,18 @@ class ChatAgent(BaseAgent):
150
157
  self,
151
158
  system_message: Optional[Union[BaseMessage, str]] = None,
152
159
  model: Optional[
153
- Union[BaseModelBackend, List[BaseModelBackend]]
160
+ Union[
161
+ BaseModelBackend,
162
+ Tuple[str, str],
163
+ str,
164
+ ModelType,
165
+ Tuple[ModelPlatformType, ModelType],
166
+ List[BaseModelBackend],
167
+ List[str],
168
+ List[ModelType],
169
+ List[Tuple[str, str]],
170
+ List[Tuple[ModelPlatformType, ModelType]],
171
+ ]
154
172
  ] = None,
155
173
  memory: Optional[AgentMemory] = None,
156
174
  message_window_size: Optional[int] = None,
@@ -165,19 +183,14 @@ class ChatAgent(BaseAgent):
165
183
  single_iteration: bool = False,
166
184
  agent_id: Optional[str] = None,
167
185
  ) -> None:
168
- # Set up model backend
186
+ # Resolve model backends and set up model manager
187
+ resolved_models = self._resolve_models(model)
169
188
  self.model_backend = ModelManager(
170
- (
171
- model
172
- if model is not None
173
- else ModelFactory.create(
174
- model_platform=ModelPlatformType.DEFAULT,
175
- model_type=ModelType.DEFAULT,
176
- )
177
- ),
189
+ resolved_models,
178
190
  scheduling_strategy=scheduling_strategy,
179
191
  )
180
192
  self.model_type = self.model_backend.model_type
193
+
181
194
  # Assign unique ID
182
195
  self.agent_id = agent_id if agent_id else str(uuid.uuid4())
183
196
 
@@ -247,6 +260,137 @@ class ChatAgent(BaseAgent):
247
260
  for terminator in self.response_terminators:
248
261
  terminator.reset()
249
262
 
263
+ def _resolve_models(
264
+ self,
265
+ model: Optional[
266
+ Union[
267
+ BaseModelBackend,
268
+ Tuple[str, str],
269
+ str,
270
+ ModelType,
271
+ Tuple[ModelPlatformType, ModelType],
272
+ List[BaseModelBackend],
273
+ List[str],
274
+ List[ModelType],
275
+ List[Tuple[str, str]],
276
+ List[Tuple[ModelPlatformType, ModelType]],
277
+ ]
278
+ ],
279
+ ) -> Union[BaseModelBackend, List[BaseModelBackend]]:
280
+ r"""Resolves model specifications into model backend instances.
281
+
282
+ This method handles various input formats for model specifications and
283
+ returns the appropriate model backend(s).
284
+
285
+ Args:
286
+ model: Model specification in various formats including single
287
+ model, list of models, or model type specifications.
288
+
289
+ Returns:
290
+ Union[BaseModelBackend, List[BaseModelBackend]]: Resolved model
291
+ backend(s).
292
+
293
+ Raises:
294
+ TypeError: If the model specification format is not supported.
295
+ """
296
+ if model is None:
297
+ # Default single model if none provided
298
+ return ModelFactory.create(
299
+ model_platform=ModelPlatformType.DEFAULT,
300
+ model_type=ModelType.DEFAULT,
301
+ )
302
+ elif isinstance(model, BaseModelBackend):
303
+ # Already a single pre-instantiated model
304
+ return model
305
+ elif isinstance(model, list):
306
+ return self._resolve_model_list(model)
307
+ elif isinstance(model, (ModelType, str)):
308
+ # Single string or ModelType -> use default platform
309
+ model_platform = ModelPlatformType.DEFAULT
310
+ model_type = model
311
+ logger.warning(
312
+ f"Model type '{model_type}' provided without a platform. "
313
+ f"Using platform '{model_platform}'. Note: platform "
314
+ "is not automatically inferred based on model type."
315
+ )
316
+ return ModelFactory.create(
317
+ model_platform=model_platform,
318
+ model_type=model_type,
319
+ )
320
+ elif isinstance(model, tuple) and len(model) == 2:
321
+ # Single tuple (platform, type)
322
+ model_platform, model_type = model # type: ignore[assignment]
323
+ return ModelFactory.create(
324
+ model_platform=model_platform,
325
+ model_type=model_type,
326
+ )
327
+ else:
328
+ raise TypeError(
329
+ f"Unsupported type for model parameter: {type(model)}"
330
+ )
331
+
332
+ def _resolve_model_list(
333
+ self, model_list: list
334
+ ) -> Union[BaseModelBackend, List[BaseModelBackend]]:
335
+ r"""Resolves a list of model specifications into model backend
336
+ instances.
337
+
338
+ Args:
339
+ model_list (list): List of model specifications in various formats.
340
+
341
+ Returns:
342
+ Union[BaseModelBackend, List[BaseModelBackend]]: Resolved model
343
+ backend(s).
344
+
345
+ Raises:
346
+ TypeError: If the list elements format is not supported.
347
+ """
348
+ if not model_list: # Handle empty list
349
+ logger.warning(
350
+ "Empty list provided for model, using default model."
351
+ )
352
+ return ModelFactory.create(
353
+ model_platform=ModelPlatformType.DEFAULT,
354
+ model_type=ModelType.DEFAULT,
355
+ )
356
+ elif isinstance(model_list[0], BaseModelBackend):
357
+ # List of pre-instantiated models
358
+ return model_list # type: ignore[return-value]
359
+ elif isinstance(model_list[0], (str, ModelType)):
360
+ # List of strings or ModelTypes -> use default platform
361
+ model_platform = ModelPlatformType.DEFAULT
362
+ logger.warning(
363
+ f"List of model types {model_list} provided without "
364
+ f"platforms. Using platform '{model_platform}' for all. "
365
+ "Note: platform is not automatically inferred based on "
366
+ "model type."
367
+ )
368
+ resolved_models_list = []
369
+ for model_type_item in model_list:
370
+ resolved_models_list.append(
371
+ ModelFactory.create(
372
+ model_platform=model_platform,
373
+ model_type=model_type_item, # type: ignore[arg-type]
374
+ )
375
+ )
376
+ return resolved_models_list
377
+ elif isinstance(model_list[0], tuple) and len(model_list[0]) == 2:
378
+ # List of tuples (platform, type)
379
+ resolved_models_list = []
380
+ for model_spec in model_list:
381
+ platform, type_ = model_spec[0], model_spec[1] # type: ignore[index]
382
+ resolved_models_list.append(
383
+ ModelFactory.create(
384
+ model_platform=platform, model_type=type_
385
+ )
386
+ )
387
+ return resolved_models_list
388
+ else:
389
+ raise TypeError(
390
+ "Unsupported type for list elements in model: "
391
+ f"{type(model_list[0])}"
392
+ )
393
+
250
394
  @property
251
395
  def system_message(self) -> Optional[BaseMessage]:
252
396
  r"""Returns the system message for the agent."""
@@ -25,6 +25,8 @@ from .lmstudio_config import LMSTUDIO_API_PARAMS, LMStudioConfig
25
25
  from .mistral_config import MISTRAL_API_PARAMS, MistralConfig
26
26
  from .modelscope_config import MODELSCOPE_API_PARAMS, ModelScopeConfig
27
27
  from .moonshot_config import MOONSHOT_API_PARAMS, MoonshotConfig
28
+ from .netmind_config import NETMIND_API_PARAMS, NetmindConfig
29
+ from .novita_config import NOVITA_API_PARAMS, NovitaConfig
28
30
  from .nvidia_config import NVIDIA_API_PARAMS, NvidiaConfig
29
31
  from .ollama_config import OLLAMA_API_PARAMS, OllamaConfig
30
32
  from .openai_config import OPENAI_API_PARAMS, ChatGPTConfig
@@ -42,6 +44,7 @@ from .sglang_config import SGLANG_API_PARAMS, SGLangConfig
42
44
  from .siliconflow_config import SILICONFLOW_API_PARAMS, SiliconFlowConfig
43
45
  from .togetherai_config import TOGETHERAI_API_PARAMS, TogetherAIConfig
44
46
  from .vllm_config import VLLM_API_PARAMS, VLLMConfig
47
+ from .watsonx_config import WATSONX_API_PARAMS, WatsonXConfig
45
48
  from .yi_config import YI_API_PARAMS, YiConfig
46
49
  from .zhipuai_config import ZHIPUAI_API_PARAMS, ZhipuAIConfig
47
50
 
@@ -55,6 +58,8 @@ __all__ = [
55
58
  'GroqConfig',
56
59
  'LiteLLMConfig',
57
60
  'LITELLM_API_PARAMS',
61
+ 'NetmindConfig',
62
+ 'NETMIND_API_PARAMS',
58
63
  'NvidiaConfig',
59
64
  'NVIDIA_API_PARAMS',
60
65
  'OllamaConfig',
@@ -95,6 +100,8 @@ __all__ = [
95
100
  "MOONSHOT_API_PARAMS",
96
101
  'ModelScopeConfig',
97
102
  'MODELSCOPE_API_PARAMS',
103
+ 'NovitaConfig',
104
+ 'NOVITA_API_PARAMS',
98
105
  'SiliconFlowConfig',
99
106
  'SILICONFLOW_API_PARAMS',
100
107
  'AIMLConfig',
@@ -103,4 +110,6 @@ __all__ = [
103
110
  'OPENROUTER_API_PARAMS',
104
111
  'LMSTUDIO_API_PARAMS',
105
112
  'LMStudioConfig',
113
+ 'WatsonXConfig',
114
+ 'WATSONX_API_PARAMS',
106
115
  ]
@@ -13,7 +13,7 @@
13
13
  # ========= Copyright 2023-2024 @ CAMEL-AI.org. All Rights Reserved. =========
14
14
  from __future__ import annotations
15
15
 
16
- from typing import Optional, Union
16
+ from typing import Any, Dict, Optional, Union
17
17
 
18
18
  from camel.configs.base_config import BaseConfig
19
19
 
@@ -45,6 +45,8 @@ class ModelScopeConfig(BaseConfig):
45
45
  while higher values make it more diverse. (default: :obj:`0.3`)
46
46
  stream (bool, optional): If True, enables streaming output.
47
47
  (default: :obj:`None`)
48
+ extra_body (dict, optional): Extra body parameters to be passed to
49
+ the ModelScope API.
48
50
  """
49
51
 
50
52
  tool_choice: Optional[Union[dict[str, str], str]] = None
@@ -52,6 +54,7 @@ class ModelScopeConfig(BaseConfig):
52
54
  top_p: Optional[float] = None
53
55
  temperature: Optional[float] = None
54
56
  stream: Optional[bool] = None
57
+ extra_body: Optional[Dict[str, Any]] = None
55
58
 
56
59
 
57
60
  MODELSCOPE_API_PARAMS = {
@@ -0,0 +1,82 @@
1
+ # ========= Copyright 2023-2024 @ CAMEL-AI.org. All Rights Reserved. =========
2
+ # Licensed under the Apache License, Version 2.0 (the "License");
3
+ # you may not use this file except in compliance with the License.
4
+ # You may obtain a copy of the License at
5
+ #
6
+ # http://www.apache.org/licenses/LICENSE-2.0
7
+ #
8
+ # Unless required by applicable law or agreed to in writing, software
9
+ # distributed under the License is distributed on an "AS IS" BASIS,
10
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ # See the License for the specific language governing permissions and
12
+ # limitations under the License.
13
+ # ========= Copyright 2023-2024 @ CAMEL-AI.org. All Rights Reserved. =========
14
+ from __future__ import annotations
15
+
16
+ from typing import Dict, List, Optional, Union
17
+
18
+ from pydantic import Field
19
+
20
+ from camel.configs.base_config import BaseConfig
21
+ from camel.types import NotGiven
22
+
23
+
24
+ class NetmindConfig(BaseConfig):
25
+ r"""Defines the parameters for generating chat completions using OpenAI
26
+ compatibility.
27
+
28
+ Reference: https://netmind-power.gitbook.io/netmind-power-documentation/
29
+ api/inference/chat
30
+
31
+ Args:
32
+ presence_penalty (float, optional): Number between :obj:`-2.0` and
33
+ :obj:`2.0`. Positive values penalize new tokens based on whether
34
+ they appear in the text so far, increasing the model's likelihood
35
+ to talk about new topics. See more information about frequency and
36
+ presence penalties. (default: :obj:`None`)
37
+ frequency_penalty (float, optional): Number between :obj:`-2.0` and
38
+ :obj:`2.0`. Positive values penalize new tokens based on their
39
+ existing frequency in the text so far, decreasing the model's
40
+ likelihood to repeat the same line verbatim. See more information
41
+ about frequency and presence penalties. (default: :obj:`None`)
42
+ repetition_penalty (float, optional): Penalizes new tokens based on
43
+ their appearance in the prompt and generated text.
44
+ (default: :obj:`None`)
45
+ stream (bool, optional): Whether to stream the response.
46
+ (default: :obj:`None`)
47
+ temperature (float, optional): Controls randomness in the response.
48
+ Higher values make output more random, lower values make it more
49
+ deterministic. Range: [0.0, 2.0]. (default: :obj:`None`)
50
+ top_p (float, optional): Controls diversity via nucleus sampling.
51
+ Range: [0.0, 1.0]. (default: :obj:`None`)
52
+ logit_bias (dict, optional): Modify the likelihood of specified tokens
53
+ appearing in the completion. Accepts a json object that maps tokens
54
+ (specified by their token ID in the tokenizer) to an associated
55
+ bias value from :obj:`-100` to :obj:`100`. Mathematically, the bias
56
+ is added to the logits generated by the model prior to sampling.
57
+ The exact effect will vary per model, but values between:obj:` -1`
58
+ and :obj:`1` should decrease or increase likelihood of selection;
59
+ values like :obj:`-100` or :obj:`100` should result in a ban or
60
+ exclusive selection of the relevant token. (default: :obj:`None`)
61
+ max_tokens (Union[int, NotGiven], optional): Maximum number of tokens
62
+ to generate. If not provided, model will use its default maximum.
63
+ (default: :obj:`None`)
64
+ stop (Optional[List[str]], optional): List of stop sequences.
65
+ (default: :obj:`None`)
66
+ n (Optional[int], optional): Number of chat completion choices to
67
+ generate for each input message. (default: :obj:`None`)
68
+ """
69
+
70
+ stream: Optional[bool] = Field(default=None)
71
+ temperature: Optional[float] = Field(default=None)
72
+ top_p: Optional[float] = Field(default=None)
73
+ presence_penalty: Optional[float] = Field(default=None)
74
+ frequency_penalty: Optional[float] = Field(default=None)
75
+ repetition_penalty: Optional[float] = Field(default=None)
76
+ max_tokens: Optional[Union[int, NotGiven]] = Field(default=None)
77
+ stop: Optional[List[str]] = Field(default=None)
78
+ n: Optional[int] = Field(default=None)
79
+ logit_bias: Optional[Dict[str, float]] = Field(default=None)
80
+
81
+
82
+ NETMIND_API_PARAMS = {param for param in NetmindConfig.model_fields.keys()}
@@ -0,0 +1,102 @@
1
+ # ========= Copyright 2023-2024 @ CAMEL-AI.org. All Rights Reserved. =========
2
+ # Licensed under the Apache License, Version 2.0 (the "License");
3
+ # you may not use this file except in compliance with the License.
4
+ # You may obtain a copy of the License at
5
+ #
6
+ # http://www.apache.org/licenses/LICENSE-2.0
7
+ #
8
+ # Unless required by applicable law or agreed to in writing, software
9
+ # distributed under the License is distributed on an "AS IS" BASIS,
10
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ # See the License for the specific language governing permissions and
12
+ # limitations under the License.
13
+ # ========= Copyright 2023-2024 @ CAMEL-AI.org. All Rights Reserved. =========
14
+ from __future__ import annotations
15
+
16
+ from typing import Dict, Optional, Sequence, Type, Union
17
+
18
+ from pydantic import BaseModel
19
+
20
+ from camel.configs.base_config import BaseConfig
21
+
22
+
23
+ class NovitaConfig(BaseConfig):
24
+ r"""Defines the parameters for generating chat completions using the
25
+ OpenAI API.
26
+
27
+ Args:
28
+ temperature (float, optional): Sampling temperature to use, between
29
+ :obj:`0` and :obj:`2`. Higher values make the output more random,
30
+ while lower values make it more focused and deterministic.
31
+ (default: :obj:`None`)
32
+ top_p (float, optional): An alternative to sampling with temperature,
33
+ called nucleus sampling, where the model considers the results of
34
+ the tokens with top_p probability mass. So :obj:`0.1` means only
35
+ the tokens comprising the top 10% probability mass are considered.
36
+ (default: :obj:`None`)
37
+ n (int, optional): How many chat completion choices to generate for
38
+ each input message. (default: :obj:`None`)
39
+ response_format (object, optional): An object specifying the format
40
+ that the model must output. Compatible with GPT-4 Turbo and all
41
+ GPT-3.5 Turbo models newer than gpt-3.5-turbo-1106. Setting to
42
+ {"type": "json_object"} enables JSON mode, which guarantees the
43
+ message the model generates is valid JSON. Important: when using
44
+ JSON mode, you must also instruct the model to produce JSON
45
+ yourself via a system or user message. Without this, the model
46
+ may generate an unending stream of whitespace until the generation
47
+ reaches the token limit, resulting in a long-running and seemingly
48
+ "stuck" request. Also note that the message content may be
49
+ partially cut off if finish_reason="length", which indicates the
50
+ generation exceeded max_tokens or the conversation exceeded the
51
+ max context length.
52
+ stream (bool, optional): If True, partial message deltas will be sent
53
+ as data-only server-sent events as they become available.
54
+ (default: :obj:`None`)
55
+ stop (str or list, optional): Up to :obj:`4` sequences where the API
56
+ will stop generating further tokens. (default: :obj:`None`)
57
+ max_tokens (int, optional): The maximum number of tokens to generate
58
+ in the chat completion. The total length of input tokens and
59
+ generated tokens is limited by the model's context length.
60
+ (default: :obj:`None`)
61
+ presence_penalty (float, optional): Number between :obj:`-2.0` and
62
+ :obj:`2.0`. Positive values penalize new tokens based on whether
63
+ they appear in the text so far, increasing the model's likelihood
64
+ to talk about new topics. See more information about frequency and
65
+ presence penalties. (default: :obj:`None`)
66
+ frequency_penalty (float, optional): Number between :obj:`-2.0` and
67
+ :obj:`2.0`. Positive values penalize new tokens based on their
68
+ existing frequency in the text so far, decreasing the model's
69
+ likelihood to repeat the same line verbatim. See more information
70
+ about frequency and presence penalties. (default: :obj:`None`)
71
+ logit_bias (dict, optional): Modify the likelihood of specified tokens
72
+ appearing in the completion. Accepts a json object that maps tokens
73
+ (specified by their token ID in the tokenizer) to an associated
74
+ bias value from :obj:`-100` to :obj:`100`. Mathematically, the bias
75
+ is added to the logits generated by the model prior to sampling.
76
+ The exact effect will vary per model, but values between:obj:` -1`
77
+ and :obj:`1` should decrease or increase likelihood of selection;
78
+ values like :obj:`-100` or :obj:`100` should result in a ban or
79
+ exclusive selection of the relevant token. (default: :obj:`None`)
80
+ user (str, optional): A unique identifier representing your end-user,
81
+ which can help OpenAI to monitor and detect abuse.
82
+ (default: :obj:`None`)
83
+ tools (list[FunctionTool], optional): A list of tools the model may
84
+ call. Currently, only functions are supported as a tool. Use this
85
+ to provide a list of functions the model may generate JSON inputs
86
+ for. A max of 128 functions are supported.
87
+ """
88
+
89
+ temperature: Optional[float] = None
90
+ top_p: Optional[float] = None
91
+ n: Optional[int] = None
92
+ stream: Optional[bool] = None
93
+ stop: Optional[Union[str, Sequence[str]]] = None
94
+ max_tokens: Optional[int] = None
95
+ presence_penalty: Optional[float] = None
96
+ response_format: Optional[Union[Type[BaseModel], Dict]] = None
97
+ frequency_penalty: Optional[float] = None
98
+ logit_bias: Optional[Dict] = None
99
+ user: Optional[str] = None
100
+
101
+
102
+ NOVITA_API_PARAMS = {param for param in NovitaConfig.model_fields.keys()}
@@ -80,12 +80,5 @@ class QwenConfig(BaseConfig):
80
80
  stop: Optional[Union[str, List]] = None
81
81
  extra_body: Optional[Dict[str, Any]] = None
82
82
 
83
- def __init__(self, include_usage: bool = True, **kwargs):
84
- super().__init__(**kwargs)
85
- # Only set stream_options when stream is True
86
- # Otherwise, it will raise error when calling the API
87
- if self.stream:
88
- self.stream_options = {"include_usage": include_usage}
89
-
90
83
 
91
84
  QWEN_API_PARAMS = {param for param in QwenConfig.model_fields.keys()}
@@ -0,0 +1,96 @@
1
+ # ========= Copyright 2023-2024 @ CAMEL-AI.org. All Rights Reserved. =========
2
+ # Licensed under the Apache License, Version 2.0 (the "License");
3
+ # you may not use this file except in compliance with the License.
4
+ # You may obtain a copy of the License at
5
+ #
6
+ # http://www.apache.org/licenses/LICENSE-2.0
7
+ #
8
+ # Unless required by applicable law or agreed to in writing, software
9
+ # distributed under the License is distributed on an "AS IS" BASIS,
10
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ # See the License for the specific language governing permissions and
12
+ # limitations under the License.
13
+ # ========= Copyright 2023-2024 @ CAMEL-AI.org. All Rights Reserved. =========
14
+ from __future__ import annotations
15
+
16
+ from typing import Dict, List, Literal, Optional
17
+
18
+ from camel.configs.base_config import BaseConfig
19
+
20
+
21
+ class WatsonXConfig(BaseConfig):
22
+ r"""Defines the parameters for generating chat completions using the
23
+ IBM WatsonX API.
24
+
25
+ See: https://ibm.github.io/watsonx-ai-python-sdk/fm_schema.html
26
+
27
+ Args:
28
+ frequency_penalty (float, optional): Number between -2.0 and 2.0.
29
+ Positive values penalize new tokens based on their existing
30
+ frequency in the text so far, decreasing the model's likelihood
31
+ to repeat the same line verbatim.
32
+ (default: :obj:`None`)
33
+ logprobs (bool, optional): Whether to return log probabilities of the
34
+ output tokens or not. If true, returns the log probabilities of
35
+ each output token returned in the content of message.
36
+ (default: :obj:`None`)
37
+ top_logprobs (int, optional): An integer between 0 and 20 specifying
38
+ the number of most likely tokens to return at each token position,
39
+ each with an associated log probability.
40
+ (default: :obj:`None`)
41
+ presence_penalty (float, optional): Number between -2.0 and 2.0.
42
+ Positive values penalize new tokens based on whether they appear
43
+ in the text so far, increasing the model's likelihood to talk
44
+ about new topics.
45
+ (default: :obj:`None`)
46
+ temperature (float, optional): What sampling temperature to use,
47
+ between 0 and 2. Higher values like 0.8 will make the output
48
+ more random, while lower values like 0.2 will make it more focused
49
+ and deterministic. We generally recommend altering this or top_p
50
+ but not both.
51
+ (default: :obj:`None`)
52
+ max_tokens (int, optional): The maximum number of tokens to generate
53
+ in the chat completion. The total length of input tokens and
54
+ generated tokens is limited by the model's context length.
55
+ (default: :obj:`None`)
56
+ time_limit (int, optional): The maximum amount of time in seconds
57
+ that the API will spend generating a response.
58
+ (default: :obj:`None`)
59
+ top_p (float, optional): Controls the randomness of the generated
60
+ results. Lower values lead to less randomness, while higher
61
+ values increase randomness. (default: :obj:`None`)
62
+ n (int, optional): How many chat completion choices to generate for
63
+ each input message. Note that you will be charged based on the
64
+ total number of tokens generated.
65
+ (default: :obj:`None`)
66
+ logit_biaslogit_bias (Optional[dict], optional): Modify probability
67
+ of specific tokens appearing in the completion.
68
+ (default: :obj:`None`)
69
+ seed (int, optional): If specified, the system will make a best effort
70
+ to sample deterministically, such that repeated requests with the
71
+ same seed and parameters should return the same result.
72
+ (default: :obj:`None`)
73
+ stop (List[str], optional): Up to 4 sequences where the API will stop
74
+ generating further tokens.
75
+ (default: :obj:`None`)
76
+ tool_choice_options (Literal["none", "auto"], optional): The options
77
+ for the tool choice.
78
+ (default: :obj:`"auto"`)
79
+ """
80
+
81
+ frequency_penalty: Optional[float] = None
82
+ logprobs: Optional[bool] = None
83
+ top_logprobs: Optional[int] = None
84
+ presence_penalty: Optional[float] = None
85
+ temperature: Optional[float] = None
86
+ max_tokens: Optional[int] = None
87
+ time_limit: Optional[int] = None
88
+ top_p: Optional[float] = None
89
+ n: Optional[int] = None
90
+ logit_bias: Optional[Dict] = None
91
+ seed: Optional[int] = None
92
+ stop: Optional[List[str]] = None
93
+ tool_choice_options: Literal["none", "auto"] = "auto"
94
+
95
+
96
+ WATSONX_API_PARAMS = {param for param in WatsonXConfig.model_fields.keys()}
@@ -31,6 +31,8 @@ from .model_manager import ModelManager, ModelProcessingError
31
31
  from .modelscope_model import ModelScopeModel
32
32
  from .moonshot_model import MoonshotModel
33
33
  from .nemotron_model import NemotronModel
34
+ from .netmind_model import NetmindModel
35
+ from .novita_model import NovitaModel
34
36
  from .nvidia_model import NvidiaModel
35
37
  from .ollama_model import OllamaModel
36
38
  from .openai_audio_models import OpenAIAudioModels
@@ -47,6 +49,7 @@ from .stub_model import StubModel
47
49
  from .togetherai_model import TogetherAIModel
48
50
  from .vllm_model import VLLMModel
49
51
  from .volcano_model import VolcanoModel
52
+ from .watsonx_model import WatsonXModel
50
53
  from .yi_model import YiModel
51
54
  from .zhipuai_model import ZhipuAIModel
52
55
 
@@ -65,7 +68,9 @@ __all__ = [
65
68
  'ModelManager',
66
69
  'LiteLLMModel',
67
70
  'OpenAIAudioModels',
71
+ 'NetmindModel',
68
72
  'NemotronModel',
73
+ 'NovitaModel',
69
74
  'NvidiaModel',
70
75
  'OllamaModel',
71
76
  'VLLMModel',
@@ -90,4 +95,5 @@ __all__ = [
90
95
  'SiliconFlowModel',
91
96
  'VolcanoModel',
92
97
  'LMStudioModel',
98
+ 'WatsonXModel',
93
99
  ]