camel-ai 0.2.9__py3-none-any.whl → 0.2.10__py3-none-any.whl

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 (236) hide show
  1. camel/__init__.py +5 -5
  2. camel/agents/__init__.py +4 -4
  3. camel/agents/base.py +4 -4
  4. camel/agents/chat_agent.py +32 -37
  5. camel/agents/critic_agent.py +4 -4
  6. camel/agents/deductive_reasoner_agent.py +4 -4
  7. camel/agents/embodied_agent.py +4 -4
  8. camel/agents/knowledge_graph_agent.py +4 -4
  9. camel/agents/role_assignment_agent.py +4 -4
  10. camel/agents/search_agent.py +4 -4
  11. camel/agents/task_agent.py +4 -4
  12. camel/agents/tool_agents/__init__.py +4 -4
  13. camel/agents/tool_agents/base.py +4 -4
  14. camel/agents/tool_agents/hugging_face_tool_agent.py +4 -4
  15. camel/bots/__init__.py +4 -4
  16. camel/bots/discord_app.py +4 -4
  17. camel/bots/slack/__init__.py +4 -4
  18. camel/bots/slack/models.py +4 -4
  19. camel/bots/slack/slack_app.py +4 -4
  20. camel/bots/telegram_bot.py +4 -4
  21. camel/configs/__init__.py +10 -4
  22. camel/configs/anthropic_config.py +4 -4
  23. camel/configs/base_config.py +4 -4
  24. camel/configs/cohere_config.py +76 -0
  25. camel/configs/deepseek_config.py +134 -0
  26. camel/configs/gemini_config.py +85 -127
  27. camel/configs/groq_config.py +4 -4
  28. camel/configs/litellm_config.py +4 -4
  29. camel/configs/mistral_config.py +4 -4
  30. camel/configs/ollama_config.py +4 -4
  31. camel/configs/openai_config.py +32 -7
  32. camel/configs/qwen_config.py +4 -4
  33. camel/configs/reka_config.py +4 -4
  34. camel/configs/samba_config.py +4 -4
  35. camel/configs/togetherai_config.py +4 -4
  36. camel/configs/vllm_config.py +4 -4
  37. camel/configs/yi_config.py +4 -4
  38. camel/configs/zhipuai_config.py +4 -4
  39. camel/embeddings/__init__.py +6 -4
  40. camel/embeddings/base.py +4 -4
  41. camel/embeddings/mistral_embedding.py +4 -4
  42. camel/embeddings/openai_compatible_embedding.py +91 -0
  43. camel/embeddings/openai_embedding.py +4 -4
  44. camel/embeddings/sentence_transformers_embeddings.py +4 -4
  45. camel/embeddings/vlm_embedding.py +4 -4
  46. camel/generators.py +4 -4
  47. camel/human.py +4 -4
  48. camel/interpreters/__init__.py +4 -4
  49. camel/interpreters/base.py +4 -4
  50. camel/interpreters/docker_interpreter.py +4 -4
  51. camel/interpreters/internal_python_interpreter.py +4 -4
  52. camel/interpreters/interpreter_error.py +4 -4
  53. camel/interpreters/ipython_interpreter.py +4 -4
  54. camel/interpreters/subprocess_interpreter.py +4 -4
  55. camel/loaders/__init__.py +4 -4
  56. camel/loaders/apify_reader.py +4 -4
  57. camel/loaders/base_io.py +4 -4
  58. camel/loaders/chunkr_reader.py +4 -4
  59. camel/loaders/firecrawl_reader.py +4 -4
  60. camel/loaders/jina_url_reader.py +4 -4
  61. camel/loaders/unstructured_io.py +4 -4
  62. camel/memories/__init__.py +4 -4
  63. camel/memories/agent_memories.py +4 -4
  64. camel/memories/base.py +4 -4
  65. camel/memories/blocks/__init__.py +4 -4
  66. camel/memories/blocks/chat_history_block.py +4 -4
  67. camel/memories/blocks/vectordb_block.py +4 -4
  68. camel/memories/context_creators/__init__.py +4 -4
  69. camel/memories/context_creators/score_based.py +4 -4
  70. camel/memories/records.py +4 -4
  71. camel/messages/__init__.py +20 -4
  72. camel/messages/base.py +108 -4
  73. camel/messages/conversion/__init__.py +29 -0
  74. camel/messages/conversion/models.py +178 -0
  75. camel/messages/conversion/sharegpt/__init__.py +20 -0
  76. camel/messages/conversion/sharegpt/function_call_formatter.py +49 -0
  77. camel/messages/conversion/sharegpt/hermes/__init__.py +19 -0
  78. camel/messages/conversion/sharegpt/hermes/hermes_function_formatter.py +128 -0
  79. camel/messages/func_message.py +50 -4
  80. camel/models/__init__.py +8 -4
  81. camel/models/anthropic_model.py +4 -4
  82. camel/models/azure_openai_model.py +4 -4
  83. camel/models/base_model.py +4 -4
  84. camel/models/cohere_model.py +282 -0
  85. camel/models/deepseek_model.py +139 -0
  86. camel/models/gemini_model.py +61 -146
  87. camel/models/groq_model.py +4 -4
  88. camel/models/litellm_model.py +4 -4
  89. camel/models/mistral_model.py +4 -4
  90. camel/models/model_factory.py +10 -4
  91. camel/models/nemotron_model.py +4 -4
  92. camel/models/ollama_model.py +4 -4
  93. camel/models/openai_audio_models.py +4 -4
  94. camel/models/openai_compatible_model.py +4 -4
  95. camel/models/openai_model.py +42 -4
  96. camel/models/qwen_model.py +4 -4
  97. camel/models/reka_model.py +4 -4
  98. camel/models/samba_model.py +6 -5
  99. camel/models/stub_model.py +4 -4
  100. camel/models/togetherai_model.py +4 -4
  101. camel/models/vllm_model.py +4 -4
  102. camel/models/yi_model.py +4 -4
  103. camel/models/zhipuai_model.py +4 -4
  104. camel/personas/__init__.py +17 -0
  105. camel/personas/persona.py +103 -0
  106. camel/personas/persona_hub.py +293 -0
  107. camel/prompts/__init__.py +6 -4
  108. camel/prompts/ai_society.py +4 -4
  109. camel/prompts/base.py +4 -4
  110. camel/prompts/code.py +4 -4
  111. camel/prompts/evaluation.py +4 -4
  112. camel/prompts/generate_text_embedding_data.py +4 -4
  113. camel/prompts/image_craft.py +4 -4
  114. camel/prompts/misalignment.py +4 -4
  115. camel/prompts/multi_condition_image_craft.py +4 -4
  116. camel/prompts/object_recognition.py +4 -4
  117. camel/prompts/persona_hub.py +61 -0
  118. camel/prompts/prompt_templates.py +4 -4
  119. camel/prompts/role_description_prompt_template.py +4 -4
  120. camel/prompts/solution_extraction.py +4 -4
  121. camel/prompts/task_prompt_template.py +4 -4
  122. camel/prompts/translation.py +4 -4
  123. camel/prompts/video_description_prompt.py +4 -4
  124. camel/responses/__init__.py +4 -4
  125. camel/responses/agent_responses.py +4 -4
  126. camel/retrievers/__init__.py +4 -4
  127. camel/retrievers/auto_retriever.py +4 -4
  128. camel/retrievers/base.py +4 -4
  129. camel/retrievers/bm25_retriever.py +4 -4
  130. camel/retrievers/cohere_rerank_retriever.py +7 -9
  131. camel/retrievers/vector_retriever.py +4 -4
  132. camel/runtime/__init__.py +29 -0
  133. camel/runtime/api.py +93 -0
  134. camel/runtime/base.py +45 -0
  135. camel/runtime/configs.py +56 -0
  136. camel/runtime/docker_runtime.py +404 -0
  137. camel/runtime/llm_guard_runtime.py +199 -0
  138. camel/runtime/remote_http_runtime.py +204 -0
  139. camel/runtime/utils/__init__.py +20 -0
  140. camel/runtime/utils/function_risk_toolkit.py +58 -0
  141. camel/runtime/utils/ignore_risk_toolkit.py +72 -0
  142. camel/schemas/__init__.py +17 -0
  143. camel/schemas/base.py +45 -0
  144. camel/schemas/openai_converter.py +116 -0
  145. camel/societies/__init__.py +4 -4
  146. camel/societies/babyagi_playing.py +4 -4
  147. camel/societies/role_playing.py +4 -4
  148. camel/societies/workforce/__init__.py +4 -4
  149. camel/societies/workforce/base.py +4 -4
  150. camel/societies/workforce/prompts.py +4 -4
  151. camel/societies/workforce/role_playing_worker.py +4 -4
  152. camel/societies/workforce/single_agent_worker.py +4 -4
  153. camel/societies/workforce/task_channel.py +4 -4
  154. camel/societies/workforce/utils.py +4 -4
  155. camel/societies/workforce/worker.py +4 -4
  156. camel/societies/workforce/workforce.py +7 -7
  157. camel/storages/__init__.py +4 -4
  158. camel/storages/graph_storages/__init__.py +4 -4
  159. camel/storages/graph_storages/base.py +4 -4
  160. camel/storages/graph_storages/graph_element.py +4 -4
  161. camel/storages/graph_storages/nebula_graph.py +4 -4
  162. camel/storages/graph_storages/neo4j_graph.py +4 -4
  163. camel/storages/key_value_storages/__init__.py +4 -4
  164. camel/storages/key_value_storages/base.py +4 -4
  165. camel/storages/key_value_storages/in_memory.py +4 -4
  166. camel/storages/key_value_storages/json.py +4 -4
  167. camel/storages/key_value_storages/redis.py +4 -4
  168. camel/storages/object_storages/__init__.py +4 -4
  169. camel/storages/object_storages/amazon_s3.py +4 -4
  170. camel/storages/object_storages/azure_blob.py +4 -4
  171. camel/storages/object_storages/base.py +4 -4
  172. camel/storages/object_storages/google_cloud.py +4 -4
  173. camel/storages/vectordb_storages/__init__.py +4 -4
  174. camel/storages/vectordb_storages/base.py +4 -4
  175. camel/storages/vectordb_storages/milvus.py +4 -4
  176. camel/storages/vectordb_storages/qdrant.py +4 -4
  177. camel/tasks/__init__.py +4 -4
  178. camel/tasks/task.py +4 -4
  179. camel/tasks/task_prompt.py +4 -4
  180. camel/terminators/__init__.py +4 -4
  181. camel/terminators/base.py +4 -4
  182. camel/terminators/response_terminator.py +4 -4
  183. camel/terminators/token_limit_terminator.py +4 -4
  184. camel/toolkits/__init__.py +13 -17
  185. camel/toolkits/arxiv_toolkit.py +4 -4
  186. camel/toolkits/ask_news_toolkit.py +7 -18
  187. camel/toolkits/base.py +4 -4
  188. camel/toolkits/code_execution.py +20 -7
  189. camel/toolkits/dalle_toolkit.py +4 -7
  190. camel/toolkits/data_commons_toolkit.py +4 -4
  191. camel/toolkits/function_tool.py +220 -69
  192. camel/toolkits/github_toolkit.py +4 -4
  193. camel/toolkits/google_maps_toolkit.py +4 -4
  194. camel/toolkits/google_scholar_toolkit.py +4 -4
  195. camel/toolkits/human_toolkit.py +52 -0
  196. camel/toolkits/linkedin_toolkit.py +4 -4
  197. camel/toolkits/math_toolkit.py +4 -7
  198. camel/toolkits/notion_toolkit.py +4 -4
  199. camel/toolkits/open_api_specs/biztoc/__init__.py +4 -4
  200. camel/toolkits/open_api_specs/coursera/__init__.py +4 -4
  201. camel/toolkits/open_api_specs/create_qr_code/__init__.py +4 -4
  202. camel/toolkits/open_api_specs/klarna/__init__.py +4 -4
  203. camel/toolkits/open_api_specs/nasa_apod/__init__.py +4 -4
  204. camel/toolkits/open_api_specs/outschool/__init__.py +4 -4
  205. camel/toolkits/open_api_specs/outschool/paths/__init__.py +4 -4
  206. camel/toolkits/open_api_specs/outschool/paths/get_classes.py +4 -4
  207. camel/toolkits/open_api_specs/outschool/paths/search_teachers.py +4 -4
  208. camel/toolkits/open_api_specs/security_config.py +4 -4
  209. camel/toolkits/open_api_specs/speak/__init__.py +4 -4
  210. camel/toolkits/open_api_specs/web_scraper/__init__.py +4 -4
  211. camel/toolkits/open_api_specs/web_scraper/paths/__init__.py +4 -4
  212. camel/toolkits/open_api_specs/web_scraper/paths/scraper.py +4 -4
  213. camel/toolkits/open_api_toolkit.py +4 -4
  214. camel/toolkits/reddit_toolkit.py +4 -4
  215. camel/toolkits/retrieval_toolkit.py +4 -4
  216. camel/toolkits/search_toolkit.py +49 -29
  217. camel/toolkits/slack_toolkit.py +4 -4
  218. camel/toolkits/twitter_toolkit.py +10 -13
  219. camel/toolkits/video_toolkit.py +211 -0
  220. camel/toolkits/weather_toolkit.py +4 -7
  221. camel/toolkits/whatsapp_toolkit.py +6 -6
  222. camel/types/__init__.py +6 -4
  223. camel/types/enums.py +77 -7
  224. camel/types/openai_types.py +6 -4
  225. camel/types/unified_model_type.py +9 -4
  226. camel/utils/__init__.py +35 -33
  227. camel/utils/async_func.py +4 -4
  228. camel/utils/commons.py +4 -4
  229. camel/utils/constants.py +4 -4
  230. camel/utils/response_format.py +63 -0
  231. camel/utils/token_counting.py +4 -4
  232. {camel_ai-0.2.9.dist-info → camel_ai-0.2.10.dist-info}/METADATA +108 -56
  233. camel_ai-0.2.10.dist-info/RECORD +246 -0
  234. camel_ai-0.2.9.dist-info/RECORD +0 -215
  235. {camel_ai-0.2.9.dist-info → camel_ai-0.2.10.dist-info}/LICENSE +0 -0
  236. {camel_ai-0.2.9.dist-info → camel_ai-0.2.10.dist-info}/WHEEL +0 -0
camel/utils/async_func.py CHANGED
@@ -1,16 +1,16 @@
1
- # =========== Copyright 2023 @ CAMEL-AI.org. All Rights Reserved. ===========
2
- # Licensed under the Apache License, Version 2.0 (the License);
1
+ # ========= Copyright 2023-2024 @ CAMEL-AI.org. All Rights Reserved. =========
2
+ # Licensed under the Apache License, Version 2.0 (the "License");
3
3
  # you may not use this file except in compliance with the License.
4
4
  # You may obtain a copy of the License at
5
5
  #
6
6
  # http://www.apache.org/licenses/LICENSE-2.0
7
7
  #
8
8
  # Unless required by applicable law or agreed to in writing, software
9
- # distributed under the License is distributed on an AS IS BASIS,
9
+ # distributed under the License is distributed on an "AS IS" BASIS,
10
10
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
11
  # See the License for the specific language governing permissions and
12
12
  # limitations under the License.
13
- # =========== Copyright 2023 @ CAMEL-AI.org. All Rights Reserved. ===========
13
+ # ========= Copyright 2023-2024 @ CAMEL-AI.org. All Rights Reserved. =========
14
14
  import asyncio
15
15
  from copy import deepcopy
16
16
 
camel/utils/commons.py CHANGED
@@ -1,16 +1,16 @@
1
- # =========== Copyright 2023 @ CAMEL-AI.org. All Rights Reserved. ===========
2
- # Licensed under the Apache License, Version 2.0 (the License);
1
+ # ========= Copyright 2023-2024 @ CAMEL-AI.org. All Rights Reserved. =========
2
+ # Licensed under the Apache License, Version 2.0 (the "License");
3
3
  # you may not use this file except in compliance with the License.
4
4
  # You may obtain a copy of the License at
5
5
  #
6
6
  # http://www.apache.org/licenses/LICENSE-2.0
7
7
  #
8
8
  # Unless required by applicable law or agreed to in writing, software
9
- # distributed under the License is distributed on an AS IS BASIS,
9
+ # distributed under the License is distributed on an "AS IS" BASIS,
10
10
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
11
  # See the License for the specific language governing permissions and
12
12
  # limitations under the License.
13
- # =========== Copyright 2023 @ CAMEL-AI.org. All Rights Reserved. ===========
13
+ # ========= Copyright 2023-2024 @ CAMEL-AI.org. All Rights Reserved. =========
14
14
  import importlib
15
15
  import os
16
16
  import platform
camel/utils/constants.py CHANGED
@@ -1,16 +1,16 @@
1
- # =========== Copyright 2023 @ CAMEL-AI.org. All Rights Reserved. ===========
2
- # Licensed under the Apache License, Version 2.0 (the License);
1
+ # ========= Copyright 2023-2024 @ CAMEL-AI.org. All Rights Reserved. =========
2
+ # Licensed under the Apache License, Version 2.0 (the "License");
3
3
  # you may not use this file except in compliance with the License.
4
4
  # You may obtain a copy of the License at
5
5
  #
6
6
  # http://www.apache.org/licenses/LICENSE-2.0
7
7
  #
8
8
  # Unless required by applicable law or agreed to in writing, software
9
- # distributed under the License is distributed on an AS IS BASIS,
9
+ # distributed under the License is distributed on an "AS IS" BASIS,
10
10
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
11
  # See the License for the specific language governing permissions and
12
12
  # limitations under the License.
13
- # =========== Copyright 2023 @ CAMEL-AI.org. All Rights Reserved. ===========
13
+ # ========= Copyright 2023-2024 @ CAMEL-AI.org. All Rights Reserved. =========
14
14
 
15
15
 
16
16
  class Constants:
@@ -0,0 +1,63 @@
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
+
15
+ from __future__ import annotations
16
+
17
+ import inspect
18
+ import json
19
+ from typing import Callable, Type, Union
20
+
21
+ from pydantic import BaseModel, create_model
22
+
23
+
24
+ def get_pydantic_model(
25
+ input_data: Union[str, Type[BaseModel], Callable],
26
+ ) -> Type[BaseModel]:
27
+ r"""A multi-purpose function that can be used as a normal function,
28
+ a class decorator, or a function decorator.
29
+
30
+ Args:
31
+ input_data (Union[str, type, Callable]):
32
+ - If a string is provided, it should be a JSON-encoded string
33
+ that will be converted into a BaseModel.
34
+ - If a function is provided, it will be decorated such that
35
+ its arguments are converted into a BaseModel.
36
+ - If a BaseModel class is provided, it will be returned directly.
37
+
38
+ Returns:
39
+ Type[BaseModel]: The BaseModel class that will be used to
40
+ structure the input data.
41
+ """
42
+ if isinstance(input_data, str):
43
+ data_dict = json.loads(input_data)
44
+ TemporaryModel = create_model( # type: ignore[call-overload]
45
+ "TemporaryModel",
46
+ **{key: (type(value), None) for key, value in data_dict.items()},
47
+ )
48
+ return TemporaryModel(**data_dict).__class__
49
+
50
+ elif callable(input_data):
51
+ WrapperClass = create_model( # type: ignore[call-overload]
52
+ f"{input_data.__name__.capitalize()}Model",
53
+ **{
54
+ name: (param.annotation, ...)
55
+ for name, param in inspect.signature(
56
+ input_data
57
+ ).parameters.items()
58
+ },
59
+ )
60
+ return WrapperClass
61
+ if issubclass(input_data, BaseModel):
62
+ return input_data
63
+ raise ValueError("Invalid input data provided.")
@@ -1,16 +1,16 @@
1
- # =========== Copyright 2023 @ CAMEL-AI.org. All Rights Reserved. ===========
2
- # Licensed under the Apache License, Version 2.0 (the License);
1
+ # ========= Copyright 2023-2024 @ CAMEL-AI.org. All Rights Reserved. =========
2
+ # Licensed under the Apache License, Version 2.0 (the "License");
3
3
  # you may not use this file except in compliance with the License.
4
4
  # You may obtain a copy of the License at
5
5
  #
6
6
  # http://www.apache.org/licenses/LICENSE-2.0
7
7
  #
8
8
  # Unless required by applicable law or agreed to in writing, software
9
- # distributed under the License is distributed on an AS IS BASIS,
9
+ # distributed under the License is distributed on an "AS IS" BASIS,
10
10
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
11
  # See the License for the specific language governing permissions and
12
12
  # limitations under the License.
13
- # =========== Copyright 2023 @ CAMEL-AI.org. All Rights Reserved. ===========
13
+ # ========= Copyright 2023-2024 @ CAMEL-AI.org. All Rights Reserved. =========
14
14
 
15
15
  from __future__ import annotations
16
16
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: camel-ai
3
- Version: 0.2.9
3
+ Version: 0.2.10
4
4
  Summary: Communicative Agents for AI Society Study
5
5
  Home-page: https://www.camel-ai.org/
6
6
  License: Apache-2.0
@@ -21,6 +21,7 @@ Provides-Extra: model-platforms
21
21
  Provides-Extra: object-storages
22
22
  Provides-Extra: rag
23
23
  Provides-Extra: retrievers
24
+ Provides-Extra: runtime
24
25
  Provides-Extra: search-tools
25
26
  Provides-Extra: test
26
27
  Provides-Extra: tools
@@ -36,7 +37,7 @@ Requires-Dist: asknews (>=0.7.43,<0.8.0) ; extra == "tools" or extra == "all"
36
37
  Requires-Dist: azure-storage-blob (>=12.21.0,<13.0.0) ; extra == "object-storages" or extra == "all"
37
38
  Requires-Dist: beautifulsoup4 (>=4,<5) ; extra == "tools" or extra == "all"
38
39
  Requires-Dist: botocore (>=1.35.3,<2.0.0) ; extra == "object-storages" or extra == "all"
39
- Requires-Dist: cohere (>=4.56,<5.0) ; extra == "rag" or extra == "retrievers" or extra == "all"
40
+ Requires-Dist: cohere (>=5.11.0,<6.0.0) ; extra == "rag" or extra == "model-platforms" or extra == "retrievers" or extra == "all" or extra == "all"
40
41
  Requires-Dist: colorama (>=0,<1)
41
42
  Requires-Dist: curl_cffi (==0.6.2)
42
43
  Requires-Dist: datacommons (>=1.4.3,<2.0.0) ; extra == "tools" or extra == "all"
@@ -44,11 +45,12 @@ Requires-Dist: datacommons_pandas (>=0.0.3,<0.0.4) ; extra == "tools" or extra =
44
45
  Requires-Dist: datasets (>=2,<3) ; extra == "huggingface-agent" or extra == "all"
45
46
  Requires-Dist: diffusers (>=0,<1) ; extra == "huggingface-agent" or extra == "all"
46
47
  Requires-Dist: discord.py (>=2.3.2,<3.0.0) ; extra == "tools" or extra == "all"
47
- Requires-Dist: docker (>=7.1.0,<8.0.0) ; extra == "tools" or extra == "all"
48
+ Requires-Dist: docker (>=7.1.0,<8.0.0) ; extra == "tools" or extra == "runtime" or extra == "all"
48
49
  Requires-Dist: docstring-parser (>=0.15,<0.16)
49
50
  Requires-Dist: docx2txt (>=0.8,<0.9) ; extra == "tools" or extra == "all"
50
51
  Requires-Dist: duckduckgo-search (>=6.2.12,<7.0.0) ; extra == "search-tools" or extra == "tools" or extra == "all"
51
52
  Requires-Dist: eval-type-backport (==0.2.0)
53
+ Requires-Dist: ffmpeg-python (>=0.2.0,<0.3.0) ; extra == "tools" or extra == "all"
52
54
  Requires-Dist: firecrawl-py (>=1.0.0,<2.0.0) ; extra == "tools" or extra == "all"
53
55
  Requires-Dist: google-cloud-storage (>=2.18.0,<3.0.0) ; extra == "object-storages" or extra == "all"
54
56
  Requires-Dist: google-generativeai (>=0.6.0,<0.7.0) ; extra == "model-platforms" or extra == "all"
@@ -77,7 +79,7 @@ Requires-Dist: prance (>=23.6.21.0,<24.0.0.0) ; extra == "tools" or extra == "al
77
79
  Requires-Dist: praw (>=7.7.1,<8.0.0) ; extra == "tools" or extra == "all"
78
80
  Requires-Dist: protobuf (>=4,<5)
79
81
  Requires-Dist: pyTelegramBotAPI (>=4.18.0,<5.0.0) ; extra == "tools" or extra == "all"
80
- Requires-Dist: pydantic (>=1.9,<3)
82
+ Requires-Dist: pydantic (>=1.9,<2.10)
81
83
  Requires-Dist: pydub (>=0.25.1,<0.26.0) ; extra == "tools" or extra == "all"
82
84
  Requires-Dist: pygithub (>=2.3.0,<3.0.0) ; extra == "tools" or extra == "all"
83
85
  Requires-Dist: pymilvus (>=2.4.0,<3.0.0) ; extra == "rag" or extra == "vector-databases" or extra == "all"
@@ -104,6 +106,7 @@ Requires-Dist: transformers (>=4,<5) ; extra == "huggingface-agent" or extra ==
104
106
  Requires-Dist: unstructured[all-docs] (>=0.14,<0.15) ; extra == "rag" or extra == "tools" or extra == "all"
105
107
  Requires-Dist: wikipedia (>=1,<2) ; extra == "search-tools" or extra == "tools" or extra == "all"
106
108
  Requires-Dist: wolframalpha (>=5.0.0,<6.0.0) ; extra == "search-tools" or extra == "tools" or extra == "all"
109
+ Requires-Dist: yt-dlp (>=2024.11.4,<2025.0.0) ; extra == "tools" or extra == "all"
107
110
  Project-URL: Documentation, https://docs.camel-ai.org
108
111
  Project-URL: Repository, https://github.com/camel-ai/camel
109
112
  Description-Content-Type: text/markdown
@@ -254,7 +257,7 @@ conda create --name camel python=3.10
254
257
  conda activate camel
255
258
 
256
259
  # Clone github repo
257
- git clone -b v0.2.9 https://github.com/camel-ai/camel.git
260
+ git clone -b v0.2.10 https://github.com/camel-ai/camel.git
258
261
 
259
262
  # Change directory into project directory
260
263
  cd camel
@@ -270,62 +273,24 @@ pip install -e .[all] # (Optional)
270
273
 
271
274
  Detailed guidance can be find [here](https://github.com/camel-ai/camel/blob/master/.container/README.md)
272
275
 
273
- ## Documentation
274
-
275
- The [complete documentation](https://camel-ai.github.io/camel/) pages for the CAMEL package. Also, detailed tutorials for each part are provided below:
276
-
277
- ### Agents
278
- Explore different types of agents, their roles, and their applications.
279
-
280
- - **[Creating Your First Agent](https://docs.camel-ai.org/cookbooks/create_your_first_agent.html)**
281
- - **[Creating Your First Agent Society](https://docs.camel-ai.org/cookbooks/create_your_first_agents_society.html)**
282
- - **[Embodied Agents](https://docs.camel-ai.org/cookbooks/embodied_agents.html)**
283
- - **[Critic Agents](https://docs.camel-ai.org/cookbooks/critic_agents_and_tree_search.html)**
284
-
285
- ---
276
+ ## Quick Start
286
277
 
287
- ### Key Modules
288
- Core components and utilities to build, operate, and enhance CAMEL-AI agents and societies.
278
+ By default, the agent uses the `ModelType.DEFAULT` model from the `ModelPlatformType.DEFAULT`. You can configure the default model platform and model type using environment variables. If these are not set, the agent will fall back to the default settings:
289
279
 
290
- | Module | Description |
291
- |:---|:---|
292
- | **[Models](https://docs.camel-ai.org/key_modules/models.html)** | Model architectures and customization options for agent intelligence. |
293
- | **[Messages](https://docs.camel-ai.org/key_modules/messages.html)** | Messaging protocols for agent communication. |
294
- | **[Memory](https://docs.camel-ai.org/key_modules/memory.html)** | Memory storage and retrieval mechanisms. |
295
- | **[Tools](https://docs.camel-ai.org/key_modules/tools.html)** | Tools integration for specialized agent tasks. |
296
- | **[Prompts](https://docs.camel-ai.org/key_modules/prompts.html)** | Prompt engineering and customization. |
297
- | **[Tasks](https://docs.camel-ai.org/key_modules/tasks.html)** | Task creation and management for agent workflows. |
298
- | **[Loaders](https://docs.camel-ai.org/key_modules/loaders.html)** | Data loading tools for agent operation. |
299
- | **[Storages](https://docs.camel-ai.org/key_modules/storages.html)** | Storage solutions for agent. |
300
- | **[Society](https://docs.camel-ai.org/key_modules/society.html)** | Components for building agent societies and inter-agent collaboration. |
301
- | **[Embeddings](https://docs.camel-ai.org/key_modules/embeddings.html)** | Embedding models for RAG. |
302
- | **[Retrievers](https://docs.camel-ai.org/key_modules/retrievers.html)** | Retrieval methods for knowledge access. |
303
- ---
304
-
305
- ### Cookbooks
306
- Practical guides and tutorials for implementing specific functionalities in CAMEL-AI agents and societies.
280
+ ```bash
281
+ ModelPlatformType.DEFAULT = "openai"
282
+ ModelType.DEFAULT = "gpt-4o-mini"
283
+ ```
307
284
 
308
- | Cookbook | Description |
309
- |:---|:---|
310
- | **[Creating Your First Agent](https://docs.camel-ai.org/cookbooks/create_your_first_agent.html)** | A step-by-step guide to building your first agent. |
311
- | **[Creating Your First Agent Society](https://docs.camel-ai.org/cookbooks/create_your_first_agents_society.html)** | Learn to build a collaborative society of agents. |
312
- | **[Society Cookbook](https://docs.camel-ai.org/cookbooks/agents_society.html)** | Advanced configurations for agent societies. |
313
- | **[Model Speed Comparison Cookbook](https://docs.camel-ai.org/cookbooks/model_speed_comparison.html)** | Benchmarking models for performance. |
314
- | **[Message Cookbook](https://docs.camel-ai.org/cookbooks/agents_message.html)** | Best practices for message handling in agents. |
315
- | **[Tools Cookbook](https://docs.camel-ai.org/cookbooks/agents_with_tools.html)** | Integrating tools for enhanced functionality. |
316
- | **[Memory Cookbook](https://docs.camel-ai.org/cookbooks/agents_with_memory.html)** | Implementing memory systems in agents. |
317
- | **[RAG Cookbook](https://docs.camel-ai.org/cookbooks/agents_with_rag.html)** | Recipes for Retrieval-Augmented Generation. |
318
- | **[Prompting Cookbook](https://docs.camel-ai.org/cookbooks/agents_prompting.html)** | Techniques for effective prompt creation. |
319
- | **[Task Generation Cookbook](https://docs.camel-ai.org/cookbooks/task_generation.html)** | Automating task generation for agents. |
320
- | **[Graph RAG Cookbook](https://docs.camel-ai.org/cookbooks/knowledge_graph.html)** | Leveraging knowledge graphs with RAG. |
321
- | **[Role-Playing Scraper for Report & Knowledge Graph Generation](https://docs.camel-ai.org/cookbooks/roleplaying_scraper.html)** | Create role-playing agents for data scraping and reporting. |
322
- | **[Video Analysis](https://docs.camel-ai.org/cookbooks/video_analysis.html)** | Techniques for agents in video data analysis. |
323
- | **[Track CAMEL Agents with AgentOps](https://docs.camel-ai.org/cookbooks/agents_tracking.html)** | Tools for tracking and managing agents in operations. |
324
- | **[Create A Hackathon Judge Committee with Workforce](https://docs.camel-ai.org/cookbooks/workforce_judge_committee.html)** | Building a team of agents for collaborative judging. |
285
+ ### Setting Default Model Platform and Model Type (Optional)
325
286
 
326
- ## Examples
287
+ You can customize the default model platform and model type by setting the following environment variables:
288
+ ```bash
289
+ export DEFAULT_MODEL_PLATFORM_TYPE=<your preferred platform> # e.g., openai, anthropic, etc.
290
+ export DEFAULT_MODEL_TYPE=<your preferred model> # e.g., gpt-3.5-turbo, gpt-4o-mini, etc.
291
+ ```
327
292
 
328
- First, you need to add your OpenAI API key to system environment variables. The method to do this depends on your operating system and the shell you're using.
293
+ ### Setting Your Model API Key (Using OpenAI as an Example)
329
294
 
330
295
  **For Bash shell (Linux, macOS, Git Bash on Windows):**
331
296
 
@@ -356,6 +321,37 @@ Replace `<insert your OpenAI API key>` with your actual OpenAI API key in each c
356
321
 
357
322
  Please note that the environment variable is session-specific. If you open a new terminal window or tab, you will need to set the API key again in that new session.
358
323
 
324
+ **For `.env` File:**
325
+
326
+ To simplify the process of managing API Keys, you can use store information in a `.env` file and load them into your application dynamically.
327
+
328
+ 1. Modify .env file in the root directory of CAMEL and fill the following lines:
329
+
330
+ ```bash
331
+ OPENAI_API_KEY=<fill your API KEY here>
332
+ ```
333
+
334
+ Replace <fill your API KEY here> with your actual API key.
335
+
336
+ 2. Load the .env file in your Python script: Use the load_dotenv() function from the dotenv module to load the variables from the .env file into the environment. Here's an example:
337
+
338
+ ```python
339
+ from dotenv import load_dotenv
340
+ import os
341
+
342
+ # Load environment variables from the .env file
343
+ load_dotenv()
344
+ ```
345
+ For more details about the key names in project and how to apply key,
346
+ you can refer to [here](https://github.com/camel-ai/camel/.env).
347
+
348
+ > [!TIP]
349
+ > By default, the load_dotenv() function does not overwrite existing environment variables that are already set in your system. It only populates variables that are missing.
350
+ If you need to overwrite existing environment variables with the values from your `.env` file, use the `override=True` parameter:
351
+ > ```python
352
+ > load_dotenv(override=True)
353
+ > ```
354
+
359
355
  After setting the OpenAI API key, you can run the `role_playing.py` script. Find tasks for various assistant-user roles [here](https://drive.google.com/file/d/194PPaSTBR07m-PzjS-Ty6KlPLdFIPQDd/view?usp=share_link).
360
356
 
361
357
  ```bash
@@ -385,6 +381,60 @@ python examples/vision/image_crafting.py
385
381
  ```
386
382
  For additional feature examples, see the [`examples`](https://github.com/camel-ai/camel/tree/master/examples) directory.
387
383
 
384
+ ## Documentation
385
+
386
+ The [complete documentation](https://camel-ai.github.io/camel/) pages for the CAMEL package. Also, detailed tutorials for each part are provided below:
387
+
388
+ ### Agents
389
+ Explore different types of agents, their roles, and their applications.
390
+
391
+ - **[Creating Your First Agent](https://docs.camel-ai.org/cookbooks/create_your_first_agent.html)**
392
+ - **[Creating Your First Agent Society](https://docs.camel-ai.org/cookbooks/create_your_first_agents_society.html)**
393
+ - **[Embodied Agents](https://docs.camel-ai.org/cookbooks/embodied_agents.html)**
394
+ - **[Critic Agents](https://docs.camel-ai.org/cookbooks/critic_agents_and_tree_search.html)**
395
+
396
+ ---
397
+
398
+ ### Key Modules
399
+ Core components and utilities to build, operate, and enhance CAMEL-AI agents and societies.
400
+
401
+ | Module | Description |
402
+ |:---|:---|
403
+ | **[Models](https://docs.camel-ai.org/key_modules/models.html)** | Model architectures and customization options for agent intelligence. |
404
+ | **[Messages](https://docs.camel-ai.org/key_modules/messages.html)** | Messaging protocols for agent communication. |
405
+ | **[Memory](https://docs.camel-ai.org/key_modules/memory.html)** | Memory storage and retrieval mechanisms. |
406
+ | **[Tools](https://docs.camel-ai.org/key_modules/tools.html)** | Tools integration for specialized agent tasks. |
407
+ | **[Prompts](https://docs.camel-ai.org/key_modules/prompts.html)** | Prompt engineering and customization. |
408
+ | **[Tasks](https://docs.camel-ai.org/key_modules/tasks.html)** | Task creation and management for agent workflows. |
409
+ | **[Loaders](https://docs.camel-ai.org/key_modules/loaders.html)** | Data loading tools for agent operation. |
410
+ | **[Storages](https://docs.camel-ai.org/key_modules/storages.html)** | Storage solutions for agent. |
411
+ | **[Society](https://docs.camel-ai.org/key_modules/society.html)** | Components for building agent societies and inter-agent collaboration. |
412
+ | **[Embeddings](https://docs.camel-ai.org/key_modules/embeddings.html)** | Embedding models for RAG. |
413
+ | **[Retrievers](https://docs.camel-ai.org/key_modules/retrievers.html)** | Retrieval methods for knowledge access. |
414
+ ---
415
+
416
+ ### Cookbooks
417
+ Practical guides and tutorials for implementing specific functionalities in CAMEL-AI agents and societies.
418
+
419
+ | Cookbook | Description |
420
+ |:---|:---|
421
+ | **[Creating Your First Agent](https://docs.camel-ai.org/cookbooks/create_your_first_agent.html)** | A step-by-step guide to building your first agent. |
422
+ | **[Creating Your First Agent Society](https://docs.camel-ai.org/cookbooks/create_your_first_agents_society.html)** | Learn to build a collaborative society of agents. |
423
+ | **[Society Cookbook](https://docs.camel-ai.org/cookbooks/agents_society.html)** | Advanced configurations for agent societies. |
424
+ | **[Model Speed Comparison Cookbook](https://docs.camel-ai.org/cookbooks/model_speed_comparison.html)** | Benchmarking models for performance. |
425
+ | **[Message Cookbook](https://docs.camel-ai.org/cookbooks/agents_message.html)** | Best practices for message handling in agents. |
426
+ | **[Tools Cookbook](https://docs.camel-ai.org/cookbooks/agents_with_tools.html)** | Integrating tools for enhanced functionality. |
427
+ | **[Memory Cookbook](https://docs.camel-ai.org/cookbooks/agents_with_memory.html)** | Implementing memory systems in agents. |
428
+ | **[RAG Cookbook](https://docs.camel-ai.org/cookbooks/agents_with_rag.html)** | Recipes for Retrieval-Augmented Generation. |
429
+ | **[Prompting Cookbook](https://docs.camel-ai.org/cookbooks/agents_prompting.html)** | Techniques for effective prompt creation. |
430
+ | **[Task Generation Cookbook](https://docs.camel-ai.org/cookbooks/task_generation.html)** | Automating task generation for agents. |
431
+ | **[Graph RAG Cookbook](https://docs.camel-ai.org/cookbooks/knowledge_graph.html)** | Leveraging knowledge graphs with RAG. |
432
+ | **[Role-Playing Scraper for Report & Knowledge Graph Generation](https://docs.camel-ai.org/cookbooks/roleplaying_scraper.html)** | Create role-playing agents for data scraping and reporting. |
433
+ | **[Video Analysis](https://docs.camel-ai.org/cookbooks/video_analysis.html)** | Techniques for agents in video data analysis. |
434
+ | **[Track CAMEL Agents with AgentOps](https://docs.camel-ai.org/cookbooks/agents_tracking.html)** | Tools for tracking and managing agents in operations. |
435
+ | **[Create A Hackathon Judge Committee with Workforce](https://docs.camel-ai.org/cookbooks/workforce_judge_committee.html)** | Building a team of agents for collaborative judging. |
436
+ | **[3 Ways to Ingest Data from Websites with Firecrawl](https://docs.camel-ai.org/cookbooks/ingest_data_from_websites_with_Firecrawl.html)** | Explore three methods for extracting and processing data from websites using Firecrawl. |
437
+
388
438
  ## Utilize Various LLMs as Backends
389
439
 
390
440
  For more details, please see our [`Models Documentation`](https://docs.camel-ai.org/key_modules/models.html#).
@@ -411,6 +461,8 @@ For more details, please see our [`Models Documentation`](https://docs.camel-ai.
411
461
  We implemented amazing research ideas from other works for you to build, compare and customize your agents. If you use any of these modules, please kindly cite the original works:
412
462
  - `TaskCreationAgent`, `TaskPrioritizationAgent` and `BabyAGI` from *Nakajima et al.*: [Task-Driven Autonomous Agent](https://yoheinakajima.com/task-driven-autonomous-agent-utilizing-gpt-4-pinecone-and-langchain-for-diverse-applications/). [[Example](https://github.com/camel-ai/camel/blob/master/examples/ai_society/babyagi_playing.py)]
413
463
 
464
+ - `PersonaHub` from *Tao Ge et al.*: [Scaling Synthetic Data Creation with 1,000,000,000 Personas](https://arxiv.org/pdf/2406.20094). [[Example](https://github.com/camel-ai/camel/blob/master/examples/personas/personas_generation.py)]
465
+
414
466
  ## Other Research Works Based on Camel
415
467
  - [Agent Trust](http://agent-trust.camel-ai.org/): Can Large Language Model Agents Simulate Human Trust Behavior?
416
468