camel-ai 0.2.35__py3-none-any.whl → 0.2.36__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/configs/__init__.py +3 -0
- camel/configs/openrouter_config.py +106 -0
- camel/datasets/few_shot_generator.py +2 -5
- camel/environments/single_step.py +1 -7
- camel/memories/agent_memories.py +2 -1
- camel/memories/blocks/chat_history_block.py +2 -1
- camel/models/__init__.py +2 -0
- camel/models/gemini_model.py +36 -0
- camel/models/groq_model.py +6 -3
- camel/models/model_factory.py +3 -0
- camel/models/openrouter_model.py +204 -0
- camel/storages/__init__.py +2 -0
- camel/storages/key_value_storages/__init__.py +2 -0
- camel/storages/key_value_storages/mem0_cloud.py +224 -0
- camel/storages/vectordb_storages/qdrant.py +3 -3
- camel/toolkits/browser_toolkit.py +43 -0
- camel/toolkits/code_execution.py +2 -1
- camel/toolkits/mcp_toolkit.py +30 -1
- camel/types/enums.py +24 -0
- camel/types/unified_model_type.py +5 -0
- camel/verifiers/__init__.py +1 -2
- camel/verifiers/base.py +133 -96
- camel/verifiers/models.py +0 -12
- camel/verifiers/python_verifier.py +25 -14
- {camel_ai-0.2.35.dist-info → camel_ai-0.2.36.dist-info}/METADATA +3 -1
- {camel_ai-0.2.35.dist-info → camel_ai-0.2.36.dist-info}/RECORD +29 -26
- {camel_ai-0.2.35.dist-info → camel_ai-0.2.36.dist-info}/WHEEL +0 -0
- {camel_ai-0.2.35.dist-info → camel_ai-0.2.36.dist-info}/licenses/LICENSE +0 -0
camel/verifiers/base.py
CHANGED
|
@@ -19,11 +19,7 @@ from typing import List, Optional
|
|
|
19
19
|
from camel.logger import get_logger
|
|
20
20
|
from camel.utils import BatchProcessor
|
|
21
21
|
|
|
22
|
-
from .models import
|
|
23
|
-
VerificationOutcome,
|
|
24
|
-
VerificationResult,
|
|
25
|
-
VerifierInput,
|
|
26
|
-
)
|
|
22
|
+
from .models import VerificationOutcome, VerificationResult
|
|
27
23
|
|
|
28
24
|
logger = get_logger(__name__)
|
|
29
25
|
|
|
@@ -157,26 +153,33 @@ class BaseVerifier(ABC):
|
|
|
157
153
|
r"""Implement verifier-specific cleanup logic."""
|
|
158
154
|
pass
|
|
159
155
|
|
|
160
|
-
async def verify(
|
|
156
|
+
async def verify(
|
|
157
|
+
self, solution: str, ground_truth: Optional[str]
|
|
158
|
+
) -> VerificationResult:
|
|
161
159
|
r"""Perform verification with full error handling.
|
|
162
160
|
|
|
163
|
-
|
|
164
|
-
|
|
161
|
+
This method verifies the correctness of a generated solution by
|
|
162
|
+
comparing it against the provided ground truth. It handles
|
|
163
|
+
execution errors, timeouts, and retry attempts to ensure robust
|
|
164
|
+
validation.
|
|
165
165
|
|
|
166
166
|
Args:
|
|
167
|
-
|
|
167
|
+
solution (str): The generated response that needs verification.
|
|
168
|
+
ground_truth (Optional[str]): The expected correct answer to
|
|
169
|
+
compare against.
|
|
168
170
|
|
|
169
171
|
Returns:
|
|
170
|
-
VerificationResult:
|
|
171
|
-
- status
|
|
172
|
-
- result:
|
|
173
|
-
- duration: Time taken for verification
|
|
174
|
-
- metadata: Additional details
|
|
175
|
-
- error_message: Error description
|
|
172
|
+
VerificationResult: A structured object containing:
|
|
173
|
+
- status (SUCCESS/FAILURE/ERROR/TIMEOUT)
|
|
174
|
+
- result (str): The verification outcome or processed output.
|
|
175
|
+
- duration (float): Time taken for verification.
|
|
176
|
+
- metadata (dict): Additional details such as retry attempts.
|
|
177
|
+
- error_message (Optional[str]): Error description,
|
|
178
|
+
if applicable.
|
|
176
179
|
|
|
177
180
|
Raises:
|
|
178
181
|
RuntimeError: If verification fails unexpectedly.
|
|
179
|
-
asyncio.TimeoutError: If verification
|
|
182
|
+
asyncio.TimeoutError: If verification exceeds the time limit.
|
|
180
183
|
"""
|
|
181
184
|
if not self._is_setup:
|
|
182
185
|
logger.warning(
|
|
@@ -191,11 +194,13 @@ class BaseVerifier(ABC):
|
|
|
191
194
|
try:
|
|
192
195
|
verification_result = (
|
|
193
196
|
await asyncio.wait_for(
|
|
194
|
-
self._verify_implementation(
|
|
197
|
+
self._verify_implementation(solution, ground_truth),
|
|
195
198
|
timeout=self._timeout,
|
|
196
199
|
)
|
|
197
200
|
if self._timeout
|
|
198
|
-
else await self._verify_implementation(
|
|
201
|
+
else await self._verify_implementation(
|
|
202
|
+
solution, ground_truth
|
|
203
|
+
)
|
|
199
204
|
)
|
|
200
205
|
|
|
201
206
|
verification_result.duration = time.time() - start_time
|
|
@@ -240,101 +245,133 @@ class BaseVerifier(ABC):
|
|
|
240
245
|
|
|
241
246
|
@abstractmethod
|
|
242
247
|
async def _verify_implementation(
|
|
243
|
-
self,
|
|
248
|
+
self, solution: str, ground_truth: Optional[str]
|
|
244
249
|
) -> VerificationResult:
|
|
245
|
-
r"""
|
|
250
|
+
r"""Abstract method for verification logic.
|
|
251
|
+
|
|
252
|
+
Subclasses must implement this method to define how the solution
|
|
253
|
+
should be processed, evaluated, and compared to the ground truth.
|
|
246
254
|
|
|
247
255
|
Args:
|
|
248
|
-
|
|
256
|
+
solution (str): The generated response requiring verification.
|
|
257
|
+
ground_truth (Optional[str]): The expected reference output.
|
|
249
258
|
|
|
250
259
|
Returns:
|
|
251
|
-
VerificationResult:
|
|
260
|
+
VerificationResult: Contains verification status and details.
|
|
252
261
|
|
|
253
262
|
Raises:
|
|
254
|
-
NotImplementedError:
|
|
263
|
+
NotImplementedError: If the method is not implemented
|
|
264
|
+
in a subclass.
|
|
255
265
|
"""
|
|
256
266
|
raise NotImplementedError(
|
|
257
267
|
"Subclasses must implement _verify_implementation()"
|
|
258
268
|
)
|
|
259
269
|
|
|
270
|
+
async def verify_batch(
|
|
271
|
+
self,
|
|
272
|
+
solutions: List[str],
|
|
273
|
+
ground_truths: List[Optional[str]],
|
|
274
|
+
raise_on_error: bool = False,
|
|
275
|
+
) -> List[VerificationResult]:
|
|
276
|
+
r"""Verify multiple solutions in parallel with controlled concurrency.
|
|
260
277
|
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
r"""Verify multiple results in parallel with controlled concurrency.
|
|
278
|
+
This method verifies multiple generated solutions against their
|
|
279
|
+
respective ground truths using parallel execution. It handles
|
|
280
|
+
timeouts, execution errors, and batch processing optimizations.
|
|
265
281
|
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
282
|
+
Args:
|
|
283
|
+
solutions (List[str]): A list of generated solutions to be
|
|
284
|
+
verified.
|
|
285
|
+
ground_truths (List[Optional[str]]): A list of expected outputs for
|
|
286
|
+
comparison. Each element corresponds to a solution.
|
|
287
|
+
raise_on_error (bool, optional): If True, raises an exception if
|
|
288
|
+
any verification fails. (default: :obj:`False`)
|
|
270
289
|
|
|
271
|
-
|
|
272
|
-
|
|
290
|
+
Returns:
|
|
291
|
+
List[VerificationResult]: A list of verification results, one per
|
|
292
|
+
input solution.
|
|
273
293
|
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
# Get current batch parameters from processor with defaults if not
|
|
286
|
-
# present
|
|
287
|
-
max_workers = getattr(
|
|
288
|
-
self._batch_processor, 'max_workers', self._max_parallel or 1
|
|
289
|
-
)
|
|
290
|
-
batch_size = getattr(
|
|
291
|
-
self._batch_processor, 'batch_size', self._initial_batch_size or 10
|
|
292
|
-
)
|
|
293
|
-
semaphore = asyncio.Semaphore(max(1, max_workers))
|
|
294
|
-
|
|
295
|
-
async def _verify_with_semaphore(
|
|
296
|
-
response: VerifierInput,
|
|
297
|
-
) -> VerificationResult:
|
|
298
|
-
start_time = time.time()
|
|
299
|
-
try:
|
|
300
|
-
async with semaphore:
|
|
301
|
-
verification_result = await self.verify(response)
|
|
302
|
-
processing_time = time.time() - start_time
|
|
303
|
-
success = verification_result.status == VerificationOutcome.SUCCESS
|
|
304
|
-
self._batch_processor.adjust_batch_size(success, processing_time)
|
|
305
|
-
return verification_result
|
|
306
|
-
except Exception as e:
|
|
307
|
-
processing_time = time.time() - start_time
|
|
308
|
-
self._batch_processor.adjust_batch_size(False, processing_time)
|
|
309
|
-
logger.error(f"Verification failed: {e!s}", exc_info=True)
|
|
310
|
-
return VerificationResult(
|
|
311
|
-
status=VerificationOutcome.ERROR,
|
|
312
|
-
result="",
|
|
313
|
-
error_message=str(e),
|
|
314
|
-
metadata={"error_type": type(e).__name__},
|
|
294
|
+
Raises:
|
|
295
|
+
RuntimeError: If any verification fails and `raise_on_error` is
|
|
296
|
+
True.
|
|
297
|
+
asyncio.TimeoutError: If verifications time out after maximum
|
|
298
|
+
retries.
|
|
299
|
+
"""
|
|
300
|
+
|
|
301
|
+
if not self._is_setup:
|
|
302
|
+
logger.warning(
|
|
303
|
+
f"{self.__class__.__name__} not set up, calling setup()"
|
|
315
304
|
)
|
|
305
|
+
await self.setup()
|
|
316
306
|
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
batch_results = await asyncio.gather(*verification_tasks)
|
|
326
|
-
all_results.extend(batch_results)
|
|
327
|
-
except Exception as e:
|
|
328
|
-
logger.error(f"Batch verification failed: {e!s}", exc_info=True)
|
|
329
|
-
if raise_on_error:
|
|
330
|
-
raise RuntimeError(f"Batch verification failed: {e!s}") from e
|
|
307
|
+
# Retrieve batch processing settings
|
|
308
|
+
max_workers = getattr(
|
|
309
|
+
self._batch_processor, 'max_workers', self._max_parallel or 1
|
|
310
|
+
)
|
|
311
|
+
batch_size = getattr(
|
|
312
|
+
self._batch_processor, 'batch_size', self._initial_batch_size or 10
|
|
313
|
+
)
|
|
314
|
+
semaphore = asyncio.Semaphore(max(1, max_workers))
|
|
331
315
|
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
316
|
+
async def _verify_with_semaphore(
|
|
317
|
+
solution: str, ground_truth: Optional[str]
|
|
318
|
+
) -> VerificationResult:
|
|
319
|
+
start_time = time.time()
|
|
320
|
+
try:
|
|
321
|
+
async with semaphore:
|
|
322
|
+
verification_result = await self.verify(
|
|
323
|
+
solution, ground_truth
|
|
324
|
+
)
|
|
325
|
+
processing_time = time.time() - start_time
|
|
326
|
+
success = (
|
|
327
|
+
verification_result.status == VerificationOutcome.SUCCESS
|
|
328
|
+
)
|
|
329
|
+
self._batch_processor.adjust_batch_size(
|
|
330
|
+
success, processing_time
|
|
331
|
+
)
|
|
332
|
+
return verification_result
|
|
333
|
+
except Exception as e:
|
|
334
|
+
processing_time = time.time() - start_time
|
|
335
|
+
self._batch_processor.adjust_batch_size(False, processing_time)
|
|
336
|
+
logger.error(f"Verification failed: {e!s}", exc_info=True)
|
|
337
|
+
return VerificationResult(
|
|
338
|
+
status=VerificationOutcome.ERROR,
|
|
339
|
+
result="",
|
|
340
|
+
error_message=str(e),
|
|
341
|
+
metadata={"error_type": type(e).__name__},
|
|
342
|
+
)
|
|
343
|
+
|
|
344
|
+
# Process in batches
|
|
345
|
+
all_results: List[VerificationResult] = []
|
|
346
|
+
for i in range(0, len(solutions), batch_size):
|
|
347
|
+
batch_solutions = solutions[i : i + batch_size]
|
|
348
|
+
batch_ground_truths = ground_truths[i : i + batch_size]
|
|
339
349
|
|
|
340
|
-
|
|
350
|
+
verification_tasks = [
|
|
351
|
+
_verify_with_semaphore(solution, ground_truth)
|
|
352
|
+
for solution, ground_truth in zip(
|
|
353
|
+
batch_solutions, batch_ground_truths
|
|
354
|
+
)
|
|
355
|
+
]
|
|
356
|
+
try:
|
|
357
|
+
batch_results = await asyncio.gather(*verification_tasks)
|
|
358
|
+
all_results.extend(batch_results)
|
|
359
|
+
except Exception as e:
|
|
360
|
+
logger.error(
|
|
361
|
+
f"Batch verification failed: {e!s}", exc_info=True
|
|
362
|
+
)
|
|
363
|
+
if raise_on_error:
|
|
364
|
+
raise RuntimeError(
|
|
365
|
+
f"Batch verification failed: {e!s}"
|
|
366
|
+
) from e
|
|
367
|
+
|
|
368
|
+
if raise_on_error and any(
|
|
369
|
+
r.status
|
|
370
|
+
in {VerificationOutcome.ERROR, VerificationOutcome.TIMEOUT}
|
|
371
|
+
for r in all_results
|
|
372
|
+
):
|
|
373
|
+
error_msg = "One or more verifications failed"
|
|
374
|
+
logger.error(error_msg)
|
|
375
|
+
raise RuntimeError(error_msg)
|
|
376
|
+
|
|
377
|
+
return all_results
|
camel/verifiers/models.py
CHANGED
|
@@ -18,18 +18,6 @@ from typing import Any, Dict, Optional
|
|
|
18
18
|
from pydantic import BaseModel, Field
|
|
19
19
|
|
|
20
20
|
|
|
21
|
-
class VerifierInput(BaseModel):
|
|
22
|
-
r"""Structured input to the verifier"""
|
|
23
|
-
|
|
24
|
-
llm_response: str = Field(
|
|
25
|
-
description="The LLM response to be verified."
|
|
26
|
-
"Needs to be in a format that the verifier can handle."
|
|
27
|
-
)
|
|
28
|
-
ground_truth: Optional[str] = Field(
|
|
29
|
-
None, description="The ground truth data, if available."
|
|
30
|
-
)
|
|
31
|
-
|
|
32
|
-
|
|
33
21
|
class VerificationOutcome(Enum):
|
|
34
22
|
r"""Enum representing the status of a verification."""
|
|
35
23
|
|
|
@@ -20,10 +20,11 @@ import tempfile
|
|
|
20
20
|
import venv
|
|
21
21
|
from typing import List, Optional
|
|
22
22
|
|
|
23
|
+
from camel.extractors import BaseExtractor
|
|
23
24
|
from camel.logger import get_logger
|
|
24
25
|
from camel.verifiers import BaseVerifier
|
|
25
26
|
|
|
26
|
-
from .models import VerificationOutcome, VerificationResult
|
|
27
|
+
from .models import VerificationOutcome, VerificationResult
|
|
27
28
|
|
|
28
29
|
logger = get_logger(__name__)
|
|
29
30
|
|
|
@@ -47,6 +48,7 @@ class PythonVerifier(BaseVerifier):
|
|
|
47
48
|
self,
|
|
48
49
|
timeout: Optional[float] = 30.0,
|
|
49
50
|
required_packages: Optional[List[str]] = None,
|
|
51
|
+
extractor: Optional[BaseExtractor] = None,
|
|
50
52
|
):
|
|
51
53
|
r"""Initializes the PythonVerifier.
|
|
52
54
|
|
|
@@ -102,24 +104,33 @@ class PythonVerifier(BaseVerifier):
|
|
|
102
104
|
self.venv_path = None
|
|
103
105
|
|
|
104
106
|
async def _verify_implementation(
|
|
105
|
-
self,
|
|
107
|
+
self, solution: str, ground_truth: Optional[str]
|
|
106
108
|
) -> VerificationResult:
|
|
107
|
-
r"""Executes the LLM-generated
|
|
108
|
-
environment.
|
|
109
|
+
r"""Executes and verifies the LLM-generated Python solution in an
|
|
110
|
+
isolated virtual environment.
|
|
111
|
+
|
|
112
|
+
This method runs the given Python solution inside a controlled virtual
|
|
113
|
+
environment, captures its execution output, and optionally compares it
|
|
114
|
+
against a provided ground truth. Handles timeouts and execution errors.
|
|
109
115
|
|
|
110
116
|
Args:
|
|
111
|
-
|
|
112
|
-
|
|
117
|
+
solution (str): The Python code to execute and verify.
|
|
118
|
+
ground_truth (Optional[str]): The expected output for comparison.
|
|
119
|
+
If None, verification is based only on execution success.
|
|
113
120
|
|
|
114
121
|
Returns:
|
|
115
|
-
VerificationResult:
|
|
116
|
-
|
|
117
|
-
|
|
122
|
+
VerificationResult: A structured object containing:
|
|
123
|
+
- status (VerificationOutcome): SUCCESS, FAILURE, ERROR,
|
|
124
|
+
or TIMEOUT.
|
|
125
|
+
- result (str): The execution output of the solution.
|
|
126
|
+
- error_message (Optional[str]): Captured error message,
|
|
127
|
+
if any.
|
|
128
|
+
- duration (float, optional): Execution time (set externally).
|
|
118
129
|
|
|
119
130
|
Raises:
|
|
120
131
|
asyncio.TimeoutError: If execution exceeds the configured timeout.
|
|
121
|
-
Exception: Any unexpected errors
|
|
122
|
-
|
|
132
|
+
Exception: Any unexpected errors are caught and converted to an
|
|
133
|
+
ERROR verification result.
|
|
123
134
|
"""
|
|
124
135
|
if not self.venv_path:
|
|
125
136
|
return VerificationResult(
|
|
@@ -128,7 +139,7 @@ class PythonVerifier(BaseVerifier):
|
|
|
128
139
|
error_message="Virtual environment is not set up.",
|
|
129
140
|
)
|
|
130
141
|
|
|
131
|
-
script =
|
|
142
|
+
script = solution.strip()
|
|
132
143
|
venv_python = os.path.join(self.venv_path, self.bin_dir, "python")
|
|
133
144
|
|
|
134
145
|
if not os.path.exists(venv_python):
|
|
@@ -156,11 +167,11 @@ class PythonVerifier(BaseVerifier):
|
|
|
156
167
|
|
|
157
168
|
if process.returncode == 0:
|
|
158
169
|
# If ground truth is provided, compare it with the result
|
|
159
|
-
if
|
|
170
|
+
if ground_truth is not None:
|
|
160
171
|
# Normalize both strings by removing extra whitespace
|
|
161
172
|
normalized_output = ' '.join(output_result.strip().split())
|
|
162
173
|
normalized_truth = ' '.join(
|
|
163
|
-
str(
|
|
174
|
+
str(ground_truth).strip().split()
|
|
164
175
|
)
|
|
165
176
|
|
|
166
177
|
if normalized_output == normalized_truth:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: camel-ai
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.36
|
|
4
4
|
Summary: Communicative Agents for AI Society Study
|
|
5
5
|
Project-URL: Homepage, https://www.camel-ai.org/
|
|
6
6
|
Project-URL: Repository, https://github.com/camel-ai/camel
|
|
@@ -58,6 +58,7 @@ Requires-Dist: jupyter-client<9,>=8.6.2; extra == 'all'
|
|
|
58
58
|
Requires-Dist: linkup-sdk<0.3,>=0.2.1; extra == 'all'
|
|
59
59
|
Requires-Dist: litellm<2,>=1.38.1; extra == 'all'
|
|
60
60
|
Requires-Dist: mcp>=1.3.0; extra == 'all'
|
|
61
|
+
Requires-Dist: mem0ai>=0.1.67; extra == 'all'
|
|
61
62
|
Requires-Dist: mistralai<2,>=1.1.0; extra == 'all'
|
|
62
63
|
Requires-Dist: mock<6,>=5; extra == 'all'
|
|
63
64
|
Requires-Dist: mypy<2,>=1.5.1; extra == 'all'
|
|
@@ -225,6 +226,7 @@ Provides-Extra: storage
|
|
|
225
226
|
Requires-Dist: azure-storage-blob<13,>=12.21.0; extra == 'storage'
|
|
226
227
|
Requires-Dist: botocore<2,>=1.35.3; extra == 'storage'
|
|
227
228
|
Requires-Dist: google-cloud-storage<3,>=2.18.0; extra == 'storage'
|
|
229
|
+
Requires-Dist: mem0ai>=0.1.73; extra == 'storage'
|
|
228
230
|
Requires-Dist: nebula3-python==3.8.2; extra == 'storage'
|
|
229
231
|
Requires-Dist: neo4j<6,>=5.18.0; extra == 'storage'
|
|
230
232
|
Requires-Dist: pymilvus<3,>=2.4.0; extra == 'storage'
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
camel/__init__.py,sha256=
|
|
1
|
+
camel/__init__.py,sha256=mQ2yVqHODVkMIalVy9qE6Puk0KJ9oiXrN2tO01MDzPM,912
|
|
2
2
|
camel/generators.py,sha256=JRqj9_m1PF4qT6UtybzTQ-KBT9MJQt18OAAYvQ_fr2o,13844
|
|
3
3
|
camel/human.py,sha256=9X09UmxI2JqQnhrFfnZ3B9EzFmVfdSWQcjLWTIXKXe0,4962
|
|
4
4
|
camel/logger.py,sha256=rZVeOVYuQ9RYJ5Tqyv0usqy0g4zaVEq4qSfZ9nd2640,5755
|
|
@@ -36,7 +36,7 @@ camel/bots/discord/discord_store.py,sha256=eGBMYG8gm28PmmhcJ-JOVk2UKTBobEzvb6-pC
|
|
|
36
36
|
camel/bots/slack/__init__.py,sha256=iqySoYftEb7SI4pabhMvvTp1YYS09BvjwGXPEbcP1Hc,1055
|
|
37
37
|
camel/bots/slack/models.py,sha256=xMz3RO-88yrxPRrbBDjiabpbZIlpEHCvU-1CvASKARc,5143
|
|
38
38
|
camel/bots/slack/slack_app.py,sha256=SoSRZZnuTJ0aiLUBZqdG8cUFJzYpfpZh7304t0a_7Dg,9944
|
|
39
|
-
camel/configs/__init__.py,sha256=
|
|
39
|
+
camel/configs/__init__.py,sha256=QNN7fA4VfPEPuUtxaMJ5Ynt8P-8RrWH4MJMD1rbjbhE,3366
|
|
40
40
|
camel/configs/aiml_config.py,sha256=jMgNTvPM9mJ_blm-fM8jmnnI7Os_1vQTE6DPlkwR3ps,4197
|
|
41
41
|
camel/configs/anthropic_config.py,sha256=qrGCVRhpGxUZeM3tLDlP-JDDI4aOsxMmUUl3Z56-iYg,4955
|
|
42
42
|
camel/configs/base_config.py,sha256=2nEIRQoY6tIMeBIcxcBtCadmpsd8bSQj9rzewQsgfXo,3188
|
|
@@ -51,6 +51,7 @@ camel/configs/moonshot_config.py,sha256=IIGeGEAXd4y7FaZ7uNTAAYOYuaBy4YFMusJjuFvf
|
|
|
51
51
|
camel/configs/nvidia_config.py,sha256=1Oc3tulHOqAfx1mkrEywrxKIV1SBNzPm0CNrWgj9HXo,3226
|
|
52
52
|
camel/configs/ollama_config.py,sha256=oEYSgieliXFyvZWs-de-ZsSZVzhoDUC_oyCx1GW3HYY,4403
|
|
53
53
|
camel/configs/openai_config.py,sha256=Y0oo7vkMzFMmaps8RXPXwjGzcrtf0ZbzfmgZTHWsBfQ,7242
|
|
54
|
+
camel/configs/openrouter_config.py,sha256=Is_j3ysuQFXt_se61Zy_R75mtzlXqhhhiJTP2UCXwqM,5903
|
|
54
55
|
camel/configs/qwen_config.py,sha256=qvNGqTuT00aDB2n0MI-YL6GgzbMiH-i6wDy-7lWHHFE,4610
|
|
55
56
|
camel/configs/reka_config.py,sha256=QhTa4hUKz_TF3txTJRNlLSJ391uphEqZOG0zev6bI7w,3498
|
|
56
57
|
camel/configs/samba_config.py,sha256=2__Xj0HIsFWN38rsbZl9a-lXwOO5XHXoo_j7VwiUDpA,8825
|
|
@@ -84,7 +85,7 @@ camel/datahubs/huggingface.py,sha256=LgRruML4XnwHrm_jMB-aB-Ha-M9ErRrA7YmiL6saGis
|
|
|
84
85
|
camel/datahubs/models.py,sha256=tGb9OP_aomIhnwc0VapJjTg9PmyV_QCp5to9sABXF0Y,978
|
|
85
86
|
camel/datasets/__init__.py,sha256=KnAYddFU8Yoi9mLusyn7p9yIbkv7gAxZ_o-q9U1DDb4,963
|
|
86
87
|
camel/datasets/base_generator.py,sha256=N5qKOr1PUsObhuPWgr7qG_9qXi2_nfMfFzAsm2jqByQ,10135
|
|
87
|
-
camel/datasets/few_shot_generator.py,sha256=
|
|
88
|
+
camel/datasets/few_shot_generator.py,sha256=CFhh0Ybpym7fVfOwXWk96K2rTbmlDo80CkSqRk8o6bs,9711
|
|
88
89
|
camel/datasets/models.py,sha256=H0ksOfkwiPFjVr9xHMYbVoj8YTTWaLI2GYiWqesmiVs,2228
|
|
89
90
|
camel/datasets/static_dataset.py,sha256=GrszkO6-gKZV8ljIN4k5Y4A1TT8_lB7hJ7SbEEi4zkw,14243
|
|
90
91
|
camel/embeddings/__init__.py,sha256=YKCFO_YVY-x4A4uWmRuoIEtltrilBmC17DkCcK4zSj8,1263
|
|
@@ -98,7 +99,7 @@ camel/embeddings/vlm_embedding.py,sha256=HZFdcz1YzkFPzMj45_jaCVmDQJyccoXN561aLWl
|
|
|
98
99
|
camel/environments/__init__.py,sha256=nWFEYK-QcRX0WskLVsXn4iP_pK2liL-iHKG7DSO0zTU,969
|
|
99
100
|
camel/environments/models.py,sha256=yrrnJd-e6vYjfXMkYMdh0ABn25SSzLY_7XgSniOWOOE,3839
|
|
100
101
|
camel/environments/multi_step.py,sha256=rEEMMHip5ZVEWpNj7miws5wALlujtUbFZkWDsy7ofHM,8360
|
|
101
|
-
camel/environments/single_step.py,sha256=
|
|
102
|
+
camel/environments/single_step.py,sha256=Z-CzdISVIgYUVd92w5jlymcpnaDBWlvFfXjleoiae9I,9395
|
|
102
103
|
camel/extractors/__init__.py,sha256=nrEI35-70NGHk-Y7jvyc4i0f1NlpJArVBqAmcfpaBng,811
|
|
103
104
|
camel/extractors/base.py,sha256=3jvuZpq27nlADDCX3GfubOpeb_zt-E9rzxF3x4lYm8s,10404
|
|
104
105
|
camel/extractors/python_strategies.py,sha256=k8q4BIAhPZnCSN2LqPaZVrhF56y3Y4cZ6ddn79jcIXE,7825
|
|
@@ -121,11 +122,11 @@ camel/loaders/mineru_extractor.py,sha256=nKa5n7f3ergv1TURcbXZJP5mQpnSCIFdlWrxWn4
|
|
|
121
122
|
camel/loaders/panda_reader.py,sha256=7z9mA869LTEI48VhPQc0t2fnIUZc4MGngIXCh6lff18,11361
|
|
122
123
|
camel/loaders/unstructured_io.py,sha256=Dh-MB02nrhVXFyQCUrYt4DATd12zi5bNWE47cPC5yBs,17429
|
|
123
124
|
camel/memories/__init__.py,sha256=JQbs-_7VkcVTjE8y9J0DWI3btDyMRZilTZNVuy_RxZM,1358
|
|
124
|
-
camel/memories/agent_memories.py,sha256=
|
|
125
|
+
camel/memories/agent_memories.py,sha256=HysjYAB6srRdb3uE_IXmC94YPZBfGcAUdTlbcbzzLZE,9330
|
|
125
126
|
camel/memories/base.py,sha256=3BGuExfwwkbkVpxw1uYms8O37F-PD8ArcmYnFKYUcI4,5652
|
|
126
127
|
camel/memories/records.py,sha256=ySZewkQ4uqBtx3MlqX7xyQyKfL_wudxZSAOqIHzf0vA,4319
|
|
127
128
|
camel/memories/blocks/__init__.py,sha256=ci7_WU11222cNd1Zkv-a0z5E2ux95NMjAYm_cDzF0pE,854
|
|
128
|
-
camel/memories/blocks/chat_history_block.py,sha256=
|
|
129
|
+
camel/memories/blocks/chat_history_block.py,sha256=5QcyWtLtUDzG62_uYlhoVOoo0ztcWnvv_t5LhbNbqDI,5044
|
|
129
130
|
camel/memories/blocks/vectordb_block.py,sha256=lf0ipY4cJMB--tQDvpInqsmHZCn7sD1pkmjC70vTtn4,3941
|
|
130
131
|
camel/memories/context_creators/__init__.py,sha256=pqzkBM2ro5JZD7RhWg05TjinphhCq0QTIqBJlIL1sJ0,800
|
|
131
132
|
camel/memories/context_creators/score_based.py,sha256=wNPino1fMS4UwebMGc3lgCa5mdVLIXfN3WMxB8xL-x8,5999
|
|
@@ -139,7 +140,7 @@ camel/messages/conversion/sharegpt/__init__.py,sha256=oWUuHV5w85kxqhz_hoElLmCfzL
|
|
|
139
140
|
camel/messages/conversion/sharegpt/function_call_formatter.py,sha256=cn7e7CfmxEVFlfOqhjhNuA8nuWvWD6hXYn-3okXNxxQ,1832
|
|
140
141
|
camel/messages/conversion/sharegpt/hermes/__init__.py,sha256=mxuMSm-neaTgInIjYXuIVdC310E6jKJzM3IdtaJ4qY4,812
|
|
141
142
|
camel/messages/conversion/sharegpt/hermes/hermes_function_formatter.py,sha256=-9TT8iOQ-ieKSKR_PmJSA5Bi0uBx-qR7WQ6vxuFkorM,4639
|
|
142
|
-
camel/models/__init__.py,sha256=
|
|
143
|
+
camel/models/__init__.py,sha256=_GIkcZ_xwLBuQnIm6f0l4Ww8cBOs-PfarMT70omRCWE,2838
|
|
143
144
|
camel/models/_utils.py,sha256=hob1ehnS5xZitMCdYToHVgaTB55JnaP4_DSWnTEfVsg,2045
|
|
144
145
|
camel/models/aiml_model.py,sha256=4FW66DxmVMPWAJckh4UjMM6eD1QNyrAPAPtrpmWxzjc,6524
|
|
145
146
|
camel/models/anthropic_model.py,sha256=8XAj9sVaN1X0hvrL9a-qsmkAFWoGe1Ozj5XZsXYe1UI,5894
|
|
@@ -149,12 +150,12 @@ camel/models/base_model.py,sha256=RolL8fRwVpfz8g9lpb_71h0mYTNl-U63f8KBy6hc3E0,10
|
|
|
149
150
|
camel/models/cohere_model.py,sha256=i1GHWp1l9oqbhzCjyaG9njrqLF1__q38OrTWOgChofw,13421
|
|
150
151
|
camel/models/deepseek_model.py,sha256=HjFEGhxOuEGYOzE8dbkdJRjtrDIbyUZ9XRPKAgm4UFo,9621
|
|
151
152
|
camel/models/fish_audio_model.py,sha256=RCwORRIdCbjZXWWjjctpksPI2DnS0b68JjxunHBQ1xk,5981
|
|
152
|
-
camel/models/gemini_model.py,sha256=
|
|
153
|
-
camel/models/groq_model.py,sha256=
|
|
153
|
+
camel/models/gemini_model.py,sha256=ax7byBfrJbknZ0yjepbbuFyBfU9D2J1lREp7-mjJnZc,11671
|
|
154
|
+
camel/models/groq_model.py,sha256=HfhYt58GtKVcpUSZS_AhqKbSm9ZctPQzwPxNHS7QNi4,7461
|
|
154
155
|
camel/models/internlm_model.py,sha256=4nr5LXhxBfOjm-0i65pXyaS0_sT5oAXKXaUfkijAGmQ,5612
|
|
155
156
|
camel/models/litellm_model.py,sha256=xi4kDd0FKuznKtox8ArsB39u40ueOhcb-CpWv4bcbXw,5544
|
|
156
157
|
camel/models/mistral_model.py,sha256=OB948fRVnXikVIDO3PqxV0zb_qpwwta0DIW1bbX3SYI,11666
|
|
157
|
-
camel/models/model_factory.py,sha256=
|
|
158
|
+
camel/models/model_factory.py,sha256=fgBD5P242PWd7CyhbB1Y7VXY01fIGD_d-8CEJ5f1hes,7035
|
|
158
159
|
camel/models/model_manager.py,sha256=gfpL-WUxuTXgNeCkIVg8Y0zRvxMqRLX8JGt0XEAPQ8Y,9214
|
|
159
160
|
camel/models/moonshot_model.py,sha256=DNZzDYz0AWU1q6pIvbPALqesejoawwuKzeP0_ZbjDSg,6149
|
|
160
161
|
camel/models/nemotron_model.py,sha256=jJrW8tpTlEJDT1FjflB9krhgEQhD5KBeLmyUIcZvWPk,3886
|
|
@@ -163,6 +164,7 @@ camel/models/ollama_model.py,sha256=byJ0YbMlilEFRKJZIot-MPUcojwMHLIaBES0a1SURtg,
|
|
|
163
164
|
camel/models/openai_audio_models.py,sha256=fYpxFvxT8p93KVb5BYODTuI5wdNXV9pu_bvxfARgVYk,13193
|
|
164
165
|
camel/models/openai_compatible_model.py,sha256=fy9OSvkCM4YQhsFBBZ6D8lIiaHmCKu8_i26VlIdWwW0,8134
|
|
165
166
|
camel/models/openai_model.py,sha256=CbfD9yVtAltyqdFpjnLXncFnmaGPDZq8JhJDaSfG0pc,10186
|
|
167
|
+
camel/models/openrouter_model.py,sha256=6tbCyY_lpyFwQzObKvtUskMCUdBLcOiz0l6_6PgpsXg,7557
|
|
166
168
|
camel/models/qwen_model.py,sha256=_LeeB0yrXRMI-gZOEEOHg0bWNOJpuQHf2G7u40--3r8,7064
|
|
167
169
|
camel/models/reka_model.py,sha256=15DscZf3lbqsIzm6kzjzDrhblBt1_0xlphT4isuQMu0,10146
|
|
168
170
|
camel/models/samba_model.py,sha256=t8b9TA1iVlOUizYSn5NDw4RZWjURqsyd4mkisDXef_s,22558
|
|
@@ -234,16 +236,17 @@ camel/societies/workforce/task_channel.py,sha256=9t5hoinfGYnbRavX4kx34Jk1FOy05Sn
|
|
|
234
236
|
camel/societies/workforce/utils.py,sha256=yPbcLx8lNZStl15C4UXRBl5qsTrGA-hiIGynnGi53WQ,2384
|
|
235
237
|
camel/societies/workforce/worker.py,sha256=Do6FDpEraICQVptBH-LiG5KDYYQzD83sLoYO9J8NAbc,3933
|
|
236
238
|
camel/societies/workforce/workforce.py,sha256=lflBJO4vBPg_uY7U-O8STxo90c8iwLN9r-rTwHm118g,18104
|
|
237
|
-
camel/storages/__init__.py,sha256=
|
|
239
|
+
camel/storages/__init__.py,sha256=ef2s6bdLJ1OJbcCKKTl9aGuXqsaczBXgbVS_yUtPzjw,1691
|
|
238
240
|
camel/storages/graph_storages/__init__.py,sha256=G29BNn651C0WTOpjCl4QnVM-4B9tcNh8DdmsCiONH8Y,948
|
|
239
241
|
camel/storages/graph_storages/base.py,sha256=uSe9jWuLudfm5jtfo6E-L_kNzITwK1_Ef-6L4HWw-JM,2852
|
|
240
242
|
camel/storages/graph_storages/graph_element.py,sha256=X_2orbQOMaQd00xxzAoJLfEcrVNE1mgCqMJv0orMAKA,2733
|
|
241
243
|
camel/storages/graph_storages/nebula_graph.py,sha256=iLcHrIgd5U59GXlcLtLBAI8vNFpqHHLHHFmHTceVVLc,22816
|
|
242
244
|
camel/storages/graph_storages/neo4j_graph.py,sha256=Ng7fLCUrWhdFAd4d6UEpuAB6B6QgxbHmv8d8XDNOVJc,30773
|
|
243
|
-
camel/storages/key_value_storages/__init__.py,sha256=
|
|
245
|
+
camel/storages/key_value_storages/__init__.py,sha256=qBNx5QwKGa2wydavFYpM5MLVPkqNn4ODjqjzszFxKb8,1059
|
|
244
246
|
camel/storages/key_value_storages/base.py,sha256=FSfxeLuG7SPvn-Mg-OQxtRKPtQBnRkB7lYeDaFOefpk,2177
|
|
245
247
|
camel/storages/key_value_storages/in_memory.py,sha256=k04Nx53lYxD5MoqDtBEgZrQYkAQ-zIuU6tqnoNqiHws,1949
|
|
246
248
|
camel/storages/key_value_storages/json.py,sha256=Jn7-fh2MjSMaVSCCMF_Hu-mAIj6JJ86iwKaSgI-5Uf0,3483
|
|
249
|
+
camel/storages/key_value_storages/mem0_cloud.py,sha256=py8-n3in65K9cFnUJTxXKhzE4J0H1BSUWFDD4DT3rPg,8254
|
|
247
250
|
camel/storages/key_value_storages/redis.py,sha256=Suo7wxxBXFc0fkJ8qSX2xQ26Ik_YhoKWfTOVQKUl5vA,5720
|
|
248
251
|
camel/storages/object_storages/__init__.py,sha256=26yATVTD9yVH-p9KueD30JakstTGiDh89GcFtUNNe4U,915
|
|
249
252
|
camel/storages/object_storages/amazon_s3.py,sha256=9Yvyyyb1LGHxr8REEza7oGopbVtLEfOyXWJc18ZwgqA,7418
|
|
@@ -253,7 +256,7 @@ camel/storages/object_storages/google_cloud.py,sha256=59AvGar_GDoGYHhzUi5KBtInv2
|
|
|
253
256
|
camel/storages/vectordb_storages/__init__.py,sha256=NCXSLGFE5BuGWDYrsXuiJIsOJObwGnyAzpWuzMoxeWU,1070
|
|
254
257
|
camel/storages/vectordb_storages/base.py,sha256=9pFxeGvQp6wH3VDhJH_uTSDs6s1Tgi--BH2Bomg3qVQ,6738
|
|
255
258
|
camel/storages/vectordb_storages/milvus.py,sha256=XGKSQQflvqvTCo92rrgmbwYtsJKY9JxphdEQqGXf_kA,13483
|
|
256
|
-
camel/storages/vectordb_storages/qdrant.py,sha256=
|
|
259
|
+
camel/storages/vectordb_storages/qdrant.py,sha256=3x1ApU3OJld7fIpO8VFL5EeNMtR5H8u49xXGoKEXww0,18017
|
|
257
260
|
camel/tasks/__init__.py,sha256=MuHwkw5GRQc8NOCzj8tjtBrr2Xg9KrcKp-ed_-2ZGIM,906
|
|
258
261
|
camel/tasks/task.py,sha256=FpYYbxWrAvqFJ4KvbjIn-EnTGpe9u_emSWUpdIuCAZo,13178
|
|
259
262
|
camel/tasks/task_prompt.py,sha256=3KZmKYKUPcTKe8EAZOZBN3G05JHRVt7oHY9ORzLVu1g,2150
|
|
@@ -266,8 +269,8 @@ camel/toolkits/arxiv_toolkit.py,sha256=d0Zn8LQGENhtlZ0BHlDr1pUV8xHOc6TOenAaKgbel
|
|
|
266
269
|
camel/toolkits/ask_news_toolkit.py,sha256=PAxio8I2eTau9TgOu1jyFC9fsHhvGb-aLIkroWPtwx4,23268
|
|
267
270
|
camel/toolkits/audio_analysis_toolkit.py,sha256=LC0C6SEIwko8HqkT-C3ub6Ila2PfuIbKLBOEjrrF6BE,8552
|
|
268
271
|
camel/toolkits/base.py,sha256=7WRovKrz380b25lYdwT-2FCXzS3dkllOjT53hmmCg_I,1999
|
|
269
|
-
camel/toolkits/browser_toolkit.py,sha256=
|
|
270
|
-
camel/toolkits/code_execution.py,sha256=
|
|
272
|
+
camel/toolkits/browser_toolkit.py,sha256=OuiwMwTWMGi0qtDjEH4pDlszr274UgtnttkynwjDWoM,54584
|
|
273
|
+
camel/toolkits/code_execution.py,sha256=UlkMu6Le38WVJ1IPU8cu9QzXNHBsUBL59tJuCsQJgnk,4578
|
|
271
274
|
camel/toolkits/dalle_toolkit.py,sha256=Usmw3JiJErLQgWSB1qKq_bOACNwbUTQPFc_EsVzTrGo,5115
|
|
272
275
|
camel/toolkits/dappier_toolkit.py,sha256=_69IAmXE2QSbwGxnSEycaV2XrrkiM5wKI6heM7-4MfU,8175
|
|
273
276
|
camel/toolkits/data_commons_toolkit.py,sha256=VmDipqHabDdYVCzhuoaPE832i76yXt-uom7p5ObH1w0,14121
|
|
@@ -281,7 +284,7 @@ camel/toolkits/human_toolkit.py,sha256=9CjB1flGXIx7mzkIliDjcwXATUvZNdrRCKWyEgR9E
|
|
|
281
284
|
camel/toolkits/image_analysis_toolkit.py,sha256=dpvT8n49s8B8AhJ8aFdy4OONb8E8r_Cwxpx-ByFruy8,7209
|
|
282
285
|
camel/toolkits/linkedin_toolkit.py,sha256=5ZSMG01RXjibJ2CtB1vLlQ4B-rv4sqf_2cUZC78WTE8,8041
|
|
283
286
|
camel/toolkits/math_toolkit.py,sha256=5yVF0bKuwkZIV01uICd3TOfktXlTERjKt4DrFyz_oaE,3639
|
|
284
|
-
camel/toolkits/mcp_toolkit.py,sha256=
|
|
287
|
+
camel/toolkits/mcp_toolkit.py,sha256=4XJHoAQIg6mqGw19crsTYulZtYIDxmuESrZRnF14zlQ,18725
|
|
285
288
|
camel/toolkits/memory_toolkit.py,sha256=TeKYd5UMwgjVpuS2orb-ocFL13eUNKujvrFOruDCpm8,4436
|
|
286
289
|
camel/toolkits/meshy_toolkit.py,sha256=Fd6sQV2JtduxyvHxCBA0_zl2OCgJRAlvDEe58hX8gRg,6463
|
|
287
290
|
camel/toolkits/mineru_toolkit.py,sha256=vRX9LholLNkpbJ6axfEN4pTG85aWb0PDmlVy3rAAXhg,6868
|
|
@@ -331,9 +334,9 @@ camel/toolkits/open_api_specs/web_scraper/openapi.yaml,sha256=u_WalQ01e8W1D27VnZ
|
|
|
331
334
|
camel/toolkits/open_api_specs/web_scraper/paths/__init__.py,sha256=OKCZrQCDwaWtXIN_2rA9FSqEvgpQRieRoHh7Ek6N16A,702
|
|
332
335
|
camel/toolkits/open_api_specs/web_scraper/paths/scraper.py,sha256=aWy1_ppV4NVVEZfnbN3tu9XA9yAPAC9bRStJ5JuXMRU,1117
|
|
333
336
|
camel/types/__init__.py,sha256=VLWhAt857IFct3XepY5BNOIhyhDhfmODTezr9jhO_TI,2251
|
|
334
|
-
camel/types/enums.py,sha256=
|
|
337
|
+
camel/types/enums.py,sha256=17txpxtpmvfTN5yKklSKZxjWz3yXhV1zhEH2m526C5M,35954
|
|
335
338
|
camel/types/openai_types.py,sha256=8ZFzLe-zGmKNPfuVZFzxlxAX98lGf18gtrPhOgMmzus,2104
|
|
336
|
-
camel/types/unified_model_type.py,sha256=
|
|
339
|
+
camel/types/unified_model_type.py,sha256=z1ze1YD3iI6Agn0vnHQHknJjE-eveVwhe4agGXJKIwE,4396
|
|
337
340
|
camel/types/agents/__init__.py,sha256=cbvVkogPoZgcwZrgxLH6EtpGXk0kavF79nOic0Dc1vg,786
|
|
338
341
|
camel/types/agents/tool_calling_record.py,sha256=qa-vLyKvYzWprRkFFl1928xaw9CnfacIebHaqM-oY3s,1814
|
|
339
342
|
camel/utils/__init__.py,sha256=tLftKYfEu1QbMgiyT479_5htxlfFcfYxDHhjEYRFups,2628
|
|
@@ -347,11 +350,11 @@ camel/utils/chunker/__init__.py,sha256=6iN6HL6sblIjDuJTILk-9qKcHBZ97t8b6tZCWPZ0O
|
|
|
347
350
|
camel/utils/chunker/base.py,sha256=9CuqymFCRncyAdEST-IcRonB732YAPhusznqH-RES3E,960
|
|
348
351
|
camel/utils/chunker/code_chunker.py,sha256=sPpM4_ZA3JDq6dAc0_YWX4C-TU_zaDHMxZiygs3TY3s,7072
|
|
349
352
|
camel/utils/chunker/uio_chunker.py,sha256=BYkA2oKePhTcby6fCMz4yDlOyLJ5lO161kVCqDvjYq4,2621
|
|
350
|
-
camel/verifiers/__init__.py,sha256=
|
|
351
|
-
camel/verifiers/base.py,sha256=
|
|
352
|
-
camel/verifiers/models.py,sha256=
|
|
353
|
-
camel/verifiers/python_verifier.py,sha256=
|
|
354
|
-
camel_ai-0.2.
|
|
355
|
-
camel_ai-0.2.
|
|
356
|
-
camel_ai-0.2.
|
|
357
|
-
camel_ai-0.2.
|
|
353
|
+
camel/verifiers/__init__.py,sha256=eU4NJYaGltUYorClvxOCgWwHGQTA3gyP9hUthMdOHHo,901
|
|
354
|
+
camel/verifiers/base.py,sha256=D6hvavoTlKvFZzNVNpo7gc-AN7iqFRBNRaSHNc7GCUM,14025
|
|
355
|
+
camel/verifiers/models.py,sha256=GdxYPr7UxNrR1577yW4kyroRcLGfd-H1GXgv8potDWU,2471
|
|
356
|
+
camel/verifiers/python_verifier.py,sha256=8wrgBCay_Qjt63mo8oBVdXi0Wqe8RWOEe2aXduZyg54,8141
|
|
357
|
+
camel_ai-0.2.36.dist-info/METADATA,sha256=PrfSRJhPsV6rk2wKgUr82aZb0r5raMQMQQhWkj44tDM,38039
|
|
358
|
+
camel_ai-0.2.36.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
359
|
+
camel_ai-0.2.36.dist-info/licenses/LICENSE,sha256=id0nB2my5kG0xXeimIu5zZrbHLS6EQvxvkKkzIHaT2k,11343
|
|
360
|
+
camel_ai-0.2.36.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|