camel-ai 0.2.75a5__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 +1148 -298
- camel/agents/mcp_agent.py +30 -27
- camel/configs/__init__.py +9 -0
- camel/configs/amd_config.py +70 -0
- camel/configs/cometapi_config.py +104 -0
- camel/configs/nebius_config.py +103 -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 +6 -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 +6 -0
- camel/models/nebius_model.py +83 -0
- camel/models/ollama_model.py +3 -3
- 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 +163 -27
- camel/societies/workforce/utils.py +105 -12
- camel/societies/workforce/workforce.py +1357 -314
- 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/github_toolkit.py +104 -17
- 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 +412 -133
- 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/math_toolkit.py +64 -10
- 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/search_toolkit.py +13 -2
- 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 +155 -1
- camel/types/unified_model_type.py +10 -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.75a5.dist-info → camel_ai-0.2.76.dist-info}/METADATA +158 -67
- {camel_ai-0.2.75a5.dist-info → camel_ai-0.2.76.dist-info}/RECORD +101 -80
- camel/loaders/pandas_reader.py +0 -368
- camel/toolkits/terminal_toolkit.py +0 -1788
- {camel_ai-0.2.75a5.dist-info → camel_ai-0.2.76.dist-info}/WHEEL +0 -0
- {camel_ai-0.2.75a5.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"
|
|
@@ -87,6 +89,51 @@ class ModelType(UnifiedModelType, Enum):
|
|
|
87
89
|
GROQ_MIXTRAL_8_7B = "mixtral-8x7b-32768"
|
|
88
90
|
GROQ_GEMMA_2_9B_IT = "gemma2-9b-it"
|
|
89
91
|
|
|
92
|
+
# Nebius AI Studio platform models
|
|
93
|
+
NEBIUS_GPT_OSS_120B = "gpt-oss-120b"
|
|
94
|
+
NEBIUS_GPT_OSS_20B = "gpt-oss-20b"
|
|
95
|
+
NEBIUS_GLM_4_5 = "GLM-4.5"
|
|
96
|
+
NEBIUS_DEEPSEEK_V3 = "deepseek-ai/DeepSeek-V3"
|
|
97
|
+
NEBIUS_DEEPSEEK_R1 = "deepseek-ai/DeepSeek-R1"
|
|
98
|
+
NEBIUS_LLAMA_3_1_70B = "meta-llama/Meta-Llama-3.1-70B-Instruct"
|
|
99
|
+
NEBIUS_MISTRAL_7B_INSTRUCT = "mistralai/Mistral-7B-Instruct-v0.3"
|
|
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
|
+
|
|
90
137
|
# OpenRouter models
|
|
91
138
|
OPENROUTER_LLAMA_3_1_405B = "meta-llama/llama-3.1-405b-instruct"
|
|
92
139
|
OPENROUTER_LLAMA_3_1_70B = "meta-llama/llama-3.1-70b-instruct"
|
|
@@ -160,6 +207,7 @@ class ModelType(UnifiedModelType, Enum):
|
|
|
160
207
|
CLAUDE_3_5_SONNET = "claude-3-5-sonnet-latest"
|
|
161
208
|
CLAUDE_3_5_HAIKU = "claude-3-5-haiku-latest"
|
|
162
209
|
CLAUDE_3_7_SONNET = "claude-3-7-sonnet-latest"
|
|
210
|
+
CLAUDE_SONNET_4_5 = "claude-sonnet-4-5"
|
|
163
211
|
CLAUDE_SONNET_4 = "claude-sonnet-4-20250514"
|
|
164
212
|
CLAUDE_OPUS_4 = "claude-opus-4-20250514"
|
|
165
213
|
CLAUDE_OPUS_4_1 = "claude-opus-4-1-20250805"
|
|
@@ -215,6 +263,8 @@ class ModelType(UnifiedModelType, Enum):
|
|
|
215
263
|
MISTRAL_PIXTRAL_12B = "pixtral-12b-2409"
|
|
216
264
|
MISTRAL_MEDIUM_3_1 = "mistral-medium-2508"
|
|
217
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"
|
|
218
268
|
|
|
219
269
|
# Reka models
|
|
220
270
|
REKA_CORE = "reka-core"
|
|
@@ -507,6 +557,13 @@ class ModelType(UnifiedModelType, Enum):
|
|
|
507
557
|
ModelType.O3,
|
|
508
558
|
}
|
|
509
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
|
+
|
|
510
567
|
@property
|
|
511
568
|
def is_aws_bedrock(self) -> bool:
|
|
512
569
|
r"""Returns whether this type of models is an AWS Bedrock model."""
|
|
@@ -585,6 +642,7 @@ class ModelType(UnifiedModelType, Enum):
|
|
|
585
642
|
ModelType.CLAUDE_3_5_SONNET,
|
|
586
643
|
ModelType.CLAUDE_3_5_HAIKU,
|
|
587
644
|
ModelType.CLAUDE_3_7_SONNET,
|
|
645
|
+
ModelType.CLAUDE_SONNET_4_5,
|
|
588
646
|
ModelType.CLAUDE_SONNET_4,
|
|
589
647
|
ModelType.CLAUDE_OPUS_4,
|
|
590
648
|
ModelType.CLAUDE_OPUS_4_1,
|
|
@@ -603,6 +661,56 @@ class ModelType(UnifiedModelType, Enum):
|
|
|
603
661
|
ModelType.GROQ_GEMMA_2_9B_IT,
|
|
604
662
|
}
|
|
605
663
|
|
|
664
|
+
@property
|
|
665
|
+
def is_nebius(self) -> bool:
|
|
666
|
+
r"""Returns whether this type of models is served by Nebius AI
|
|
667
|
+
Studio."""
|
|
668
|
+
return self in {
|
|
669
|
+
ModelType.NEBIUS_GPT_OSS_120B,
|
|
670
|
+
ModelType.NEBIUS_GPT_OSS_20B,
|
|
671
|
+
ModelType.NEBIUS_GLM_4_5,
|
|
672
|
+
ModelType.NEBIUS_DEEPSEEK_V3,
|
|
673
|
+
ModelType.NEBIUS_DEEPSEEK_R1,
|
|
674
|
+
ModelType.NEBIUS_LLAMA_3_1_70B,
|
|
675
|
+
ModelType.NEBIUS_MISTRAL_7B_INSTRUCT,
|
|
676
|
+
}
|
|
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
|
+
|
|
606
714
|
@property
|
|
607
715
|
def is_openrouter(self) -> bool:
|
|
608
716
|
r"""Returns whether this type of models is served by OpenRouter."""
|
|
@@ -664,6 +772,8 @@ class ModelType(UnifiedModelType, Enum):
|
|
|
664
772
|
ModelType.MISTRAL_3B,
|
|
665
773
|
ModelType.MISTRAL_MEDIUM_3_1,
|
|
666
774
|
ModelType.MISTRAL_SMALL_3_2,
|
|
775
|
+
ModelType.MAGISTRAL_SMALL_1_2,
|
|
776
|
+
ModelType.MAGISTRAL_MEDIUM_1_2,
|
|
667
777
|
}
|
|
668
778
|
|
|
669
779
|
@property
|
|
@@ -1138,6 +1248,7 @@ class ModelType(UnifiedModelType, Enum):
|
|
|
1138
1248
|
ModelType.NOVITA_MISTRAL_7B,
|
|
1139
1249
|
ModelType.NOVITA_LLAMA_3_2_11B_VISION,
|
|
1140
1250
|
ModelType.NOVITA_LLAMA_3_2_3B,
|
|
1251
|
+
ModelType.NEBIUS_MISTRAL_7B_INSTRUCT,
|
|
1141
1252
|
}:
|
|
1142
1253
|
return 32_768
|
|
1143
1254
|
elif self in {
|
|
@@ -1190,6 +1301,7 @@ class ModelType(UnifiedModelType, Enum):
|
|
|
1190
1301
|
ModelType.MISTRAL_8B,
|
|
1191
1302
|
ModelType.MISTRAL_3B,
|
|
1192
1303
|
ModelType.MISTRAL_SMALL_3_2,
|
|
1304
|
+
ModelType.MAGISTRAL_SMALL_1_2,
|
|
1193
1305
|
ModelType.QWEN_2_5_CODER_32B,
|
|
1194
1306
|
ModelType.QWEN_2_5_VL_72B,
|
|
1195
1307
|
ModelType.QWEN_2_5_72B,
|
|
@@ -1224,9 +1336,45 @@ class ModelType(UnifiedModelType, Enum):
|
|
|
1224
1336
|
ModelType.NETMIND_DEEPSEEK_V3,
|
|
1225
1337
|
ModelType.NOVITA_DEEPSEEK_V3_0324,
|
|
1226
1338
|
ModelType.MISTRAL_MEDIUM_3_1,
|
|
1339
|
+
ModelType.MAGISTRAL_MEDIUM_1_2,
|
|
1227
1340
|
ModelType.ERNIE_4_5_TURBO_128K,
|
|
1228
1341
|
ModelType.DEEPSEEK_V3,
|
|
1229
1342
|
ModelType.MOONSHOT_KIMI_K2,
|
|
1343
|
+
ModelType.NEBIUS_GLM_4_5,
|
|
1344
|
+
ModelType.NEBIUS_DEEPSEEK_V3,
|
|
1345
|
+
ModelType.NEBIUS_DEEPSEEK_R1,
|
|
1346
|
+
ModelType.NEBIUS_GPT_OSS_120B,
|
|
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,
|
|
1230
1378
|
}:
|
|
1231
1379
|
return 128_000
|
|
1232
1380
|
elif self in {
|
|
@@ -1261,6 +1409,7 @@ class ModelType(UnifiedModelType, Enum):
|
|
|
1261
1409
|
ModelType.NOVITA_LLAMA_4_SCOUT_17B,
|
|
1262
1410
|
ModelType.NOVITA_LLAMA_3_3_70B,
|
|
1263
1411
|
ModelType.NOVITA_MISTRAL_NEMO,
|
|
1412
|
+
ModelType.NEBIUS_LLAMA_3_1_70B,
|
|
1264
1413
|
}:
|
|
1265
1414
|
return 131_072
|
|
1266
1415
|
elif self in {
|
|
@@ -1274,6 +1423,7 @@ class ModelType(UnifiedModelType, Enum):
|
|
|
1274
1423
|
ModelType.CLAUDE_3_5_SONNET,
|
|
1275
1424
|
ModelType.CLAUDE_3_5_HAIKU,
|
|
1276
1425
|
ModelType.CLAUDE_3_7_SONNET,
|
|
1426
|
+
ModelType.CLAUDE_SONNET_4_5,
|
|
1277
1427
|
ModelType.CLAUDE_SONNET_4,
|
|
1278
1428
|
ModelType.CLAUDE_OPUS_4,
|
|
1279
1429
|
ModelType.CLAUDE_OPUS_4_1,
|
|
@@ -1319,6 +1469,7 @@ class ModelType(UnifiedModelType, Enum):
|
|
|
1319
1469
|
ModelType.GLM_4_LONG,
|
|
1320
1470
|
ModelType.TOGETHER_LLAMA_4_MAVERICK,
|
|
1321
1471
|
ModelType.OPENROUTER_LLAMA_4_MAVERICK,
|
|
1472
|
+
ModelType.AMD_GPT4,
|
|
1322
1473
|
ModelType.GPT_4_1,
|
|
1323
1474
|
ModelType.GPT_4_1_MINI,
|
|
1324
1475
|
ModelType.GPT_4_1_NANO,
|
|
@@ -1532,6 +1683,8 @@ class ModelPlatformType(Enum):
|
|
|
1532
1683
|
AZURE = "azure"
|
|
1533
1684
|
ANTHROPIC = "anthropic"
|
|
1534
1685
|
GROQ = "groq"
|
|
1686
|
+
NEBIUS = "nebius"
|
|
1687
|
+
COMETAPI = "cometapi"
|
|
1535
1688
|
OPENROUTER = "openrouter"
|
|
1536
1689
|
OLLAMA = "ollama"
|
|
1537
1690
|
LITELLM = "litellm"
|
|
@@ -1548,6 +1701,7 @@ class ModelPlatformType(Enum):
|
|
|
1548
1701
|
COHERE = "cohere"
|
|
1549
1702
|
YI = "lingyiwanwu"
|
|
1550
1703
|
QWEN = "tongyi-qianwen"
|
|
1704
|
+
AMD = "amd"
|
|
1551
1705
|
NVIDIA = "nvidia"
|
|
1552
1706
|
DEEPSEEK = "deepseek"
|
|
1553
1707
|
PPIO = "ppio"
|
|
@@ -95,6 +95,11 @@ class UnifiedModelType(str):
|
|
|
95
95
|
r"""Returns whether the model is a Groq served model."""
|
|
96
96
|
return True
|
|
97
97
|
|
|
98
|
+
@property
|
|
99
|
+
def is_nebius(self) -> bool:
|
|
100
|
+
r"""Returns whether the model is a Nebius AI Studio served model."""
|
|
101
|
+
return True
|
|
102
|
+
|
|
98
103
|
@property
|
|
99
104
|
def is_openrouter(self) -> bool:
|
|
100
105
|
r"""Returns whether the model is a OpenRouter served model."""
|
|
@@ -140,6 +145,11 @@ class UnifiedModelType(str):
|
|
|
140
145
|
r"""Returns whether the model is a Cohere model."""
|
|
141
146
|
return True
|
|
142
147
|
|
|
148
|
+
@property
|
|
149
|
+
def is_cometapi(self) -> bool:
|
|
150
|
+
r"""Returns whether the model is a CometAPI served model."""
|
|
151
|
+
return True
|
|
152
|
+
|
|
143
153
|
@property
|
|
144
154
|
def is_yi(self) -> bool:
|
|
145
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
|
|