symbolicai 0.20.2__py3-none-any.whl → 1.0.0__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.
- symai/__init__.py +96 -64
- symai/backend/base.py +93 -80
- symai/backend/engines/drawing/engine_bfl.py +12 -11
- symai/backend/engines/drawing/engine_gpt_image.py +108 -87
- symai/backend/engines/embedding/engine_llama_cpp.py +25 -28
- symai/backend/engines/embedding/engine_openai.py +3 -5
- symai/backend/engines/execute/engine_python.py +6 -5
- symai/backend/engines/files/engine_io.py +74 -67
- symai/backend/engines/imagecaptioning/engine_blip2.py +3 -3
- symai/backend/engines/imagecaptioning/engine_llavacpp_client.py +54 -38
- symai/backend/engines/index/engine_pinecone.py +23 -24
- symai/backend/engines/index/engine_vectordb.py +16 -14
- symai/backend/engines/lean/engine_lean4.py +38 -34
- symai/backend/engines/neurosymbolic/__init__.py +41 -13
- symai/backend/engines/neurosymbolic/engine_anthropic_claudeX_chat.py +262 -182
- symai/backend/engines/neurosymbolic/engine_anthropic_claudeX_reasoning.py +263 -191
- symai/backend/engines/neurosymbolic/engine_deepseekX_reasoning.py +53 -49
- symai/backend/engines/neurosymbolic/engine_google_geminiX_reasoning.py +212 -211
- symai/backend/engines/neurosymbolic/engine_groq.py +87 -63
- symai/backend/engines/neurosymbolic/engine_huggingface.py +21 -24
- symai/backend/engines/neurosymbolic/engine_llama_cpp.py +117 -48
- symai/backend/engines/neurosymbolic/engine_openai_gptX_chat.py +256 -229
- symai/backend/engines/neurosymbolic/engine_openai_gptX_reasoning.py +270 -150
- symai/backend/engines/ocr/engine_apilayer.py +6 -8
- symai/backend/engines/output/engine_stdout.py +1 -4
- symai/backend/engines/search/engine_openai.py +7 -7
- symai/backend/engines/search/engine_perplexity.py +5 -5
- symai/backend/engines/search/engine_serpapi.py +12 -14
- symai/backend/engines/speech_to_text/engine_local_whisper.py +20 -27
- symai/backend/engines/symbolic/engine_wolframalpha.py +3 -3
- symai/backend/engines/text_to_speech/engine_openai.py +5 -7
- symai/backend/engines/text_vision/engine_clip.py +7 -11
- symai/backend/engines/userinput/engine_console.py +3 -3
- symai/backend/engines/webscraping/engine_requests.py +81 -48
- symai/backend/mixin/__init__.py +13 -0
- symai/backend/mixin/anthropic.py +4 -2
- symai/backend/mixin/deepseek.py +2 -0
- symai/backend/mixin/google.py +2 -0
- symai/backend/mixin/openai.py +11 -3
- symai/backend/settings.py +83 -16
- symai/chat.py +101 -78
- symai/collect/__init__.py +7 -1
- symai/collect/dynamic.py +77 -69
- symai/collect/pipeline.py +35 -27
- symai/collect/stats.py +75 -63
- symai/components.py +198 -169
- symai/constraints.py +15 -12
- symai/core.py +698 -359
- symai/core_ext.py +32 -34
- symai/endpoints/api.py +80 -73
- symai/extended/.DS_Store +0 -0
- symai/extended/__init__.py +46 -12
- symai/extended/api_builder.py +11 -8
- symai/extended/arxiv_pdf_parser.py +13 -12
- symai/extended/bibtex_parser.py +2 -3
- symai/extended/conversation.py +101 -90
- symai/extended/document.py +17 -10
- symai/extended/file_merger.py +18 -13
- symai/extended/graph.py +18 -13
- symai/extended/html_style_template.py +2 -4
- symai/extended/interfaces/blip_2.py +1 -2
- symai/extended/interfaces/clip.py +1 -2
- symai/extended/interfaces/console.py +7 -1
- symai/extended/interfaces/dall_e.py +1 -1
- symai/extended/interfaces/flux.py +1 -1
- symai/extended/interfaces/gpt_image.py +1 -1
- symai/extended/interfaces/input.py +1 -1
- symai/extended/interfaces/llava.py +0 -1
- symai/extended/interfaces/naive_vectordb.py +7 -8
- symai/extended/interfaces/naive_webscraping.py +1 -1
- symai/extended/interfaces/ocr.py +1 -1
- symai/extended/interfaces/pinecone.py +6 -5
- symai/extended/interfaces/serpapi.py +1 -1
- symai/extended/interfaces/terminal.py +2 -3
- symai/extended/interfaces/tts.py +1 -1
- symai/extended/interfaces/whisper.py +1 -1
- symai/extended/interfaces/wolframalpha.py +1 -1
- symai/extended/metrics/__init__.py +11 -1
- symai/extended/metrics/similarity.py +11 -13
- symai/extended/os_command.py +17 -16
- symai/extended/packages/__init__.py +29 -3
- symai/extended/packages/symdev.py +19 -16
- symai/extended/packages/sympkg.py +12 -9
- symai/extended/packages/symrun.py +21 -19
- symai/extended/repo_cloner.py +11 -10
- symai/extended/seo_query_optimizer.py +1 -2
- symai/extended/solver.py +20 -23
- symai/extended/summarizer.py +4 -3
- symai/extended/taypan_interpreter.py +10 -12
- symai/extended/vectordb.py +99 -82
- symai/formatter/__init__.py +9 -1
- symai/formatter/formatter.py +12 -16
- symai/formatter/regex.py +62 -63
- symai/functional.py +176 -122
- symai/imports.py +136 -127
- symai/interfaces.py +56 -27
- symai/memory.py +14 -13
- symai/misc/console.py +49 -39
- symai/misc/loader.py +5 -3
- symai/models/__init__.py +17 -1
- symai/models/base.py +269 -181
- symai/models/errors.py +0 -1
- symai/ops/__init__.py +32 -22
- symai/ops/measures.py +11 -15
- symai/ops/primitives.py +348 -228
- symai/post_processors.py +32 -28
- symai/pre_processors.py +39 -41
- symai/processor.py +6 -4
- symai/prompts.py +59 -45
- symai/server/huggingface_server.py +23 -20
- symai/server/llama_cpp_server.py +7 -5
- symai/shell.py +3 -4
- symai/shellsv.py +499 -375
- symai/strategy.py +517 -287
- symai/symbol.py +111 -116
- symai/utils.py +42 -36
- {symbolicai-0.20.2.dist-info → symbolicai-1.0.0.dist-info}/METADATA +4 -2
- symbolicai-1.0.0.dist-info/RECORD +163 -0
- symbolicai-0.20.2.dist-info/RECORD +0 -162
- {symbolicai-0.20.2.dist-info → symbolicai-1.0.0.dist-info}/WHEEL +0 -0
- {symbolicai-0.20.2.dist-info → symbolicai-1.0.0.dist-info}/entry_points.txt +0 -0
- {symbolicai-0.20.2.dist-info → symbolicai-1.0.0.dist-info}/licenses/LICENSE +0 -0
- {symbolicai-0.20.2.dist-info → symbolicai-1.0.0.dist-info}/top_level.txt +0 -0
symai/ops/__init__.py
CHANGED
|
@@ -1,25 +1,35 @@
|
|
|
1
|
-
from .
|
|
1
|
+
from . import primitives as _primitives
|
|
2
|
+
|
|
3
|
+
__all__ = getattr(_primitives, "__all__", None) # noqa
|
|
4
|
+
if __all__ is None:
|
|
5
|
+
__all__ = [name for name in dir(_primitives) if not name.startswith("_")]
|
|
6
|
+
|
|
7
|
+
for _name in __all__:
|
|
8
|
+
globals()[_name] = getattr(_primitives, _name)
|
|
2
9
|
|
|
3
10
|
SYMBOL_PRIMITIVES = [
|
|
4
|
-
OperatorPrimitives,
|
|
5
|
-
IterationPrimitives,
|
|
6
|
-
ValueHandlingPrimitives,
|
|
7
|
-
StringHelperPrimitives,
|
|
8
|
-
CastingPrimitives,
|
|
9
|
-
ComparisonPrimitives,
|
|
10
|
-
ExpressionHandlingPrimitives,
|
|
11
|
-
DataHandlingPrimitives,
|
|
12
|
-
UniquenessPrimitives,
|
|
13
|
-
PatternMatchingPrimitives,
|
|
14
|
-
DictHandlingPrimitives,
|
|
15
|
-
QueryHandlingPrimitives,
|
|
16
|
-
ExecutionControlPrimitives,
|
|
17
|
-
TemplateStylingPrimitives,
|
|
18
|
-
DataClusteringPrimitives,
|
|
19
|
-
EmbeddingPrimitives,
|
|
20
|
-
IndexingPrimitives,
|
|
21
|
-
IOHandlingPrimitives,
|
|
22
|
-
PersistencePrimitives,
|
|
23
|
-
OutputHandlingPrimitives,
|
|
24
|
-
FineTuningPrimitives,
|
|
11
|
+
_primitives.OperatorPrimitives,
|
|
12
|
+
_primitives.IterationPrimitives,
|
|
13
|
+
_primitives.ValueHandlingPrimitives,
|
|
14
|
+
_primitives.StringHelperPrimitives,
|
|
15
|
+
_primitives.CastingPrimitives,
|
|
16
|
+
_primitives.ComparisonPrimitives,
|
|
17
|
+
_primitives.ExpressionHandlingPrimitives,
|
|
18
|
+
_primitives.DataHandlingPrimitives,
|
|
19
|
+
_primitives.UniquenessPrimitives,
|
|
20
|
+
_primitives.PatternMatchingPrimitives,
|
|
21
|
+
_primitives.DictHandlingPrimitives,
|
|
22
|
+
_primitives.QueryHandlingPrimitives,
|
|
23
|
+
_primitives.ExecutionControlPrimitives,
|
|
24
|
+
_primitives.TemplateStylingPrimitives,
|
|
25
|
+
_primitives.DataClusteringPrimitives,
|
|
26
|
+
_primitives.EmbeddingPrimitives,
|
|
27
|
+
_primitives.IndexingPrimitives,
|
|
28
|
+
_primitives.IOHandlingPrimitives,
|
|
29
|
+
_primitives.PersistencePrimitives,
|
|
30
|
+
_primitives.OutputHandlingPrimitives,
|
|
31
|
+
_primitives.FineTuningPrimitives,
|
|
25
32
|
]
|
|
33
|
+
|
|
34
|
+
del _name
|
|
35
|
+
del _primitives
|
symai/ops/measures.py
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import numpy as np
|
|
2
|
-
|
|
3
2
|
from scipy import linalg
|
|
4
3
|
|
|
4
|
+
from ..utils import UserMessage
|
|
5
|
+
|
|
5
6
|
|
|
6
7
|
def calculate_frechet_distance(mu1, sigma1, mu2, sigma2, eps=1e-6):
|
|
7
8
|
"""Numpy implementation of the Frechet Distance.
|
|
@@ -42,8 +43,8 @@ def calculate_frechet_distance(mu1, sigma1, mu2, sigma2, eps=1e-6):
|
|
|
42
43
|
covmean, _ = linalg.sqrtm(sigma1.dot(sigma2), disp=False)
|
|
43
44
|
if not np.isfinite(covmean).all():
|
|
44
45
|
msg = ('fid calculation produces singular product; '
|
|
45
|
-
'adding
|
|
46
|
-
|
|
46
|
+
f'adding {eps} to diagonal of cov estimates')
|
|
47
|
+
UserMessage(msg)
|
|
47
48
|
offset = np.eye(sigma1.shape[0]) * eps
|
|
48
49
|
covmean = linalg.sqrtm((sigma1 + offset).dot(sigma2 + offset))
|
|
49
50
|
|
|
@@ -51,12 +52,11 @@ def calculate_frechet_distance(mu1, sigma1, mu2, sigma2, eps=1e-6):
|
|
|
51
52
|
if np.iscomplexobj(covmean):
|
|
52
53
|
if not np.allclose(np.diagonal(covmean).imag, 0, atol=1e-3):
|
|
53
54
|
m = np.max(np.abs(covmean.imag))
|
|
54
|
-
|
|
55
|
+
UserMessage(f'Imaginary component {m}', raise_with=ValueError)
|
|
55
56
|
covmean = covmean.real
|
|
56
57
|
|
|
57
58
|
tr_covmean = np.trace(covmean)
|
|
58
|
-
|
|
59
|
-
return val
|
|
59
|
+
return diff.dot(diff) + np.trace(sigma1) + np.trace(sigma2) - 2 * tr_covmean
|
|
60
60
|
|
|
61
61
|
|
|
62
62
|
def calculate_mmd(x, y, kernel='rbf', kernel_mul=2.0, kernel_num=5, fix_sigma=None, eps=1e-9):
|
|
@@ -67,10 +67,7 @@ def calculate_mmd(x, y, kernel='rbf', kernel_mul=2.0, kernel_num=5, fix_sigma=No
|
|
|
67
67
|
total1 = np.expand_dims(total, 1)
|
|
68
68
|
L2_distance = np.sum((total0 - total1) ** 2, axis=2)
|
|
69
69
|
|
|
70
|
-
|
|
71
|
-
bandwidth = fix_sigma
|
|
72
|
-
else:
|
|
73
|
-
bandwidth = np.sum(L2_distance) / (n_samples ** 2 - n_samples + eps)
|
|
70
|
+
bandwidth = fix_sigma or np.sum(L2_distance) / (n_samples ** 2 - n_samples + eps)
|
|
74
71
|
bandwidth /= kernel_mul ** (kernel_num // 2)
|
|
75
72
|
bandwidth_list = [bandwidth * (kernel_mul ** i) for i in range(kernel_num)]
|
|
76
73
|
kernel_val = [np.exp(-L2_distance / (bandwidth_temp + eps)) for bandwidth_temp in bandwidth_list]
|
|
@@ -78,17 +75,16 @@ def calculate_mmd(x, y, kernel='rbf', kernel_mul=2.0, kernel_num=5, fix_sigma=No
|
|
|
78
75
|
|
|
79
76
|
def linear_mmd2(f_of_X, f_of_Y):
|
|
80
77
|
delta = f_of_X.mean(axis=0) - f_of_Y.mean(axis=0)
|
|
81
|
-
|
|
82
|
-
return loss
|
|
78
|
+
return np.dot(delta, delta.T)
|
|
83
79
|
|
|
84
80
|
if kernel == 'linear':
|
|
85
81
|
return linear_mmd2(x, y)
|
|
86
|
-
|
|
82
|
+
if kernel == 'rbf':
|
|
87
83
|
batch_size = x.shape[0]
|
|
88
84
|
kernels = gaussian_kernel(x, y, kernel_mul=kernel_mul, kernel_num=kernel_num, fix_sigma=fix_sigma)
|
|
89
85
|
xx = np.mean(kernels[:batch_size, :batch_size])
|
|
90
86
|
yy = np.mean(kernels[batch_size:, batch_size:])
|
|
91
87
|
xy = np.mean(kernels[:batch_size, batch_size:])
|
|
92
88
|
yx = np.mean(kernels[batch_size:, :batch_size])
|
|
93
|
-
|
|
94
|
-
|
|
89
|
+
return xx + yy - xy - yx
|
|
90
|
+
return None
|