camel-ai 0.2.73a4__py3-none-any.whl → 0.2.80a2__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.
- camel/__init__.py +1 -1
- camel/agents/_utils.py +38 -0
- camel/agents/chat_agent.py +2217 -519
- camel/agents/mcp_agent.py +30 -27
- camel/configs/__init__.py +15 -0
- camel/configs/aihubmix_config.py +88 -0
- camel/configs/amd_config.py +70 -0
- camel/configs/cometapi_config.py +104 -0
- camel/configs/minimax_config.py +93 -0
- camel/configs/nebius_config.py +103 -0
- camel/data_collectors/alpaca_collector.py +15 -6
- camel/datasets/base_generator.py +39 -10
- camel/environments/single_step.py +28 -3
- camel/environments/tic_tac_toe.py +1 -1
- camel/interpreters/__init__.py +2 -0
- camel/interpreters/docker/Dockerfile +3 -12
- camel/interpreters/e2b_interpreter.py +34 -1
- camel/interpreters/microsandbox_interpreter.py +395 -0
- camel/loaders/__init__.py +11 -2
- camel/loaders/chunkr_reader.py +9 -0
- camel/memories/agent_memories.py +48 -4
- camel/memories/base.py +26 -0
- camel/memories/blocks/chat_history_block.py +122 -4
- camel/memories/context_creators/score_based.py +25 -384
- camel/memories/records.py +88 -8
- camel/messages/base.py +153 -34
- camel/models/__init__.py +10 -0
- camel/models/aihubmix_model.py +83 -0
- camel/models/aiml_model.py +1 -16
- camel/models/amd_model.py +101 -0
- camel/models/anthropic_model.py +6 -19
- camel/models/aws_bedrock_model.py +2 -33
- camel/models/azure_openai_model.py +114 -89
- camel/models/base_audio_model.py +3 -1
- camel/models/base_model.py +32 -14
- camel/models/cohere_model.py +1 -16
- camel/models/cometapi_model.py +83 -0
- camel/models/crynux_model.py +1 -16
- camel/models/deepseek_model.py +1 -16
- camel/models/fish_audio_model.py +6 -0
- camel/models/gemini_model.py +36 -18
- camel/models/groq_model.py +1 -17
- camel/models/internlm_model.py +1 -16
- camel/models/litellm_model.py +1 -16
- camel/models/lmstudio_model.py +1 -17
- camel/models/minimax_model.py +83 -0
- camel/models/mistral_model.py +1 -16
- camel/models/model_factory.py +27 -1
- camel/models/modelscope_model.py +1 -16
- camel/models/moonshot_model.py +105 -24
- camel/models/nebius_model.py +83 -0
- camel/models/nemotron_model.py +0 -5
- camel/models/netmind_model.py +1 -16
- camel/models/novita_model.py +1 -16
- camel/models/nvidia_model.py +1 -16
- camel/models/ollama_model.py +4 -19
- camel/models/openai_compatible_model.py +62 -41
- camel/models/openai_model.py +62 -57
- camel/models/openrouter_model.py +1 -17
- camel/models/ppio_model.py +1 -16
- camel/models/qianfan_model.py +1 -16
- camel/models/qwen_model.py +1 -16
- camel/models/reka_model.py +1 -16
- camel/models/samba_model.py +34 -47
- camel/models/sglang_model.py +64 -31
- camel/models/siliconflow_model.py +1 -16
- camel/models/stub_model.py +0 -4
- camel/models/togetherai_model.py +1 -16
- camel/models/vllm_model.py +1 -16
- camel/models/volcano_model.py +0 -17
- camel/models/watsonx_model.py +1 -16
- camel/models/yi_model.py +1 -16
- camel/models/zhipuai_model.py +60 -16
- camel/parsers/__init__.py +18 -0
- camel/parsers/mcp_tool_call_parser.py +176 -0
- camel/retrievers/auto_retriever.py +1 -0
- camel/runtimes/daytona_runtime.py +11 -12
- camel/societies/__init__.py +2 -0
- camel/societies/workforce/__init__.py +2 -0
- camel/societies/workforce/events.py +122 -0
- camel/societies/workforce/prompts.py +146 -66
- camel/societies/workforce/role_playing_worker.py +15 -11
- camel/societies/workforce/single_agent_worker.py +302 -65
- camel/societies/workforce/structured_output_handler.py +30 -18
- camel/societies/workforce/task_channel.py +163 -27
- camel/societies/workforce/utils.py +107 -13
- camel/societies/workforce/workflow_memory_manager.py +772 -0
- camel/societies/workforce/workforce.py +1949 -579
- camel/societies/workforce/workforce_callback.py +74 -0
- camel/societies/workforce/workforce_logger.py +168 -145
- camel/societies/workforce/workforce_metrics.py +33 -0
- camel/storages/key_value_storages/json.py +15 -2
- camel/storages/key_value_storages/mem0_cloud.py +48 -47
- camel/storages/object_storages/google_cloud.py +1 -1
- camel/storages/vectordb_storages/oceanbase.py +13 -13
- camel/storages/vectordb_storages/qdrant.py +3 -3
- camel/storages/vectordb_storages/tidb.py +8 -6
- camel/tasks/task.py +4 -3
- camel/toolkits/__init__.py +20 -7
- camel/toolkits/aci_toolkit.py +45 -0
- camel/toolkits/base.py +6 -4
- camel/toolkits/code_execution.py +28 -1
- camel/toolkits/context_summarizer_toolkit.py +684 -0
- camel/toolkits/dappier_toolkit.py +5 -1
- camel/toolkits/dingtalk.py +1135 -0
- camel/toolkits/edgeone_pages_mcp_toolkit.py +11 -31
- camel/toolkits/excel_toolkit.py +1 -1
- camel/toolkits/{file_write_toolkit.py → file_toolkit.py} +430 -36
- camel/toolkits/function_tool.py +13 -3
- camel/toolkits/github_toolkit.py +104 -17
- camel/toolkits/gmail_toolkit.py +1839 -0
- camel/toolkits/google_calendar_toolkit.py +38 -4
- camel/toolkits/google_drive_mcp_toolkit.py +12 -31
- camel/toolkits/hybrid_browser_toolkit/config_loader.py +15 -0
- camel/toolkits/hybrid_browser_toolkit/hybrid_browser_toolkit.py +77 -8
- camel/toolkits/hybrid_browser_toolkit/hybrid_browser_toolkit_ts.py +884 -88
- camel/toolkits/hybrid_browser_toolkit/installer.py +203 -0
- camel/toolkits/hybrid_browser_toolkit/ts/package-lock.json +5 -612
- camel/toolkits/hybrid_browser_toolkit/ts/package.json +0 -1
- camel/toolkits/hybrid_browser_toolkit/ts/src/browser-session.ts +959 -89
- camel/toolkits/hybrid_browser_toolkit/ts/src/config-loader.ts +9 -2
- camel/toolkits/hybrid_browser_toolkit/ts/src/hybrid-browser-toolkit.ts +281 -213
- camel/toolkits/hybrid_browser_toolkit/ts/src/parent-child-filter.ts +226 -0
- camel/toolkits/hybrid_browser_toolkit/ts/src/snapshot-parser.ts +219 -0
- camel/toolkits/hybrid_browser_toolkit/ts/src/som-screenshot-injected.ts +543 -0
- camel/toolkits/hybrid_browser_toolkit/ts/src/types.ts +23 -3
- camel/toolkits/hybrid_browser_toolkit/ts/websocket-server.js +72 -7
- camel/toolkits/hybrid_browser_toolkit/ws_wrapper.py +582 -132
- camel/toolkits/hybrid_browser_toolkit_py/actions.py +158 -0
- camel/toolkits/hybrid_browser_toolkit_py/browser_session.py +55 -8
- camel/toolkits/hybrid_browser_toolkit_py/config_loader.py +43 -0
- camel/toolkits/hybrid_browser_toolkit_py/hybrid_browser_toolkit.py +321 -8
- camel/toolkits/hybrid_browser_toolkit_py/snapshot.py +10 -4
- camel/toolkits/hybrid_browser_toolkit_py/unified_analyzer.js +45 -4
- camel/toolkits/{openai_image_toolkit.py → image_generation_toolkit.py} +151 -53
- camel/toolkits/klavis_toolkit.py +5 -1
- camel/toolkits/markitdown_toolkit.py +27 -1
- camel/toolkits/math_toolkit.py +64 -10
- camel/toolkits/mcp_toolkit.py +366 -71
- camel/toolkits/memory_toolkit.py +5 -1
- camel/toolkits/message_integration.py +18 -13
- camel/toolkits/minimax_mcp_toolkit.py +195 -0
- camel/toolkits/note_taking_toolkit.py +19 -10
- camel/toolkits/notion_mcp_toolkit.py +16 -26
- camel/toolkits/openbb_toolkit.py +5 -1
- camel/toolkits/origene_mcp_toolkit.py +8 -49
- camel/toolkits/playwright_mcp_toolkit.py +12 -31
- camel/toolkits/resend_toolkit.py +168 -0
- camel/toolkits/search_toolkit.py +264 -91
- camel/toolkits/slack_toolkit.py +64 -10
- camel/toolkits/terminal_toolkit/__init__.py +18 -0
- camel/toolkits/terminal_toolkit/terminal_toolkit.py +957 -0
- camel/toolkits/terminal_toolkit/utils.py +532 -0
- camel/toolkits/vertex_ai_veo_toolkit.py +590 -0
- camel/toolkits/video_analysis_toolkit.py +17 -11
- camel/toolkits/wechat_official_toolkit.py +483 -0
- camel/toolkits/zapier_toolkit.py +5 -1
- camel/types/__init__.py +2 -2
- camel/types/enums.py +274 -7
- camel/types/openai_types.py +2 -2
- camel/types/unified_model_type.py +15 -0
- camel/utils/commons.py +36 -5
- camel/utils/constants.py +3 -0
- camel/utils/context_utils.py +1003 -0
- camel/utils/mcp.py +138 -4
- camel/utils/token_counting.py +43 -20
- {camel_ai-0.2.73a4.dist-info → camel_ai-0.2.80a2.dist-info}/METADATA +223 -83
- {camel_ai-0.2.73a4.dist-info → camel_ai-0.2.80a2.dist-info}/RECORD +170 -141
- camel/loaders/pandas_reader.py +0 -368
- camel/toolkits/openai_agent_toolkit.py +0 -135
- camel/toolkits/terminal_toolkit.py +0 -1550
- {camel_ai-0.2.73a4.dist-info → camel_ai-0.2.80a2.dist-info}/WHEEL +0 -0
- {camel_ai-0.2.73a4.dist-info → camel_ai-0.2.80a2.dist-info}/licenses/LICENSE +0 -0
camel/toolkits/slack_toolkit.py
CHANGED
|
@@ -128,8 +128,9 @@ class SlackToolkit(BaseToolkit):
|
|
|
128
128
|
return f"Error creating conversation: {e.response['error']}"
|
|
129
129
|
|
|
130
130
|
def join_slack_channel(self, channel_id: str) -> str:
|
|
131
|
-
r"""Joins an existing Slack channel.
|
|
132
|
-
|
|
131
|
+
r"""Joins an existing Slack channel. When use this function you must
|
|
132
|
+
call `get_slack_channel_information` function first to get the
|
|
133
|
+
`channel id`.
|
|
133
134
|
|
|
134
135
|
Args:
|
|
135
136
|
channel_id (str): The ID of the Slack channel to join.
|
|
@@ -147,8 +148,9 @@ class SlackToolkit(BaseToolkit):
|
|
|
147
148
|
return f"Error joining channel: {e.response['error']}"
|
|
148
149
|
|
|
149
150
|
def leave_slack_channel(self, channel_id: str) -> str:
|
|
150
|
-
r"""Leaves an existing Slack channel.
|
|
151
|
-
|
|
151
|
+
r"""Leaves an existing Slack channel. When use this function you must
|
|
152
|
+
call `get_slack_channel_information` function first to get the
|
|
153
|
+
`channel id`.
|
|
152
154
|
|
|
153
155
|
Args:
|
|
154
156
|
channel_id (str): The ID of the Slack channel to leave.
|
|
@@ -199,9 +201,9 @@ class SlackToolkit(BaseToolkit):
|
|
|
199
201
|
return f"Error retrieving channel list: {e.response['error']}"
|
|
200
202
|
|
|
201
203
|
def get_slack_channel_message(self, channel_id: str) -> str:
|
|
202
|
-
r"""Retrieve messages from a Slack channel.
|
|
203
|
-
|
|
204
|
-
|
|
204
|
+
r"""Retrieve messages from a Slack channel. When use this function you
|
|
205
|
+
must call `get_slack_channel_information` function first to get the
|
|
206
|
+
`channel id`.
|
|
205
207
|
|
|
206
208
|
Args:
|
|
207
209
|
channel_id (str): The ID of the Slack channel to retrieve messages
|
|
@@ -233,8 +235,10 @@ class SlackToolkit(BaseToolkit):
|
|
|
233
235
|
file_path: Optional[str] = None,
|
|
234
236
|
user: Optional[str] = None,
|
|
235
237
|
) -> str:
|
|
236
|
-
r"""Send a message to a Slack channel.
|
|
237
|
-
|
|
238
|
+
r"""Send a message to a Slack channel. When use this function you must
|
|
239
|
+
call `get_slack_channel_information` function first to get the
|
|
240
|
+
`channel id`. If use user, you must use `get_slack_user_list`
|
|
241
|
+
function first to get the user id.
|
|
238
242
|
|
|
239
243
|
Args:
|
|
240
244
|
message (str): The message to send.
|
|
@@ -279,7 +283,9 @@ class SlackToolkit(BaseToolkit):
|
|
|
279
283
|
time_stamp: str,
|
|
280
284
|
channel_id: str,
|
|
281
285
|
) -> str:
|
|
282
|
-
r"""Delete a message from a Slack channel.
|
|
286
|
+
r"""Delete a message from a Slack channel. When use this function you
|
|
287
|
+
must call `get_slack_channel_information` function first to get the
|
|
288
|
+
`channel id`.
|
|
283
289
|
|
|
284
290
|
Args:
|
|
285
291
|
time_stamp (str): The 'ts' value of the message to be deleted.
|
|
@@ -301,6 +307,52 @@ class SlackToolkit(BaseToolkit):
|
|
|
301
307
|
except SlackApiError as e:
|
|
302
308
|
return f"Error deleting message: {e.response['error']}"
|
|
303
309
|
|
|
310
|
+
def get_slack_user_list(self) -> str:
|
|
311
|
+
r"""Retrieve a list of all users in the Slack workspace.
|
|
312
|
+
|
|
313
|
+
Returns:
|
|
314
|
+
str: A JSON string representing a list of users. Each user
|
|
315
|
+
object contains 'id', 'name'.
|
|
316
|
+
"""
|
|
317
|
+
from slack_sdk.errors import SlackApiError
|
|
318
|
+
|
|
319
|
+
try:
|
|
320
|
+
slack_client = self._login_slack()
|
|
321
|
+
response = slack_client.users_list()
|
|
322
|
+
users = response["members"]
|
|
323
|
+
filtered_users = [
|
|
324
|
+
{
|
|
325
|
+
"id": user["id"],
|
|
326
|
+
"name": user["name"],
|
|
327
|
+
}
|
|
328
|
+
for user in users
|
|
329
|
+
]
|
|
330
|
+
|
|
331
|
+
return json.dumps(filtered_users, ensure_ascii=False)
|
|
332
|
+
except SlackApiError as e:
|
|
333
|
+
return f"Error retrieving user list: {e.response['error']}"
|
|
334
|
+
|
|
335
|
+
def get_slack_user_info(self, user_id: str) -> str:
|
|
336
|
+
r"""Retrieve information about a specific user in the Slack workspace.
|
|
337
|
+
normally, you don't need to use this method, when you need to get a
|
|
338
|
+
user's detailed information, use this method. Use `get_slack_user_list`
|
|
339
|
+
function first to get the user id.
|
|
340
|
+
|
|
341
|
+
Args:
|
|
342
|
+
user_id (str): The ID of the user to retrieve information about.
|
|
343
|
+
|
|
344
|
+
Returns:
|
|
345
|
+
str: A JSON string representing the user's information.
|
|
346
|
+
"""
|
|
347
|
+
from slack_sdk.errors import SlackApiError
|
|
348
|
+
|
|
349
|
+
try:
|
|
350
|
+
slack_client = self._login_slack()
|
|
351
|
+
response = slack_client.users_info(user=user_id)
|
|
352
|
+
return json.dumps(response, ensure_ascii=False)
|
|
353
|
+
except SlackApiError as e:
|
|
354
|
+
return f"Error retrieving user info: {e.response['error']}"
|
|
355
|
+
|
|
304
356
|
def get_tools(self) -> List[FunctionTool]:
|
|
305
357
|
r"""Returns a list of FunctionTool objects representing the
|
|
306
358
|
functions in the toolkit.
|
|
@@ -317,4 +369,6 @@ class SlackToolkit(BaseToolkit):
|
|
|
317
369
|
FunctionTool(self.get_slack_channel_message),
|
|
318
370
|
FunctionTool(self.send_slack_message),
|
|
319
371
|
FunctionTool(self.delete_slack_message),
|
|
372
|
+
FunctionTool(self.get_slack_user_list),
|
|
373
|
+
FunctionTool(self.get_slack_user_info),
|
|
320
374
|
]
|
|
@@ -0,0 +1,18 @@
|
|
|
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 .terminal_toolkit import TerminalToolkit
|
|
15
|
+
|
|
16
|
+
__all__ = [
|
|
17
|
+
"TerminalToolkit",
|
|
18
|
+
]
|