camel-ai 0.2.20a0__py3-none-any.whl → 0.2.21__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of camel-ai might be problematic. Click here for more details.
- camel/__init__.py +1 -1
- camel/agents/chat_agent.py +2 -3
- camel/agents/knowledge_graph_agent.py +1 -5
- camel/benchmarks/apibench.py +1 -5
- camel/benchmarks/nexus.py +1 -5
- camel/benchmarks/ragbench.py +2 -2
- camel/bots/telegram_bot.py +1 -5
- camel/configs/__init__.py +3 -0
- camel/configs/aiml_config.py +80 -0
- camel/datagen/__init__.py +3 -1
- camel/datagen/self_improving_cot.py +821 -0
- camel/interpreters/subprocess_interpreter.py +72 -6
- camel/models/__init__.py +2 -0
- camel/models/aiml_model.py +147 -0
- camel/models/model_factory.py +3 -0
- camel/models/siliconflow_model.py +1 -1
- camel/societies/workforce/role_playing_worker.py +2 -4
- camel/societies/workforce/single_agent_worker.py +1 -6
- camel/societies/workforce/workforce.py +3 -9
- camel/toolkits/__init__.py +2 -0
- camel/toolkits/reddit_toolkit.py +8 -38
- camel/toolkits/sympy_toolkit.py +778 -0
- camel/toolkits/whatsapp_toolkit.py +11 -32
- camel/types/enums.py +29 -1
- camel/utils/__init__.py +7 -2
- camel/utils/commons.py +198 -21
- camel/utils/deduplication.py +232 -0
- camel/utils/token_counting.py +0 -38
- {camel_ai-0.2.20a0.dist-info → camel_ai-0.2.21.dist-info}/METADATA +10 -12
- {camel_ai-0.2.20a0.dist-info → camel_ai-0.2.21.dist-info}/RECORD +33 -28
- /camel/datagen/{cotdatagen.py → cot_datagen.py} +0 -0
- {camel_ai-0.2.20a0.dist-info → camel_ai-0.2.21.dist-info}/LICENSE +0 -0
- {camel_ai-0.2.20a0.dist-info → camel_ai-0.2.21.dist-info}/WHEEL +0 -0
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
# ========= Copyright 2023-2024 @ 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-2024 @ CAMEL-AI.org. All Rights Reserved. =========
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
from typing import Dict, List, Literal, Optional
|
|
17
|
+
|
|
18
|
+
from pydantic import BaseModel
|
|
19
|
+
|
|
20
|
+
from camel.embeddings.base import BaseEmbedding
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
class DeduplicationResult(BaseModel):
|
|
24
|
+
r"""The result of deduplication.
|
|
25
|
+
|
|
26
|
+
Attributes:
|
|
27
|
+
original_texts (List[str]): The original texts.
|
|
28
|
+
unique_ids (List[int]): A list of ids that are unique (not duplicates).
|
|
29
|
+
unique_embeddings_dict (Dict[int, List[float]]): A mapping from the
|
|
30
|
+
index of each unique text to its embedding.
|
|
31
|
+
duplicate_to_target_map (Dict[int, int]): A mapping from the index of
|
|
32
|
+
the duplicate text to the index of the text it is considered a
|
|
33
|
+
duplicate of.
|
|
34
|
+
"""
|
|
35
|
+
|
|
36
|
+
original_texts: List[str]
|
|
37
|
+
unique_ids: List[int]
|
|
38
|
+
unique_embeddings_dict: Dict[int, List[float]]
|
|
39
|
+
duplicate_to_target_map: Dict[int, int]
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
def deduplicate_internally(
|
|
43
|
+
texts: List[str],
|
|
44
|
+
threshold: float = 0.65,
|
|
45
|
+
embedding_instance: Optional[BaseEmbedding[str]] = None,
|
|
46
|
+
embeddings: Optional[List[List[float]]] = None,
|
|
47
|
+
strategy: Literal["top1", "llm-supervise"] = "top1",
|
|
48
|
+
batch_size: int = 1000,
|
|
49
|
+
) -> DeduplicationResult:
|
|
50
|
+
r"""Deduplicate a list of strings based on their cosine similarity.
|
|
51
|
+
|
|
52
|
+
You can either:
|
|
53
|
+
1) Provide a CAMEL `BaseEmbedding` instance via `embedding_instance` to let
|
|
54
|
+
this function handle the embedding internally, OR
|
|
55
|
+
2) Directly pass a list of pre-computed embeddings to `embeddings`.
|
|
56
|
+
|
|
57
|
+
If both `embedding_instance` and `embeddings` are provided, the function
|
|
58
|
+
will raise a ValueError to avoid ambiguous usage.
|
|
59
|
+
|
|
60
|
+
strategy is used to specify different strategies, where 'top1' selects the
|
|
61
|
+
one with highest similarity, and 'llm-supervise' uses LLM to determine if
|
|
62
|
+
texts are duplicates (not yet implemented).
|
|
63
|
+
|
|
64
|
+
Args:
|
|
65
|
+
texts (List[str]): The list of texts to be deduplicated.
|
|
66
|
+
threshold (float, optional): The similarity threshold for considering
|
|
67
|
+
two texts as duplicates. (default: :obj:`0.65`)
|
|
68
|
+
embedding_instance (Optional[BaseEmbedding[str]], optional):
|
|
69
|
+
A CAMEL embedding instance for automatic embedding. (default:
|
|
70
|
+
:obj:`None`)
|
|
71
|
+
embeddings (Optional[List[List[float]]], optional):
|
|
72
|
+
Pre-computed embeddings of `texts`. Each element in the list
|
|
73
|
+
corresponds to the embedding of the text in the same index of
|
|
74
|
+
`texts`. (default: :obj:`None`)
|
|
75
|
+
strategy (Literal["top1", "llm-supervise"], optional):
|
|
76
|
+
The strategy to use for deduplication. (default: :obj:`"top1"`)
|
|
77
|
+
batch_size (int, optional): The size of the batch to use for
|
|
78
|
+
calculating cosine similarities. (default: :obj:`1000`)
|
|
79
|
+
|
|
80
|
+
Returns:
|
|
81
|
+
DeduplicationResult: An object that contains:
|
|
82
|
+
- `original_texts`: The original texts.
|
|
83
|
+
- `unique_ids`: The unique ids after deduplication.
|
|
84
|
+
- `unique_embeddings_dict`: A dict mapping from (unique) text id
|
|
85
|
+
to its embedding.
|
|
86
|
+
- `duplicate_to_target_map`: A dict mapping from the id of a
|
|
87
|
+
duplicate text to the id of the text it is considered a duplicate
|
|
88
|
+
of.
|
|
89
|
+
|
|
90
|
+
Raises:
|
|
91
|
+
NotImplementedError: If the strategy is not "top1".
|
|
92
|
+
ValueError: If neither embeddings nor embedding_instance is provided,
|
|
93
|
+
or if both are provided at the same time.
|
|
94
|
+
ValueError: If the length of `embeddings` does not match the length of
|
|
95
|
+
`texts`.
|
|
96
|
+
|
|
97
|
+
Example:
|
|
98
|
+
>>> from camel.embeddings.openai_embedding import OpenAIEmbedding
|
|
99
|
+
>>> # Suppose we have 5 texts, some of which may be duplicates
|
|
100
|
+
>>> texts = [
|
|
101
|
+
... "What is AI?",
|
|
102
|
+
... "Artificial Intelligence is about machines",
|
|
103
|
+
... "What is AI?",
|
|
104
|
+
... "Deep Learning is a subset of AI",
|
|
105
|
+
... "What is artificial intelligence?"
|
|
106
|
+
... ]
|
|
107
|
+
>>> # or any other BaseEmbedding instance
|
|
108
|
+
>>> embedding_model = OpenAIEmbedding()
|
|
109
|
+
>>> result = deduplicate_internally(
|
|
110
|
+
... texts=texts,
|
|
111
|
+
... threshold=0.7,
|
|
112
|
+
... embedding_instance=embedding_model
|
|
113
|
+
... )
|
|
114
|
+
>>> print("Unique ids:")
|
|
115
|
+
>>> for uid in result.unique_ids:
|
|
116
|
+
... print(texts[uid])
|
|
117
|
+
Unique ids:
|
|
118
|
+
What is AI?
|
|
119
|
+
Artificial Intelligence is about machines
|
|
120
|
+
Deep Learning is a subset of AI
|
|
121
|
+
What is artificial intelligence?
|
|
122
|
+
|
|
123
|
+
>>> print("Duplicate map:")
|
|
124
|
+
>>> print(result.duplicate_to_target_map)
|
|
125
|
+
{2: 0}
|
|
126
|
+
# This indicates the text at index 2 is considered
|
|
127
|
+
# a duplicate of index 0.
|
|
128
|
+
"""
|
|
129
|
+
import numpy as np
|
|
130
|
+
from sklearn.metrics.pairwise import cosine_similarity
|
|
131
|
+
|
|
132
|
+
if len(texts) == 0:
|
|
133
|
+
return DeduplicationResult(
|
|
134
|
+
original_texts=[],
|
|
135
|
+
unique_ids=[],
|
|
136
|
+
unique_embeddings_dict={},
|
|
137
|
+
duplicate_to_target_map={},
|
|
138
|
+
)
|
|
139
|
+
|
|
140
|
+
if len(texts) == 1:
|
|
141
|
+
return DeduplicationResult(
|
|
142
|
+
original_texts=texts,
|
|
143
|
+
unique_ids=[0],
|
|
144
|
+
unique_embeddings_dict={
|
|
145
|
+
0: embeddings[0]
|
|
146
|
+
if embeddings
|
|
147
|
+
else embedding_instance.embed_list(texts)[0] # type: ignore[union-attr]
|
|
148
|
+
},
|
|
149
|
+
duplicate_to_target_map={},
|
|
150
|
+
)
|
|
151
|
+
|
|
152
|
+
if strategy == "llm-supervise":
|
|
153
|
+
# TODO: Implement LLM-supervise deduplication.
|
|
154
|
+
raise NotImplementedError(
|
|
155
|
+
"LLM-supervise deduplication is not yet implemented."
|
|
156
|
+
)
|
|
157
|
+
|
|
158
|
+
# Check if the parameters are valid.
|
|
159
|
+
if not 0 <= threshold <= 1:
|
|
160
|
+
raise ValueError("Threshold must be between 0 and 1")
|
|
161
|
+
|
|
162
|
+
if embedding_instance is None and embeddings is None:
|
|
163
|
+
raise ValueError(
|
|
164
|
+
"Either 'embedding_instance' or 'embeddings' must be provided."
|
|
165
|
+
)
|
|
166
|
+
if embedding_instance is not None and embeddings is not None:
|
|
167
|
+
raise ValueError(
|
|
168
|
+
"Cannot provide both 'embedding_instance' and 'embeddings'. "
|
|
169
|
+
"Please choose only one way to supply embeddings."
|
|
170
|
+
)
|
|
171
|
+
|
|
172
|
+
if embedding_instance is not None:
|
|
173
|
+
# Use Camel's embedding_instance to vectorize.
|
|
174
|
+
embeddings = embedding_instance.embed_list(texts)
|
|
175
|
+
else:
|
|
176
|
+
# Use pre-supplied embeddings.
|
|
177
|
+
if embeddings and len(embeddings) != len(texts):
|
|
178
|
+
raise ValueError(
|
|
179
|
+
"The length of 'embeddings' does not match the length "
|
|
180
|
+
"of 'texts'."
|
|
181
|
+
)
|
|
182
|
+
|
|
183
|
+
# Convert embeddings to numpy array for efficient computation
|
|
184
|
+
embeddings_array = np.array(embeddings)
|
|
185
|
+
n = len(texts)
|
|
186
|
+
duplicate_to_target_map: Dict[int, int] = {}
|
|
187
|
+
|
|
188
|
+
# Process in batches to reduce memory usage
|
|
189
|
+
for i in range(0, n, batch_size):
|
|
190
|
+
batch_end = min(i + batch_size, n)
|
|
191
|
+
# Calculate cosine similarity for current batch
|
|
192
|
+
batch_similarities = cosine_similarity(
|
|
193
|
+
embeddings_array[i:batch_end], embeddings_array[:batch_end]
|
|
194
|
+
)
|
|
195
|
+
|
|
196
|
+
# Create mask for lower triangle (avoid self-comparison and redundant
|
|
197
|
+
# checks)
|
|
198
|
+
tril_mask = np.tril(np.ones_like(batch_similarities), k=-1)
|
|
199
|
+
batch_similarities = batch_similarities * tril_mask
|
|
200
|
+
|
|
201
|
+
# Find duplicates in current batch
|
|
202
|
+
masked_similarities = np.where(
|
|
203
|
+
batch_similarities > threshold, batch_similarities, -1
|
|
204
|
+
)
|
|
205
|
+
max_indices = masked_similarities.argmax(axis=1)
|
|
206
|
+
above_threshold = (
|
|
207
|
+
batch_similarities[np.arange(batch_end - i), max_indices]
|
|
208
|
+
> threshold
|
|
209
|
+
)
|
|
210
|
+
|
|
211
|
+
# Update duplicate map
|
|
212
|
+
for j, is_duplicate in enumerate(above_threshold):
|
|
213
|
+
if is_duplicate:
|
|
214
|
+
duplicate_to_target_map[i + j] = max_indices[j]
|
|
215
|
+
|
|
216
|
+
# Get the actual unique ids and embeddings.
|
|
217
|
+
unique_ids = []
|
|
218
|
+
unique_embeddings_dict = {}
|
|
219
|
+
|
|
220
|
+
assert embeddings, "embeddings must be valid"
|
|
221
|
+
|
|
222
|
+
for i, (_, emb) in enumerate(zip(texts, embeddings)):
|
|
223
|
+
if i not in duplicate_to_target_map:
|
|
224
|
+
unique_ids.append(i)
|
|
225
|
+
unique_embeddings_dict[i] = emb
|
|
226
|
+
|
|
227
|
+
return DeduplicationResult(
|
|
228
|
+
original_texts=texts,
|
|
229
|
+
unique_ids=unique_ids,
|
|
230
|
+
unique_embeddings_dict=unique_embeddings_dict,
|
|
231
|
+
duplicate_to_target_map=duplicate_to_target_map,
|
|
232
|
+
)
|
camel/utils/token_counting.py
CHANGED
|
@@ -267,44 +267,6 @@ class AnthropicTokenCounter(BaseTokenCounter):
|
|
|
267
267
|
).input_tokens
|
|
268
268
|
|
|
269
269
|
|
|
270
|
-
class GeminiTokenCounter(BaseTokenCounter):
|
|
271
|
-
def __init__(self, model_type: UnifiedModelType):
|
|
272
|
-
r"""Constructor for the token counter for Gemini models.
|
|
273
|
-
|
|
274
|
-
Args:
|
|
275
|
-
model_type (UnifiedModelType): Model type for which tokens will be
|
|
276
|
-
counted.
|
|
277
|
-
"""
|
|
278
|
-
import google.generativeai as genai
|
|
279
|
-
|
|
280
|
-
self._client = genai.GenerativeModel(model_type)
|
|
281
|
-
|
|
282
|
-
def count_tokens_from_messages(self, messages: List[OpenAIMessage]) -> int:
|
|
283
|
-
r"""Count number of tokens in the provided message list using
|
|
284
|
-
loaded tokenizer specific for this type of model.
|
|
285
|
-
|
|
286
|
-
Args:
|
|
287
|
-
messages (List[OpenAIMessage]): Message list with the chat history
|
|
288
|
-
in OpenAI API format.
|
|
289
|
-
|
|
290
|
-
Returns:
|
|
291
|
-
int: Number of tokens in the messages.
|
|
292
|
-
"""
|
|
293
|
-
converted_messages = []
|
|
294
|
-
for message in messages:
|
|
295
|
-
role = message.get('role')
|
|
296
|
-
if role == 'assistant':
|
|
297
|
-
role_to_gemini = 'model'
|
|
298
|
-
else:
|
|
299
|
-
role_to_gemini = 'user'
|
|
300
|
-
converted_message = {
|
|
301
|
-
"role": role_to_gemini,
|
|
302
|
-
"parts": message.get("content"),
|
|
303
|
-
}
|
|
304
|
-
converted_messages.append(converted_message)
|
|
305
|
-
return self._client.count_tokens(converted_messages).total_tokens
|
|
306
|
-
|
|
307
|
-
|
|
308
270
|
class LiteLLMTokenCounter(BaseTokenCounter):
|
|
309
271
|
def __init__(self, model_type: UnifiedModelType):
|
|
310
272
|
r"""Constructor for the token counter for LiteLLM models.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: camel-ai
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.21
|
|
4
4
|
Summary: Communicative Agents for AI Society Study
|
|
5
5
|
License: Apache-2.0
|
|
6
6
|
Keywords: communicative-ai,ai-societies,artificial-intelligence,deep-learning,multi-agent-systems,cooperative-ai,natural-language-processing,large-language-models
|
|
@@ -37,7 +37,7 @@ Requires-Dist: azure-storage-blob (>=12.21.0,<13.0.0) ; extra == "storage" or ex
|
|
|
37
37
|
Requires-Dist: beautifulsoup4 (>=4,<5) ; extra == "document-tools" or extra == "all"
|
|
38
38
|
Requires-Dist: botocore (>=1.35.3,<2.0.0) ; extra == "storage" or extra == "all"
|
|
39
39
|
Requires-Dist: cohere (>=5.11.0,<6.0.0) ; extra == "rag" or extra == "model-platforms" or extra == "all"
|
|
40
|
-
Requires-Dist: colorama (>=0,<
|
|
40
|
+
Requires-Dist: colorama (>=0.4.6,<0.5.0)
|
|
41
41
|
Requires-Dist: curl_cffi (==0.6.2)
|
|
42
42
|
Requires-Dist: dappier (>=0.3.3,<0.4.0) ; extra == "web-tools" or extra == "all"
|
|
43
43
|
Requires-Dist: datacommons (>=1.4.3,<2.0.0) ; extra == "data-tools" or extra == "all"
|
|
@@ -55,7 +55,6 @@ Requires-Dist: ffmpeg-python (>=0.2.0,<0.3.0) ; extra == "media-tools" or extra
|
|
|
55
55
|
Requires-Dist: firecrawl-py (>=1.0.0,<2.0.0) ; extra == "web-tools" or extra == "all"
|
|
56
56
|
Requires-Dist: fish-audio-sdk (>=2024.12.5,<2025.0.0) ; extra == "model-platforms" or extra == "all"
|
|
57
57
|
Requires-Dist: google-cloud-storage (>=2.18.0,<3.0.0) ; extra == "storage" or extra == "all"
|
|
58
|
-
Requires-Dist: google-generativeai (>=0.6.0,<0.7.0) ; extra == "model-platforms" or extra == "all"
|
|
59
58
|
Requires-Dist: googlemaps (>=4.10.0,<5.0.0) ; extra == "web-tools" or extra == "all"
|
|
60
59
|
Requires-Dist: httpx (>=0.23.0,<0.27.3)
|
|
61
60
|
Requires-Dist: imageio[pyav] (>=2.34.2,<3.0.0) ; extra == "media-tools" or extra == "all"
|
|
@@ -70,7 +69,7 @@ Requires-Dist: nebula3-python (==3.8.2) ; extra == "rag" or extra == "storage" o
|
|
|
70
69
|
Requires-Dist: neo4j (>=5.18.0,<6.0.0) ; extra == "rag" or extra == "storage" or extra == "all"
|
|
71
70
|
Requires-Dist: newspaper3k (>=0.2.8,<0.3.0) ; extra == "web-tools" or extra == "all"
|
|
72
71
|
Requires-Dist: notion-client (>=2.2.1,<3.0.0) ; extra == "communication-tools" or extra == "all"
|
|
73
|
-
Requires-Dist: numpy (>=1,<2)
|
|
72
|
+
Requires-Dist: numpy (>=1.26,<2.0)
|
|
74
73
|
Requires-Dist: openai (>=1.59.7,<2.0.0)
|
|
75
74
|
Requires-Dist: openapi-spec-validator (>=0.7.1,<0.8.0) ; extra == "document-tools" or extra == "all"
|
|
76
75
|
Requires-Dist: openbb (>=4.3.5,<5.0.0) ; extra == "data-tools" or extra == "all"
|
|
@@ -78,13 +77,12 @@ Requires-Dist: opencv-python (>=4,<5) ; extra == "huggingface" or extra == "all"
|
|
|
78
77
|
Requires-Dist: outlines (>=0.1.7,<0.2.0) ; extra == "all"
|
|
79
78
|
Requires-Dist: pandas (>=1.5.3,<2.0.0) ; extra == "data-tools" or extra == "all"
|
|
80
79
|
Requires-Dist: pandasai (>=2.3.0,<3.0.0) ; extra == "rag" or extra == "document-tools" or extra == "all"
|
|
81
|
-
Requires-Dist: pandoc
|
|
82
|
-
Requires-Dist: pathlib (>=1.0.1,<2.0.0)
|
|
83
|
-
Requires-Dist: pdfplumber (>=0.11.0,<0.12.0) ; extra == "document-tools" or extra == "all"
|
|
80
|
+
Requires-Dist: pandoc (>=2.4,<3.0)
|
|
84
81
|
Requires-Dist: pillow (>=10.1.0,<11.0.0) ; extra == "media-tools" or extra == "all"
|
|
85
82
|
Requires-Dist: prance (>=23.6.21.0,<24.0.0.0) ; extra == "document-tools" or extra == "all"
|
|
86
83
|
Requires-Dist: praw (>=7.7.1,<8.0.0) ; extra == "communication-tools" or extra == "all"
|
|
87
|
-
Requires-Dist: protobuf (>=
|
|
84
|
+
Requires-Dist: protobuf (>=5,<6)
|
|
85
|
+
Requires-Dist: psutil (>=5.9.8,<6.0.0)
|
|
88
86
|
Requires-Dist: pyTelegramBotAPI (>=4.18.0,<5.0.0) ; extra == "communication-tools" or extra == "all"
|
|
89
87
|
Requires-Dist: pydantic (>=1.9,<2.10)
|
|
90
88
|
Requires-Dist: pydub (>=0.25.1,<0.26.0) ; extra == "media-tools" or extra == "all"
|
|
@@ -95,7 +93,6 @@ Requires-Dist: pytest (>=7,<8) ; extra == "test"
|
|
|
95
93
|
Requires-Dist: pytest-asyncio (>=0.23.0,<0.24.0) ; extra == "test"
|
|
96
94
|
Requires-Dist: pyyaml (>=6.0.2,<7.0.0)
|
|
97
95
|
Requires-Dist: qdrant-client (>=1.9.0,<2.0.0) ; extra == "rag" or extra == "storage" or extra == "all"
|
|
98
|
-
Requires-Dist: ragas (<=0.1.6) ; extra == "all"
|
|
99
96
|
Requires-Dist: rank-bm25 (>=0.2.2,<0.3.0) ; extra == "rag" or extra == "all"
|
|
100
97
|
Requires-Dist: redis (>=5.0.6,<6.0.0) ; extra == "storage" or extra == "all"
|
|
101
98
|
Requires-Dist: reka-api (>=3.0.8,<4.0.0) ; extra == "model-platforms" or extra == "all"
|
|
@@ -103,12 +100,13 @@ Requires-Dist: requests_oauthlib (>=1.3.1,<2.0.0) ; extra == "web-tools" or extr
|
|
|
103
100
|
Requires-Dist: rouge (>=1.0.1,<2.0.0) ; extra == "data-tools" or extra == "all"
|
|
104
101
|
Requires-Dist: scholarly[tor] (==1.7.11) ; extra == "research-tools" or extra == "all"
|
|
105
102
|
Requires-Dist: sentence-transformers (>=3.0.1,<4.0.0) ; extra == "rag" or extra == "all"
|
|
106
|
-
Requires-Dist: sentencepiece (>=0,<
|
|
103
|
+
Requires-Dist: sentencepiece (>=0.2,<0.3) ; extra == "huggingface" or extra == "all"
|
|
107
104
|
Requires-Dist: sglang (>=0.4.0,<0.5.0) ; extra == "model-platforms" or extra == "all"
|
|
108
105
|
Requires-Dist: slack-bolt (>=1.20.1,<2.0.0) ; extra == "communication-tools" or extra == "all"
|
|
109
106
|
Requires-Dist: slack-sdk (>=3.27.2,<4.0.0) ; extra == "communication-tools" or extra == "all"
|
|
110
|
-
Requires-Dist: soundfile (>=0,<
|
|
107
|
+
Requires-Dist: soundfile (>=0.13,<0.14) ; extra == "huggingface" or extra == "all"
|
|
111
108
|
Requires-Dist: stripe (>=11.3.0,<12.0.0) ; extra == "data-tools" or extra == "all"
|
|
109
|
+
Requires-Dist: sympy (>=1.13.3,<2.0.0) ; extra == "web-tools" or extra == "all"
|
|
112
110
|
Requires-Dist: tavily-python (>=0.5.0,<0.6.0) ; extra == "web-tools" or extra == "all"
|
|
113
111
|
Requires-Dist: textblob (>=0.17.1,<0.18.0) ; extra == "data-tools" or extra == "all"
|
|
114
112
|
Requires-Dist: tiktoken (>=0.7.0,<0.8.0)
|
|
@@ -117,7 +115,7 @@ Requires-Dist: torch (>=2,<3) ; (platform_system != "Darwin" or platform_machine
|
|
|
117
115
|
Requires-Dist: transformers (>=4,<5) ; extra == "huggingface" or extra == "all"
|
|
118
116
|
Requires-Dist: tree-sitter (>=0.23.2,<0.24.0) ; extra == "dev-tools" or extra == "all"
|
|
119
117
|
Requires-Dist: tree-sitter-python (>=0.23.6,<0.24.0) ; extra == "dev-tools" or extra == "all"
|
|
120
|
-
Requires-Dist: unstructured[all-docs] (==0.16.
|
|
118
|
+
Requires-Dist: unstructured[all-docs] (==0.16.20) ; extra == "rag" or extra == "document-tools" or extra == "all"
|
|
121
119
|
Requires-Dist: wikipedia (>=1,<2) ; extra == "web-tools" or extra == "all"
|
|
122
120
|
Requires-Dist: wolframalpha (>=5.0.0,<6.0.0) ; extra == "web-tools" or extra == "all"
|
|
123
121
|
Requires-Dist: yt-dlp (>=2024.11.4,<2025.0.0) ; extra == "media-tools" or extra == "all"
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
camel/__init__.py,sha256=
|
|
1
|
+
camel/__init__.py,sha256=4nBZIePKPm_k6qsVFgcn22lxAVt4o_XkMGV4coE5Yyc,912
|
|
2
2
|
camel/agents/__init__.py,sha256=LcS4m8s97-yADfznvcaAdUe9W0E9h3m6zrSc9H6m9so,1545
|
|
3
3
|
camel/agents/base.py,sha256=c4bJYL3G3Z41SaFdMPMn8ZjLdFiFaVOFO6EQIfuCVR8,1124
|
|
4
|
-
camel/agents/chat_agent.py,sha256=
|
|
4
|
+
camel/agents/chat_agent.py,sha256=mnJNJbklukwGVsDPpPwzd1z8gMeKv3_TG55rbS28NPo,56492
|
|
5
5
|
camel/agents/critic_agent.py,sha256=qFVlHlQo0CVgmPWfWYLT8_oP_KyzCLFsQw_nN_vu5Bs,7487
|
|
6
6
|
camel/agents/deductive_reasoner_agent.py,sha256=6BZGaq1hR6hKJuQtOfoYQnk_AkZpw_Mr7mUy2MspQgs,13540
|
|
7
7
|
camel/agents/embodied_agent.py,sha256=XBxBu5ZMmSJ4B2U3Z7SMwvLlgp6yNpaBe8HNQmY9CZA,7536
|
|
8
|
-
camel/agents/knowledge_graph_agent.py,sha256=
|
|
8
|
+
camel/agents/knowledge_graph_agent.py,sha256=W2wMVe1ib8z6As6iJqtn0UCaouvRRv_o2dpGzvOiI6A,8806
|
|
9
9
|
camel/agents/multi_hop_generator_agent.py,sha256=aRfvDv0GXCsP49An7F-9l87jh9osSxWD565MmGrKH78,4324
|
|
10
10
|
camel/agents/programmed_agent_instruction.py,sha256=99fLe41che3X6wPpNPJXRwl4If6EoQqQVWIoT3DKE1s,7124
|
|
11
11
|
camel/agents/role_assignment_agent.py,sha256=8bkTc14XToFHkP-ZOef5KP0P4hTlCDv0eNsDZPYuukA,5088
|
|
@@ -16,11 +16,11 @@ camel/agents/tool_agents/base.py,sha256=T6G5OaAJd4L_yHSFoWcrtqkMEyhge42ppVjx7lYD
|
|
|
16
16
|
camel/agents/tool_agents/hugging_face_tool_agent.py,sha256=nNySkdBRYaD05rLyPxzmq8W7D9WPcNHCY9h1jD6S0Hk,8717
|
|
17
17
|
camel/benchmarks/__init__.py,sha256=QGZK03uHvXbblVap8lOVUrXlE6VprEDaNev9tiQAWF8,1122
|
|
18
18
|
camel/benchmarks/apibank.py,sha256=mvI8irOfm0GxGafblT_4cpZmZKQO1XNfTDA_qioG9gY,21193
|
|
19
|
-
camel/benchmarks/apibench.py,sha256=
|
|
19
|
+
camel/benchmarks/apibench.py,sha256=F9hvVOpX2NnYDB1BiwN2Tbga1mkHGHsmiLCwhva-Fi0,18973
|
|
20
20
|
camel/benchmarks/base.py,sha256=GHbcE0KAenEiYb3x8orLgyGPp40KTdLHwahVFhI-cgE,4594
|
|
21
21
|
camel/benchmarks/gaia.py,sha256=ZMGzoQ2bdyCmVOdipj2lN3J-Ym1gySuZaYtSTvpUI9I,16774
|
|
22
|
-
camel/benchmarks/nexus.py,sha256=
|
|
23
|
-
camel/benchmarks/ragbench.py,sha256=
|
|
22
|
+
camel/benchmarks/nexus.py,sha256=Yi41HLoP7JsvRd-uieQInlw0jnIf4TfeCPhLJMHjXHo,18113
|
|
23
|
+
camel/benchmarks/ragbench.py,sha256=XlBV6YK_eZSH0yscNMX10BFHsVOXDfLqj4b8QHgsjlk,11079
|
|
24
24
|
camel/bots/__init__.py,sha256=6JRnSmUdnoZra20BJMqqrUrVfYSEbW9NyUksYmu6nwY,1174
|
|
25
25
|
camel/bots/discord/__init__.py,sha256=4ycOm2pMrQ7vQdjB80a5hz7TyiJGnSeHifoxkl8lyyQ,1027
|
|
26
26
|
camel/bots/discord/discord_app.py,sha256=h6FrTiwsw7TqImG62SvzUyNpmVHekwy0GWLmpM9P9s0,14222
|
|
@@ -29,8 +29,9 @@ camel/bots/discord/discord_store.py,sha256=eGBMYG8gm28PmmhcJ-JOVk2UKTBobEzvb6-pC
|
|
|
29
29
|
camel/bots/slack/__init__.py,sha256=iqySoYftEb7SI4pabhMvvTp1YYS09BvjwGXPEbcP1Hc,1055
|
|
30
30
|
camel/bots/slack/models.py,sha256=xMz3RO-88yrxPRrbBDjiabpbZIlpEHCvU-1CvASKARc,5143
|
|
31
31
|
camel/bots/slack/slack_app.py,sha256=SoSRZZnuTJ0aiLUBZqdG8cUFJzYpfpZh7304t0a_7Dg,9944
|
|
32
|
-
camel/bots/telegram_bot.py,sha256=
|
|
33
|
-
camel/configs/__init__.py,sha256=
|
|
32
|
+
camel/bots/telegram_bot.py,sha256=z0B2O14-GTKGVX5e6-Q85zMp3eISE_hH-KqxlGOFJtM,2595
|
|
33
|
+
camel/configs/__init__.py,sha256=IWfwy2Q8O3uHi9q4NKcYaDwRV0npx3DqJdg050LDvjc,3242
|
|
34
|
+
camel/configs/aiml_config.py,sha256=jMgNTvPM9mJ_blm-fM8jmnnI7Os_1vQTE6DPlkwR3ps,4197
|
|
34
35
|
camel/configs/anthropic_config.py,sha256=WIIyPYx7z70jiJoCc1Rz_58jrXRirpyJMlr0FrIii2I,3435
|
|
35
36
|
camel/configs/base_config.py,sha256=RrlOwwTUXeTjsDChZXUZIBK1uCojyavEbX21bGVLuog,3286
|
|
36
37
|
camel/configs/cohere_config.py,sha256=joF4GHqoTIRuEDlyTmxW5Ud23psE0xP1VCcEvKychko,3997
|
|
@@ -57,8 +58,9 @@ camel/data_collector/__init__.py,sha256=UWZya21xeJ6DvyLcf54XlYPg7ShOsNJmNR88kfRL
|
|
|
57
58
|
camel/data_collector/alpaca_collector.py,sha256=fqS_kws1EU9mDWlVxPXcoD1GhJ7lEzC28muGIMxiUpg,4683
|
|
58
59
|
camel/data_collector/base.py,sha256=Rn0aJBBvpMZYYTLT1yNjIalIvDuVVwOx6iawKlzocZQ,6708
|
|
59
60
|
camel/data_collector/sharegpt_collector.py,sha256=E06pf1CuqBAr2i0AQAlr6FtAEz7mwmKSq0RdFfX48PE,7255
|
|
60
|
-
camel/datagen/__init__.py,sha256=
|
|
61
|
-
camel/datagen/
|
|
61
|
+
camel/datagen/__init__.py,sha256=EPF-eZ4rg7qbeSVZhfQ0iME0WDRSqRwBGbW-s0ZJ2EA,949
|
|
62
|
+
camel/datagen/cot_datagen.py,sha256=WMw4NhUJVgpWOTvsMaQ1Fk1BYSXLtUlP-00wYPSuK7A,17650
|
|
63
|
+
camel/datagen/self_improving_cot.py,sha256=VB4n-DXU13lJI7CK2_NJ8l-qpGnx4CxNrZEL_tF2XXM,31006
|
|
62
64
|
camel/datagen/self_instruct/__init__.py,sha256=kRLWyCF-tGR9KEzpYImpupYvL15LcRfZCHndNu6AvV0,1179
|
|
63
65
|
camel/datagen/self_instruct/filter/__init__.py,sha256=UiGBfDRYO-3Z3dhaxAFVh4F8PF52jo6W6qu7VyHhG_Q,1163
|
|
64
66
|
camel/datagen/self_instruct/filter/filter_function.py,sha256=-voPwP83c_bkZrSAhwludBCtfsKDFG_jlDHcNUOLV7o,6691
|
|
@@ -91,7 +93,7 @@ camel/interpreters/e2b_interpreter.py,sha256=UC0en39x705cnnMCX4GxN7Tx0gCpu5yuWOF
|
|
|
91
93
|
camel/interpreters/internal_python_interpreter.py,sha256=9psFm8mkN5-5WdTW__VBjDoh_u-PCifJMQYeo0DEoZo,22464
|
|
92
94
|
camel/interpreters/interpreter_error.py,sha256=uEhcmHmmcajt5C9PLeHs21h1fE6cmyt23tCAGie1kTA,880
|
|
93
95
|
camel/interpreters/ipython_interpreter.py,sha256=-erOR6imuh5pUtpbUYky3zoLDr30Y5E7lm59BwwxzNs,5976
|
|
94
|
-
camel/interpreters/subprocess_interpreter.py,sha256=
|
|
96
|
+
camel/interpreters/subprocess_interpreter.py,sha256=doWDS79Ks6po5bc6fOSBg8GChX2H79cq7y-AAYDEbuI,9497
|
|
95
97
|
camel/loaders/__init__.py,sha256=k-N8rJgDaINKiu3ao1PntNZ-zuV31g1bAHe86f-N4js,1199
|
|
96
98
|
camel/loaders/apify_reader.py,sha256=oaVjKyNhJhG-hTuIwrpZ2hsB4XTL0M-kUksgSL2R0ck,7952
|
|
97
99
|
camel/loaders/base_io.py,sha256=SAJInsmIYin45lXMSAhzWEFl7FjQ4WswqRU0D7sihRs,10170
|
|
@@ -120,7 +122,8 @@ camel/messages/conversion/sharegpt/function_call_formatter.py,sha256=cn7e7CfmxEV
|
|
|
120
122
|
camel/messages/conversion/sharegpt/hermes/__init__.py,sha256=mxuMSm-neaTgInIjYXuIVdC310E6jKJzM3IdtaJ4qY4,812
|
|
121
123
|
camel/messages/conversion/sharegpt/hermes/hermes_function_formatter.py,sha256=-9TT8iOQ-ieKSKR_PmJSA5Bi0uBx-qR7WQ6vxuFkorM,4639
|
|
122
124
|
camel/messages/func_message.py,sha256=EjsUor40oUUKrHwolRpCH0sJECcqnp2mm4072tNWTPg,5939
|
|
123
|
-
camel/models/__init__.py,sha256=
|
|
125
|
+
camel/models/__init__.py,sha256=np8pj6JClpO5HzL_EQb_tkX5-SFTwozy2QUmMQuO7lU,2570
|
|
126
|
+
camel/models/aiml_model.py,sha256=ItiTNq3IhvnGclT9Lwm_3NFzK-yIK2wIhevLfyn5oeU,5222
|
|
124
127
|
camel/models/anthropic_model.py,sha256=BOj4vEtYVWbgy3DmBBlFh6LPXHbi1-LCPWzIxFuw9u4,5829
|
|
125
128
|
camel/models/azure_openai_model.py,sha256=ptL4YK8KkAbOA6XDxIhcEqxPOVGrYmzXqBzdsZAyHss,6083
|
|
126
129
|
camel/models/base_model.py,sha256=rxRZc31cKone4OGuvXi14FI_O9TC1aBvIy8WFSlVeSI,5727
|
|
@@ -132,7 +135,7 @@ camel/models/groq_model.py,sha256=gDLv1_gOIioNmTh7I_efM5FMEsELqeQGAtY7ipd85TU,49
|
|
|
132
135
|
camel/models/internlm_model.py,sha256=khWd570OU3OZJpjGhmq81tJ_OsZM1m3zcyNDmdTmgqo,5114
|
|
133
136
|
camel/models/litellm_model.py,sha256=-9DcJlVBL25vsZOdA0UkEWt5G5PP8QaXXhcE2PRiwRw,5296
|
|
134
137
|
camel/models/mistral_model.py,sha256=7OUTdTKzYPGYdi0n_hBAawlplYVR6XyvfzANHki660c,10182
|
|
135
|
-
camel/models/model_factory.py,sha256=
|
|
138
|
+
camel/models/model_factory.py,sha256=1PgJdifxYYqQ9VnZRrEER7nKjz2X07uHwPMxg454Alk,6732
|
|
136
139
|
camel/models/model_manager.py,sha256=ji1d1S-2lwk6uDggSyTnXbalu2F5lHaZnfPBBCJwBxU,7159
|
|
137
140
|
camel/models/moonshot_model.py,sha256=m4OFqTZfw8n1RCjsC4-WP5Gih1aMI3sUaX3oo7OpSQU,5023
|
|
138
141
|
camel/models/nemotron_model.py,sha256=f663rRrybuAQgBCzaYW-myLp8nZM7S0N14MmOblfB3w,2958
|
|
@@ -150,7 +153,7 @@ camel/models/reward/nemotron_model.py,sha256=EICDP2SyQpARupxsGWFKJHNADsVknT_t6tC
|
|
|
150
153
|
camel/models/reward/skywork_model.py,sha256=KxHVDuwja2kZBCoCX8_sLBbXUGRSFsTPjgwsy1uyoyU,3246
|
|
151
154
|
camel/models/samba_model.py,sha256=5i3JgjLMFAFspdEwNIzWKMobM4xrDtO4aFXMHhEfJyU,14532
|
|
152
155
|
camel/models/sglang_model.py,sha256=dXOPSdskfF-gK2XUkzPkbTzY1lBVyjMEV6XWl-rEN7U,8147
|
|
153
|
-
camel/models/siliconflow_model.py,sha256=
|
|
156
|
+
camel/models/siliconflow_model.py,sha256=DH3iaFEswa0X1I3EKz0kT5k2xMjPakt6_qd7EZKeJZ0,5136
|
|
154
157
|
camel/models/stub_model.py,sha256=TKTTryatEqCfjQ8NTco9ipj29CbLLtmWEcF_VcaWvQI,3703
|
|
155
158
|
camel/models/togetherai_model.py,sha256=hgeSgV4xCpBUvYqAYILNcRBiHlExoA1nR1tu0CgG-sw,5298
|
|
156
159
|
camel/models/vllm_model.py,sha256=e57qjaHsZ-RTCsMVdMoyM-gseJwjtxiG2ePBKO5dnOQ,5640
|
|
@@ -204,12 +207,12 @@ camel/societies/role_playing.py,sha256=BhM42niGOaQctdOsOHtr6-ZA6oYvhf12eriSDj9Mh
|
|
|
204
207
|
camel/societies/workforce/__init__.py,sha256=bkTI-PE-MSK9AQ2V2gR6cR2WY-R7Jqy_NmXRtAoqo8o,920
|
|
205
208
|
camel/societies/workforce/base.py,sha256=4uSTmBQsWk_UX1xUrEbjo0X7OuYRbGWoroTV71Tvg8U,1947
|
|
206
209
|
camel/societies/workforce/prompts.py,sha256=KBiBWDXhclpJLvdUmk2anX2J9eeUDD7xHYwSeZJD_Hc,6178
|
|
207
|
-
camel/societies/workforce/role_playing_worker.py,sha256=
|
|
208
|
-
camel/societies/workforce/single_agent_worker.py,sha256=
|
|
210
|
+
camel/societies/workforce/role_playing_worker.py,sha256=nfn-hjtFPzhML82mKh16Nig1NRB7WHwgJfdCjM9sDnw,7040
|
|
211
|
+
camel/societies/workforce/single_agent_worker.py,sha256=M2I8U10QVFkUjpdeWVZ6mIuvJ387nM3gQZ60oU0xY5U,3428
|
|
209
212
|
camel/societies/workforce/task_channel.py,sha256=9t5hoinfGYnbRavX4kx34Jk1FOy05SnJZYbNzb5M-CQ,7140
|
|
210
213
|
camel/societies/workforce/utils.py,sha256=yPbcLx8lNZStl15C4UXRBl5qsTrGA-hiIGynnGi53WQ,2384
|
|
211
214
|
camel/societies/workforce/worker.py,sha256=Do6FDpEraICQVptBH-LiG5KDYYQzD83sLoYO9J8NAbc,3933
|
|
212
|
-
camel/societies/workforce/workforce.py,sha256=
|
|
215
|
+
camel/societies/workforce/workforce.py,sha256=lflBJO4vBPg_uY7U-O8STxo90c8iwLN9r-rTwHm118g,18104
|
|
213
216
|
camel/storages/__init__.py,sha256=jXff0PfC9VzAlSAgwlPv3uzZQlhuc82Did_OPNLJJuY,1617
|
|
214
217
|
camel/storages/graph_storages/__init__.py,sha256=G29BNn651C0WTOpjCl4QnVM-4B9tcNh8DdmsCiONH8Y,948
|
|
215
218
|
camel/storages/graph_storages/base.py,sha256=uSe9jWuLudfm5jtfo6E-L_kNzITwK1_Ef-6L4HWw-JM,2852
|
|
@@ -237,7 +240,7 @@ camel/terminators/__init__.py,sha256=t8uqrkUnXEOYMXQDgaBkMFJ0EXFKI0kmx4cUimli3Ls
|
|
|
237
240
|
camel/terminators/base.py,sha256=xmJzERX7GdSXcxZjAHHODa0rOxRChMSRboDCNHWSscs,1511
|
|
238
241
|
camel/terminators/response_terminator.py,sha256=n3G5KP6Oj7-7WlRN0yFcrtLpqAJKaKS0bmhrWlFfCgQ,4982
|
|
239
242
|
camel/terminators/token_limit_terminator.py,sha256=YWv6ZR8R9yI2Qnf_3xES5bEE_O5bb2CxQ0EUXfMh34c,2118
|
|
240
|
-
camel/toolkits/__init__.py,sha256=
|
|
243
|
+
camel/toolkits/__init__.py,sha256=QXU7wR4wpveIP_t2AcaWvOS-ANMygUGCfQXGl59aAyg,2854
|
|
241
244
|
camel/toolkits/arxiv_toolkit.py,sha256=I9WEUturZhbL5gQIgX_8bKttuJUlMKHcvUfhcidFVhs,6204
|
|
242
245
|
camel/toolkits/ask_news_toolkit.py,sha256=PIFGGVHpSOXs2lg-zA6qhlHF17f1CyCjGbpud90yG8I,23158
|
|
243
246
|
camel/toolkits/base.py,sha256=XnERVclg201dG7BrawwbuSeSlkz1ngIfatES1ingpkA,1264
|
|
@@ -281,27 +284,29 @@ camel/toolkits/open_api_specs/web_scraper/paths/__init__.py,sha256=OKCZrQCDwaWtX
|
|
|
281
284
|
camel/toolkits/open_api_specs/web_scraper/paths/scraper.py,sha256=aWy1_ppV4NVVEZfnbN3tu9XA9yAPAC9bRStJ5JuXMRU,1117
|
|
282
285
|
camel/toolkits/open_api_toolkit.py,sha256=Venfq8JwTMQfzRzzB7AYmYUMEX35hW0BjIv_ozFMiNk,23316
|
|
283
286
|
camel/toolkits/openbb_toolkit.py,sha256=tq4ER2utf9y4nsibU7g7jnRefA3UHw4DdXQlSrFhvJk,28802
|
|
284
|
-
camel/toolkits/reddit_toolkit.py,sha256=
|
|
287
|
+
camel/toolkits/reddit_toolkit.py,sha256=j4AiNlKlQFvpFoJVr79Pj41427fpPphBCWKxSvLYqcw,7780
|
|
285
288
|
camel/toolkits/retrieval_toolkit.py,sha256=gMHk-Y-KDROGd-yX9ykfpwAf6ViO678j9Q9Ju3sfBGo,3695
|
|
286
289
|
camel/toolkits/search_toolkit.py,sha256=4yTYkook3E3Yb-EOaio2O6FBcvzIXlVVC4WOvNSaYcw,29881
|
|
287
290
|
camel/toolkits/semantic_scholar_toolkit.py,sha256=z7xF3lPtBVXbpYMBDX9eVeHKpTZAg5rKiDnB1bCkhvU,11472
|
|
288
291
|
camel/toolkits/slack_toolkit.py,sha256=n8cn3kZIc27B-2KMTRK6Nsdan37SwMqBiBi1PMtuUvQ,10744
|
|
289
292
|
camel/toolkits/stripe_toolkit.py,sha256=cQJlzu7qXSiClazgr-D3xRAcI_PK_csTT-xcwaTrHYc,9623
|
|
293
|
+
camel/toolkits/sympy_toolkit.py,sha256=1z9nSkEKVHZUJ2CTSnWRQ-8qeXVusaG6nVHsP9J5P0M,31237
|
|
290
294
|
camel/toolkits/twitter_toolkit.py,sha256=a2OLSJSW2wY7pOwOApb1qchZPXzH22Rbgm9Yd7-7vrA,15826
|
|
291
295
|
camel/toolkits/video_toolkit.py,sha256=n1P7F_cjdnC2jfUQQiJnhueRYA83GIjUF7HWIrES5xs,7089
|
|
292
296
|
camel/toolkits/weather_toolkit.py,sha256=qHAMD56zqd5GWnEWiaA_0aBDwvgacdx0pAHScinY4GY,6965
|
|
293
|
-
camel/toolkits/whatsapp_toolkit.py,sha256=
|
|
297
|
+
camel/toolkits/whatsapp_toolkit.py,sha256=iviyCanhaKIGUyyRwLv_eCGKwGgW_TNV6HumpM4ktFc,5651
|
|
294
298
|
camel/types/__init__.py,sha256=_NYwmy412tubPYJon26fS9itGnylP48NLFKgwyMiJNs,2251
|
|
295
|
-
camel/types/enums.py,sha256=
|
|
299
|
+
camel/types/enums.py,sha256=wGDxFA92hXdWKjjlLlPa-CfFMirKzFbBTWptuBlft48,33875
|
|
296
300
|
camel/types/openai_types.py,sha256=7Vlci1uRbpSS81B958Z8ADnkzVyqxV7O5H8hv0i-tdo,2328
|
|
297
301
|
camel/types/unified_model_type.py,sha256=GP5GYtA3RfvLsqnk1c4UcOaRKMFhjDgZrLr0ln6JFw8,4253
|
|
298
|
-
camel/utils/__init__.py,sha256=
|
|
302
|
+
camel/utils/__init__.py,sha256=NdTkomQikNGn_ImwT-I__IwGmDEFjn1wGojFq5cqLlQ,2633
|
|
299
303
|
camel/utils/async_func.py,sha256=4esRhhGrvfm-iJRloUbU-sYWyHp_mt0bBBXpwyCv6vc,1556
|
|
300
|
-
camel/utils/commons.py,sha256=
|
|
304
|
+
camel/utils/commons.py,sha256=eX14Wj8zmVqEXuWXydv9-FXkzAli_F2PQWi96tE7oEY,28279
|
|
301
305
|
camel/utils/constants.py,sha256=MQD3bgLIq_NATp0D1iFkrwfkCwVX-PAOSXheTkkEdkY,1410
|
|
306
|
+
camel/utils/deduplication.py,sha256=UHikAtOW1TTDunf2t_wa2kFbmkrXWf7HfOKwLvwCxzo,8958
|
|
302
307
|
camel/utils/response_format.py,sha256=9KrbwtOM9cA3LSjTgLiK7oKy-53_uMh1cvpyNwwJpng,2419
|
|
303
|
-
camel/utils/token_counting.py,sha256=
|
|
304
|
-
camel_ai-0.2.
|
|
305
|
-
camel_ai-0.2.
|
|
306
|
-
camel_ai-0.2.
|
|
307
|
-
camel_ai-0.2.
|
|
308
|
+
camel/utils/token_counting.py,sha256=n5JsWuG6fiuMUgpsKUPMF1NKQJLle9ad1I88_aS4cMM,14018
|
|
309
|
+
camel_ai-0.2.21.dist-info/LICENSE,sha256=id0nB2my5kG0xXeimIu5zZrbHLS6EQvxvkKkzIHaT2k,11343
|
|
310
|
+
camel_ai-0.2.21.dist-info/METADATA,sha256=4gpVS9RX6pp5-gkERC5BRNgMxqZUWWkQaHZi6B5n2r0,36460
|
|
311
|
+
camel_ai-0.2.21.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
|
|
312
|
+
camel_ai-0.2.21.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|