camel-ai 0.1.5__py3-none-any.whl → 0.1.5.2__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.

Files changed (78) hide show
  1. camel/agents/__init__.py +2 -0
  2. camel/agents/chat_agent.py +217 -36
  3. camel/agents/deductive_reasoner_agent.py +86 -31
  4. camel/agents/knowledge_graph_agent.py +41 -18
  5. camel/agents/role_assignment_agent.py +4 -1
  6. camel/agents/search_agent.py +122 -0
  7. camel/bots/__init__.py +20 -0
  8. camel/bots/discord_bot.py +103 -0
  9. camel/bots/telegram_bot.py +84 -0
  10. camel/configs/__init__.py +3 -0
  11. camel/configs/anthropic_config.py +1 -1
  12. camel/configs/litellm_config.py +113 -0
  13. camel/embeddings/__init__.py +2 -0
  14. camel/embeddings/openai_embedding.py +2 -2
  15. camel/embeddings/sentence_transformers_embeddings.py +6 -5
  16. camel/embeddings/vlm_embedding.py +146 -0
  17. camel/functions/__init__.py +9 -0
  18. camel/functions/open_api_function.py +150 -29
  19. camel/functions/open_api_specs/biztoc/__init__.py +13 -0
  20. camel/functions/open_api_specs/biztoc/ai-plugin.json +34 -0
  21. camel/functions/open_api_specs/biztoc/openapi.yaml +21 -0
  22. camel/functions/open_api_specs/create_qr_code/__init__.py +13 -0
  23. camel/functions/open_api_specs/create_qr_code/openapi.yaml +44 -0
  24. camel/functions/open_api_specs/nasa_apod/__init__.py +13 -0
  25. camel/functions/open_api_specs/nasa_apod/openapi.yaml +72 -0
  26. camel/functions/open_api_specs/outschool/__init__.py +13 -0
  27. camel/functions/open_api_specs/outschool/ai-plugin.json +34 -0
  28. camel/functions/open_api_specs/outschool/openapi.yaml +1 -0
  29. camel/functions/open_api_specs/outschool/paths/__init__.py +14 -0
  30. camel/functions/open_api_specs/outschool/paths/get_classes.py +29 -0
  31. camel/functions/open_api_specs/outschool/paths/search_teachers.py +29 -0
  32. camel/functions/open_api_specs/security_config.py +21 -0
  33. camel/functions/open_api_specs/web_scraper/__init__.py +13 -0
  34. camel/functions/open_api_specs/web_scraper/ai-plugin.json +34 -0
  35. camel/functions/open_api_specs/web_scraper/openapi.yaml +71 -0
  36. camel/functions/open_api_specs/web_scraper/paths/__init__.py +13 -0
  37. camel/functions/open_api_specs/web_scraper/paths/scraper.py +29 -0
  38. camel/functions/openai_function.py +3 -1
  39. camel/functions/search_functions.py +104 -171
  40. camel/functions/slack_functions.py +2 -1
  41. camel/human.py +3 -1
  42. camel/loaders/base_io.py +3 -1
  43. camel/loaders/unstructured_io.py +16 -22
  44. camel/messages/base.py +135 -46
  45. camel/models/__init__.py +4 -0
  46. camel/models/anthropic_model.py +20 -14
  47. camel/models/base_model.py +2 -0
  48. camel/models/litellm_model.py +112 -0
  49. camel/models/model_factory.py +8 -1
  50. camel/models/open_source_model.py +1 -0
  51. camel/models/openai_model.py +6 -2
  52. camel/models/zhipuai_model.py +125 -0
  53. camel/prompts/__init__.py +2 -0
  54. camel/prompts/base.py +2 -1
  55. camel/prompts/descripte_video_prompt.py +33 -0
  56. camel/prompts/task_prompt_template.py +9 -3
  57. camel/retrievers/auto_retriever.py +20 -11
  58. camel/retrievers/base.py +4 -2
  59. camel/retrievers/bm25_retriever.py +2 -1
  60. camel/retrievers/cohere_rerank_retriever.py +2 -1
  61. camel/retrievers/vector_retriever.py +10 -4
  62. camel/societies/babyagi_playing.py +2 -1
  63. camel/societies/role_playing.py +2 -1
  64. camel/storages/graph_storages/base.py +1 -0
  65. camel/storages/graph_storages/neo4j_graph.py +5 -3
  66. camel/storages/vectordb_storages/base.py +2 -1
  67. camel/storages/vectordb_storages/milvus.py +5 -2
  68. camel/toolkits/github_toolkit.py +120 -26
  69. camel/types/__init__.py +3 -2
  70. camel/types/enums.py +25 -1
  71. camel/utils/__init__.py +11 -2
  72. camel/utils/commons.py +74 -4
  73. camel/utils/constants.py +26 -0
  74. camel/utils/token_counting.py +58 -5
  75. {camel_ai-0.1.5.dist-info → camel_ai-0.1.5.2.dist-info}/METADATA +29 -13
  76. camel_ai-0.1.5.2.dist-info/RECORD +148 -0
  77. camel_ai-0.1.5.dist-info/RECORD +0 -119
  78. {camel_ai-0.1.5.dist-info → camel_ai-0.1.5.2.dist-info}/WHEEL +0 -0
camel/utils/__init__.py CHANGED
@@ -11,30 +11,35 @@
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
+
14
15
  from .commons import (
15
16
  PYDANTIC_V2,
16
- api_key_required,
17
17
  api_keys_required,
18
18
  check_server_running,
19
+ create_chunks,
19
20
  dependencies_required,
20
21
  download_tasks,
21
22
  get_first_int,
22
23
  get_prompt_template_key_words,
23
24
  get_system_information,
24
25
  get_task_list,
26
+ model_api_key_required,
25
27
  print_text_animated,
28
+ text_extract_from_web,
26
29
  to_pascal,
27
30
  )
31
+ from .constants import Constants
28
32
  from .token_counting import (
29
33
  AnthropicTokenCounter,
30
34
  BaseTokenCounter,
35
+ LiteLLMTokenCounter,
31
36
  OpenAITokenCounter,
32
37
  OpenSourceTokenCounter,
33
38
  get_model_encoding,
34
39
  )
35
40
 
36
41
  __all__ = [
37
- 'api_key_required',
42
+ 'model_api_key_required',
38
43
  'print_text_animated',
39
44
  'get_prompt_template_key_words',
40
45
  'get_first_int',
@@ -49,6 +54,10 @@ __all__ = [
49
54
  'BaseTokenCounter',
50
55
  'OpenAITokenCounter',
51
56
  'OpenSourceTokenCounter',
57
+ 'LiteLLMTokenCounter',
58
+ 'Constants',
59
+ 'text_extract_from_web',
60
+ 'create_chunks',
52
61
  'dependencies_required',
53
62
  'api_keys_required',
54
63
  ]
camel/utils/commons.py CHANGED
@@ -30,8 +30,9 @@ from camel.types import TaskType
30
30
  F = TypeVar('F', bound=Callable[..., Any])
31
31
 
32
32
 
33
- def api_key_required(func: F) -> F:
34
- r"""Decorator that checks if the API key is available either as an environment variable or passed directly.
33
+ def model_api_key_required(func: F) -> F:
34
+ r"""Decorator that checks if the API key is available either as an
35
+ environment variable or passed directly for a model.
35
36
 
36
37
  Args:
37
38
  func (callable): The function to be wrapped.
@@ -42,6 +43,9 @@ def api_key_required(func: F) -> F:
42
43
  Raises:
43
44
  ValueError: If the API key is not found, either as an environment
44
45
  variable or directly passed.
46
+
47
+ Note:
48
+ Supported model type: `OpenAI` and `Anthropic`.
45
49
  """
46
50
 
47
51
  @wraps(func)
@@ -50,8 +54,12 @@ def api_key_required(func: F) -> F:
50
54
  if not self._api_key and 'OPENAI_API_KEY' not in os.environ:
51
55
  raise ValueError('OpenAI API key not found.')
52
56
  return func(self, *args, **kwargs)
57
+ elif self.model_type.is_zhipuai:
58
+ if 'ZHIPUAI_API_KEY' not in os.environ:
59
+ raise ValueError('ZhiPuAI API key not found.')
60
+ return func(self, *args, **kwargs)
53
61
  elif self.model_type.is_anthropic:
54
- if 'ANTHROPIC_API_KEY' not in os.environ:
62
+ if not self._api_key and 'ANTHROPIC_API_KEY' not in os.environ:
55
63
  raise ValueError('Anthropic API key not found.')
56
64
  return func(self, *args, **kwargs)
57
65
  else:
@@ -274,7 +282,9 @@ def api_keys_required(*required_keys: str) -> Callable[[F], F]:
274
282
  def wrapper(*args: Any, **kwargs: Any) -> Any:
275
283
  missing_keys = [k for k in required_keys if k not in os.environ]
276
284
  if missing_keys:
277
- raise ValueError(f"Missing API keys: {', '.join(missing_keys)}")
285
+ raise ValueError(
286
+ f"Missing API keys: {', '.join(missing_keys)}"
287
+ )
278
288
  return func(*args, **kwargs)
279
289
 
280
290
  return cast(F, wrapper)
@@ -326,3 +336,63 @@ def to_pascal(snake: str) -> str:
326
336
 
327
337
 
328
338
  PYDANTIC_V2 = pydantic.VERSION.startswith("2.")
339
+
340
+
341
+ def text_extract_from_web(url: str) -> str:
342
+ r"""Get the text information from given url.
343
+
344
+ Args:
345
+ url (str): The website you want to search.
346
+
347
+ Returns:
348
+ str: All texts extract from the web.
349
+ """
350
+ try:
351
+ import requests
352
+ from newspaper import Article
353
+
354
+ # Request the target page
355
+ article = Article(url)
356
+ article.download()
357
+ article.parse()
358
+ text = article.text
359
+
360
+ except requests.RequestException as e:
361
+ text = f"Can't access {url}, error: {e}"
362
+
363
+ except Exception as e:
364
+ text = f"Can't extract text from {url}, error: {e}"
365
+
366
+ return text
367
+
368
+
369
+ def create_chunks(text: str, n: int) -> List[str]:
370
+ r"""Returns successive n-sized chunks from provided text. Split a text
371
+ into smaller chunks of size n".
372
+
373
+ Args:
374
+ text (str): The text to be split.
375
+ n (int): The max length of a single chunk.
376
+
377
+ Returns:
378
+ List[str]: A list of split texts.
379
+ """
380
+
381
+ chunks = []
382
+ i = 0
383
+ while i < len(text):
384
+ # Find the nearest end of sentence within a range of 0.5 * n
385
+ # and 1.5 * n tokens
386
+ j = min(i + int(1.2 * n), len(text))
387
+ while j > i + int(0.8 * n):
388
+ # Decode the tokens and check for full stop or newline
389
+ chunk = text[i:j]
390
+ if chunk.endswith(".") or chunk.endswith("\n"):
391
+ break
392
+ j -= 1
393
+ # If no end of sentence found, use n tokens as the chunk size
394
+ if j == i + int(0.8 * n):
395
+ j = min(i + n, len(text))
396
+ chunks.append(text[i:j])
397
+ i = j
398
+ return chunks
@@ -0,0 +1,26 @@
1
+ # =========== Copyright 2023 @ CAMEL-AI.org. All Rights Reserved. ===========
2
+ # Licensed under the Apache License, Version 2.0 (the “License”);
3
+ # you may not use this file except in compliance with the License.
4
+ # You may obtain a copy of the License at
5
+ #
6
+ # http://www.apache.org/licenses/LICENSE-2.0
7
+ #
8
+ # Unless required by applicable law or agreed to in writing, software
9
+ # distributed under the License is distributed on an “AS IS” BASIS,
10
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ # See the License for the specific language governing permissions and
12
+ # limitations under the License.
13
+ # =========== Copyright 2023 @ CAMEL-AI.org. All Rights Reserved. ===========
14
+
15
+
16
+ class Constants:
17
+ # This value defines the default size (both width and height) for images
18
+ # extracted from a video.
19
+ VIDEO_DEFAULT_IMAGE_SIZE = 768
20
+
21
+ # This value defines the interval (in number of frames) at which images
22
+ # are extracted from the video.
23
+ VIDEO_IMAGE_EXTRACTION_INTERVAL = 50
24
+
25
+ # default plug of imageio to read video
26
+ VIDEO_DEFAULT_PLUG_PYAV = "pyav"
@@ -23,7 +23,7 @@ from typing import TYPE_CHECKING, List, Optional
23
23
  from anthropic import Anthropic
24
24
  from PIL import Image
25
25
 
26
- from camel.types import ModelType, OpenAIImageDetailType, OpenAIImageType
26
+ from camel.types import ModelType, OpenAIImageType, OpenAIVisionDetailType
27
27
 
28
28
  if TYPE_CHECKING:
29
29
  from camel.messages import OpenAIMessage
@@ -245,6 +245,7 @@ class OpenAITokenCounter(BaseTokenCounter):
245
245
  elif item["type"] == "image_url":
246
246
  image_str: str = item["image_url"]["url"]
247
247
  detail = item["image_url"]["detail"]
248
+
248
249
  image_prefix_format = "data:image/{};base64,"
249
250
  image_prefix: Optional[str] = None
250
251
  for image_type in list(OpenAIImageType):
@@ -261,7 +262,7 @@ class OpenAITokenCounter(BaseTokenCounter):
261
262
  )
262
263
  image = Image.open(image_bytes)
263
264
  num_tokens += count_tokens_from_image(
264
- image, OpenAIImageDetailType(detail)
265
+ image, OpenAIVisionDetailType(detail)
265
266
  )
266
267
  if key == "name":
267
268
  num_tokens += self.tokens_per_name
@@ -300,8 +301,60 @@ class AnthropicTokenCounter(BaseTokenCounter):
300
301
  return self.client.count_tokens(prompt)
301
302
 
302
303
 
304
+ class LiteLLMTokenCounter:
305
+ def __init__(self, model_type: str):
306
+ r"""Constructor for the token counter for LiteLLM models.
307
+
308
+ Args:
309
+ model_type (str): Model type for which tokens will be counted.
310
+ """
311
+ self.model_type = model_type
312
+ self._token_counter = None
313
+ self._completion_cost = None
314
+
315
+ @property
316
+ def token_counter(self):
317
+ if self._token_counter is None:
318
+ from litellm import token_counter
319
+
320
+ self._token_counter = token_counter
321
+ return self._token_counter
322
+
323
+ @property
324
+ def completion_cost(self):
325
+ if self._completion_cost is None:
326
+ from litellm import completion_cost
327
+
328
+ self._completion_cost = completion_cost
329
+ return self._completion_cost
330
+
331
+ def count_tokens_from_messages(self, messages: List[OpenAIMessage]) -> int:
332
+ r"""Count number of tokens in the provided message list using
333
+ the tokenizer specific to this type of model.
334
+
335
+ Args:
336
+ messages (List[OpenAIMessage]): Message list with the chat history
337
+ in LiteLLM API format.
338
+
339
+ Returns:
340
+ int: Number of tokens in the messages.
341
+ """
342
+ return self.token_counter(model=self.model_type, messages=messages)
343
+
344
+ def calculate_cost_from_response(self, response: dict) -> float:
345
+ r"""Calculate the cost of the given completion response.
346
+
347
+ Args:
348
+ response (dict): The completion response from LiteLLM.
349
+
350
+ Returns:
351
+ float: The cost of the completion call in USD.
352
+ """
353
+ return self.completion_cost(completion_response=response)
354
+
355
+
303
356
  def count_tokens_from_image(
304
- image: Image.Image, detail: OpenAIImageDetailType
357
+ image: Image.Image, detail: OpenAIVisionDetailType
305
358
  ) -> int:
306
359
  r"""Count image tokens for OpenAI vision model. An :obj:`"auto"`
307
360
  resolution model will be treated as :obj:`"high"`. All images with
@@ -315,13 +368,13 @@ def count_tokens_from_image(
315
368
 
316
369
  Args:
317
370
  image (PIL.Image.Image): Image to count number of tokens.
318
- detail (OpenAIImageDetailType): Image detail type to count
371
+ detail (OpenAIVisionDetailType): Image detail type to count
319
372
  number of tokens.
320
373
 
321
374
  Returns:
322
375
  int: Number of tokens for the image given a detail type.
323
376
  """
324
- if detail == OpenAIImageDetailType.LOW:
377
+ if detail == OpenAIVisionDetailType.LOW:
325
378
  return LOW_DETAIL_TOKENS
326
379
 
327
380
  width, height = image.size
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: camel-ai
3
- Version: 0.1.5
3
+ Version: 0.1.5.2
4
4
  Summary: Communicative Agents for AI Society Study
5
5
  Home-page: https://www.camel-ai.org/
6
6
  License: Apache-2.0
@@ -16,37 +16,47 @@ Provides-Extra: all
16
16
  Provides-Extra: encoders
17
17
  Provides-Extra: graph-storages
18
18
  Provides-Extra: huggingface-agent
19
+ Provides-Extra: model-platforms
19
20
  Provides-Extra: retrievers
20
21
  Provides-Extra: test
21
22
  Provides-Extra: tools
22
23
  Provides-Extra: vector-databases
23
24
  Requires-Dist: PyMuPDF (>=1.22.5,<2.0.0) ; extra == "tools" or extra == "all"
24
25
  Requires-Dist: accelerate (>=0,<1) ; extra == "huggingface-agent" or extra == "all"
25
- Requires-Dist: anthropic (>=0.21.3,<0.22.0)
26
+ Requires-Dist: anthropic (>=0.28.0,<0.29.0)
26
27
  Requires-Dist: beautifulsoup4 (>=4,<5) ; extra == "tools" or extra == "all"
27
28
  Requires-Dist: cohere (>=4.56,<5.0) ; extra == "retrievers" or extra == "all"
28
29
  Requires-Dist: colorama (>=0,<1)
30
+ Requires-Dist: curl_cffi (==0.6.2)
29
31
  Requires-Dist: datasets (>=2,<3) ; extra == "huggingface-agent" or extra == "all"
30
32
  Requires-Dist: diffusers (>=0,<1) ; extra == "huggingface-agent" or extra == "all"
33
+ Requires-Dist: discord.py (>=2.3.2,<3.0.0) ; extra == "tools" or extra == "all"
31
34
  Requires-Dist: docstring-parser (>=0.15,<0.16)
32
35
  Requires-Dist: docx2txt (>=0.8,<0.9) ; extra == "tools" or extra == "all"
36
+ Requires-Dist: duckduckgo-search (>=6.1.0,<7.0.0) ; extra == "tools" or extra == "all"
33
37
  Requires-Dist: googlemaps (>=4.10.0,<5.0.0) ; extra == "tools" or extra == "all"
38
+ Requires-Dist: imageio (>=2.34.1,<3.0.0) ; extra == "tools" or extra == "all"
34
39
  Requires-Dist: jsonschema (>=4,<5)
40
+ Requires-Dist: litellm (>=1.38.1,<2.0.0) ; extra == "model-platforms" or extra == "all"
35
41
  Requires-Dist: mock (>=5,<6) ; extra == "test"
36
42
  Requires-Dist: neo4j (>=5.18.0,<6.0.0) ; extra == "graph-storages" or extra == "all"
43
+ Requires-Dist: newspaper3k (>=0.2.8,<0.3.0) ; extra == "tools" or extra == "all"
37
44
  Requires-Dist: numpy (>=1,<2)
38
45
  Requires-Dist: openai (>=1.2.3,<2.0.0)
39
46
  Requires-Dist: openapi-spec-validator (>=0.7.1,<0.8.0) ; extra == "tools" or extra == "all"
40
47
  Requires-Dist: opencv-python (>=4,<5) ; extra == "huggingface-agent" or extra == "all"
41
48
  Requires-Dist: pathlib (>=1.0.1,<2.0.0)
49
+ Requires-Dist: pillow (>=10.2.0,<11.0.0) ; extra == "tools" or extra == "all"
42
50
  Requires-Dist: prance (>=23.6.21.0,<24.0.0.0) ; extra == "tools" or extra == "all"
43
51
  Requires-Dist: protobuf (>=4,<5)
52
+ Requires-Dist: pyTelegramBotAPI (>=4.18.0,<5.0.0) ; extra == "tools" or extra == "all"
44
53
  Requires-Dist: pydantic (>=1.9,<3)
45
54
  Requires-Dist: pydub (>=0.25.1,<0.26.0) ; extra == "tools" or extra == "all"
46
55
  Requires-Dist: pygithub (>=2.3.0,<3.0.0) ; extra == "tools" or extra == "all"
47
56
  Requires-Dist: pymilvus (>=2.4.0,<3.0.0) ; extra == "vector-databases" or extra == "all"
48
57
  Requires-Dist: pyowm (>=3.3.0,<4.0.0) ; extra == "tools" or extra == "all"
49
58
  Requires-Dist: pytest (>=7,<8) ; extra == "test"
59
+ Requires-Dist: pytest-asyncio (>=0.23.0,<0.24.0) ; extra == "test"
50
60
  Requires-Dist: qdrant-client (>=1.9.0,<2.0.0) ; extra == "vector-databases" or extra == "all"
51
61
  Requires-Dist: rank-bm25 (>=0.2.2,<0.3.0) ; extra == "retrievers" or extra == "all"
52
62
  Requires-Dist: requests_oauthlib (>=1.3.1,<2.0.0) ; extra == "tools" or extra == "all"
@@ -121,6 +131,10 @@ To install the base CAMEL library:
121
131
  pip install camel-ai
122
132
  ```
123
133
  Some features require extra dependencies:
134
+ - To install with all dependencies:
135
+ ```bash
136
+ pip install 'camel-ai[all]'
137
+ ```
124
138
  - To use the HuggingFace agents:
125
139
  ```bash
126
140
  pip install 'camel-ai[huggingface-agent]'
@@ -129,10 +143,6 @@ Some features require extra dependencies:
129
143
  ```bash
130
144
  pip install 'camel-ai[tools]'
131
145
  ```
132
- - To install with all dependencies:
133
- ```bash
134
- pip install 'camel-ai[all]'
135
- ```
136
146
 
137
147
  ### From Source
138
148
 
@@ -147,14 +157,20 @@ git clone https://github.com/camel-ai/camel.git
147
157
  # Change directory into project directory
148
158
  cd camel
149
159
 
150
- # Activate camel virtual environment
160
+ # If you didn't install peotry before
161
+ pip install poetry # (Optional)
162
+
163
+ # We suggest using python 3.10
164
+ poetry env use python3.10 # (Optional)
165
+
166
+ # Activate CAMEL virtual environment
151
167
  poetry shell
152
168
 
153
- # Install camel from source
154
- # It takes about 90 seconds to resolve dependencies
169
+ # Install the base CAMEL library
170
+ # It takes about 90 seconds
155
171
  poetry install
156
172
 
157
- # Or if you want to use all other extra packages
173
+ # Install CAMEL with all dependencies
158
174
  poetry install -E all # (Optional)
159
175
 
160
176
  # Exit the virtual environment
@@ -166,16 +182,16 @@ Install `CAMEL` from source with conda and pip:
166
182
  # Create a conda virtual environment
167
183
  conda create --name camel python=3.10
168
184
 
169
- # Activate camel conda environment
185
+ # Activate CAMEL conda environment
170
186
  conda activate camel
171
187
 
172
188
  # Clone github repo
173
- git clone -b v0.1.5 https://github.com/camel-ai/camel.git
189
+ git clone -b v0.1.5.2 https://github.com/camel-ai/camel.git
174
190
 
175
191
  # Change directory into project directory
176
192
  cd camel
177
193
 
178
- # Install camel from source
194
+ # Install CAMEL from source
179
195
  pip install -e .
180
196
 
181
197
  # Or if you want to use all other extra packages
@@ -0,0 +1,148 @@
1
+ camel/__init__.py,sha256=9lSkzCVy_evUPseFTI7wD_oMEn6wRo9aRZna06ygz5I,778
2
+ camel/agents/__init__.py,sha256=SSU1wbhZXWwQnE0rRxkpyN57kEu72KklsZNcdLkXfTs,1551
3
+ camel/agents/base.py,sha256=X39qWSiT1WnDqaJ9k3gQrTpOQSwUKzNEVpp5AY6fDH8,1130
4
+ camel/agents/chat_agent.py,sha256=-CZICCtQbsN-hDxZeFc45m-GU9UTWRQWtmv_q0cc5kQ,27713
5
+ camel/agents/critic_agent.py,sha256=Etxti9XKOut_KqMQHI8IKNMg8zUUM13trep7axZK0Qs,7377
6
+ camel/agents/deductive_reasoner_agent.py,sha256=xuRXe5JkrvU-Qs8qkAQ9MoUYaxOYQ51o9MYw89g0DLA,13309
7
+ camel/agents/embodied_agent.py,sha256=E0N63uOkfw02MdPTEX_ImUAzaNuapnPyU3iBJQSqeKU,7322
8
+ camel/agents/knowledge_graph_agent.py,sha256=JCNn2XVcQ-lnx6FF9riWAXACDmwIr-cNpJmv9Aa-V9k,8890
9
+ camel/agents/role_assignment_agent.py,sha256=npj0l7mhEVVVk3f1ryPlfy_mOeWZi4wyPOi1UpWgLoY,4910
10
+ camel/agents/search_agent.py,sha256=FPVZTwxTAy0KqidVMxM8J-XDGiP0uQAz4ie-O0_KVlI,4442
11
+ camel/agents/task_agent.py,sha256=Dip1nAd3oGtxVIi3laP65hOp5VwlajAbtotendtNMvs,14907
12
+ camel/agents/tool_agents/__init__.py,sha256=ulTNWU2qoFGe3pvVmCq_sdfeSX3NKZ0due66TYvsL-M,862
13
+ camel/agents/tool_agents/base.py,sha256=nQAhfWi8a_bCgzlf5-G-tmj1fKm6AjpRc89NQkWwpnc,1399
14
+ camel/agents/tool_agents/hugging_face_tool_agent.py,sha256=1Z5tG6f_86eL0vmtRZ-BJvoLDFFLhoHt8JtDvgat1xU,8723
15
+ camel/bots/__init__.py,sha256=DGgIhb7Gr_ShnAldq-4wAXucOdSvKtiV3m6e9G10rbA,834
16
+ camel/bots/discord_bot.py,sha256=y4rUyKgeowBpkMkhK29UKyE-DPfJhoouh7onqh7NzXE,3595
17
+ camel/bots/telegram_bot.py,sha256=bekO5vQcd62UcyUmEbdiSMJao9CWDsu3Okb6bXXQFUg,2890
18
+ camel/configs/__init__.py,sha256=9yc5rMGH_FHYCRyC89vmtozNi7RGhN8XHLXxtnIzRh4,1170
19
+ camel/configs/anthropic_config.py,sha256=zD7VMFUw4s7wmBlr64oSXxpEUkhp7wj9mvAd0WK2zFc,3308
20
+ camel/configs/base_config.py,sha256=CEF8ryl_dkH6LgOhwuP5_EgjaWCUCB-E3GcMWR-2YFE,870
21
+ camel/configs/litellm_config.py,sha256=6nghqAD1G7nsvW6W56LHpSKEnJyRiCLEcLgtzpPr-ac,5542
22
+ camel/configs/openai_config.py,sha256=UKTnpzRcAsQtxgvPJNgLHoMGuXWOrQyJsz0MBNsjALM,6603
23
+ camel/embeddings/__init__.py,sha256=9TI7392iYxrlYYerPoboDBOFvpEmP_nSSgtEjks1vJQ,1034
24
+ camel/embeddings/base.py,sha256=nauXLNEJlPnk2sKigFzvNTk_RKsC_2l_EQiyPyj_ATo,2208
25
+ camel/embeddings/openai_embedding.py,sha256=nlBIlbTqps34OT-ydrA1CUYOOZMJqbNSsqyjCx-16wM,2885
26
+ camel/embeddings/sentence_transformers_embeddings.py,sha256=BbgrBHrT8ACrID3RCaALIfuXAHGJG9jcuWu6W-Gd93I,2372
27
+ camel/embeddings/vlm_embedding.py,sha256=VvD_b737snNrZTRE4ejFvWLjd_YT1DCTKl8yKIgRM-g,5436
28
+ camel/functions/__init__.py,sha256=3d1ZI3xx67DvHeBQhQQAu7IwTohC6Sa-_EPZeDE8_50,1737
29
+ camel/functions/google_maps_function.py,sha256=AmhlIyqkrkZF6Vb4O-wdtEKTQjRh5mMjHjS56ciGgjk,12468
30
+ camel/functions/math_functions.py,sha256=sPHSEOdHOmL38wZWcdyiBj0VEmf7mhQ0MBzya1SFNL0,1703
31
+ camel/functions/open_api_function.py,sha256=W_xm4ZFRNWwjQVX-SyWfznRZnvq_T3F7ltw3qJ2Epx0,20312
32
+ camel/functions/open_api_specs/biztoc/__init__.py,sha256=f3LXNDzN2XWWoF2D0nesG8VuEA6Zd14i2aiTDbCm5bA,708
33
+ camel/functions/open_api_specs/biztoc/ai-plugin.json,sha256=IJinQbLv5MFPGFwdN7PbOhwArFVExSEZdJspe-mOBIo,866
34
+ camel/functions/open_api_specs/biztoc/openapi.yaml,sha256=SQ2bYIWb1nVBtkBeFaOihiWQ71oZ2bzz0fCgu6igM8A,610
35
+ camel/functions/open_api_specs/coursera/__init__.py,sha256=f3LXNDzN2XWWoF2D0nesG8VuEA6Zd14i2aiTDbCm5bA,708
36
+ camel/functions/open_api_specs/coursera/openapi.yaml,sha256=iouLcNNpVvXLfmkyKrbJlS3MEjBJ7TgVR48UID8dwfE,1981
37
+ camel/functions/open_api_specs/create_qr_code/__init__.py,sha256=f3LXNDzN2XWWoF2D0nesG8VuEA6Zd14i2aiTDbCm5bA,708
38
+ camel/functions/open_api_specs/create_qr_code/openapi.yaml,sha256=d6ZNFmhCwlqZj8Rp9lmdU1dYPyh3-GnadbEUKHqjBfc,1158
39
+ camel/functions/open_api_specs/klarna/__init__.py,sha256=f3LXNDzN2XWWoF2D0nesG8VuEA6Zd14i2aiTDbCm5bA,708
40
+ camel/functions/open_api_specs/klarna/openapi.yaml,sha256=9wpwRn8NLZL1reN6YUPsZP24hbDJJYvOJeeoWTk7ojQ,2887
41
+ camel/functions/open_api_specs/nasa_apod/__init__.py,sha256=f3LXNDzN2XWWoF2D0nesG8VuEA6Zd14i2aiTDbCm5bA,708
42
+ camel/functions/open_api_specs/nasa_apod/openapi.yaml,sha256=4NPWtk9k7UwNpUihkrbCXzzs4zls-YnEYKe6qmtO8FU,2044
43
+ camel/functions/open_api_specs/outschool/__init__.py,sha256=f3LXNDzN2XWWoF2D0nesG8VuEA6Zd14i2aiTDbCm5bA,708
44
+ camel/functions/open_api_specs/outschool/ai-plugin.json,sha256=QohJo8Ya0RGBvs9cBQR-UgSMl0gXJdNlWO8d2FyqdE8,1089
45
+ camel/functions/open_api_specs/outschool/openapi.yaml,sha256=t9gHdt09CQ8QMVnzEBxkcgH9eG720IsnVwB_6QxzSC4,8700
46
+ camel/functions/open_api_specs/outschool/paths/__init__.py,sha256=2XEfkKfyijEhzTodYGGoD5qvCQLYYlcxboQuNfLGBJs,780
47
+ camel/functions/open_api_specs/outschool/paths/get_classes.py,sha256=1skqdvrOjI_oywSe3KBV4zuqDg_EOpftpA3G6gXCZ8c,1122
48
+ camel/functions/open_api_specs/outschool/paths/search_teachers.py,sha256=p6J9jTxbBNVJTa3M1qaJu3VKtIZEZFX0etxw7a3pdFk,1125
49
+ camel/functions/open_api_specs/security_config.py,sha256=uxdd-Uh1hyHd3wvXdVahBH0hDdf0-IEoVk9Rh2vpAh0,904
50
+ camel/functions/open_api_specs/speak/__init__.py,sha256=f3LXNDzN2XWWoF2D0nesG8VuEA6Zd14i2aiTDbCm5bA,708
51
+ camel/functions/open_api_specs/speak/openapi.yaml,sha256=rmM_-E4tYJ2LOpUlcQxfQtcQSRkVnsBkQWMmKdW2QqQ,6557
52
+ camel/functions/open_api_specs/web_scraper/__init__.py,sha256=f3LXNDzN2XWWoF2D0nesG8VuEA6Zd14i2aiTDbCm5bA,708
53
+ camel/functions/open_api_specs/web_scraper/ai-plugin.json,sha256=jjHvbj0DQ4AYcL9JlSWhyJZ3mFj4eC33E4t6Ci54p3s,1028
54
+ camel/functions/open_api_specs/web_scraper/openapi.yaml,sha256=u_WalQ01e8W1D27VnZviOylpGmJ-zssYrfAgkzqdoyk,2191
55
+ camel/functions/open_api_specs/web_scraper/paths/__init__.py,sha256=f3LXNDzN2XWWoF2D0nesG8VuEA6Zd14i2aiTDbCm5bA,708
56
+ camel/functions/open_api_specs/web_scraper/paths/scraper.py,sha256=SQGbFkshLN4xm-Ya49ssbSvaU1nFVNFYhWsEPYVeFe0,1123
57
+ camel/functions/openai_function.py,sha256=NyN8LBKdNeWizR7SnOp6VwEQhq29OJgskFfXq8EzIFg,14948
58
+ camel/functions/retrieval_functions.py,sha256=ZBwQhBeun86k6AnMDCpf0U-JYNaU0alDJAS1hdnumAQ,2281
59
+ camel/functions/search_functions.py,sha256=tj2eM7Jc70a5tsZhKr3mWczUbK9saUAJxXTrlWKBAv8,11151
60
+ camel/functions/slack_functions.py,sha256=wY838LhFRCEFbhm-R6ImJz7qNT9a74pKaK3oVv0j2ts,8808
61
+ camel/functions/twitter_function.py,sha256=xL-GKU69WrcTUm3lQl1yPgJFxtBJKRmWN3zx9AfGNKI,17254
62
+ camel/functions/weather_functions.py,sha256=W2jMFqxq5M7Dan7cgEpnvzBk0SV_MduMbCuvHBsgo-c,5881
63
+ camel/generators.py,sha256=tcYDoHwSKN0rBiu7u4rWN9pb61O8OaclrNaasCqHSJM,10437
64
+ camel/human.py,sha256=W_T7PSO-ReiJbC5JMX1wPrpt6LVFBqoNEwUdjDScG1M,4963
65
+ camel/interpreters/__init__.py,sha256=iGaeff8zeVDHr_5qHGmMuDzo8gz8vnW4yA7NMhk3-hg,1040
66
+ camel/interpreters/base.py,sha256=JZpQmxYBflPcDerj-R6TB6nnKvhnZR3Drraxo84JuxE,1904
67
+ camel/interpreters/internal_python_interpreter.py,sha256=ZbVmSB2zvWbvvTOL0xpDlJel-I9rv13w1rP4RvtpNiE,21866
68
+ camel/interpreters/interpreter_error.py,sha256=4pI_dKohUKcQOrqJafolyjRfOHwBUuUBXCwwD46P4wE,886
69
+ camel/interpreters/subprocess_interpreter.py,sha256=nKxFXZJ9zGYlKdNlz6Ln7bvg65ejKZ8yAHgIFuR2WzM,6835
70
+ camel/loaders/__init__.py,sha256=TYKJlSEUCajdXVWLNHBL8qQO0WYdQwut4gO-r3-SaMY,856
71
+ camel/loaders/base_io.py,sha256=vhNDyjlxvxG20PTImpRrv_XxkploDUyRP43kgs31S5A,8688
72
+ camel/loaders/unstructured_io.py,sha256=JE0kFouTURqjUoLz1fBfxwSVYzkULaqdNf_A1YONfS4,25403
73
+ camel/memories/__init__.py,sha256=ml1Uj4Y_1Q2LfrTXOY38niF0x1H-N-u_zoN_VvR939U,1364
74
+ camel/memories/agent_memories.py,sha256=XxZCNSqMy2zME-vYjy9EBpQc9WzW1vOIFwdAoxImvtY,6110
75
+ camel/memories/base.py,sha256=kbyAmKkOfFdOKfHxwao8bIAbRSuOEXyzxPFd0NlvUCE,5003
76
+ camel/memories/blocks/__init__.py,sha256=5oPXhzoZke5d-4R8jmP54o8O2mmBvJB30oukRNrRX50,860
77
+ camel/memories/blocks/chat_history_block.py,sha256=USDGp5pDlp6PrClmAVi3WqwAjE6wrWwpJBoqG_yvX9A,4609
78
+ camel/memories/blocks/vectordb_block.py,sha256=qgW-hr-TptXwirrtO5RrFlvD6r3BPFXvvz3hJzs4Zjg,3850
79
+ camel/memories/context_creators/__init__.py,sha256=0uLLP3YD46gOOh39her_weJo3viHmE4IWyWBLlutnqs,806
80
+ camel/memories/context_creators/score_based.py,sha256=o3h4Rst9vzdgMg8-MbUMDLVaMBMqy4ZeFgHejyGQTJY,5378
81
+ camel/memories/records.py,sha256=zmZsYHVuq6fYqJDkzhNXF02uWLzdBemaEZeG0Ls90pU,3618
82
+ camel/messages/__init__.py,sha256=djLvpz6AmjeLzuUSQl7J6T2O4x8MwSdcH0l9fbj_3yg,1468
83
+ camel/messages/base.py,sha256=1cyYITXxBsp2UCdOjF1Ky4W_PgRegEfitqbrF9PjUPs,13721
84
+ camel/messages/func_message.py,sha256=CCVkbz-2pdxXV0vBETI0xt7d7uiN8zACpRI7lCnfTFQ,3841
85
+ camel/models/__init__.py,sha256=AHlcSSVnw3NK7ngqVoxPFg-m5Ts3goyshqtwNJIsQ2U,1288
86
+ camel/models/anthropic_model.py,sha256=N0oM9uRn3lV-UxSlhBmM08p0ZsQTjPWaEYI24XzyAPE,5286
87
+ camel/models/base_model.py,sha256=_TPcJrH4hbX6Iq6SBRUJufBp_Mgzkye1terqstu7aIQ,3906
88
+ camel/models/litellm_model.py,sha256=_f61yTPFNMrdAAKuDokLoohjuhECcwjdOjLmDoxgNJk,3942
89
+ camel/models/model_factory.py,sha256=sM67tlxriaZjn5xcIR-yK12ubk4EBMi_kRdl36o8eU4,2664
90
+ camel/models/open_source_model.py,sha256=3t3Lrdx9T-g94k3MrRRn7dDQqJHqFoFRBi-yXj5RIEw,5857
91
+ camel/models/openai_audio_models.py,sha256=Jpd_B-5R8d8s3qYo_0x-Ahw5icMCysGEjaDtssV34dg,9799
92
+ camel/models/openai_model.py,sha256=cqbfcZZEDOBUqJRT5oTo_ohNMxAUXXOg-dm7kTiuilE,4193
93
+ camel/models/stub_model.py,sha256=hbfS6A83vY4TaFK_7Q9jA4Gbrkp0Hlmq2IEZ1z81L8E,3631
94
+ camel/models/zhipuai_model.py,sha256=DMpmwn6eCXwof1ASvih3NTfGxTlt5YstGEC6qrQqRJE,4484
95
+ camel/prompts/__init__.py,sha256=xzt5NBo2tZ_35SvzUk6OExKzrSEKZJMZeYszOSPW2ec,1903
96
+ camel/prompts/ai_society.py,sha256=ApgvIED1Z_mdsWDNc2_u35Ktp7pEKksMrOIQKo_q5cI,6306
97
+ camel/prompts/base.py,sha256=VMde6w97zHPP03OA628wGwXhtJweoccOK1B1f3aESDo,8464
98
+ camel/prompts/code.py,sha256=vrv2mPjlakPlqVLQt_rA1veP79EN1t3iM41bkACrc9I,5865
99
+ camel/prompts/descripte_video_prompt.py,sha256=lyJlVN1wjrY77Cv8U3NdDpmtlyIXs1wHYRhsrgLPcuY,1295
100
+ camel/prompts/evaluation.py,sha256=4zm5ZVy3CSb2NdFWnS43ejK8Cu_pU8iUIj06ofpuZpg,1596
101
+ camel/prompts/misalignment.py,sha256=aL3W5WvTJBfF-1vWQse_tn3zAOaezHGU510HLs0AlQo,4537
102
+ camel/prompts/object_recognition.py,sha256=L_YM_c8AxwO6MvwuUdeuluwhBPXedNxNIzOv5yF9Dag,1422
103
+ camel/prompts/prompt_templates.py,sha256=PeOp_eUgyZyJ7BCwA2cvSx8O3QPu9ftjgaZ6Al8zlJQ,4134
104
+ camel/prompts/role_description_prompt_template.py,sha256=k9p3NlxY1MWKzhoRpeQeuz0oHDQYo63WoPdWcUmHr_A,2544
105
+ camel/prompts/solution_extraction.py,sha256=5vTSaeQoBSvaur3cKgqQ9kLxSA5QIOBI4OPQzXWbQFg,2109
106
+ camel/prompts/task_prompt_template.py,sha256=vvWwuWkQ7SX9PR_2DtSr437JF5G-JPaanhWE0_GBug0,2816
107
+ camel/prompts/translation.py,sha256=V_40Ko2is5dAOCZ8DzsHo6DO7l8_jnEV9KjCKH7GxtY,1902
108
+ camel/responses/__init__.py,sha256=edtTQskOgq5obyITziRFL62HTJP9sAikAtP9vrFacEQ,795
109
+ camel/responses/agent_responses.py,sha256=UsTZHi4jPs2wfChPQWttVNyHneoGdQtdrRouatywE4w,1714
110
+ camel/retrievers/__init__.py,sha256=CuP3B77zl2PoF-W2y9xSkTGRzoK2J4TlUHdCtuJD8dg,1059
111
+ camel/retrievers/auto_retriever.py,sha256=malgItbxMWYhg7LAw8BuZl-osmbriG7BPtzvPYxI5UE,13469
112
+ camel/retrievers/base.py,sha256=sgqaJDwIkWluEgPBlukFN7RYZJnrp0imCAOEWm6bZ40,2646
113
+ camel/retrievers/bm25_retriever.py,sha256=-aWMZBF_WqSeyk_0Gcf9x4B12ywSBwHScSzxQmFZkXw,5199
114
+ camel/retrievers/cohere_rerank_retriever.py,sha256=jDAo5OxAWZBQhgH9cSo0_3h057AN4z6_oDMIy6HZvik,4142
115
+ camel/retrievers/vector_retriever.py,sha256=PhPIUyjffOojwYiATEY1lsCQO9yDmpc8k-R4sAt5IvY,7316
116
+ camel/societies/__init__.py,sha256=JhGwUHjht4CewzC3shKuxmgB3oS7FIxIxmiKyhNsfIs,832
117
+ camel/societies/babyagi_playing.py,sha256=0sDe65XbGGWQOe4I758sH-sAk1Hf82Y_qawjaEbbBXE,11791
118
+ camel/societies/role_playing.py,sha256=WIV_eGXw8pzGsOGnqhTsQqOWQxwe-Snwd_t162AALxI,22100
119
+ camel/storages/__init__.py,sha256=crRaZKmgvs8RCzfffREYIVo09J4q_HVu44JGb4CJMfo,1480
120
+ camel/storages/graph_storages/__init__.py,sha256=vsJZkedaCS-cLQ-KgMqio8cxXvbousBWVqzZJvlimT8,897
121
+ camel/storages/graph_storages/base.py,sha256=-Ys1BIuz4H5FvYMZTBIjg8Cfv40CPQ-OsovwMzygEgU,2858
122
+ camel/storages/graph_storages/graph_element.py,sha256=fQNxY-BHCRlTT9I_VY3NODysxW4vuqk-zjvTCMwAoH4,2356
123
+ camel/storages/graph_storages/neo4j_graph.py,sha256=wvOiHLsMPN5dTIBk97oOyyAhwU7TJHxFRaMsBimt25k,22077
124
+ camel/storages/key_value_storages/__init__.py,sha256=lZOFtqj1iTQ9pRB4DkCYSMyPwEwaJDVzU06kM5jxFd4,916
125
+ camel/storages/key_value_storages/base.py,sha256=knxni8WiyTXJ2emZQO-JIsbxw6Ei7EO6dj-bU2YCoSY,2183
126
+ camel/storages/key_value_storages/in_memory.py,sha256=pAcKkVd7jlPS6seR31agdyjx9TNIIRMIyx497XWXwbs,1955
127
+ camel/storages/key_value_storages/json.py,sha256=BlOhuyWbSjzKixtA5e9O0z8BFK4pi96OcPNxnFfDPQw,3471
128
+ camel/storages/vectordb_storages/__init__.py,sha256=hEhPyCPlzyXUsDFDzKRdLBj09rO1b5bsn76AJrDcaG4,1076
129
+ camel/storages/vectordb_storages/base.py,sha256=BS1QPz11ZUBVtn_M7j1Q0GW0Ya_ILai4Y2o1UPW9bAM,6009
130
+ camel/storages/vectordb_storages/milvus.py,sha256=0cMoLnBLG4-gdXbFK-AYlfIhCm6CPveFPl584PY7vPk,13637
131
+ camel/storages/vectordb_storages/qdrant.py,sha256=fnAPhWubLWnMa7eNTmK13gLNC2j6jnP1OF_OCHZoDzE,13618
132
+ camel/terminators/__init__.py,sha256=pE7fcfDUNngdbm1BhzSQPRMXNbdd28rl9YbF4gKWwXE,997
133
+ camel/terminators/base.py,sha256=TSkl3maNEsdjyAniJaSgFfD4UF8RQ1LwNIiGw0dN8Gg,1396
134
+ camel/terminators/response_terminator.py,sha256=zcXuigbvlclUoBv4xcVbfU36ZohUT1RhI-rSnukloUY,4951
135
+ camel/terminators/token_limit_terminator.py,sha256=mK30wVUnoqNAvIo-wxkqY5gUSNay2M04rsAktKqoiOI,2087
136
+ camel/toolkits/__init__.py,sha256=2-z9eGt53U6_1uwMtiu0-GgU7k5iFkS3HEMXuB3Qs2A,836
137
+ camel/toolkits/base.py,sha256=znjnZtgxA5gbT7OMnrKQF_a9FK3A7Xk5s_lP94u76vI,923
138
+ camel/toolkits/github_toolkit.py,sha256=ZBShnR7Vc3xQhQiTHsiF2esyBn7JEJxldvlgg-Cnsgk,11631
139
+ camel/types/__init__.py,sha256=D8ITJYnJF6PvJiWQB35MIBbPbX5AzYB_hpqbkprXSvY,1927
140
+ camel/types/enums.py,sha256=DpGMfhVTu5bYnI8ts52-Rl5FRIGRybADx_zSl702afY,9012
141
+ camel/types/openai_types.py,sha256=BNQ6iCzKTjSvgcXFsAFIgrUS_YUFZBU6bDoyAp387hI,2045
142
+ camel/utils/__init__.py,sha256=qFRBTiHE_QXYDSQoNecobtJYSFuNHEULx7nr00Q1S6Y,1827
143
+ camel/utils/commons.py,sha256=hFEAhmyYwYPVZVYFBbmGepEC_wXfHm5umkiMUHOuckw,11888
144
+ camel/utils/constants.py,sha256=ZIw5ILfOyJFyjEAYrbJMANeg1_EZI-zMK_xVrkwALbM,1105
145
+ camel/utils/token_counting.py,sha256=lFLghaWeD3HdHHXnebYdkAs7leIQQjmmlsbXNdjaZTo,14334
146
+ camel_ai-0.1.5.2.dist-info/METADATA,sha256=trDmJAGhrOEzgT3uHycAym4g_n_XduB-M-9O9EHNWSw,22016
147
+ camel_ai-0.1.5.2.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
148
+ camel_ai-0.1.5.2.dist-info/RECORD,,