camel-ai 0.2.9__py3-none-any.whl → 0.2.11__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 +10 -5
- camel/agents/__init__.py +4 -4
- camel/agents/base.py +4 -4
- camel/agents/chat_agent.py +106 -42
- camel/agents/critic_agent.py +4 -4
- camel/agents/deductive_reasoner_agent.py +8 -5
- camel/agents/embodied_agent.py +4 -4
- camel/agents/knowledge_graph_agent.py +4 -4
- camel/agents/role_assignment_agent.py +4 -4
- camel/agents/search_agent.py +4 -4
- camel/agents/task_agent.py +4 -4
- camel/agents/tool_agents/__init__.py +4 -4
- camel/agents/tool_agents/base.py +4 -4
- camel/agents/tool_agents/hugging_face_tool_agent.py +4 -4
- camel/bots/__init__.py +4 -4
- camel/bots/discord_app.py +4 -4
- camel/bots/slack/__init__.py +4 -4
- camel/bots/slack/models.py +4 -4
- camel/bots/slack/slack_app.py +4 -4
- camel/bots/telegram_bot.py +4 -4
- camel/configs/__init__.py +13 -4
- camel/configs/anthropic_config.py +4 -4
- camel/configs/base_config.py +4 -4
- camel/configs/cohere_config.py +76 -0
- camel/configs/deepseek_config.py +134 -0
- camel/configs/gemini_config.py +85 -127
- camel/configs/groq_config.py +4 -4
- camel/configs/litellm_config.py +4 -4
- camel/configs/mistral_config.py +4 -7
- camel/configs/nvidia_config.py +70 -0
- camel/configs/ollama_config.py +4 -4
- camel/configs/openai_config.py +32 -7
- camel/configs/qwen_config.py +4 -4
- camel/configs/reka_config.py +4 -4
- camel/configs/samba_config.py +4 -4
- camel/configs/togetherai_config.py +4 -4
- camel/configs/vllm_config.py +14 -5
- camel/configs/yi_config.py +4 -4
- camel/configs/zhipuai_config.py +4 -4
- camel/embeddings/__init__.py +6 -4
- camel/embeddings/base.py +4 -4
- camel/embeddings/mistral_embedding.py +4 -4
- camel/embeddings/openai_compatible_embedding.py +91 -0
- camel/embeddings/openai_embedding.py +4 -4
- camel/embeddings/sentence_transformers_embeddings.py +4 -4
- camel/embeddings/vlm_embedding.py +8 -5
- camel/generators.py +4 -4
- camel/human.py +4 -4
- camel/interpreters/__init__.py +4 -4
- camel/interpreters/base.py +4 -4
- camel/interpreters/docker_interpreter.py +11 -6
- camel/interpreters/internal_python_interpreter.py +4 -4
- camel/interpreters/interpreter_error.py +4 -4
- camel/interpreters/ipython_interpreter.py +4 -4
- camel/interpreters/subprocess_interpreter.py +11 -6
- camel/loaders/__init__.py +4 -4
- camel/loaders/apify_reader.py +4 -4
- camel/loaders/base_io.py +4 -4
- camel/loaders/chunkr_reader.py +4 -4
- camel/loaders/firecrawl_reader.py +4 -7
- camel/loaders/jina_url_reader.py +4 -4
- camel/loaders/unstructured_io.py +4 -4
- camel/logger.py +112 -0
- camel/memories/__init__.py +4 -4
- camel/memories/agent_memories.py +4 -4
- camel/memories/base.py +4 -4
- camel/memories/blocks/__init__.py +4 -4
- camel/memories/blocks/chat_history_block.py +4 -4
- camel/memories/blocks/vectordb_block.py +4 -4
- camel/memories/context_creators/__init__.py +4 -4
- camel/memories/context_creators/score_based.py +4 -4
- camel/memories/records.py +4 -4
- camel/messages/__init__.py +20 -4
- camel/messages/base.py +118 -11
- camel/messages/conversion/__init__.py +31 -0
- camel/messages/conversion/alpaca.py +122 -0
- camel/messages/conversion/conversation_models.py +178 -0
- camel/messages/conversion/sharegpt/__init__.py +20 -0
- camel/messages/conversion/sharegpt/function_call_formatter.py +49 -0
- camel/messages/conversion/sharegpt/hermes/__init__.py +19 -0
- camel/messages/conversion/sharegpt/hermes/hermes_function_formatter.py +128 -0
- camel/messages/func_message.py +50 -4
- camel/models/__init__.py +13 -4
- camel/models/anthropic_model.py +4 -4
- camel/models/azure_openai_model.py +4 -4
- camel/models/base_model.py +4 -4
- camel/models/cohere_model.py +282 -0
- camel/models/deepseek_model.py +139 -0
- camel/models/gemini_model.py +61 -146
- camel/models/groq_model.py +4 -4
- camel/models/litellm_model.py +4 -4
- camel/models/mistral_model.py +4 -4
- camel/models/model_factory.py +13 -4
- camel/models/model_manager.py +212 -0
- camel/models/nemotron_model.py +4 -4
- camel/models/nvidia_model.py +141 -0
- camel/models/ollama_model.py +4 -4
- camel/models/openai_audio_models.py +4 -4
- camel/models/openai_compatible_model.py +4 -4
- camel/models/openai_model.py +43 -4
- camel/models/qwen_model.py +4 -4
- camel/models/reka_model.py +4 -4
- camel/models/samba_model.py +6 -5
- camel/models/stub_model.py +4 -4
- camel/models/togetherai_model.py +4 -4
- camel/models/vllm_model.py +4 -4
- camel/models/yi_model.py +4 -4
- camel/models/zhipuai_model.py +4 -4
- camel/personas/__init__.py +17 -0
- camel/personas/persona.py +103 -0
- camel/personas/persona_hub.py +293 -0
- camel/prompts/__init__.py +6 -4
- camel/prompts/ai_society.py +4 -4
- camel/prompts/base.py +4 -4
- camel/prompts/code.py +4 -4
- camel/prompts/evaluation.py +4 -4
- camel/prompts/generate_text_embedding_data.py +4 -4
- camel/prompts/image_craft.py +4 -4
- camel/prompts/misalignment.py +4 -4
- camel/prompts/multi_condition_image_craft.py +4 -4
- camel/prompts/object_recognition.py +4 -4
- camel/prompts/persona_hub.py +61 -0
- camel/prompts/prompt_templates.py +4 -4
- camel/prompts/role_description_prompt_template.py +4 -4
- camel/prompts/solution_extraction.py +4 -4
- camel/prompts/task_prompt_template.py +4 -4
- camel/prompts/translation.py +4 -4
- camel/prompts/video_description_prompt.py +4 -4
- camel/responses/__init__.py +4 -4
- camel/responses/agent_responses.py +4 -4
- camel/retrievers/__init__.py +4 -4
- camel/retrievers/auto_retriever.py +4 -4
- camel/retrievers/base.py +4 -4
- camel/retrievers/bm25_retriever.py +4 -4
- camel/retrievers/cohere_rerank_retriever.py +7 -9
- camel/retrievers/vector_retriever.py +26 -9
- camel/runtime/__init__.py +29 -0
- camel/runtime/api.py +93 -0
- camel/runtime/base.py +45 -0
- camel/runtime/configs.py +56 -0
- camel/runtime/docker_runtime.py +404 -0
- camel/runtime/llm_guard_runtime.py +199 -0
- camel/runtime/remote_http_runtime.py +204 -0
- camel/runtime/utils/__init__.py +20 -0
- camel/runtime/utils/function_risk_toolkit.py +58 -0
- camel/runtime/utils/ignore_risk_toolkit.py +72 -0
- camel/schemas/__init__.py +17 -0
- camel/schemas/base.py +45 -0
- camel/schemas/openai_converter.py +116 -0
- camel/societies/__init__.py +4 -4
- camel/societies/babyagi_playing.py +8 -5
- camel/societies/role_playing.py +4 -4
- camel/societies/workforce/__init__.py +4 -4
- camel/societies/workforce/base.py +4 -4
- camel/societies/workforce/prompts.py +4 -4
- camel/societies/workforce/role_playing_worker.py +4 -4
- camel/societies/workforce/single_agent_worker.py +4 -4
- camel/societies/workforce/task_channel.py +4 -4
- camel/societies/workforce/utils.py +4 -4
- camel/societies/workforce/worker.py +4 -4
- camel/societies/workforce/workforce.py +7 -7
- camel/storages/__init__.py +4 -4
- camel/storages/graph_storages/__init__.py +4 -4
- camel/storages/graph_storages/base.py +4 -4
- camel/storages/graph_storages/graph_element.py +4 -4
- camel/storages/graph_storages/nebula_graph.py +4 -4
- camel/storages/graph_storages/neo4j_graph.py +4 -4
- camel/storages/key_value_storages/__init__.py +4 -4
- camel/storages/key_value_storages/base.py +4 -4
- camel/storages/key_value_storages/in_memory.py +4 -4
- camel/storages/key_value_storages/json.py +4 -4
- camel/storages/key_value_storages/redis.py +4 -4
- camel/storages/object_storages/__init__.py +4 -4
- camel/storages/object_storages/amazon_s3.py +4 -4
- camel/storages/object_storages/azure_blob.py +4 -4
- camel/storages/object_storages/base.py +4 -4
- camel/storages/object_storages/google_cloud.py +4 -4
- camel/storages/vectordb_storages/__init__.py +4 -4
- camel/storages/vectordb_storages/base.py +4 -4
- camel/storages/vectordb_storages/milvus.py +4 -4
- camel/storages/vectordb_storages/qdrant.py +4 -4
- camel/tasks/__init__.py +4 -4
- camel/tasks/task.py +4 -4
- camel/tasks/task_prompt.py +4 -4
- camel/terminators/__init__.py +4 -4
- camel/terminators/base.py +4 -4
- camel/terminators/response_terminator.py +4 -4
- camel/terminators/token_limit_terminator.py +4 -4
- camel/toolkits/__init__.py +16 -17
- camel/toolkits/arxiv_toolkit.py +4 -4
- camel/toolkits/ask_news_toolkit.py +7 -18
- camel/toolkits/base.py +4 -4
- camel/toolkits/code_execution.py +57 -10
- camel/toolkits/dalle_toolkit.py +4 -7
- camel/toolkits/data_commons_toolkit.py +4 -4
- camel/toolkits/function_tool.py +220 -69
- camel/toolkits/github_toolkit.py +4 -4
- camel/toolkits/google_maps_toolkit.py +4 -4
- camel/toolkits/google_scholar_toolkit.py +4 -4
- camel/toolkits/human_toolkit.py +53 -0
- camel/toolkits/linkedin_toolkit.py +4 -4
- camel/toolkits/math_toolkit.py +4 -7
- camel/toolkits/meshy_toolkit.py +185 -0
- camel/toolkits/notion_toolkit.py +4 -4
- camel/toolkits/open_api_specs/biztoc/__init__.py +4 -4
- camel/toolkits/open_api_specs/coursera/__init__.py +4 -4
- camel/toolkits/open_api_specs/create_qr_code/__init__.py +4 -4
- camel/toolkits/open_api_specs/klarna/__init__.py +4 -4
- camel/toolkits/open_api_specs/nasa_apod/__init__.py +4 -4
- camel/toolkits/open_api_specs/outschool/__init__.py +4 -4
- camel/toolkits/open_api_specs/outschool/paths/__init__.py +4 -4
- camel/toolkits/open_api_specs/outschool/paths/get_classes.py +4 -4
- camel/toolkits/open_api_specs/outschool/paths/search_teachers.py +4 -4
- camel/toolkits/open_api_specs/security_config.py +4 -4
- camel/toolkits/open_api_specs/speak/__init__.py +4 -4
- camel/toolkits/open_api_specs/web_scraper/__init__.py +4 -4
- camel/toolkits/open_api_specs/web_scraper/paths/__init__.py +4 -4
- camel/toolkits/open_api_specs/web_scraper/paths/scraper.py +4 -4
- camel/toolkits/open_api_toolkit.py +4 -4
- camel/toolkits/reddit_toolkit.py +4 -4
- camel/toolkits/retrieval_toolkit.py +4 -4
- camel/toolkits/search_toolkit.py +49 -29
- camel/toolkits/slack_toolkit.py +4 -4
- camel/toolkits/twitter_toolkit.py +13 -13
- camel/toolkits/video_toolkit.py +211 -0
- camel/toolkits/weather_toolkit.py +4 -7
- camel/toolkits/whatsapp_toolkit.py +6 -6
- camel/types/__init__.py +6 -4
- camel/types/enums.py +118 -15
- camel/types/openai_types.py +6 -4
- camel/types/unified_model_type.py +9 -4
- camel/utils/__init__.py +35 -33
- camel/utils/async_func.py +4 -4
- camel/utils/commons.py +26 -9
- camel/utils/constants.py +4 -4
- camel/utils/response_format.py +63 -0
- camel/utils/token_counting.py +8 -5
- {camel_ai-0.2.9.dist-info → camel_ai-0.2.11.dist-info}/METADATA +108 -56
- camel_ai-0.2.11.dist-info/RECORD +252 -0
- camel_ai-0.2.9.dist-info/RECORD +0 -215
- {camel_ai-0.2.9.dist-info → camel_ai-0.2.11.dist-info}/LICENSE +0 -0
- {camel_ai-0.2.9.dist-info → camel_ai-0.2.11.dist-info}/WHEEL +0 -0
camel/__init__.py
CHANGED
|
@@ -1,20 +1,25 @@
|
|
|
1
|
-
#
|
|
2
|
-
# Licensed under the Apache License, Version 2.0 (the
|
|
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
|
|
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
|
-
#
|
|
13
|
+
# ========= Copyright 2023-2024 @ CAMEL-AI.org. All Rights Reserved. =========
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
from camel.logger import disable_logging, enable_logging, set_log_level
|
|
16
|
+
|
|
17
|
+
__version__ = '0.2.11'
|
|
16
18
|
|
|
17
19
|
__all__ = [
|
|
18
20
|
'__version__',
|
|
19
21
|
'camel',
|
|
22
|
+
'disable_logging',
|
|
23
|
+
'enable_logging',
|
|
24
|
+
'set_log_level',
|
|
20
25
|
]
|
camel/agents/__init__.py
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
#
|
|
2
|
-
# Licensed under the Apache License, Version 2.0 (the
|
|
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
|
|
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
|
-
#
|
|
13
|
+
# ========= Copyright 2023-2024 @ CAMEL-AI.org. All Rights Reserved. =========
|
|
14
14
|
from .base import BaseAgent
|
|
15
15
|
from .chat_agent import ChatAgent
|
|
16
16
|
from .critic_agent import CriticAgent
|
camel/agents/base.py
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
#
|
|
2
|
-
# Licensed under the Apache License, Version 2.0 (the
|
|
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
|
|
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
|
-
#
|
|
13
|
+
# ========= Copyright 2023-2024 @ CAMEL-AI.org. All Rights Reserved. =========
|
|
14
14
|
from abc import ABC, abstractmethod
|
|
15
15
|
from typing import Any
|
|
16
16
|
|
camel/agents/chat_agent.py
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
#
|
|
2
|
-
# Licensed under the Apache License, Version 2.0 (the
|
|
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
|
|
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
|
-
#
|
|
13
|
+
# ========= Copyright 2023-2024 @ CAMEL-AI.org. All Rights Reserved. =========
|
|
14
14
|
from __future__ import annotations
|
|
15
15
|
|
|
16
16
|
import json
|
|
@@ -21,6 +21,7 @@ from collections import defaultdict
|
|
|
21
21
|
from typing import (
|
|
22
22
|
TYPE_CHECKING,
|
|
23
23
|
Any,
|
|
24
|
+
Callable,
|
|
24
25
|
Dict,
|
|
25
26
|
List,
|
|
26
27
|
Optional,
|
|
@@ -41,7 +42,12 @@ from camel.memories import (
|
|
|
41
42
|
ScoreBasedContextCreator,
|
|
42
43
|
)
|
|
43
44
|
from camel.messages import BaseMessage, FunctionCallingMessage, OpenAIMessage
|
|
44
|
-
from camel.models import
|
|
45
|
+
from camel.models import (
|
|
46
|
+
BaseModelBackend,
|
|
47
|
+
ModelFactory,
|
|
48
|
+
ModelManager,
|
|
49
|
+
ModelProcessingError,
|
|
50
|
+
)
|
|
45
51
|
from camel.responses import ChatAgentResponse
|
|
46
52
|
from camel.types import (
|
|
47
53
|
ChatCompletion,
|
|
@@ -122,8 +128,8 @@ class ChatAgent(BaseAgent):
|
|
|
122
128
|
system_message (Union[BaseMessage, str], optional): The system message
|
|
123
129
|
for the chat agent.
|
|
124
130
|
model (BaseModelBackend, optional): The model backend to use for
|
|
125
|
-
generating responses. (default: :obj:`
|
|
126
|
-
`
|
|
131
|
+
generating responses. (default: :obj:`ModelPlatformType.DEFAULT`
|
|
132
|
+
with `ModelType.DEFAULT`)
|
|
127
133
|
memory (AgentMemory, optional): The agent memory for managing chat
|
|
128
134
|
messages. If `None`, a :obj:`ChatHistoryMemory` will be used.
|
|
129
135
|
(default: :obj:`None`)
|
|
@@ -145,12 +151,16 @@ class ChatAgent(BaseAgent):
|
|
|
145
151
|
response_terminators (List[ResponseTerminator], optional): List of
|
|
146
152
|
:obj:`ResponseTerminator` bind to one chat agent.
|
|
147
153
|
(default: :obj:`None`)
|
|
154
|
+
scheduling_strategy (str): name of function that defines how to select
|
|
155
|
+
the next model in ModelManager. (default: :str:`round_robin`)
|
|
148
156
|
"""
|
|
149
157
|
|
|
150
158
|
def __init__(
|
|
151
159
|
self,
|
|
152
160
|
system_message: Optional[Union[BaseMessage, str]] = None,
|
|
153
|
-
model: Optional[
|
|
161
|
+
model: Optional[
|
|
162
|
+
Union[BaseModelBackend, List[BaseModelBackend]]
|
|
163
|
+
] = None,
|
|
154
164
|
memory: Optional[AgentMemory] = None,
|
|
155
165
|
message_window_size: Optional[int] = None,
|
|
156
166
|
token_limit: Optional[int] = None,
|
|
@@ -158,6 +168,7 @@ class ChatAgent(BaseAgent):
|
|
|
158
168
|
tools: Optional[List[FunctionTool]] = None,
|
|
159
169
|
external_tools: Optional[List[FunctionTool]] = None,
|
|
160
170
|
response_terminators: Optional[List[ResponseTerminator]] = None,
|
|
171
|
+
scheduling_strategy: str = "round_robin",
|
|
161
172
|
) -> None:
|
|
162
173
|
if isinstance(system_message, str):
|
|
163
174
|
system_message = BaseMessage.make_assistant_message(
|
|
@@ -172,18 +183,19 @@ class ChatAgent(BaseAgent):
|
|
|
172
183
|
self.role_type: RoleType = (
|
|
173
184
|
getattr(system_message, 'role_type', None) or RoleType.ASSISTANT
|
|
174
185
|
)
|
|
175
|
-
self.model_backend
|
|
186
|
+
self.model_backend = ModelManager(
|
|
176
187
|
model
|
|
177
188
|
if model is not None
|
|
178
189
|
else ModelFactory.create(
|
|
179
190
|
model_platform=ModelPlatformType.DEFAULT,
|
|
180
191
|
model_type=ModelType.DEFAULT,
|
|
181
|
-
)
|
|
192
|
+
),
|
|
193
|
+
scheduling_strategy=scheduling_strategy,
|
|
182
194
|
)
|
|
183
195
|
|
|
184
196
|
self.model_type = self.model_backend.model_type
|
|
185
197
|
|
|
186
|
-
#
|
|
198
|
+
# Tool registration
|
|
187
199
|
external_tools = external_tools or []
|
|
188
200
|
tools = tools or []
|
|
189
201
|
all_tools = tools + external_tools
|
|
@@ -193,17 +205,20 @@ class ChatAgent(BaseAgent):
|
|
|
193
205
|
self.func_dict = {
|
|
194
206
|
tool.get_function_name(): tool.func for tool in all_tools
|
|
195
207
|
}
|
|
208
|
+
self.tool_dict = {tool.get_function_name(): tool for tool in all_tools}
|
|
196
209
|
|
|
197
|
-
# If the user
|
|
198
|
-
#
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
210
|
+
# If the user set tools from `ChatAgent`, it will override the
|
|
211
|
+
# configured tools in `BaseModelBackend`.
|
|
212
|
+
if all_tools:
|
|
213
|
+
logger.warning(
|
|
214
|
+
"Overriding the configured tools in `BaseModelBackend` with the tools from `ChatAgent`."
|
|
215
|
+
)
|
|
202
216
|
tool_schema_list = [
|
|
203
217
|
tool.get_openai_tool_schema() for tool in all_tools
|
|
204
218
|
]
|
|
205
219
|
self.model_backend.model_config_dict['tools'] = tool_schema_list
|
|
206
220
|
self.tool_schema_list = tool_schema_list
|
|
221
|
+
|
|
207
222
|
self.model_config_dict = self.model_backend.model_config_dict
|
|
208
223
|
|
|
209
224
|
self.model_token_limit = token_limit or self.model_backend.token_limit
|
|
@@ -475,6 +490,15 @@ class ChatAgent(BaseAgent):
|
|
|
475
490
|
a boolean indicating whether the chat session has terminated,
|
|
476
491
|
and information about the chat session.
|
|
477
492
|
"""
|
|
493
|
+
if (
|
|
494
|
+
self.model_backend.model_config_dict.get("response_format")
|
|
495
|
+
and response_format
|
|
496
|
+
):
|
|
497
|
+
raise ValueError(
|
|
498
|
+
"The `response_format` parameter cannot be set both in "
|
|
499
|
+
"the model configuration and in the ChatAgent step."
|
|
500
|
+
)
|
|
501
|
+
|
|
478
502
|
if isinstance(input_message, str):
|
|
479
503
|
input_message = BaseMessage.make_user_message(
|
|
480
504
|
role_name='User', content=input_message
|
|
@@ -624,7 +648,7 @@ class ChatAgent(BaseAgent):
|
|
|
624
648
|
if (
|
|
625
649
|
not self.is_tools_added()
|
|
626
650
|
or not isinstance(response, ChatCompletion)
|
|
627
|
-
or response.choices[0].message.tool_calls
|
|
651
|
+
or not response.choices[0].message.tool_calls
|
|
628
652
|
):
|
|
629
653
|
break
|
|
630
654
|
|
|
@@ -882,6 +906,7 @@ class ChatAgent(BaseAgent):
|
|
|
882
906
|
|
|
883
907
|
# Replace the original tools with the structuring function
|
|
884
908
|
self.func_dict = {func.get_function_name(): func.func}
|
|
909
|
+
self.tool_dict = {func.get_function_name(): func}
|
|
885
910
|
self.model_backend.model_config_dict = original_model_dict.copy()
|
|
886
911
|
self.model_backend.model_config_dict["tools"] = [
|
|
887
912
|
func.get_openai_tool_schema()
|
|
@@ -932,8 +957,32 @@ class ChatAgent(BaseAgent):
|
|
|
932
957
|
str,
|
|
933
958
|
]:
|
|
934
959
|
r"""Internal function for agent step model response."""
|
|
960
|
+
|
|
961
|
+
response = None
|
|
935
962
|
# Obtain the model's response
|
|
936
|
-
|
|
963
|
+
for _ in range(len(self.model_backend.models)):
|
|
964
|
+
try:
|
|
965
|
+
response = self.model_backend.run(openai_messages)
|
|
966
|
+
break
|
|
967
|
+
except Exception as exc:
|
|
968
|
+
logger.error(
|
|
969
|
+
f"An error occurred while running model "
|
|
970
|
+
f"{self.model_backend.model_type}, "
|
|
971
|
+
f"index: {self.model_backend.current_model_index}",
|
|
972
|
+
exc_info=exc,
|
|
973
|
+
)
|
|
974
|
+
continue
|
|
975
|
+
if not response:
|
|
976
|
+
raise ModelProcessingError(
|
|
977
|
+
"Unable to process messages: none of the provided models "
|
|
978
|
+
"run succesfully."
|
|
979
|
+
)
|
|
980
|
+
|
|
981
|
+
logger.info(
|
|
982
|
+
f"Model {self.model_backend.model_type}, "
|
|
983
|
+
f"index {self.model_backend.current_model_index}, "
|
|
984
|
+
f"processed these messages: {openai_messages}"
|
|
985
|
+
)
|
|
937
986
|
|
|
938
987
|
if isinstance(response, ChatCompletion):
|
|
939
988
|
output_messages, finish_reasons, usage_dict, response_id = (
|
|
@@ -1041,8 +1090,32 @@ class ChatAgent(BaseAgent):
|
|
|
1041
1090
|
role_type=self.role_type,
|
|
1042
1091
|
meta_dict=dict(),
|
|
1043
1092
|
content=choice.message.content or "",
|
|
1093
|
+
parsed=getattr(choice.message, 'parsed', None),
|
|
1044
1094
|
)
|
|
1095
|
+
# Process log probabilities and append to the message meta information
|
|
1096
|
+
if choice.logprobs is not None:
|
|
1097
|
+
tokens_logprobs = choice.logprobs.content
|
|
1098
|
+
|
|
1099
|
+
if tokens_logprobs is not None:
|
|
1100
|
+
# Extract and structure logprob information
|
|
1101
|
+
logprobs_info = [
|
|
1102
|
+
{
|
|
1103
|
+
"token": token_logprob.token,
|
|
1104
|
+
"logprob": token_logprob.logprob,
|
|
1105
|
+
"top_logprobs": [
|
|
1106
|
+
(top_logprob.token, top_logprob.logprob)
|
|
1107
|
+
for top_logprob in token_logprob.top_logprobs
|
|
1108
|
+
],
|
|
1109
|
+
}
|
|
1110
|
+
for token_logprob in tokens_logprobs
|
|
1111
|
+
]
|
|
1112
|
+
# Ensure meta_dict exists before adding logprobs info
|
|
1113
|
+
if chat_message.meta_dict is None:
|
|
1114
|
+
chat_message.meta_dict = {}
|
|
1115
|
+
chat_message.meta_dict["logprobs_info"] = logprobs_info
|
|
1116
|
+
# Append the processed chat message to output
|
|
1045
1117
|
output_messages.append(chat_message)
|
|
1118
|
+
|
|
1046
1119
|
finish_reasons = [
|
|
1047
1120
|
str(choice.finish_reason) for choice in response.choices
|
|
1048
1121
|
]
|
|
@@ -1182,19 +1255,10 @@ class ChatAgent(BaseAgent):
|
|
|
1182
1255
|
if choice.message.tool_calls is None:
|
|
1183
1256
|
raise RuntimeError("Tool call is None")
|
|
1184
1257
|
func_name = choice.message.tool_calls[0].function.name
|
|
1185
|
-
func = self.func_dict[func_name]
|
|
1186
1258
|
|
|
1187
|
-
|
|
1188
|
-
|
|
1189
|
-
|
|
1190
|
-
# Pass the extracted arguments to the indicated function
|
|
1191
|
-
try:
|
|
1192
|
-
result = func(**args)
|
|
1193
|
-
except Exception:
|
|
1194
|
-
raise ValueError(
|
|
1195
|
-
f"Execution of function {func.__name__} failed with "
|
|
1196
|
-
f"arguments being {args}."
|
|
1197
|
-
)
|
|
1259
|
+
args = json.loads(choice.message.tool_calls[0].function.arguments)
|
|
1260
|
+
tool = self.tool_dict[func_name]
|
|
1261
|
+
result = tool(**args)
|
|
1198
1262
|
|
|
1199
1263
|
assist_msg = FunctionCallingMessage(
|
|
1200
1264
|
role_name=self.role_name,
|
|
@@ -1243,19 +1307,10 @@ class ChatAgent(BaseAgent):
|
|
|
1243
1307
|
if choice.message.tool_calls is None:
|
|
1244
1308
|
raise RuntimeError("Tool call is None")
|
|
1245
1309
|
func_name = choice.message.tool_calls[0].function.name
|
|
1246
|
-
func = self.func_dict[func_name]
|
|
1247
1310
|
|
|
1248
|
-
|
|
1249
|
-
|
|
1250
|
-
|
|
1251
|
-
# Pass the extracted arguments to the indicated function
|
|
1252
|
-
try:
|
|
1253
|
-
result = await func(**args)
|
|
1254
|
-
except Exception:
|
|
1255
|
-
raise ValueError(
|
|
1256
|
-
f"Execution of function {func.__name__} failed with "
|
|
1257
|
-
f"arguments being {args}."
|
|
1258
|
-
)
|
|
1311
|
+
args = json.loads(choice.message.tool_calls[0].function.arguments)
|
|
1312
|
+
tool = self.tool_dict[func_name]
|
|
1313
|
+
result = await tool(**args)
|
|
1259
1314
|
|
|
1260
1315
|
assist_msg = FunctionCallingMessage(
|
|
1261
1316
|
role_name=self.role_name,
|
|
@@ -1303,6 +1358,15 @@ class ChatAgent(BaseAgent):
|
|
|
1303
1358
|
)
|
|
1304
1359
|
return usage_dict
|
|
1305
1360
|
|
|
1361
|
+
def add_model_scheduling_strategy(self, name: str, strategy_fn: Callable):
|
|
1362
|
+
r"""Add a scheduling strategy method provided by user to ModelManger.
|
|
1363
|
+
|
|
1364
|
+
Args:
|
|
1365
|
+
name (str): The name of the strategy.
|
|
1366
|
+
strategy_fn (Callable): The scheduling strategy function.
|
|
1367
|
+
"""
|
|
1368
|
+
self.model_backend.add_strategy(name, strategy_fn)
|
|
1369
|
+
|
|
1306
1370
|
def __repr__(self) -> str:
|
|
1307
1371
|
r"""Returns a string representation of the :obj:`ChatAgent`.
|
|
1308
1372
|
|
camel/agents/critic_agent.py
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
#
|
|
2
|
-
# Licensed under the Apache License, Version 2.0 (the
|
|
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
|
|
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
|
-
#
|
|
13
|
+
# ========= Copyright 2023-2024 @ CAMEL-AI.org. All Rights Reserved. =========
|
|
14
14
|
import random
|
|
15
15
|
import warnings
|
|
16
16
|
from typing import Any, Dict, Optional, Sequence
|
|
@@ -1,25 +1,28 @@
|
|
|
1
|
-
#
|
|
2
|
-
# Licensed under the Apache License, Version 2.0 (the
|
|
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
|
|
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
|
-
#
|
|
13
|
+
# ========= Copyright 2023-2024 @ CAMEL-AI.org. All Rights Reserved. =========
|
|
14
14
|
import re
|
|
15
15
|
from typing import Dict, List, Optional, Union
|
|
16
16
|
|
|
17
17
|
from camel.agents.chat_agent import ChatAgent
|
|
18
|
+
from camel.logger import get_logger
|
|
18
19
|
from camel.messages import BaseMessage
|
|
19
20
|
from camel.models import BaseModelBackend
|
|
20
21
|
from camel.prompts import TextPrompt
|
|
21
22
|
from camel.types import RoleType
|
|
22
23
|
|
|
24
|
+
logger = get_logger(__name__)
|
|
25
|
+
|
|
23
26
|
# AgentOps decorator setting
|
|
24
27
|
try:
|
|
25
28
|
import os
|
|
@@ -253,7 +256,7 @@ square brackets)
|
|
|
253
256
|
"Deduction failed. Error:\n" + f"{response.info}"
|
|
254
257
|
)
|
|
255
258
|
msg: BaseMessage = response.msg
|
|
256
|
-
|
|
259
|
+
logger.info(f"Message content:\n{msg.content}")
|
|
257
260
|
|
|
258
261
|
# Extract the conditions from the message
|
|
259
262
|
conditions_dict = {
|
camel/agents/embodied_agent.py
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
#
|
|
2
|
-
# Licensed under the Apache License, Version 2.0 (the
|
|
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
|
|
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
|
-
#
|
|
13
|
+
# ========= Copyright 2023-2024 @ CAMEL-AI.org. All Rights Reserved. =========
|
|
14
14
|
from typing import Any, List, Optional
|
|
15
15
|
|
|
16
16
|
from colorama import Fore
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
#
|
|
2
|
-
# Licensed under the Apache License, Version 2.0 (the
|
|
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
|
|
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
|
-
#
|
|
13
|
+
# ========= Copyright 2023-2024 @ CAMEL-AI.org. All Rights Reserved. =========
|
|
14
14
|
from typing import TYPE_CHECKING, Optional, Union
|
|
15
15
|
|
|
16
16
|
if TYPE_CHECKING:
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
#
|
|
2
|
-
# Licensed under the Apache License, Version 2.0 (the
|
|
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
|
|
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
|
-
#
|
|
13
|
+
# ========= Copyright 2023-2024 @ CAMEL-AI.org. All Rights Reserved. =========
|
|
14
14
|
import re
|
|
15
15
|
from typing import Dict, Optional, Union
|
|
16
16
|
|
camel/agents/search_agent.py
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
#
|
|
2
|
-
# Licensed under the Apache License, Version 2.0 (the
|
|
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
|
|
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
|
-
#
|
|
13
|
+
# ========= Copyright 2023-2024 @ CAMEL-AI.org. All Rights Reserved. =========
|
|
14
14
|
from typing import Optional
|
|
15
15
|
|
|
16
16
|
from camel.agents.chat_agent import ChatAgent
|
camel/agents/task_agent.py
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
#
|
|
2
|
-
# Licensed under the Apache License, Version 2.0 (the
|
|
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
|
|
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
|
-
#
|
|
13
|
+
# ========= Copyright 2023-2024 @ CAMEL-AI.org. All Rights Reserved. =========
|
|
14
14
|
from typing import Any, Dict, List, Optional, Union
|
|
15
15
|
|
|
16
16
|
from camel.agents.chat_agent import ChatAgent
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
#
|
|
2
|
-
# Licensed under the Apache License, Version 2.0 (the
|
|
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
|
|
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
|
-
#
|
|
13
|
+
# ========= Copyright 2023-2024 @ CAMEL-AI.org. All Rights Reserved. =========
|
|
14
14
|
from .base import BaseToolAgent
|
|
15
15
|
from .hugging_face_tool_agent import HuggingFaceToolAgent
|
|
16
16
|
|
camel/agents/tool_agents/base.py
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
#
|
|
2
|
-
# Licensed under the Apache License, Version 2.0 (the
|
|
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
|
|
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
|
-
#
|
|
13
|
+
# ========= Copyright 2023-2024 @ CAMEL-AI.org. All Rights Reserved. =========
|
|
14
14
|
from camel.agents import BaseAgent
|
|
15
15
|
|
|
16
16
|
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
#
|
|
2
|
-
# Licensed under the Apache License, Version 2.0 (the
|
|
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
|
|
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
|
-
#
|
|
13
|
+
# ========= Copyright 2023-2024 @ CAMEL-AI.org. All Rights Reserved. =========
|
|
14
14
|
from typing import Any, Optional
|
|
15
15
|
|
|
16
16
|
from camel.agents.tool_agents.base import BaseToolAgent
|
camel/bots/__init__.py
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
#
|
|
2
|
-
# Licensed under the Apache License, Version 2.0 (the
|
|
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
|
|
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
|
-
#
|
|
13
|
+
# ========= Copyright 2023-2024 @ CAMEL-AI.org. All Rights Reserved. =========
|
|
14
14
|
from .discord_app import DiscordApp
|
|
15
15
|
from .slack.models import (
|
|
16
16
|
SlackAppMentionEventBody,
|
camel/bots/discord_app.py
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
#
|
|
2
|
-
# Licensed under the Apache License, Version 2.0 (the
|
|
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
|
|
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
|
-
#
|
|
13
|
+
# ========= Copyright 2023-2024 @ CAMEL-AI.org. All Rights Reserved. =========
|
|
14
14
|
import logging
|
|
15
15
|
import os
|
|
16
16
|
from typing import TYPE_CHECKING, List, Optional
|