camel-ai 0.2.75a6__py3-none-any.whl → 0.2.76__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.
- camel/__init__.py +1 -1
- camel/agents/chat_agent.py +1001 -205
- camel/agents/mcp_agent.py +30 -27
- camel/configs/__init__.py +6 -0
- camel/configs/amd_config.py +70 -0
- camel/configs/cometapi_config.py +104 -0
- camel/data_collectors/alpaca_collector.py +15 -6
- camel/environments/tic_tac_toe.py +1 -1
- camel/interpreters/__init__.py +2 -0
- camel/interpreters/docker/Dockerfile +3 -12
- camel/interpreters/microsandbox_interpreter.py +395 -0
- camel/loaders/__init__.py +11 -2
- camel/loaders/chunkr_reader.py +9 -0
- camel/memories/__init__.py +2 -1
- camel/memories/agent_memories.py +3 -1
- camel/memories/blocks/chat_history_block.py +21 -3
- camel/memories/records.py +88 -8
- camel/messages/base.py +127 -34
- camel/models/__init__.py +4 -0
- camel/models/amd_model.py +101 -0
- camel/models/azure_openai_model.py +0 -6
- camel/models/base_model.py +30 -0
- camel/models/cometapi_model.py +83 -0
- camel/models/model_factory.py +4 -0
- camel/models/openai_compatible_model.py +0 -6
- camel/models/openai_model.py +0 -6
- camel/models/zhipuai_model.py +61 -2
- 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/workforce/prompts.py +131 -50
- camel/societies/workforce/single_agent_worker.py +434 -49
- camel/societies/workforce/structured_output_handler.py +30 -18
- camel/societies/workforce/task_channel.py +43 -0
- camel/societies/workforce/utils.py +105 -12
- camel/societies/workforce/workforce.py +1322 -311
- camel/societies/workforce/workforce_logger.py +24 -5
- camel/storages/key_value_storages/json.py +15 -2
- camel/storages/object_storages/google_cloud.py +1 -1
- camel/storages/vectordb_storages/oceanbase.py +10 -11
- camel/storages/vectordb_storages/tidb.py +8 -6
- camel/tasks/task.py +4 -3
- camel/toolkits/__init__.py +18 -5
- camel/toolkits/aci_toolkit.py +45 -0
- camel/toolkits/code_execution.py +28 -1
- camel/toolkits/context_summarizer_toolkit.py +684 -0
- camel/toolkits/dingtalk.py +1135 -0
- camel/toolkits/edgeone_pages_mcp_toolkit.py +11 -31
- camel/toolkits/{file_write_toolkit.py → file_toolkit.py} +194 -34
- camel/toolkits/function_tool.py +6 -1
- camel/toolkits/google_drive_mcp_toolkit.py +12 -31
- camel/toolkits/hybrid_browser_toolkit/config_loader.py +12 -0
- camel/toolkits/hybrid_browser_toolkit/hybrid_browser_toolkit.py +79 -2
- camel/toolkits/hybrid_browser_toolkit/hybrid_browser_toolkit_ts.py +95 -59
- 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 +619 -95
- camel/toolkits/hybrid_browser_toolkit/ts/src/config-loader.ts +7 -2
- camel/toolkits/hybrid_browser_toolkit/ts/src/hybrid-browser-toolkit.ts +115 -219
- 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 +1 -0
- camel/toolkits/hybrid_browser_toolkit/ts/websocket-server.js +39 -6
- camel/toolkits/hybrid_browser_toolkit/ws_wrapper.py +405 -131
- camel/toolkits/hybrid_browser_toolkit_py/hybrid_browser_toolkit.py +9 -5
- camel/toolkits/{openai_image_toolkit.py → image_generation_toolkit.py} +98 -31
- camel/toolkits/markitdown_toolkit.py +27 -1
- camel/toolkits/mcp_toolkit.py +348 -348
- camel/toolkits/message_integration.py +3 -0
- camel/toolkits/minimax_mcp_toolkit.py +195 -0
- camel/toolkits/note_taking_toolkit.py +18 -8
- camel/toolkits/notion_mcp_toolkit.py +16 -26
- 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/slack_toolkit.py +50 -1
- camel/toolkits/terminal_toolkit/__init__.py +18 -0
- camel/toolkits/terminal_toolkit/terminal_toolkit.py +924 -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/types/enums.py +124 -1
- camel/types/unified_model_type.py +5 -0
- camel/utils/commons.py +17 -0
- camel/utils/context_utils.py +804 -0
- camel/utils/mcp.py +136 -2
- camel/utils/token_counting.py +25 -17
- {camel_ai-0.2.75a6.dist-info → camel_ai-0.2.76.dist-info}/METADATA +158 -59
- {camel_ai-0.2.75a6.dist-info → camel_ai-0.2.76.dist-info}/RECORD +95 -76
- camel/loaders/pandas_reader.py +0 -368
- camel/toolkits/terminal_toolkit.py +0 -1788
- {camel_ai-0.2.75a6.dist-info → camel_ai-0.2.76.dist-info}/WHEEL +0 -0
- {camel_ai-0.2.75a6.dist-info → camel_ai-0.2.76.dist-info}/licenses/LICENSE +0 -0
camel/types/enums.py
CHANGED
|
@@ -30,7 +30,7 @@ class RoleType(Enum):
|
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
class ModelType(UnifiedModelType, Enum):
|
|
33
|
-
DEFAULT = os.getenv("DEFAULT_MODEL_TYPE", "gpt-
|
|
33
|
+
DEFAULT = os.getenv("DEFAULT_MODEL_TYPE", "gpt-4.1-mini-2025-04-14")
|
|
34
34
|
|
|
35
35
|
GPT_3_5_TURBO = "gpt-3.5-turbo"
|
|
36
36
|
GPT_4 = "gpt-4"
|
|
@@ -64,6 +64,8 @@ class ModelType(UnifiedModelType, Enum):
|
|
|
64
64
|
AWS_CLAUDE_OPUS_4 = "anthropic.claude-opus-4-20250514-v1:0"
|
|
65
65
|
AWS_CLAUDE_OPUS_4_1 = "anthropic.claude-opus-4-1-20250805-v1:0"
|
|
66
66
|
|
|
67
|
+
AMD_GPT4 = "dvue-aoai-001-gpt-4.1"
|
|
68
|
+
|
|
67
69
|
GLM_4 = "glm-4"
|
|
68
70
|
GLM_4V = "glm-4v"
|
|
69
71
|
GLM_4V_FLASH = "glm-4v-flash"
|
|
@@ -96,6 +98,42 @@ class ModelType(UnifiedModelType, Enum):
|
|
|
96
98
|
NEBIUS_LLAMA_3_1_70B = "meta-llama/Meta-Llama-3.1-70B-Instruct"
|
|
97
99
|
NEBIUS_MISTRAL_7B_INSTRUCT = "mistralai/Mistral-7B-Instruct-v0.3"
|
|
98
100
|
|
|
101
|
+
# CometAPI platform models
|
|
102
|
+
COMETAPI_GPT_5_CHAT_LATEST = "gpt-5-chat-latest"
|
|
103
|
+
COMETAPI_CHATGPT_4O_LATEST = "chatgpt-4o-latest"
|
|
104
|
+
COMETAPI_GPT_5_MINI = "gpt-5-mini"
|
|
105
|
+
COMETAPI_GPT_5_NANO = "gpt-5-nano"
|
|
106
|
+
COMETAPI_GPT_5 = "gpt-5"
|
|
107
|
+
COMETAPI_GPT_4_1 = "gpt-4.1"
|
|
108
|
+
COMETAPI_GPT_4O_MINI = "gpt-4o-mini"
|
|
109
|
+
COMETAPI_O4_MINI_2025_04_16 = "o4-mini-2025-04-16"
|
|
110
|
+
COMETAPI_O3_PRO_2025_06_10 = "o3-pro-2025-06-10"
|
|
111
|
+
COMETAPI_CLAUDE_OPUS_4_1_20250805 = "claude-opus-4-1-20250805"
|
|
112
|
+
COMETAPI_CLAUDE_OPUS_4_1_20250805_THINKING = (
|
|
113
|
+
"claude-opus-4-1-20250805-thinking"
|
|
114
|
+
)
|
|
115
|
+
COMETAPI_CLAUDE_SONNET_4_20250514 = "claude-sonnet-4-20250514"
|
|
116
|
+
COMETAPI_CLAUDE_SONNET_4_20250514_THINKING = (
|
|
117
|
+
"claude-sonnet-4-20250514-thinking"
|
|
118
|
+
)
|
|
119
|
+
COMETAPI_CLAUDE_3_7_SONNET_LATEST = "claude-3-7-sonnet-latest"
|
|
120
|
+
COMETAPI_CLAUDE_3_5_HAIKU_LATEST = "claude-3-5-haiku-latest"
|
|
121
|
+
COMETAPI_GEMINI_2_5_PRO = "gemini-2.5-pro"
|
|
122
|
+
COMETAPI_GEMINI_2_5_FLASH = "gemini-2.5-flash"
|
|
123
|
+
COMETAPI_GEMINI_2_5_FLASH_LITE = "gemini-2.5-flash-lite"
|
|
124
|
+
COMETAPI_GEMINI_2_0_FLASH = "gemini-2.0-flash"
|
|
125
|
+
COMETAPI_GROK_4_0709 = "grok-4-0709"
|
|
126
|
+
COMETAPI_GROK_3 = "grok-3"
|
|
127
|
+
COMETAPI_GROK_3_MINI = "grok-3-mini"
|
|
128
|
+
COMETAPI_GROK_2_IMAGE_1212 = "grok-2-image-1212"
|
|
129
|
+
COMETAPI_DEEPSEEK_V3_1 = "deepseek-v3.1"
|
|
130
|
+
COMETAPI_DEEPSEEK_V3 = "deepseek-v3"
|
|
131
|
+
COMETAPI_DEEPSEEK_R1_0528 = "deepseek-r1-0528"
|
|
132
|
+
COMETAPI_DEEPSEEK_CHAT = "deepseek-chat"
|
|
133
|
+
COMETAPI_DEEPSEEK_REASONER = "deepseek-reasoner"
|
|
134
|
+
COMETAPI_QWEN3_30B_A3B = "qwen3-30b-a3b"
|
|
135
|
+
COMETAPI_QWEN3_CODER_PLUS_2025_07_22 = "qwen3-coder-plus-2025-07-22"
|
|
136
|
+
|
|
99
137
|
# OpenRouter models
|
|
100
138
|
OPENROUTER_LLAMA_3_1_405B = "meta-llama/llama-3.1-405b-instruct"
|
|
101
139
|
OPENROUTER_LLAMA_3_1_70B = "meta-llama/llama-3.1-70b-instruct"
|
|
@@ -169,6 +207,7 @@ class ModelType(UnifiedModelType, Enum):
|
|
|
169
207
|
CLAUDE_3_5_SONNET = "claude-3-5-sonnet-latest"
|
|
170
208
|
CLAUDE_3_5_HAIKU = "claude-3-5-haiku-latest"
|
|
171
209
|
CLAUDE_3_7_SONNET = "claude-3-7-sonnet-latest"
|
|
210
|
+
CLAUDE_SONNET_4_5 = "claude-sonnet-4-5"
|
|
172
211
|
CLAUDE_SONNET_4 = "claude-sonnet-4-20250514"
|
|
173
212
|
CLAUDE_OPUS_4 = "claude-opus-4-20250514"
|
|
174
213
|
CLAUDE_OPUS_4_1 = "claude-opus-4-1-20250805"
|
|
@@ -224,6 +263,8 @@ class ModelType(UnifiedModelType, Enum):
|
|
|
224
263
|
MISTRAL_PIXTRAL_12B = "pixtral-12b-2409"
|
|
225
264
|
MISTRAL_MEDIUM_3_1 = "mistral-medium-2508"
|
|
226
265
|
MISTRAL_SMALL_3_2 = "mistral-small-2506"
|
|
266
|
+
MAGISTRAL_SMALL_1_2 = "magistral-small-1.2"
|
|
267
|
+
MAGISTRAL_MEDIUM_1_2 = "magistral-medium-1.2"
|
|
227
268
|
|
|
228
269
|
# Reka models
|
|
229
270
|
REKA_CORE = "reka-core"
|
|
@@ -516,6 +557,13 @@ class ModelType(UnifiedModelType, Enum):
|
|
|
516
557
|
ModelType.O3,
|
|
517
558
|
}
|
|
518
559
|
|
|
560
|
+
@property
|
|
561
|
+
def is_amd(self) -> bool:
|
|
562
|
+
r"""Returns whether this type of models is a AMD model."""
|
|
563
|
+
return self in {
|
|
564
|
+
ModelType.AMD_GPT4,
|
|
565
|
+
}
|
|
566
|
+
|
|
519
567
|
@property
|
|
520
568
|
def is_aws_bedrock(self) -> bool:
|
|
521
569
|
r"""Returns whether this type of models is an AWS Bedrock model."""
|
|
@@ -594,6 +642,7 @@ class ModelType(UnifiedModelType, Enum):
|
|
|
594
642
|
ModelType.CLAUDE_3_5_SONNET,
|
|
595
643
|
ModelType.CLAUDE_3_5_HAIKU,
|
|
596
644
|
ModelType.CLAUDE_3_7_SONNET,
|
|
645
|
+
ModelType.CLAUDE_SONNET_4_5,
|
|
597
646
|
ModelType.CLAUDE_SONNET_4,
|
|
598
647
|
ModelType.CLAUDE_OPUS_4,
|
|
599
648
|
ModelType.CLAUDE_OPUS_4_1,
|
|
@@ -626,6 +675,42 @@ class ModelType(UnifiedModelType, Enum):
|
|
|
626
675
|
ModelType.NEBIUS_MISTRAL_7B_INSTRUCT,
|
|
627
676
|
}
|
|
628
677
|
|
|
678
|
+
@property
|
|
679
|
+
def is_cometapi(self) -> bool:
|
|
680
|
+
r"""Returns whether this type of models is served by CometAPI."""
|
|
681
|
+
return self in {
|
|
682
|
+
ModelType.COMETAPI_GPT_5_CHAT_LATEST,
|
|
683
|
+
ModelType.COMETAPI_CHATGPT_4O_LATEST,
|
|
684
|
+
ModelType.COMETAPI_GPT_5_MINI,
|
|
685
|
+
ModelType.COMETAPI_GPT_5_NANO,
|
|
686
|
+
ModelType.COMETAPI_GPT_5,
|
|
687
|
+
ModelType.COMETAPI_GPT_4_1,
|
|
688
|
+
ModelType.COMETAPI_GPT_4O_MINI,
|
|
689
|
+
ModelType.COMETAPI_O4_MINI_2025_04_16,
|
|
690
|
+
ModelType.COMETAPI_O3_PRO_2025_06_10,
|
|
691
|
+
ModelType.COMETAPI_CLAUDE_OPUS_4_1_20250805,
|
|
692
|
+
ModelType.COMETAPI_CLAUDE_OPUS_4_1_20250805_THINKING,
|
|
693
|
+
ModelType.COMETAPI_CLAUDE_SONNET_4_20250514,
|
|
694
|
+
ModelType.COMETAPI_CLAUDE_SONNET_4_20250514_THINKING,
|
|
695
|
+
ModelType.COMETAPI_CLAUDE_3_7_SONNET_LATEST,
|
|
696
|
+
ModelType.COMETAPI_CLAUDE_3_5_HAIKU_LATEST,
|
|
697
|
+
ModelType.COMETAPI_GEMINI_2_5_PRO,
|
|
698
|
+
ModelType.COMETAPI_GEMINI_2_5_FLASH,
|
|
699
|
+
ModelType.COMETAPI_GEMINI_2_5_FLASH_LITE,
|
|
700
|
+
ModelType.COMETAPI_GEMINI_2_0_FLASH,
|
|
701
|
+
ModelType.COMETAPI_GROK_4_0709,
|
|
702
|
+
ModelType.COMETAPI_GROK_3,
|
|
703
|
+
ModelType.COMETAPI_GROK_3_MINI,
|
|
704
|
+
ModelType.COMETAPI_GROK_2_IMAGE_1212,
|
|
705
|
+
ModelType.COMETAPI_DEEPSEEK_V3_1,
|
|
706
|
+
ModelType.COMETAPI_DEEPSEEK_V3,
|
|
707
|
+
ModelType.COMETAPI_DEEPSEEK_R1_0528,
|
|
708
|
+
ModelType.COMETAPI_DEEPSEEK_CHAT,
|
|
709
|
+
ModelType.COMETAPI_DEEPSEEK_REASONER,
|
|
710
|
+
ModelType.COMETAPI_QWEN3_30B_A3B,
|
|
711
|
+
ModelType.COMETAPI_QWEN3_CODER_PLUS_2025_07_22,
|
|
712
|
+
}
|
|
713
|
+
|
|
629
714
|
@property
|
|
630
715
|
def is_openrouter(self) -> bool:
|
|
631
716
|
r"""Returns whether this type of models is served by OpenRouter."""
|
|
@@ -687,6 +772,8 @@ class ModelType(UnifiedModelType, Enum):
|
|
|
687
772
|
ModelType.MISTRAL_3B,
|
|
688
773
|
ModelType.MISTRAL_MEDIUM_3_1,
|
|
689
774
|
ModelType.MISTRAL_SMALL_3_2,
|
|
775
|
+
ModelType.MAGISTRAL_SMALL_1_2,
|
|
776
|
+
ModelType.MAGISTRAL_MEDIUM_1_2,
|
|
690
777
|
}
|
|
691
778
|
|
|
692
779
|
@property
|
|
@@ -1214,6 +1301,7 @@ class ModelType(UnifiedModelType, Enum):
|
|
|
1214
1301
|
ModelType.MISTRAL_8B,
|
|
1215
1302
|
ModelType.MISTRAL_3B,
|
|
1216
1303
|
ModelType.MISTRAL_SMALL_3_2,
|
|
1304
|
+
ModelType.MAGISTRAL_SMALL_1_2,
|
|
1217
1305
|
ModelType.QWEN_2_5_CODER_32B,
|
|
1218
1306
|
ModelType.QWEN_2_5_VL_72B,
|
|
1219
1307
|
ModelType.QWEN_2_5_72B,
|
|
@@ -1248,6 +1336,7 @@ class ModelType(UnifiedModelType, Enum):
|
|
|
1248
1336
|
ModelType.NETMIND_DEEPSEEK_V3,
|
|
1249
1337
|
ModelType.NOVITA_DEEPSEEK_V3_0324,
|
|
1250
1338
|
ModelType.MISTRAL_MEDIUM_3_1,
|
|
1339
|
+
ModelType.MAGISTRAL_MEDIUM_1_2,
|
|
1251
1340
|
ModelType.ERNIE_4_5_TURBO_128K,
|
|
1252
1341
|
ModelType.DEEPSEEK_V3,
|
|
1253
1342
|
ModelType.MOONSHOT_KIMI_K2,
|
|
@@ -1256,6 +1345,36 @@ class ModelType(UnifiedModelType, Enum):
|
|
|
1256
1345
|
ModelType.NEBIUS_DEEPSEEK_R1,
|
|
1257
1346
|
ModelType.NEBIUS_GPT_OSS_120B,
|
|
1258
1347
|
ModelType.NEBIUS_GPT_OSS_20B,
|
|
1348
|
+
ModelType.COMETAPI_GPT_5_CHAT_LATEST,
|
|
1349
|
+
ModelType.COMETAPI_CHATGPT_4O_LATEST,
|
|
1350
|
+
ModelType.COMETAPI_GPT_5_MINI,
|
|
1351
|
+
ModelType.COMETAPI_GPT_5_NANO,
|
|
1352
|
+
ModelType.COMETAPI_GPT_5,
|
|
1353
|
+
ModelType.COMETAPI_GPT_4_1,
|
|
1354
|
+
ModelType.COMETAPI_GPT_4O_MINI,
|
|
1355
|
+
ModelType.COMETAPI_O4_MINI_2025_04_16,
|
|
1356
|
+
ModelType.COMETAPI_O3_PRO_2025_06_10,
|
|
1357
|
+
ModelType.COMETAPI_CLAUDE_OPUS_4_1_20250805,
|
|
1358
|
+
ModelType.COMETAPI_CLAUDE_OPUS_4_1_20250805_THINKING,
|
|
1359
|
+
ModelType.COMETAPI_CLAUDE_SONNET_4_20250514,
|
|
1360
|
+
ModelType.COMETAPI_CLAUDE_SONNET_4_20250514_THINKING,
|
|
1361
|
+
ModelType.COMETAPI_CLAUDE_3_7_SONNET_LATEST,
|
|
1362
|
+
ModelType.COMETAPI_CLAUDE_3_5_HAIKU_LATEST,
|
|
1363
|
+
ModelType.COMETAPI_GEMINI_2_5_PRO,
|
|
1364
|
+
ModelType.COMETAPI_GEMINI_2_5_FLASH,
|
|
1365
|
+
ModelType.COMETAPI_GEMINI_2_5_FLASH_LITE,
|
|
1366
|
+
ModelType.COMETAPI_GEMINI_2_0_FLASH,
|
|
1367
|
+
ModelType.COMETAPI_GROK_4_0709,
|
|
1368
|
+
ModelType.COMETAPI_GROK_3,
|
|
1369
|
+
ModelType.COMETAPI_GROK_3_MINI,
|
|
1370
|
+
ModelType.COMETAPI_GROK_2_IMAGE_1212,
|
|
1371
|
+
ModelType.COMETAPI_DEEPSEEK_V3_1,
|
|
1372
|
+
ModelType.COMETAPI_DEEPSEEK_V3,
|
|
1373
|
+
ModelType.COMETAPI_DEEPSEEK_R1_0528,
|
|
1374
|
+
ModelType.COMETAPI_DEEPSEEK_CHAT,
|
|
1375
|
+
ModelType.COMETAPI_DEEPSEEK_REASONER,
|
|
1376
|
+
ModelType.COMETAPI_QWEN3_30B_A3B,
|
|
1377
|
+
ModelType.COMETAPI_QWEN3_CODER_PLUS_2025_07_22,
|
|
1259
1378
|
}:
|
|
1260
1379
|
return 128_000
|
|
1261
1380
|
elif self in {
|
|
@@ -1304,6 +1423,7 @@ class ModelType(UnifiedModelType, Enum):
|
|
|
1304
1423
|
ModelType.CLAUDE_3_5_SONNET,
|
|
1305
1424
|
ModelType.CLAUDE_3_5_HAIKU,
|
|
1306
1425
|
ModelType.CLAUDE_3_7_SONNET,
|
|
1426
|
+
ModelType.CLAUDE_SONNET_4_5,
|
|
1307
1427
|
ModelType.CLAUDE_SONNET_4,
|
|
1308
1428
|
ModelType.CLAUDE_OPUS_4,
|
|
1309
1429
|
ModelType.CLAUDE_OPUS_4_1,
|
|
@@ -1349,6 +1469,7 @@ class ModelType(UnifiedModelType, Enum):
|
|
|
1349
1469
|
ModelType.GLM_4_LONG,
|
|
1350
1470
|
ModelType.TOGETHER_LLAMA_4_MAVERICK,
|
|
1351
1471
|
ModelType.OPENROUTER_LLAMA_4_MAVERICK,
|
|
1472
|
+
ModelType.AMD_GPT4,
|
|
1352
1473
|
ModelType.GPT_4_1,
|
|
1353
1474
|
ModelType.GPT_4_1_MINI,
|
|
1354
1475
|
ModelType.GPT_4_1_NANO,
|
|
@@ -1563,6 +1684,7 @@ class ModelPlatformType(Enum):
|
|
|
1563
1684
|
ANTHROPIC = "anthropic"
|
|
1564
1685
|
GROQ = "groq"
|
|
1565
1686
|
NEBIUS = "nebius"
|
|
1687
|
+
COMETAPI = "cometapi"
|
|
1566
1688
|
OPENROUTER = "openrouter"
|
|
1567
1689
|
OLLAMA = "ollama"
|
|
1568
1690
|
LITELLM = "litellm"
|
|
@@ -1579,6 +1701,7 @@ class ModelPlatformType(Enum):
|
|
|
1579
1701
|
COHERE = "cohere"
|
|
1580
1702
|
YI = "lingyiwanwu"
|
|
1581
1703
|
QWEN = "tongyi-qianwen"
|
|
1704
|
+
AMD = "amd"
|
|
1582
1705
|
NVIDIA = "nvidia"
|
|
1583
1706
|
DEEPSEEK = "deepseek"
|
|
1584
1707
|
PPIO = "ppio"
|
|
@@ -145,6 +145,11 @@ class UnifiedModelType(str):
|
|
|
145
145
|
r"""Returns whether the model is a Cohere model."""
|
|
146
146
|
return True
|
|
147
147
|
|
|
148
|
+
@property
|
|
149
|
+
def is_cometapi(self) -> bool:
|
|
150
|
+
r"""Returns whether the model is a CometAPI served model."""
|
|
151
|
+
return True
|
|
152
|
+
|
|
148
153
|
@property
|
|
149
154
|
def is_yi(self) -> bool:
|
|
150
155
|
r"""Returns whether the model is a Yi model."""
|
camel/utils/commons.py
CHANGED
|
@@ -318,6 +318,8 @@ def api_keys_required(
|
|
|
318
318
|
key_way = "https://aimlapi.com/"
|
|
319
319
|
elif env_var_name == 'COHERE_API_KEY':
|
|
320
320
|
key_way = "https://cohere.com/"
|
|
321
|
+
elif env_var_name == 'COMETAPI_KEY':
|
|
322
|
+
key_way = "https://api.cometapi.com/console/token"
|
|
321
323
|
elif env_var_name == 'DEEPSEEK_API_KEY':
|
|
322
324
|
key_way = "https://www.deepseek.com/"
|
|
323
325
|
elif env_var_name == 'AZURE_OPENAI_API_KEY':
|
|
@@ -354,6 +356,8 @@ def api_keys_required(
|
|
|
354
356
|
key_way = "https://www.zhipuai.cn/"
|
|
355
357
|
elif env_var_name == 'KLAVIS_API_KEY':
|
|
356
358
|
key_way = "https://www.klavis.ai/docs"
|
|
359
|
+
elif env_var_name == 'XAI_API_KEY':
|
|
360
|
+
key_way = "https://api.x.ai/v1"
|
|
357
361
|
|
|
358
362
|
if missing_keys:
|
|
359
363
|
raise ValueError(
|
|
@@ -1011,6 +1015,19 @@ def with_timeout(timeout=None):
|
|
|
1011
1015
|
if effective_timeout is None:
|
|
1012
1016
|
return func(*args, **kwargs)
|
|
1013
1017
|
|
|
1018
|
+
# If current thread has a running asyncio event loop, avoid
|
|
1019
|
+
# switching threads to preserve asyncio context (e.g., for
|
|
1020
|
+
# asyncio.create_task). Execute inline without enforcing a
|
|
1021
|
+
# sync timeout to keep event loop semantics intact.
|
|
1022
|
+
try:
|
|
1023
|
+
asyncio.get_running_loop()
|
|
1024
|
+
loop_running = True
|
|
1025
|
+
except RuntimeError:
|
|
1026
|
+
loop_running = False
|
|
1027
|
+
|
|
1028
|
+
if loop_running:
|
|
1029
|
+
return func(*args, **kwargs)
|
|
1030
|
+
|
|
1014
1031
|
# Container to hold the result of the function call
|
|
1015
1032
|
result_container = []
|
|
1016
1033
|
|