camel-ai 0.2.4a0__py3-none-any.whl → 0.2.5__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 CHANGED
@@ -12,7 +12,7 @@
12
12
  # limitations under the License.
13
13
  # =========== Copyright 2023 @ CAMEL-AI.org. All Rights Reserved. ===========
14
14
 
15
- __version__ = '0.2.4a'
15
+ __version__ = '0.2.5'
16
16
 
17
17
  __all__ = [
18
18
  '__version__',
@@ -11,8 +11,6 @@
11
11
  # See the License for the specific language governing permissions and
12
12
  # limitations under the License.
13
13
  # =========== Copyright 2023 @ CAMEL-AI.org. All Rights Reserved. ===========
14
- import datetime
15
- import os
16
14
  import re
17
15
  import uuid
18
16
  from typing import (
@@ -31,7 +29,6 @@ from camel.storages import (
31
29
  BaseVectorStorage,
32
30
  MilvusStorage,
33
31
  QdrantStorage,
34
- VectorDBQuery,
35
32
  )
36
33
  from camel.types import StorageType
37
34
  from camel.utils import Constants
@@ -126,62 +123,6 @@ class AutoRetriever:
126
123
 
127
124
  return collection_name
128
125
 
129
- def _get_file_modified_date_from_file(
130
- self, content_input_path: str
131
- ) -> str:
132
- r"""Retrieves the last modified date and time of a given file. This
133
- function takes a file path as input and returns the last modified date
134
- and time of that file.
135
-
136
- Args:
137
- content_input_path (str): The file path of the content whose
138
- modified date is to be retrieved.
139
-
140
- Returns:
141
- str: The last modified time from file.
142
- """
143
- mod_time = os.path.getmtime(content_input_path)
144
- readable_mod_time = datetime.datetime.fromtimestamp(
145
- mod_time
146
- ).isoformat(timespec='seconds')
147
- return readable_mod_time
148
-
149
- def _get_file_modified_date_from_storage(
150
- self, vector_storage_instance: BaseVectorStorage
151
- ) -> str:
152
- r"""Retrieves the last modified date and time of a given file. This
153
- function takes vector storage instance as input and returns the last
154
- modified date from the metadata.
155
-
156
- Args:
157
- vector_storage_instance (BaseVectorStorage): The vector storage
158
- where modified date is to be retrieved from metadata.
159
-
160
- Returns:
161
- str: The last modified date from vector storage.
162
- """
163
-
164
- # Insert any query to get modified date from vector db
165
- # NOTE: Can be optimized when CAMEL vector storage support
166
- # direct chunk payload extraction
167
- query_vector_any = self.embedding_model.embed(obj="any_query")
168
- query_any = VectorDBQuery(query_vector_any, top_k=1)
169
- result_any = vector_storage_instance.query(query_any)
170
-
171
- # Extract the file's last modified date from the metadata
172
- # in the query result
173
- if result_any[0].record.payload is not None:
174
- file_modified_date_from_meta = result_any[0].record.payload[
175
- "metadata"
176
- ]['last_modified']
177
- else:
178
- raise ValueError(
179
- "The vector storage exits but the payload is None,"
180
- "please check the collection"
181
- )
182
-
183
- return file_modified_date_from_meta
184
-
185
126
  def run_vector_retriever(
186
127
  self,
187
128
  query: str,
@@ -246,34 +187,7 @@ class AutoRetriever:
246
187
  collection_name
247
188
  )
248
189
 
249
- # Check the modified time of the input file path, only works
250
- # for local path since no standard way for remote url
251
- file_is_modified = False # initialize with a default value
252
- if (
253
- vector_storage_instance.status().vector_count != 0
254
- and isinstance(content, str)
255
- and os.path.exists(content)
256
- ):
257
- # Get original modified date from file
258
- modified_date_from_file = (
259
- self._get_file_modified_date_from_file(content)
260
- )
261
- # Get modified date from vector storage
262
- modified_date_from_storage = (
263
- self._get_file_modified_date_from_storage(
264
- vector_storage_instance
265
- )
266
- )
267
- # Determine if the file has been modified since the last
268
- # check
269
- file_is_modified = (
270
- modified_date_from_file != modified_date_from_storage
271
- )
272
-
273
- if (
274
- vector_storage_instance.status().vector_count == 0
275
- or file_is_modified
276
- ):
190
+ if vector_storage_instance.status().vector_count == 0:
277
191
  # Clear the vector storage
278
192
  vector_storage_instance.clear()
279
193
  # Process and store the content to the vector storage
@@ -149,7 +149,11 @@ class VectorRetriever(BaseRetriever):
149
149
  "content path": content.metadata.file_directory
150
150
  or ""
151
151
  }
152
+
152
153
  chunk_metadata = {"metadata": chunk.metadata.to_dict()}
154
+ # Remove the 'orig_elements' key if it exists
155
+ chunk_metadata["metadata"].pop("orig_elements", "")
156
+
153
157
  chunk_text = {"text": str(chunk)}
154
158
  combined_dict = {
155
159
  **content_path_info,
@@ -14,8 +14,8 @@
14
14
  from abc import ABC, abstractmethod
15
15
  from typing import Any
16
16
 
17
- from camel.workforce.task_channel import TaskChannel
18
- from camel.workforce.utils import check_if_running
17
+ from camel.societies.workforce.task_channel import TaskChannel
18
+ from camel.societies.workforce.utils import check_if_running
19
19
 
20
20
 
21
21
  class BaseNode(ABC):
@@ -21,14 +21,14 @@ from colorama import Fore
21
21
  from camel.agents.chat_agent import ChatAgent
22
22
  from camel.messages.base import BaseMessage
23
23
  from camel.societies import RolePlaying
24
- from camel.tasks.task import Task, TaskState
25
- from camel.utils import print_text_animated
26
- from camel.workforce.prompts import (
24
+ from camel.societies.workforce.prompts import (
27
25
  ROLEPLAY_PROCESS_TASK_PROMPT,
28
26
  ROLEPLAY_SUMMARIZE_PROMPT,
29
27
  )
30
- from camel.workforce.utils import TaskResult
31
- from camel.workforce.worker import Worker
28
+ from camel.societies.workforce.utils import TaskResult
29
+ from camel.societies.workforce.worker import Worker
30
+ from camel.tasks.task import Task, TaskState
31
+ from camel.utils import print_text_animated
32
32
 
33
33
 
34
34
  class RolePlayingWorker(Worker):
@@ -20,11 +20,11 @@ from colorama import Fore
20
20
 
21
21
  from camel.agents import ChatAgent
22
22
  from camel.messages.base import BaseMessage
23
+ from camel.societies.workforce.prompts import PROCESS_TASK_PROMPT
24
+ from camel.societies.workforce.utils import TaskResult
25
+ from camel.societies.workforce.worker import Worker
23
26
  from camel.tasks.task import Task, TaskState
24
27
  from camel.utils import print_text_animated
25
- from camel.workforce.prompts import PROCESS_TASK_PROMPT
26
- from camel.workforce.utils import TaskResult
27
- from camel.workforce.worker import Worker
28
28
 
29
29
 
30
30
  class SingleAgentWorker(Worker):
@@ -19,10 +19,10 @@ from typing import List
19
19
 
20
20
  from colorama import Fore
21
21
 
22
+ from camel.societies.workforce.base import BaseNode
23
+ from camel.societies.workforce.task_channel import TaskChannel
24
+ from camel.societies.workforce.utils import check_if_running
22
25
  from camel.tasks.task import Task, TaskState
23
- from camel.workforce.base import BaseNode
24
- from camel.workforce.task_channel import TaskChannel
25
- from camel.workforce.utils import check_if_running
26
26
 
27
27
  logger = logging.getLogger(__name__)
28
28
 
@@ -25,24 +25,24 @@ from camel.agents import ChatAgent
25
25
  from camel.configs import ChatGPTConfig
26
26
  from camel.messages.base import BaseMessage
27
27
  from camel.models import ModelFactory
28
- from camel.tasks.task import Task, TaskState
29
- from camel.toolkits import SEARCH_FUNCS, WEATHER_FUNCS, GoogleMapsToolkit
30
- from camel.types import ModelPlatformType, ModelType
31
- from camel.workforce.base import BaseNode
32
- from camel.workforce.prompts import (
28
+ from camel.societies.workforce.base import BaseNode
29
+ from camel.societies.workforce.prompts import (
33
30
  ASSIGN_TASK_PROMPT,
34
31
  CREATE_NODE_PROMPT,
35
32
  WF_TASK_DECOMPOSE_PROMPT,
36
33
  )
37
- from camel.workforce.role_playing_worker import RolePlayingWorker
38
- from camel.workforce.single_agent_worker import SingleAgentWorker
39
- from camel.workforce.task_channel import TaskChannel
40
- from camel.workforce.utils import (
34
+ from camel.societies.workforce.role_playing_worker import RolePlayingWorker
35
+ from camel.societies.workforce.single_agent_worker import SingleAgentWorker
36
+ from camel.societies.workforce.task_channel import TaskChannel
37
+ from camel.societies.workforce.utils import (
41
38
  TaskAssignResult,
42
39
  WorkerConf,
43
40
  check_if_running,
44
41
  )
45
- from camel.workforce.worker import Worker
42
+ from camel.societies.workforce.worker import Worker
43
+ from camel.tasks.task import Task, TaskState
44
+ from camel.toolkits import SEARCH_FUNCS, WEATHER_FUNCS, GoogleMapsToolkit
45
+ from camel.types import ModelPlatformType, ModelType
46
46
 
47
47
  logger = logging.getLogger(__name__)
48
48
 
@@ -25,9 +25,8 @@ from camel.toolkits.base import BaseToolkit
25
25
 
26
26
 
27
27
  class DalleToolkit(BaseToolkit):
28
- r"""A class representing a toolkit for image generation using OpenAI's.
29
-
30
- This class provides methods handle image generation using OpenAI's DALL-E.
28
+ r"""A class representing a toolkit for image generation using OpenAI's
29
+ DALL-E model.
31
30
  """
32
31
 
33
32
  def base64_to_image(self, base64_string: str) -> Optional[Image.Image]:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: camel-ai
3
- Version: 0.2.4a0
3
+ Version: 0.2.5
4
4
  Summary: Communicative Agents for AI Society Study
5
5
  Home-page: https://www.camel-ai.org/
6
6
  License: Apache-2.0
@@ -221,7 +221,7 @@ conda create --name camel python=3.10
221
221
  conda activate camel
222
222
 
223
223
  # Clone github repo
224
- git clone -b v0.2.4a https://github.com/camel-ai/camel.git
224
+ git clone -b v0.2.5 https://github.com/camel-ai/camel.git
225
225
 
226
226
  # Change directory into project directory
227
227
  cd camel
@@ -1,4 +1,4 @@
1
- camel/__init__.py,sha256=I4MEIgT9cQYnIJCfLDD7vczcL81hEfFuBK41Wz9bJDw,779
1
+ camel/__init__.py,sha256=WNGrDQowtXEONUCbvjTH67glbRf_HlK9NGHZHgV7tW0,778
2
2
  camel/agents/__init__.py,sha256=SSU1wbhZXWwQnE0rRxkpyN57kEu72KklsZNcdLkXfTs,1551
3
3
  camel/agents/base.py,sha256=X39qWSiT1WnDqaJ9k3gQrTpOQSwUKzNEVpp5AY6fDH8,1130
4
4
  camel/agents/chat_agent.py,sha256=eA7kuzbfQkEdnvefxk6t_-MhB64ibSgSiQ54ztiqvJI,44764
@@ -104,14 +104,23 @@ camel/prompts/video_description_prompt.py,sha256=HRd3fHXftKwBm5QH7Tvm3FabgZPCoAv
104
104
  camel/responses/__init__.py,sha256=edtTQskOgq5obyITziRFL62HTJP9sAikAtP9vrFacEQ,795
105
105
  camel/responses/agent_responses.py,sha256=sGlGwXz2brWI-FpiU5EhVRpZvcfGWUmooAF0ukqAF3I,1771
106
106
  camel/retrievers/__init__.py,sha256=CuP3B77zl2PoF-W2y9xSkTGRzoK2J4TlUHdCtuJD8dg,1059
107
- camel/retrievers/auto_retriever.py,sha256=WJ1b-xOGu13nSqb1Sz5gs0xVRvVnbp71Lp9lXJ2Yq2Y,13010
107
+ camel/retrievers/auto_retriever.py,sha256=EVbm0aTWcOZ8foZ-GY9-msuDoz0tBM5sOveWypy7A9M,9587
108
108
  camel/retrievers/base.py,sha256=sgqaJDwIkWluEgPBlukFN7RYZJnrp0imCAOEWm6bZ40,2646
109
109
  camel/retrievers/bm25_retriever.py,sha256=Dr7Yfkjw45sovI1EVNByGIMj7KERWrr8JHlh8csSF1s,5155
110
110
  camel/retrievers/cohere_rerank_retriever.py,sha256=HvnFqXpsX9EdBOab0kFLDyxxJnknPFMVxyQJQDlHbOA,4100
111
- camel/retrievers/vector_retriever.py,sha256=8ICL6lNiqv2fSk_Z4SYek3x_xYkYAsV9wAO0ibzex_E,9588
111
+ camel/retrievers/vector_retriever.py,sha256=lThlfwCMQJr-PXFBwmgeRpVRBg-8_0kjJuO5r_-DJQo,9728
112
112
  camel/societies/__init__.py,sha256=JhGwUHjht4CewzC3shKuxmgB3oS7FIxIxmiKyhNsfIs,832
113
113
  camel/societies/babyagi_playing.py,sha256=z0nKqtq4374BLN-eGNTf07OcTPmJtRO4avTDkbeaOHg,11788
114
114
  camel/societies/role_playing.py,sha256=LSkYqNAFcKn9JNFLIEfoUTNP7cYeXaIzaIHcha9IM9Q,23469
115
+ camel/societies/workforce/__init__.py,sha256=m2KbPItARjIyKiHc_Z34joWTJ-1XnIJfQqAZEeonz2U,926
116
+ camel/societies/workforce/base.py,sha256=qPjZ31tQL6kBm2QdmaQf7ZmOrOSUsNbV0k06NUKdh70,1829
117
+ camel/societies/workforce/prompts.py,sha256=0Wcu7HpiyaD_387urc2P1uY9-DN8JAdk00HSlhNWz34,6184
118
+ camel/societies/workforce/role_playing_worker.py,sha256=Eoy3CNGUBWFVpvxIR7sQndn3hKkGl_zeu4xekfYwAyI,7139
119
+ camel/societies/workforce/single_agent_worker.py,sha256=Ku5nLTxdVZ8LF6z5q56VHS_AYDVCFqW-ko7HErQ57UU,3593
120
+ camel/societies/workforce/task_channel.py,sha256=WE3SHp5TKaXDzKnoul9KPfk-PkBMcGT6akVId0RtWpY,6724
121
+ camel/societies/workforce/utils.py,sha256=kBrjA_k9BblJBT13kW0eQYcBDjetyjOUHMbRuh_IfPM,2270
122
+ camel/societies/workforce/worker.py,sha256=zkobmWU2eCOoNNppesFkFCyHF4DvIbUZzRmmeD1ZN1k,3874
123
+ camel/societies/workforce/workforce.py,sha256=7LEZm9csxYIiOBs2MyQk_T7DpNoPyrV9hDyQqeZ5yjI,18261
115
124
  camel/storages/__init__.py,sha256=erzsXX2rPVodgWxlV6hSjwmc4UCguzVb6m3ahBoyWu0,1623
116
125
  camel/storages/graph_storages/__init__.py,sha256=YFwNjNYaxpKT2j5dxWZur62T8J0ZPER3DHaWGEAXgo8,954
117
126
  camel/storages/graph_storages/base.py,sha256=-Ys1BIuz4H5FvYMZTBIjg8Cfv40CPQ-OsovwMzygEgU,2858
@@ -144,7 +153,7 @@ camel/toolkits/arxiv_toolkit.py,sha256=puM9SvpbitvAn0p6v9DexO307suAP_Fcq4b5V9t4M
144
153
  camel/toolkits/ask_news_toolkit.py,sha256=6imOAdQ2kur6U99xmCPFM7m_HcgQLqSeMWLb_u5t25A,23524
145
154
  camel/toolkits/base.py,sha256=seVhKQIkPWSADIn81CVAeYGJvrtFdnthPjRe6T7Xpxc,979
146
155
  camel/toolkits/code_execution.py,sha256=-jBubEBsVPCjGTOXIVTj0kXntajqB98J0NPLlB6Xu6M,2426
147
- camel/toolkits/dalle_toolkit.py,sha256=osyBhZy_HYPAJvLsQk4PIo6w2by1RRn3D-gUZMEdv3I,5247
156
+ camel/toolkits/dalle_toolkit.py,sha256=uQ3LvQt7A0ILMLAMucE33CwP1A9RI-YpTHZ4NCyd15g,5184
148
157
  camel/toolkits/function_tool.py,sha256=OwAC6Eca_QaYf0DKS2BSBM7eA71-dWBpKi77TbL3_2E,15508
149
158
  camel/toolkits/github_toolkit.py,sha256=pWXf0z_SFZPfANwKycNmnENT6aEk4tADMjqAW_eUhgE,10972
150
159
  camel/toolkits/google_maps_toolkit.py,sha256=73CrBaL_DKEWiN3eP7CdFOxX2ZQ6NuPKR7oQeAOiKZw,11954
@@ -193,16 +202,7 @@ camel/utils/async_func.py,sha256=_N3HIrQ9QagXjHzgTd_OKHDlmi059yPw2_lf8Pb6NHQ,156
193
202
  camel/utils/commons.py,sha256=Bj_QzhNddDRqKqgLBOBL9lMl0jvmbaE-YU3a72IzSjs,17533
194
203
  camel/utils/constants.py,sha256=8n4F8Y-DZy4z2F0hRvAq6f-d9SbS59kK5FyLrnJ3mkY,1360
195
204
  camel/utils/token_counting.py,sha256=6mc5PmyN5sOP02u02r7Jjxki75hjk9z1KPaIx_0wFmY,14624
196
- camel/workforce/__init__.py,sha256=m2KbPItARjIyKiHc_Z34joWTJ-1XnIJfQqAZEeonz2U,926
197
- camel/workforce/base.py,sha256=ScUPdtMLJgvvJkGEku6rrr4gBRw3GFt3V8HlYOY5Y8A,1809
198
- camel/workforce/prompts.py,sha256=0Wcu7HpiyaD_387urc2P1uY9-DN8JAdk00HSlhNWz34,6184
199
- camel/workforce/role_playing_worker.py,sha256=CIo_akfzeCvOovfDXR847DGR1FQ8jm28koiayuCsNzM,7109
200
- camel/workforce/single_agent_worker.py,sha256=k6QFoKwTfdzfn6_kYqaDhQA2gLytF6aKZf8Z_ZW_Gvw,3563
201
- camel/workforce/task_channel.py,sha256=WE3SHp5TKaXDzKnoul9KPfk-PkBMcGT6akVId0RtWpY,6724
202
- camel/workforce/utils.py,sha256=kBrjA_k9BblJBT13kW0eQYcBDjetyjOUHMbRuh_IfPM,2270
203
- camel/workforce/worker.py,sha256=oZtl3PhxgpizKy7W_wB94Qm4Z2Tw4k1SQsqAGAi_XoI,3844
204
- camel/workforce/workforce.py,sha256=IV911OlzSng_qR8KafFlDvkUEzEFa6A_upTgi8kZKxI,18191
205
- camel_ai-0.2.4a0.dist-info/LICENSE,sha256=id0nB2my5kG0xXeimIu5zZrbHLS6EQvxvkKkzIHaT2k,11343
206
- camel_ai-0.2.4a0.dist-info/METADATA,sha256=Zv3sAPnj-Q5zRNMUAMtZPkgNpVaYPfcG2cCWmOlQ2iM,23184
207
- camel_ai-0.2.4a0.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
208
- camel_ai-0.2.4a0.dist-info/RECORD,,
205
+ camel_ai-0.2.5.dist-info/LICENSE,sha256=id0nB2my5kG0xXeimIu5zZrbHLS6EQvxvkKkzIHaT2k,11343
206
+ camel_ai-0.2.5.dist-info/METADATA,sha256=u61_xc3VFEchg9EiyDlINFfXwD9lCewAkpRpwAUl49E,23181
207
+ camel_ai-0.2.5.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
208
+ camel_ai-0.2.5.dist-info/RECORD,,
File without changes
File without changes
File without changes