Recent Releases of symbolicai

symbolicai - v0.18.3

SymbolicAI v0.18.3 – Release Notes

Rare pydantic bug encounter.

Full Changelog: https://github.com/ExtensityAI/symbolicai/compare/v0.18.2...v0.18.3

- Python
Published by futurisold 4 months ago

symbolicai - v0.18.2

SymbolicAI v0.18.2 – Release Notes

  • Groq Engine: Fixed reasoning_effort parameter handling to only exclude it for non-Qwen and non-OpenAI models

Full Changelog: https://github.com/ExtensityAI/symbolicai/compare/v0.18.1...v0.18.2

- Python
Published by futurisold 4 months ago

symbolicai - v0.18.1

SymbolicAI v0.18.1 – Release Notes

  • Fixed: Improved Groq JSON Object Mode handling; prevents tool conflicts with response_format.
  • Fixed: UserWarning output now escapes HTML-style model text to avoid console parsing errors.

Full Changelog: https://github.com/ExtensityAI/symbolicai/compare/v0.18.0...v0.18.1

- Python
Published by futurisold 4 months ago

symbolicai - v0.18.0

SymbolicAI v0.18.0 – Release Notes

  • Expanded Groq backend support:
    • Enabled DynamicEngine.
    • Docs: caveat on Groq JSON mode/tool choice bug.
    • Token metadata: support in MetadataTracker and RuntimeInfo.
  • Misc:
    • Minor style/escaping fixes in console printing.
    • Internal refactors and warning clarity.
    • Added placeholder comments for rich CLI migration.

Full Changelog: https://github.com/ExtensityAI/symbolicai/compare/v0.17.7...v0.18.0

- Python
Published by futurisold 4 months ago

symbolicai - v0.17.7

SymbolicAI v0.17.7 – Release Notes

  • Improved OpenAI search result citation handling:
    • Citations now use sequential integer IDs (not strings/hashes).
    • Output formatting is cleaner:
    • Removes leftover markdown link artifacts and empty parentheses.
    • Citation markers are inserted after cited text: [n] (title)\n
    • Citation start/end spans now point to marker locations.
    • Citations provide normalized URLs (without utm_ parameters).
  • Added robust citation extraction from OpenAI response segments.
  • Updated test suite for stricter citation and formatting checks.
  • Minor API and test code simplifications.

Full Changelog: https://github.com/ExtensityAI/symbolicai/compare/v0.17.6...v0.17.7

- Python
Published by futurisold 4 months ago

symbolicai - v0.17.6

SymbolicAI v0.17.6 – Release Notes

  • Improved citation handling in OpenAI Search Engine:
    • Rewrote citation extraction and link replacement logic for robustness.
    • URLs in results are now normalized (tracking params removed).
    • Reduced citation duplicates; citation IDs assigned sequentially.
    • Citation display format enhanced for clarity.
  • Switched to official OpenAI Python SDK for API calls.

Full Changelog: https://github.com/ExtensityAI/symbolicai/compare/v0.17.5...v0.17.6

- Python
Published by futurisold 5 months ago

symbolicai - v0.17.5

SymbolicAI v0.17.5 – Release Notes

  • .instruct_llm's [[Definitions]] section now lists all model fields, including root model fields.
  • Fields without description show a generic guidance note.
  • Field-level examples and example (from Field) are rendered as bullet lists, even if no description is provided.
  • Preserves and displays provided field descriptions and examples in nested/complex schemas.
  • Improves robustness for nested dict, list, tuple, and union types.
  • Tests added to verify schema, definitions, and example rendering behaviors.
  • Patch: no breaking changes.

Full Changelog: https://github.com/ExtensityAI/symbolicai/compare/v0.17.4...v0.17.5

- Python
Published by futurisold 5 months ago

symbolicai - v0.17.4

SymbolicAI v0.17.4 – Release Notes

  • Added support for OpenAI GPT-5 (gpt-5, gpt-5-mini, gpt-5-nano, and gpt-5-chat-latest) throughout backend and mixin logic.
  • Added support for Anthropic Claude 4.1 models in ID detection logic.
  • Improved handling of size parameter in engine_gpt_image.
  • Refactored and simplified LLMDataModel:
    • Fixed and enhanced schema formatting, especially for allOf, nested refs, and const fields.
    • Improved example generation, now preferring non-null values for optionals in instruct examples.
    • Removed dead code and deprecated methods.
  • Updated tests to reflect changes; removed or updated outdated unit tests.
  • Minor fixes and expanded model/vision handling.

Full Changelog: https://github.com/ExtensityAI/symbolicai/compare/v0.17.3...v0.17.4

- Python
Published by futurisold 5 months ago

symbolicai - v0.17.3

SymbolicAI v0.17.3 – Release Notes

Bug Fixes

  • Fixed recursive depth handling - Added proper recursion depth limiting (max 50) to prevent stack overflow in deeply nested structures
  • Fixed circular reference detection - Improved detection in dictionaries and nested models with proper visited tracking
  • Fixed JSON key type coercion - Removed manual string-to-int key conversion, now relies on Pydantic's built-in type coercion (strict=False)
  • Fixed example generation format - Changed from Python to JSON format in examples for better LLM compatibility

Changes

  • Removed ValidationHandlingPrimitives and ConstraintHandlingPrimitives classes (moved validation to Strategy)
  • Updated strategy.py to use Pydantic's type coercion for JSON validation
  • Improved _resolve_allof_type to handle edge cases better
  • Enhanced const field descriptions in schema generation

Testing

  • Added comprehensive test coverage for circular references and depth limits
  • Added negative path tests for validation edge cases
  • Updated tests to use JSON format instead of Python format for examples
  • Made test assertions more flexible to formatting changes

Full Changelog: https://github.com/ExtensityAI/symbolicai/compare/v0.17.1...v0.17.3

- Python
Published by futurisold 5 months ago

symbolicai - v0.17.1

SymbolicAI v0.17.1 – Release Notes

🚀 New Features & Enhancements

Enhanced LLMDataModel Capabilities

  • Advanced Type Support: Expanded support for complex Python types including:

    • Enum types with proper value serialization
    • Dictionary keys with non-string types (int, float, bool, tuple, frozenset)
    • Set and frozenset collections
    • Tuple types with specific element types
    • Deeply nested union types
  • Improved Schema Generation:

    • More accurate and readable schema representations for complex types
    • Better handling of allOf, anyOf, and oneOf JSON schema constructs
    • Enhanced enum type descriptions in schemas
    • Clearer definitions for array, set, and tuple types
  • Python-First Example Generation:

    • Examples now use Python syntax instead of JSON for better readability
    • Improved example generation for union types with multiple variants
    • Smart handling of dictionary keys based on their type annotations

Anthropic Claude Integration

  • New Model Support: Added support for Claude Opus 4.1 (claude-opus-4-1)
  • Enhanced Streaming: Improved handling of raw streaming responses from Anthropic API

🔧 Refactoring & Improvements

LLMDataModel Architecture Overhaul

  • Cleaner Method Organization: Refactored into smaller, focused static methods for better maintainability
  • Circular Reference Protection: Added safeguards against infinite loops in recursive models
  • Performance Optimizations:
    • Added @lru_cache decorators for expensive operations
    • Improved visited set tracking to prevent redundant processing

Code Quality Improvements

  • Type Validation: Added @model_validator for const field validation
  • JSON Serialization: Special handling for integer dictionary keys (JSON limitation workaround)
  • Format Enhancements: Better string representation for complex nested structures

🐛 Bug Fixes

Critical Fixes

  • Output Processing: Fixed issue where raw_output flag was not properly respected in result limiting
  • Dictionary Key Handling: Resolved JSON serialization issues with non-string dictionary keys
  • Circular References: Fixed infinite recursion in deeply nested or self-referential models

Edge Case Handling

  • Empty Collections: Proper formatting of empty lists and dictionaries
  • None Values: Consistent handling of None values in string representations
  • Special Characters: Improved handling of quotes, newlines, and unicode in field values

🧪 Test Coverage

Comprehensive Test Suite Addition

  • New Test Files: Added 4 dedicated test files with 600+ lines of test coverage:
    • test_llmdatamodel_basic.py: Core functionality tests
    • test_llmdatamodel_advanced.py: Complex scenarios and edge cases
    • test_llmdatamodel_comprehensive.py: Full feature coverage
    • test_llmdatamodel_integration.py: Real-world use case simulations

Test Categories

  • Type System Tests: Union types, optional fields, literals, enums
  • Validation Tests: Custom validators, constraints, const fields
  • Performance Tests: Large models, deep recursion, caching
  • Integration Tests: API responses, GraphQL, database configs, ML model configs
  • Edge Cases: Circular references, special characters, empty values

📝 Developer Experience

Improved Developer Workflow

  • Better Error Messages: More descriptive validation errors with remedy suggestions
  • Consistent Behavior: Unified handling of different field types across all operations
  • Documentation: Enhanced docstrings and type hints throughout the codebase

Backward Compatibility

  • All changes maintain backward compatibility with existing code
  • Version bump to 0.17.1 indicates minor feature additions without breaking changes

🎯 Impact Summary

This release significantly enhances the LLMDataModel framework's capability to handle complex, real-world data structures while maintaining clean, maintainable code. The extensive test coverage ensures reliability, and the performance optimizations make it suitable for production use cases. Developers will benefit from better type support, clearer examples, and more robust error handling.

Full Changelog: https://github.com/ExtensityAI/symbolicai/compare/v0.16.3...v0.17.1

- Python
Published by futurisold 5 months ago

symbolicai - v0.16.3

SymbolicAI v0.16.3 – Release Notes

  • Fixed example generation in instruct_llm for user-defined models and non-value unions.
  • Added test coverage for union and optional-union cases.

Full Changelog: https://github.com/ExtensityAI/symbolicai/compare/v0.16.2...v0.16.3

- Python
Published by futurisold 5 months ago

symbolicai - v0.16.2

SymbolicAI 0.16.2 – Release Notes

Core / LLMDataModel • Schema simplification now recognises – dict/mapping fields via additionalProperties – primitive alternatives inside anyOf/oneOf/union blocks • Definitions list includes non-object union variants. • Union handling: – Heuristic chooses the simplest subtype for examples. – instructllm emits one example per union alternative and wraps them in [[Example N]] blocks. • builddynamicllmdatamodel: removed cache; clearer field description.

Strategy • contract: – post_remedy default switched to False. – Robust dynamic type inference: separate input/output paths, improved error messages. – act() signature validation added.

Full Changelog: https://github.com/ExtensityAI/symbolicai/compare/v0.16.1...v0.16.2

- Python
Published by futurisold 5 months ago

symbolicai - v0.16.1

SymbolicAI v0.16.1 Release Notes

🆕 Added Developer Value

Dynamic Type Annotation in Contracts

  • Native Python Types in Contracts: The @contract decorator and contract system now fully support native Python types (e.g., str, int, list[int], dict[str, int], Optional[...], Union[...]) as inputs and outputs for pre, act, post, and forward methods.
    • Automatic Model Wrapping: These types are automatically wrapped/unwrapped into internal LLMDataModel classes with a single value field for validation, reducing verbosity and enabling more concise contracts.
    • Hybrid Contracts: Seamless mixing of LLMDataModel and native Python/typing types is now possible (e.g., LLMDataModel input and primitive list output).

Graceful Failure and Type Checking Enhancements

  • Gracious Degradation (graceful=True): Graceful mode suppresses exceptions and, if enabled, skips the final output type check. This allows flexible fallback behaviors in forward and is particularly useful for advanced error-handling scenarios.
  • Improved Exception Handling Flow: All contract step errors are now consistently captured in self.contract_exception. Developers may choose to propagate these or handle as needed in their forward logic.

Documentation and Visualization

  • Comprehensive Contract Flow Diagram: An PNG flowchart visualizing contract execution steps has been added to the docs (assets/images/contract_flow.png and docs/source/FEATURES/contracts.md) to aid developer understanding.
  • Expanded Documentation: Updated the contracts.md with clear examples, explanation of contract result/exception/fallback handling, and dynamic type annotation details.

Improved Local Engine Usability

  • llama.cpp Compatibility Note: Included tested commit and build setup references for users in the local engine documentation, increasing reproducibility.

🔧 Refactoring & Internal Improvements

Codebase Refactoring

  • Centralized Dynamic Model Creation: Introduced build_dynamic_llm_datamodel using Pydantic’s create_model with LRU caching for efficient, reliable dynamic class creation.
  • Signature and Dynamic Model Checks: Refactored contract internals (strategy.py) to automatically infer and enforce input/output type models—significantly reducing boilerplate for simple contracts.

Retry Strategy Tuning

  • Smarter Retry Defaults: Lowered default retry delays (faster backoff, less jitter) for validation/remedy functions, resulting in speedier remediation attempts.
  • Improved Pause/Backoff Logic: Retry backoff and jitter are now better parameterized per-attempt.

Robust Logging and Exception Surface

  • Consistent use of logger.exception across contract paths for full stack traces and easier debugging.

🐛 Bug Fixes

  • Type Coercion Oddities: Fixed subtle type and identity propagation/validation bugs for contracts mixing LLMDataModels and primitives.
  • Output Model Handling: Final output unwrapping and type error propagation behaves correctly in all graceful and non-graceful scenarios.
  • Constructor/Server Behavior: Dual writes for SYMAI server configuration ensure consistency regardless of startup location.
  • Splash Screen Formatting: UI cleanup in interactive menu for a more polished user experience.

🧪 Test Coverage

  • Extensive Unit Testing for Dynamic Types: Added robust tests for all dynamic annotation scenarios:
    • str, int, list, dict, Optional, Union, and nested types
    • Hybrid contracts mixing LLMDataModels and primitives
    • Graceful vs. strict output checking
    • Remedy behavior and error propagation
  • Multiple Test Cases Improved: Expanded/cleaned up contract tests for state, error path, edge cases, and fallback handling.
  • Visualization Flow Invariant: Flowchart confirms the correctness of the new, more generic contract machinery.

🚀 Upgrade Guide

  • For Developers of Contract-Decorated Classes:
    • You may now use standard Python/typing signatures directly anywhere in your contract methods!
    • Older explicit LLMDataModel-based code remains fully compatible.
  • For Library Extenders:
    • Use build_dynamic_llm_datamodel() to support arbitrary Python/typing types in new symbolic contract-based features.

Full Changelog: https://github.com/ExtensityAI/symbolicai/compare/v0.15.1...v0.16.1

- Python
Published by futurisold 5 months ago

symbolicai - v0.15.1

Release Notes – v0.15.1

  • Fix: Contract pre- and post-validation now correctly propagate input/output when no validation methods are implemented.
  • Fix: Return values restored for _validate_input and _validate_output to ensure data flow.
  • Test: Added coverage for skip pre/post scenarios and post-validation without remedy.

Full Changelog: https://github.com/ExtensityAI/symbolicai/compare/v0.15.0...v0.15.1

- Python
Published by futurisold 5 months ago

symbolicai - v0.15.0

SymbolicAI v0.15.0 – Release Notes

This release is almost entirely focused on developer-experience: easier installation, simpler APIs, tighter error handling, and a fresh batch of unit-tests. Migration effort should be low (see “Breaking changes” at the end).


Highlights / Added value for developers

• Brand-new lightweight Web-Scraping stack – New engine naive_webscraping (requests + trafilatura) and matching interface – Does not need a browser, works in headless environments and CI – Pre-seeds common consent/age cookies and follows meta-refresh redirects – symai.core.scrape decorator supersedes fetch – Extensive doc updates + tutorial (docs/ENGINES/webscraping_engine.md)

• First-class local Vector DB – Dedicated interface naive_vectordb (wrapping the in-memory VectorDB) – Supports add, search, config(save|load|purge) out of the box – Embedding model auto-switches: falls back to SentenceTransformers if no remote key is present – New default index path: ~/.symai/localdb/<index>.pkl

• Chatbot quality bump – SymbiaChat now uses the new interfaces map (cfg_to_interface) – [CRAWLER] tag replaced by [SCRAPER], [RETRIEVAL] by [FILE] – Automatic long-term memory persistence through the new vector-db interface – Verbose/debug mode now prints classification tags and scratch-pads via loguru

• Whisper improvements – Device auto-fallback with helpful warnings – get_bins() helper to chunk transcripts into N-minute windows – More explicit error messages for unsupported models / missing install

• Infrastructure & packaging – Project build now compatible with uv (pyproject.toml [tool.uv], README snippets) – Core dependency list trimmed (removed accelerate), optional extras split into fine-grained groups (hf, webscraping, services, …) – Dev group (dependency-groups.dev) with pytest and isort.symai folder is always created under the active debug dir (fixes path mix-ups)


Refactoring & code clean-up

Crawler deprecation – Removed selenium driver, driver helpers and old interface/engine (engine_selenium.py, extended.crawler, docs) – All decorators, prompts, docs renamed from crawler to scraper

• VectorDB internals – Large readability pass; duplicated code removed, warnings switched to CustomUserWarningVectorDBIndexEngine refactored for clearer control-flow, explicit error paths, deep-copied config, consistent naming

• Chat subsystem – Switched to loguru logger – Memory window size, top-k and index name configurable via constructor – Redundant functions & unused variables removed

• Setup wizard slimmed down – now only shows an intro and creates an empty config; the previous CLI questions were outdated and are gone.


Bug fixes

✓ Fixed .symai/config discovery when running in SYMAI_DEBUG=1 mode ✓ WhisperEngine no longer crashes if whisper is missing – clear ImportError with pip hint ✓ VectorDB.purge() cleared in-memory state and removes stale files ✓ semassert() returns boolean and no longer raises by default (tests rely on it) ✓ Various doc links, typos and outdated references (speechengine → speechtotextengine, …)


Test coverage

  • tests/engines/webscraping/… – crawls an online page in all output formats and extracts text from a PDF
  • tests/engines/index/test_naive_vectordb_engine.py – add/search/save/load/purge happy path
  • tests/engines/speech-to-text/test_whisper_engine.py – transcription + language detection paths
  • tests/engines/symbolic/test_wolframalpha_engine.py – basic factual and math queries → Total lines under test up significantly; CI runtime down because Selenium was dropped.

Breaking changes

  1. Interface("selenium"), core.fetch() and [CRAWLER] prompt tags were removed. → Use Interface("naive_webscraping") and [SCRAPER] instead.

  2. Interface("vectordb") is replaced by Interface("naive_vectordb"), and operations now expect/return plain strings instead of zipped tuples.

  3. Optional extra names changed (seleniumwebscraping; new granular groups). Update your pip install symbolicai[…] commands.

  4. Version bumped to 0.15.0 – pin accordingly in your environment files.

Enjoy the cleaner, lighter stack! Report issues or PRs on GitHub.

Full Changelog: https://github.com/ExtensityAI/symbolicai/compare/v0.14.0...v0.15.0

- Python
Published by futurisold 5 months ago

symbolicai - v0.14.0

SymbolicAI v0.14.0 – Release Notes

High-level Summary • New cloud provider support: Groq Cloud (Qwen-3, Llama-3.3, etc.) • Cleaner, more consistent error messages across all LLM engines • Significantly shorter “Getting Started” instructions—configuration is now managed via symai.config.json instead of a long list of environment variables • Miscellaneous bug fixes, test improvements, and documentation pruning

──────────────────────────────────────────────────────── 1. New Features • Groq Engine (symai.backend.engines.neurosymbolic.engine_groq) – Full neuro-symbolic wrapper for Groq Cloud’s OpenAI-compatible API – Supports reasoning models that expose <think> trace tags – Activate with: "NEUROSYMBOLIC_ENGINE_MODEL": "groq:qwen/qwen3-32b" – Token counting, vision, and parallel-tool calls are explicitly marked “Not Implemented” with clear warnings

Thinking Trace Support Expansion – Added support for Groq reasoning models alongside Claude, Gemini, and DeepSeek

  1. Bug Fixes & Reliability • All LLM engines now emit a uniform error message Error during generation. Caused by: <original-exception> (replaces the provider-specific messages such as “Anthropic API request failed…”)

Search Engines (OpenAI & Perplexity) wrapped API calls in try/except to avoid unhandled crashes

  1. Developer / DX Improvements • Installation & Configuration Simplification – Removed long “export XYZAPIKEY” snippets from README and docs – Single command symconfig bootstraps the config file and prints helpful hints – All optional dependencies (ffmpeg, selenium, etc.) now have a single warning block instead of per-OS commands

Testing & CI – Added semassert() helper for “weak assertions” that warn instead of fail when the model is flaky – New marker @pytest.mark.skipif(NEUROSYMBOLIC.startswith('groq'), …) to skip tests that are not yet supported (token counting, vision)

  1. Documentation & House-keeping • Removed the “Summary” section at the end of the neuro-symbolic engine doc (it was redundant) • Pruned the large “Pattern Matching & Intelligence Operations” block from the primitives doc—moved remaining examples into relevant sections • Updated code examples to use print(res) instead of print(res.value) for consistency with new return types

Full Changelog: https://github.com/ExtensityAI/symbolicai/compare/v0.13.2...v0.14.0

- Python
Published by futurisold 6 months ago

symbolicai - v0.13.2

Bug Fixes

  • Validation Retry Logic: The retry logic for validation in strategy.py has been improved. Previously, semantic validation errors could cause incorrect behavior, potentially skipping the final allowed attempt. The code now ensures that the maximum number of retries are respected (with N+1 total tries), and if semantic validation fails on the last allowed attempt, a clear error is propagated and logged.

  • README Example Correction: Fixed a bug in the validate_some_field function in the README example (valid_sizesvalid_opts) to correctly match the list variable name.

Improvements

  • Documentation Notes:
    • Added note in the README: The project name credits Allen Newell and Herbert Simon.
    • Added clearer information regarding enabling/disabling user warnings (SYMAI_WARNINGS=0) and community data collection features.
    • Cleaned up configuration documentation for clarity.

Full Changelog: https://github.com/ExtensityAI/symbolicai/compare/v0.13.1...v0.13.2

- Python
Published by futurisold 6 months ago

symbolicai - v0.13.1

This is a patch release focused on refining the documentation to make SymbolicAI easier to use and extend.

✨ New & Improved

  • Clearer Symbol Concepts: The README and documentation have been significantly improved to better explain the core concept of Syntactic (literal) vs. Semantic (neuro-symbolic) modes for Symbol objects. This should make it easier for new users to get started.
  • Updated Custom Engine Guide: The guide for creating a custom engine has been updated to use the more modern GPTXChatEngine, reflecting current best practices.

🔧 Fixes & Changes

  • Updated Search Engine Model: The default model for the Perplexity search engine (SEARCH_ENGINE_MODEL) has been updated from llama-3.1-sonar-small-128k-online to sonar.

📖 Documentation

  • The main README.md has been rewritten to be more concise and welcoming, with better examples for Symbol and Contract.
  • The large table of primitives in the README has been condensed, linking to the full documentation for a cleaner first impression.

Full Changelog: https://github.com/ExtensityAI/symbolicai/compare/v0.13.0...v0.13.1

- Python
Published by futurisold 6 months ago

symbolicai - v0.13.0

SymbolicAI v0.13.0 Release Notes

This release introduces a major overhaul of the core API, focusing on clarity, power, and developer experience. We've simplified how you interact with semantic operations, massively improved our documentation, and added powerful new features.

✨ Highlights

  • New Primitives API: We've introduced a more intuitive way to work with semantic operations. The old only_nesy=True flag is now deprecated. You can now enable semantic behavior on a Symbol either at creation time with semantic=True or on-the-fly using the .sem property. For standard Python behavior, use the .syn property or simply use the symbol as is.

```python # Old way (deprecated) # Symbol('Hello my enemy', only_nesy=True) - 'enemy' + 'friend'

# New way
Symbol('Hello my enemy', semantic=True) - 'enemy' + 'friend'
# Or on-the-fly
Symbol('Hello my enemy').sem - 'enemy' + 'friend'

```

  • Massive Documentation Overhaul: We've rewritten our README.md from the ground up to be more intuitive. It now features a comprehensive table of all supported primitives, detailing their syntactic and semantic behavior. We've also added a brand new, in-depth Primitives Cheat-Sheet with runnable examples for every operation.

  • New map Primitive: A powerful new .map() primitive has been added for semantic mapping over iterables. You can now apply natural language instructions to transform elements in lists, tuples, sets, and dictionaries, while preserving the container type.

python # Convert fruits to vegetables, leave other items unchanged sym_list = Symbol(['apple', 'banana', 'cat', 'dog']) result = sym_list.map('convert all fruits to vegetables') # Expected output might be: ['carrot', 'broccoli', 'cat', 'dog']

🚀 New Features & Enhancements

  • Semantic startswith/endswith: The .startswith() and .endswith() methods can now be used in semantic mode to check for conceptual prefixes or suffixes (e.g., Symbol("The apple fell", semantic=True).startswith("fruit") would return True).
  • Improved Clustering: The .cluster() primitive now uses the more robust HDBSCAN algorithm (from scikit-learn) and allows you to pass custom clustering parameters as kwargs.
  • Enhanced Multiprocessing: The @parallel decorator is now significantly more efficient, reusing multiprocessing pools instead of creating new ones for each call. This leads to better performance and resource management for parallel tasks.
  • Flexible Search Engine: The GPTXSearchEngine can now be initialized with a specific API key and model, making it easier to use in diverse configurations.
  • Generation Control: Many decorators (summarize, equals, correct, etc.) now accept a stop parameter for more precise control over text generation.

🐛 Bug Fixes & Improvements

  • Improved Prompts: Prompts for logical and symbolic expression evaluation have been completely overhauled with more intuitive examples, leading to better and more reliable results.
  • Robust Data Parsing: The internal ASTPostProcessor is now more powerful and can recursively parse nested data structures, improving the reliability of operations that return complex objects like lists of dictionaries.
  • Updated Gemini Models: Updated supported Google model names to the latest stable versions (e.g., gemini-2.5-pro).
  • Code Correction: The .correct() method now requires an exception object, allowing it to provide much more context-aware code corrections.

⚠️ Breaking Changes & Deprecations

  • API Change for Semantic Operations: The only_nesy and iterate_nesy parameters in the Symbol constructor are deprecated. Please use semantic=True or the .sem property to enable neuro-symbolic behavior.
  • Class Rename: SymbolArithmeticPrimitives has been renamed to SymbolOperatorPrimitives to better reflect its scope.

📚 Documentation

  • New Example Notebooks: We've added new notebooks for Primitives and Contracts in the examples/ directory, providing interactive, hands-on tutorials.
  • Documentation Cleanup: Old documentation pages for engines and some features have been marked as outdated, with pointers to our more current and comprehensive DeepWiki page.
  • Legacy Notebooks: Older notebooks have been moved to a legacy/ directory to signify they may not reflect the latest API changes.
  • Running Tests: The README.md now includes instructions on how to run the test suite locally.

- Python
Published by futurisold 6 months ago

symbolicai - v0.12.1

Release Notes - SymbolicAI v0.12.1

🐛 Bug Fixes

  • Search Engine Model Override: Fixed OpenAI search engine to properly respect model parameter overrides, ensuring MetadataTracker works correctly
  • Contract Validation Logic: Improved contract method validation logic for better error handling in edge cases

🔧 Maintenance & Infrastructure

  • Google Gemini Models: Updated supported Gemini model identifiers to use prefix matching (gemini-2.5-pro-preview-, gemini-2.5-flash-preview-) for better compatibility with latest model snapshots

- Interface Naming: Added consistent name attribute initialization across all extended interfaces (25+ interfaces including blip_2, clip, dall_e, flux, python, terminal, etc.) for improved debugging and introspection

Full Changelog: https://github.com/ExtensityAI/symbolicai/compare/v0.12.0...v0.12.1

- Python
Published by futurisold 7 months ago

symbolicai - v0.12.0

SymbolicAI v0.12.0 Release Notes

🎉 Major New Features

Google Gemini Support

  • NEW: Added full support for Google Gemini models (gemini-2.5-pro-preview-05-06, gemini-2.5-flash-preview-05-20)
  • NEW: Gemini reasoning engine with thinking trace support
  • NEW: Multi-modal support for Gemini (images, videos, audio, documents)
  • NEW: Token counting and cost estimation for Gemini models

OpenAI Search Engine

  • NEW: Native OpenAI search capabilities with citation support
  • NEW: Interface('openai_search') for web search with AI responses
  • NEW: Configurable search context size and user location parameters
  • NEW: Automatic citation extraction and formatting

Enhanced Function/Tool Calling

  • IMPROVED: Universal function calling support across OpenAI, Claude, and Gemini
  • NEW: Consistent metadata format for function calls across all engines
  • NEW: Better error handling and multiple tool call detection

🔧 Significant Improvements

Metadata Tracking & Cost Estimation

  • NEW: MetadataTracker component for detailed usage tracking
  • NEW: RuntimeInfo utility for cost estimation and analytics
  • NEW: Per-engine token counting and API call tracking
  • IMPROVED: Better metadata aggregation across multiple engine calls

Engine Enhancements

  • IMPROVED: Enhanced Claude reasoning engine with better thinking trace support
  • IMPROVED: Updated model support for Claude 4.0 and Sonnet 4.0
  • IMPROVED: Better streaming support across all engines
  • IMPROVED: Consistent error handling with CustomUserWarning

Vision & Media Processing

  • IMPROVED: Enhanced image processing across all vision-capable models
  • NEW: Frame extraction support for video content
  • IMPROVED: Better handling of media patterns in prompts

🐛 Bug Fixes

Core Fixes

  • FIXED: Token truncation issues across different engines
  • FIXED: Raw input processing for all engine types
  • FIXED: Response format handling for JSON outputs
  • FIXED: Self-prompting functionality across engines

Engine-Specific Fixes

  • FIXED: Claude streaming response collection
  • FIXED: OpenAI tool call argument parsing
  • FIXED: Deepseek response format handling
  • FIXED: Vision pattern removal in prompts

🔄 Breaking Changes

Deprecated Features

  • REMOVED: Legacy experimental engines (Bard wrapper, GPT fine-tuner, etc.)
  • REMOVED: Old completion-based OpenAI engine
  • CHANGED: Standardized engine initialization patterns

API Changes

  • CHANGED: Thinking configuration format for Claude (simplified structure)
  • CHANGED: Consistent error handling across all engines
  • CHANGED: Engine name property now required for all engines

📚 Documentation & Testing

Documentation Updates

  • UPDATED: Comprehensive engine documentation with examples
  • NEW: Cost estimation and metadata tracking examples
  • UPDATED: Search engine configuration guides
  • NEW: Multi-modal content processing examples

Testing Improvements

  • NEW: Mandatory test markers for critical functionality
  • IMPROVED: Engine-specific test coverage
  • NEW: Function calling tests across all supported engines
  • IMPROVED: Vision processing test coverage

🔧 Developer Experience

Configuration

  • NEW: Simplified engine configuration patterns
  • IMPROVED: Better error messages for missing API keys
  • NEW: Engine-specific timeout and retry parameters

Utilities

  • NEW: RuntimeInfo for usage analytics
  • NEW: Enhanced prompt registry with custom delimiters
  • IMPROVED: Better file handling and media processing utilities

📋 Dependencies

  • ADDED: google-genai>=1.16.1 for Gemini support
  • UPDATED: Various dependency versions for compatibility

🚀 Performance

  • IMPROVED: Better token counting accuracy where supported
  • IMPROVED: Optimized streaming response handling
  • IMPROVED: Enhanced memory usage for large media files

Note: This release focuses heavily on expanding AI model support and improving the developer experience. The most accurate documentation is always the code itself - look for the mandatory test markers for guaranteed functionality.

Upgrade Notes: - Update your configuration for any Claude thinking configurations - Review engine-specific documentation for new capabilities - Consider migrating to the new metadata tracking system for cost monitoring

Full Changelog: https://github.com/ExtensityAI/symbolicai/compare/v0.11.0...v0.12.0

- Python
Published by futurisold 7 months ago

symbolicai - v0.11.0

Release Notes for v0.11.0

✨ New Features

  • Contract Performance Statistics Tracking

    • Added a contract_perf_stats method to contract-decorated classes, which tracks and reports granular timing statistics (mean, std, min, max, percentage) for each contract operation: input validation, act execution, output validation, forward execution, total execution, and "overhead" (untracked contract time).
    • Unit tests exercise and validate this detailed performance statistics capability.
  • Improved Type and Semantic Validation

    • The contract mechanism now leverages a single TypeValidationFunction to handle both type and semantic validation, streamlining error handling and remedy functions.
    • The previously separate SemanticValidationFunction is now unified, reducing code duplication and making semantic and type checks more consistent.
  • Rich Field Descriptions for LLM Guidance

    • Strongly encourage and enforce the use of descriptive Field(description="...") for all LLMDataModel attributes. These descriptions are directly used to improve LLM prompting, validation, error messages, and data generation.
    • Updated documentation with clearer guidance and rationale on crafting informative descriptions and prompts.

🐛 Bug Fixes & Refactorings

  • Refined Contract Input and Output Handling

    • The contract decorator now strictly enforces keyword arguments (no positional input) and validates the input type up-front.
    • Input object identity and propagation through the contract lifecycle are preserved and tested (no accidental re-instantiation).
  • Improved Error Reporting & Context

    • Type and semantic validation errors are now accumulated and reported with greater clarity when remedy retries are enabled.
    • Error accumulation context is correctly passed to remedies, improving developer diagnostics.
  • Act Method Refactoring

    • The act method inside contracts is validated for correct signature and type annotations.
    • If no act is defined, the input is propagated unchanged, simplifying state-modifying contracts.
  • Output Type Checks

    • Output from contracts is checked against expected type annotation, with informative error messages if mismatches are detected.
  • Contract Performance Test Coverage

    • New and expanded tests for:
    • End-to-end contract flows with state-modifying act methods.
    • Verification that the same input object is propagated and contract state changes are handled as expected.
    • Tracking and assertion of contract performance statistics.
  • Codebase Cleanup

    • Removed unused imports (e.g., SemanticValidationError class and related references).
    • Simplified logic around data model registration and remedy handling.

📘 Documentation

  • Expanded and clarified the documentation for contracts, field descriptions, prompt design, and the role of pre/post validation.
  • Added best practices for driving LLMs with meaningful validation and semantic checks.
  • Highlighted the separation of static contract prompts and dynamic input state.

Full Changelog: https://github.com/ExtensityAI/symbolicai/compare/v0.10.0...v0.11.0

- Python
Published by futurisold 8 months ago

symbolicai - v0.10.0

SymbolicAI Release Notes (v0.10.0)

🚀 New Features

1. Contracts System & Design by Contract (DbC) Support

  • Decorator-Based Contracts: Introduction of the @contract class decorator (inspired by Design by Contract principles) for Expression subclasses.
  • Pre-conditions, Post-conditions, and Intermediate Actions: Classes can now define pre, act, and post methods to enforce input validation, intermediate processing, and output validation — all with optional LLM-based remedies.
  • Rich Input and Output Modeling: Mandatory use of LLMDataModel (Pydantic-based) for all contract-associated data, providing structured validation and schema-driven prompting.
  • LLM-Guided Self-Remediation: If enabled, contract failures in pre-conditions or post-conditions can be self-corrected by LLMs using descriptive error messages as corrective prompts.
  • Enhanced Composability and Reliability: Contracts make AI components more robust and predictable, aiding in both integration and maintenance.
  • Clear Fallback Behavior: Even when contracts fail, original forward logic executes with a clear success indicator and contract result for user-defined fallback strategies.

2. Act Method Support

  • Contracts can include an optional act method for intermediate transformations between input validation and output production, with strict signature/type checking.

3. Enhanced Logging & Verbose Mode

  • Verbose mode uses rich panels for visually appealing and structured logging of contract-related operations, error panels, schemas, and dynamic prompts.

4. Error Accumulation Option

  • New accumulate_errors switch for contract decorators allows error messages to be accumulated and shown to the model across multiple remedy attempts to aid LLM self-correction.

5. Developer Tooling Improvements

  • contract_perf_stats() provides per-call timing information to help optimize contract execution and debugging.

6. Extensive Documentation

  • New FEATURES/contracts.md: Comprehensive guide on contracts, their parameters, execution flow, developer patterns, and practical examples.

7. Detailed Testing

  • Addition of tests/contract/test_contract.py with thorough coverage for contract flow, act method, fallback logic, signature checks, contract state management, and various edge cases.

🐞 Bug Fixes & Minor Improvements

  • input_type_validation error message is now more detailed and informative.
  • Contract decorator and remedies now properly distinguish between positional and keyword arguments, preventing ambiguity.
  • Output type validation strictly checks for correct types, preventing silent contract malfunctions.
  • Original forward argument passing has been improved to ensure correct input after contract handling.
  • Improved clarity in docstrings, method comments, and public documentation for easier onboarding.
  • Numerous logging messages refined for clarity and utility.

📚 Documentation

  • docs/source/FEATURES/contracts.md: In-depth, example-driven guide to symbolic contracts, covering all decorator parameters, remedy workflow, fallback/forward execution, and best practices.
  • SUMMARY.md is updated to include the new Contracts section in documentation navigation.

Full Changelog: https://github.com/ExtensityAI/symbolicai/compare/v0.9.5...v0.10.0

- Python
Published by futurisold 8 months ago

symbolicai - v0.9.5

Release Notes – v0.9.5

Bug Fixes & Improvements

  • Packaging Improvements:

    • Updated pyproject.toml to change the [tool.setuptools.packages.find] include pattern from ["symai"] to ["symai*"]. This fixed a nasty import bug. This ensures that all subpackages (e.g., symai.submodule) are now correctly included during package builds and distributions.
  • Testing Configuration:

    • Adjusted pytest.ini to deselect the specific test tests/engines/neurosymbolic/test_nesy_engine.py::test_token_truncator, likely to address a test flakiness or to temporarily ignore a known issue.
    • Minor cleanup to remove an unnecessary trailing line.
  • General Maintenance:

    • Version bumped from 0.9.4 to 0.9.5 in symai/__init__.py to reflect the new release.
    • Updated .gitignore to ignore .bash_history files, helping prevent accidental commits of shell history.

Full Changelog: https://github.com/ExtensityAI/symbolicai/compare/v0.9.4...v0.9.5

- Python
Published by futurisold 8 months ago

symbolicai - v0.9.4

Release Notes for v0.9.4


🔧 Improvements

  • Updated Documentation Link
    • Changed the main documentation badge and link in the README from ReadTheDocs to the new GitBook documentation.
    • Added new Twitter badge for @futurisold to the README alongside existing social and contribution links.

🐛 Bug Fixes

  • No direct bug fixes were indicated in this diff.

🔢 Version Update

  • Bumped the version in symai/__init__.py from 0.9.3 to 0.9.4.

Full Changelog: https://github.com/ExtensityAI/symbolicai/compare/v0.9.3...v0.9.4

- Python
Published by futurisold 8 months ago

symbolicai - v0.9.3

Release Notes

Version 0.9.3

🆕 New Features

  • Neuro-Symbolic Engine Documentation
    • Completely new, comprehensive documentation added for the "Neuro-Symbolic Engine" (docs/source/ENGINES/neurosymbolic_engine.md).
    • Covers usage patterns, backend differences, function/tool calls, JSON enforcement, thinking trace, vision input, token handling, preview mode, and more.
    • Highlights model-specific usage (OpenAI, Claude, Deepseek, llama.cpp, HuggingFace).
  • Documentation Overhaul
    • Switched documentation system to GitBook structure:
    • New .gitbook.yaml configuration pointing to Markdown-based docs.
    • Added SUMMARY.md for navigation and topic overview.
    • Documentation hierarchy is now streamlined and modernized.
    • Reorganized Engines, Features, Tutorials, and Tools in clear sections.
  • Enhanced Argument Support
    • Argument class in symai/core.py now always initializes return_metadata property, improving consistency and capability for backend engines to return extra metadata.

🐛 Bug Fixes

  • Anthropic Claude Engine Fixes
    • Fixed empty prompt edge case: Ensures user prompt is non-empty ("N/A") to avoid Anthropic API errors.
    • Proper handling of JSON response format by stripping wrapping Markdown code fences ( json `, ) so the output is pure JSON.
    • When "thinking trace" is enabled, metadata is correctly populated with the model's "thinking" output.
  • DeepSeek Reasoning Engine Fixes
    • Now always returns answer content as the main output and thinking trace under metadata["thinking"], matching documented examples.

⚡ Other Improvements

  • Docs Clean-Up
    • Removed all Sphinx-based files and REST/rst sources, including configuration files, API reference, and build artifacts. Old ReadTheDocs and Sphinx themes are now deprecated.
    • Updated all doc links and cross-references to work with the new Markdown- and GitBook-based structure.
  • Documentation Content Improvements
    • More explicit explanations and structure in Features, Tools, and Tutorials (headings, options, and section hierarchies improved).
    • Outdated rst-formatted docs are removed, new Markdown-based docs are in place.

🔧 Internal/Infrastructure

  • Incremented project version to 0.9.3.
  • Set up for future multi-engine documentation and easier addition of new backends or features.
  • Codebase now explicitly sets the SYMAI_VERSION = "0.9.3".

Full Changelog: https://github.com/ExtensityAI/symbolicai/compare/v0.9.2...v0.9.3

- Python
Published by futurisold 8 months ago

symbolicai - v0.9.2

Release Notes: v0.9.2


✨ New Features

  • Unified Drawing Interface

    • Added a new high-level drawing interface with two main options:
    • gpt_image: Unified wrapper for OpenAI image APIs (supports dall-e-2, dall-e-3, gpt-image-*). Exposes OpenAI’s full Images API, including advanced parameters (quality, style, moderation, background, output_compression, variations, edits—see updated docs).
    • flux: Simplified interface for Black Forest Labs’ Flux models via api.us1.bfl.ai.
    • Both interfaces now return a list of local PNG file paths for easy downstream consumption.
    • Documented all parameters and new interface usage for both engines.
  • New Engines

    • Added symai.backend.engines.drawing.engine_gpt_image for OpenAI's latest Images API.
    • Deprecated/removed legacy engine_dall_e.py in favor of unified engine_gpt_image.py.
  • Extended Interfaces

    • New public classes: symai.extended.interfaces.gpt_image and updated flux interface for consistency and enhanced discoverability.
    • Added comprehensive tests for drawing engines covering all models and modes (create, variation, edit).

🛠️ Improvements & Fixes

  • Flux Engine

    • Now downloads result images as temporary local PNG files. Handles non-None payload.
    • Uses correct API endpoint (api.us1.bfl.ai).
    • Cleans up error handling, makes API parameters robust against None values.
  • OpenAI Model Support

    • Added support for cutting-edge OpenAI models:
    • Chat/Vision: gpt-4.1, gpt-4.1-mini, gpt-4.1-nano
    • Reasoning: o4-mini, o3
    • Updated max context/response tokens for new models (gpt-4.1* supports up to ~1M context, 32k response tokens).
    • Tiktoken fallback: If initialization fails or support is missing for a new OpenAI model, falls back to "o200k_base" encoding, shows a warning.
  • OpenAI Mixin Enhancements

    • Refined token calculations and model support for new OpenAI and BFL models.
    • Ensured consistent handling of context/response tokens as new models are released.

📚 Documentation

  • Overhauled docs/source/ENGINES/drawing_engine.md:
    • Clearly describes new unified drawing API, how to use models, available parameters, and best practices.
    • Includes ready-to-use code examples for both OpenAI and Flux pathways.

🧪 Testing

  • Comprehensive pytest suite for drawing engines now included (tests/engines/drawing/test_drawing_engine.py).
  • Tests gpt_image create, variation, edit; tests Flux for all supported models.
  • Verifies correct output (generated images exist and are valid).

⚠️ Breaking/Behavioral Changes

  • Legacy DALL·E Engine removed (enginedalle.py). Use gpt_image for all OpenAI image generation.
  • All engine calls now return image file paths (as list), not just URLs.
  • Some parameter names and behaviors have changed (see updated docs).

If you use programmatic image generation, especially OpenAI’s DALL·E or gpt-image models, please update your code and refer to the new documentation. The new design offers greater flexibility, future-proofing for new models and APIs, and consistent developer ergonomics.


Full Changelog: https://github.com/ExtensityAI/symbolicai/compare/v0.9.1...v0.9.2

- Python
Published by futurisold 8 months ago

symbolicai - v0.9.1

Release Notes for Version 0.9.1

New Features

  • Dynamic Engine Switching: Introduced DynamicEngine context manager which allows dynamically switching neurosymbolic engine models. This improves flexibility in using different models within the same context.
  • Engine Mapping for Neurosymbolic Engines: Added a new ENGINE_MAPPING that maps supported model names to their respective engine classes for easier integration and management.
  • Split Model Support: The models for Anthropic, DeepSeek, and OpenAI have been delineated into specific categories (Chat, Reasoning, Completion, and Embedding models) for better clarity and management.

Improvements

  • Config Management Enhancement: Replaced multiple instances of self.config = SYMAI_CONFIG with self.config = deepcopy(SYMAI_CONFIG) to ensure configurations are isolated for each engine instance.
  • Enhanced Logging and Error Handling: Improved logging details including stack traces for better debugging and error tracking within the _process_query and _process_query_single functions.
  • Functionality Testing and Validation: Added several new test cases, especially focusing on testing dynamic engine switching and fallback query executions to ensure robustness.

Bug Fixes

  • Token Computation Correction: Fixed the incorrect computation of artifacts in the GPTXChatEngine and GPTXReasoningEngine classes.
  • Payload Adjustments: Adjustments on payload preparation for the GPTXChatEngine especially for chatgpt-4o-latest, ensuring certain fields are correctly omitted.
  • Argument Preparation Bug Fixes: Fixed issues in _prepare_argument to properly handle raw input and enhance preprocessing capabilities.
  • Self Prompt Improvements: Improved self-prompting logic in Symbol to ensure correct responses and validation.
  • Signature and Type Annotations: Updates on the usage of inspect.Signature methods for resolving return annotations, ensuring compatibility with Python's typing system.

Others

  • Refactoring & Cleanup: Conducted significant code refactoring and cleanup, including reorganizing the test suite and renaming test files for better maintainability and clarity.
  • Warning & Constraint Handling: Adjusted warnings and constraint handling to improve message clarity for developers working with the library.

Full Changelog: https://github.com/ExtensityAI/symbolicai/compare/v0.9.0...v0.9.1

- Python
Published by futurisold 9 months ago

symbolicai - v0.9.0

These changes expand SymbolicAI's capabilities with next-generation models from OpenAI, DeepSeek, and Anthropic.

Major Changes

New Models Support

  • Added support for Claude 3.7 Sonnet with extended thinking capabilities
  • Added support for OpenAI's o1 and o3-mini models with reasoning mode
  • Added DeepSeek Reasoner model support

New Reasoning Features

  • Implemented structured reasoning support across multiple LLM providers:
    • Claude 3.7 with extended thinking (up to 64k tokens for thinking)
    • OpenAI's o1/o3 models with reasoning mode
    • DeepSeek Reasoner with explicit reasoning capabilities

Engine Improvements

  • Refactored Anthropic Claude engines for improved response handling
  • Added support for streaming responses with Claude models
  • Improved token counting and context management
  • Enhanced tool use support across different model providers

Architecture Changes

  • Modularized request payload preparation with cleaner code structure
  • Improved error handling for API interactions
  • Added consistent handling for reasoning/thinking outputs

Developer Experience

  • Better handling of maxtokens vs maxcompletion_tokens for OpenAI models
  • More consistent self-prompting behavior
  • Enhanced JSON response format support

Dependencies

  • Added loguru (≥0.7.3) for improved logging
  • Added aiohttp (≥3.11.13) for async HTTP requests

Version Update

  • Increased version from 0.8.0 to 0.9.0

Full Changelog: https://github.com/ExtensityAI/symbolicai/compare/v0.8.0...v0.9.0

- Python
Published by futurisold 10 months ago

symbolicai - v0.8.0

This release significantly improves the framework's configuration management, local model support, and validation capabilities while maintaining backward compatibility where possible. Users should review the new configuration system documentation when upgrading (see docs here).

Major Features

New Priority-Based Configuration System

  • Introduced a hierarchical configuration management system with three priority levels:
    1. Debug Mode (Current Working Directory) - Highest priority
    2. Environment-Specific Config (Python Environment) - Second priority
    3. Global Config (Home Directory) - Lowest priority
  • Added symconfig command to inspect current configuration setup
  • Configurations now properly cascade and fall back based on priority

Enhanced Contract System

  • Added new contract decorator for Design by Contract (DbC) pattern
  • Supports both type and semantic validation
  • Includes retry mechanisms and performance monitoring
  • Added comprehensive performance statistics tracking for contract execution

Improved Local Model Support

  • Extended support for local LLaMA.cpp models:
    • Added embedding capabilities through local models
    • Support for both Python bindings and direct C++ server
    • Added batch processing for embeddings
  • Enhanced server configuration options for local models

Package Management Improvements

  • Enhanced sympkg with new features:
    • Support for local package installation
    • Git submodules initialization option
    • Improved package update mechanism
  • Added --local-path option for installing from local directories
  • Added --submodules flag for Git repository operations

Breaking Changes

  • Configuration file locations have changed due to new priority system
  • Environment variables structure updated for speech-related settings
  • Some API methods now return different types/structures
  • Updated dependency requirements:
    • numpy: Now supports up to 2.1.3
    • openai: Minimum version increased to 1.60.0

New Features

  • Added MetadataTracker for better usage tracking and statistics
  • Enhanced token truncation system with smart percentage calculation
  • Added new validation primitives for type and semantic checking
  • Improved error handling and reporting
  • Added new data models for structured input/output

Improvements

  • Better handling of JSON validation and error correction
  • Enhanced error messages and logging
  • Improved documentation structure
  • Better support for local development workflows
  • Enhanced configuration management utilities

Dependencies

  • Added new dependencies:
    • nest-asyncio>=1.6.0
    • rich>=13.9.4
  • Optional dependency for LLaMA.cpp: llama-cpp-python[server]>=0.3.7

Documentation

  • Reorganized API documentation structure
  • Added comprehensive configuration management guide
  • Improved package management documentation
  • Added new examples and use cases
  • Enhanced local engine documentation

Bug Fixes

  • Fixed configuration cascade issues
  • Improved error handling in package management
  • Fixed token counting in various scenarios
  • Addressed memory leaks in long-running processes
  • Fixed various edge cases in validation systems

Developer Tools

  • Added new symconfig command for configuration inspection
  • Enhanced symdev and sympkg utilities
  • Improved debugging capabilities
  • Added performance monitoring tools

Full Changelog: https://github.com/ExtensityAI/symbolicai/compare/v0.7.4...v0.8.0

- Python
Published by futurisold 10 months ago

symbolicai - v0.7.5

Major Features

  • Added GUI-based installer for SymbolicAI with support for Windows, macOS (Universal Binary), and Linux
  • Introduced Lean4 engine support for formal verification and theorem proving
  • Added shell application (app.py) for easier CLI access
  • Implemented plugin system with configurable prefix commands in shell

Engine Improvements

  • Enhanced token handling with new truncation strategies for large inputs
  • Added support for GPT-4 Turbo and Claude models with improved API integration
  • Updated Anthropic Claude integration with latest API changes
  • Enhanced Perplexity API integration for search capabilities
  • Improved error handling and API key management across engines

Documentation & UI

  • Updated installation and quickstart guides
  • Replaced logo with new banner design
  • Enhanced code examples and documentation clarity
  • Updated Python package dependencies and version requirements

Core Functionality

  • Improved conversation handling with better context management
  • Enhanced document retrieval and indexing capabilities
  • Added support for metadata preservation in document processing
  • Improved memory management for conversations
  • Enhanced vector database operations

Development & Build

  • Added comprehensive build system for creating installers
  • Improved icon handling and conversion utilities
  • Enhanced Git integration for package management
  • Updated environment configuration and dependency management

Bug Fixes & Optimizations

  • Fixed conversation state handling
  • Improved error handling in shell commands
  • Enhanced token management for large inputs
  • Fixed vector database cleanup operations
  • Optimized memory usage in conversation handling

Configuration

  • Updated minimum Python requirement to 3.10
  • Added new configuration options for API endpoints
  • Enhanced package dependency management
  • Updated core dependencies to latest stable versions

Breaking Changes

  • Changed minimum Python version requirement to 3.10
  • Modified conversation API interface
  • Updated API handling for newer model versions
  • Changed package installation and import mechanisms

- Python
Published by futurisold 11 months ago

symbolicai - v0.7.0

Release Notes

New Features

  • Support for Latest Models:
    • Added support for Claude-3-5-Haiku.
    • Integrated the latest Anthropic models.
    • Added support for Black Forest Labs' Flux image generation models.
  • Image Rendering Enhancements:
    • Introduced image rendering model configuration and defaults.
    • Refactored the module name from imagerendering to drawing engine for better clarity.
  • Symsh Enhancements:
    • Added support for commands on Symsh.
  • Documentation Enhancements:
    • Added vision documentation.
    • Included perplexity search documentation.
  • General Updates:
    • Enhanced readme with updated links to documentation and papers.
    • Organized installation documentation with reference fixes.

Fixes

  • Resolved a bug in Symsh when not using a stateful conversation.
  • Fixed issues with the DocumentRetriever component and local vector database with persistence and indexing.
  • Corrected code examples to enhance documentation clarity.

Refactoring and Clean-up

  • Conducted minor refactorings and documentation updates for improved maintainability.
  • Streamlined documentation pages with consolidated details.

- Python
Published by Xpitfire about 1 year ago

symbolicai - v0.6.5

Release Note

Updates

  • Removed unused imports for optimized performance.
  • Improved argument and keyword argument passing on engine creation.
  • Introduced preview and representation improvements.
  • Added beam search keyword to the huggingface engine.
  • Introduced a custom property exception on reserved assignment.
  • Added support for GPT-4o-mini.
  • Optimized performance with the removal of the blip to avoid M3 incompatibility, thus it is now only optional.
  • Added huggingface support through a local OpenAI-compatible FastAPI server.
  • Refactored llama.cpp engine and added symserver.
  • Revised async tests in llama.cpp.
  • Implemented minor tweaks in symrun and removed OpenAI cost tracker and all related elements.
  • Added anthropic dependency and support for Anthropic API, with minor refactoring.
  • Added a check to disable symai warnings and marked cost tracking for deprecation.
  • Switched to pytest for easier and more efficient testing.

Bug Fixes

  • Fixed a major bug in the type system with operators, ensuring operator type safety.
  • Fixed a race condition bug on symrun exit.
  • Fixed tests-related issues.
  • Fixed a warning if local is not used.

Removals

  • Removed deprecated services.
  • Removed print statements.

Security

  • Addressed security issues noted by Dependabot.

Please note that this update also includes minor refactoring and code improvements and is part of our ongoing efforts to maintain and improve our platform's performance.

- Python
Published by Xpitfire over 1 year ago

symbolicai - v0.6.0

Release Notes

New Features:

  • Support for similarity normalization and extended support for models and a cost tracker.
  • Implementation of SAT Solver, added a linker for results and circular reference checks.
  • Added a shape fix, torch type check for embedding, and generalized radial basis function (RBF) implementation for the distance function.
  • Introduced an improved aggregator class with better error handling.
  • Added parallel component support.
  • Implemented a custom vector database (DB) and added defaults for non-API settings to favor local embedding models and vector DB.
  • Introduced LLaVA support for in-memory images and format adaptation.
  • Extended similarities and added a metric component to enhance tracking and comparison capabilities.

Enhancements:

  • Added various kernel functions to expand computational capabilities.
  • Expanded tensor and array support for typing, improving the handling of different data structures.
  • Improved distance function implementations to enhance calculations.
  • Improved type checking and conversion mechanisms, allowing for more robust data handling.
  • Added an improved graph construction and visualization process.
  • Improved memory and tagging management within Conversations.
  • Added a new tutorial video to enhance user learning resources.
  • Implemented better suited presets for smoother configuration.

Bug Fixes:

  • Multiple bug fixes across the application, including shape-related issues, logic errors, and improved error messaging.
  • Fixed a typo and conducted small refactoring in a few areas for code clarity.
  • Fixed an indexing issue introduced after backend rework and documentation inaccuracies.
  • Addressed a bug with embedding dimension handling and fixed query overloads.
  • Rectified numerous minor issues that affected usability and stability.

Documentation and Infrastructure:

  • Update README.md with new details and minor typing correction.
  • Enhanced user experience with better error messages on file parse.
  • Improved type passing and normalization of keyword arguments (kwargs) on expressions.
  • Fixed issues regarding parameter passing to conversations.
  • Improved shell script for app binary and handled symbolic sub-symbolic representation.
  • Added Docker support to simplify the deployment process.

Refactoring:

  • Major refactoring for initializing and purging processes, along with normalization of kwargs on expressions.
  • Refactored code to improve dynamic context handling and facilitate type selection.
  • Performed functional refactoring related to primitives and dynamic operator binding for efficiency and readability.

Miscellaneous Changes:

  • Added local image support for the OCR engine.
  • Provided more lenient declarative capabilities for callables and primitives.
  • Enabled API key and model change arguments for flexible engine configurations.
  • Resolved issues regarding path handling in various components such as the crawler and engine initialization.

Note: This changelog is a summary of the main changes and improvements made to the software, consolidated from the commits over the given period. Users are encouraged to update their versions to benefit from the new features and fixes introduced in this release.

- Python
Published by Xpitfire almost 2 years ago

symbolicai - v0.5.0

Release Notes

New release with reworked backend / engines code.

Enhancements:

  • Introduced an improved default settings configuration to enhance user experience.
  • Engine documentation has been updated for better clarity.
  • Added wizard enhancements for better reading out existing settings.
  • Enhanced the remedy function in the engines for more efficient error handling.
  • Extended support for models and cost trackers with minor bug fixes.
  • The replacement algorithm has been improved for handling paths.

Fixes:

  • Resolved issues with missing variables that could potentially cause runtime errors.
  • Fixed a bug causing the notebook popup to show the wizard twice.
  • Fixed double memory inserts for Conversations to prevent data redundancy.
  • Addressed multiple path-related issues, improving shell path parsing and path replacement.
  • Resolved engine initialization issues for java files (tika) and fixed lazy loading of engines.
  • Fixed an issue that caused improper handling of parameters when passing to conversations.
  • Corrected errors in documentation to align with the current functionalities.
  • Created measures to avoid throwing exceptions on data additions for reliability.

Backend and Internal Changes:

  • Completed extensive refactoring of the complete codebase, potentially reaching a stable version.
  • Refactoring included engines, search functions, pre and post-processors, and the core structure of components.
  • Refined the engine bug fixes and consolidated the handler logic for more robust functionality.
  • Added metadata objects and corrected serialization processes.
  • Reworked the kwargs and method parameters.

File and Directory Changes:

  • Shifted outputs directory to home for cleaner log handling.

Documentation and Misc:

  • A new video tutorial has been added for user guidance.
  • Updated README and TERMSOFSERVICE documents to reflect the latest operational parameters.
  • Fixed encoding read for proper file handling.

Policy Updates:

  • Implemented a revised and detailed Terms of Service document.

Noteworthy:

  • Major codebase revision has been conducted with the possibility of this being the first stable release post-refactor.
  • Significant restructuring and refactoring have been performed aimed at enhancing maintainability and scalability of the code.

Please note that while these updates have been thoroughly tested, we recommend users to report any unexpected behaviors or bugs to help us improve further.

- Python
Published by Xpitfire about 2 years ago

symbolicai - v0.4.34

Release Notes

New Features

  • Added setup wizard for improved user experience; logic to read out and utilize existing settings more efficiently.
  • Created configurable splash screen.
  • Introduced a new collection framework to streamline data handling.
  • Created a data collection pipeline and consent messages for user agreements, transparency and clarity.
  • Created API interface with extended capabilities for CRUD repository calls and component operation calls.
  • Added a new experimental feature: an interpreter for better search engine result evaluations.
  • Introduced the ability to start conversations with simple index references.
  • Added terms of service and acknowledging the agreement process.
  • Enhanced usability with improved notification system for users.
  • Extended support for gpt-4-vision-preview.
  • Added vision and function capabilities to the OpenAI LLM backend.
  • Added more demo notebooks for better understanding of features.
  • Included an experimental endpoint for style extensions in shell.
  • Implemented bibtex reference formatting tool for users.

Bug Fixes

  • Fixed bug with auto-on versus auto-off data sharing discrepancy.
  • Fixed various typos and encoding issues for better system stability.
  • Corrected deployment scripts to ensure smoother updates and installs.
  • Resolved path issues related to terms of service documents.
  • Fixed a bug in speech engine setup that could affect performance.
  • Addressed ID type and serialization issues for accurate data processing.
  • Fixed reference issue to sub-modules for seamless integration.
  • Corrected Windows shell bugs and ensured compatibility with conda path.
  • Solved encoding of files and escaped command mapping on lower-level model queries.

Improvements

  • Upgraded properties to enhance system capabilities.
  • Revised the model catalog to include the latest updates.
  • Set default model to gpt-3.5-turbo for more general availability and better user experience.
  • Removed extraneous debug lines for a cleaner code environment.
  • Refined the build process and addressed issues related to build.os readthedocs.
  • Improved the error message display to assist troubleshooting.

Documentation and Guides

  • Updated README.md with the latest information on usage and features.
  • Updated TERMSOFSERVICE.md to reflect the new terms and guidelines.
  • Improved installation documentation for user guidance.

Repositories and Versioning

  • Migrated repository to ExtensityAI for future support governed by non-profit organization.
  • Improved repository handling with the addition of a trusted repositories file.
  • Updated the list of repositories to ensure access to the latest components.
  • Advanced the versioning system to reflect new changes and improvements.

- Python
Published by Xpitfire about 2 years ago

symbolicai - v0.3.5

Release Notes

New Features

  • Added better view formatting for enhanced user experience.
  • Implemented start conversation with simple index reference to facilitate user interaction.
  • Improved find and retrieve functionality is now mapped to conversation memory.

Enhancements

  • Enhanced error messages for better user understanding when issues occur.
  • Updated preview feature to provide more accurate representations.
  • Added support for multiple browsers in selenium crawler, improving cross-platform usability.

Fixes

  • Fixed issue with default index names to avoid conflicts.
  • Resolved major problems with prompt composition for smoother operation.
  • Addressed bug with reverse primitive operations to ensure consistency.
  • Updated classes with minor fixes for overall stability improvements.

- Python
Published by Xpitfire about 2 years ago

symbolicai - v0.3.0

Major Release to new OpenAI API

Major Enhancements

  • Introduced support for GPT-4-Turbo Preview, a significant upgrade in the series of language models.
  • Updated framework to align with the latest OpenAI API developments.
  • Implemented text-to-speech functionality, providing a new dimension of interaction with the model.

Model Improvements

  • Added a new default model to ensure more efficient and accurate responses.
  • Refined memory retrieval capabilities, allowing for better context understanding and recall.
  • Enhanced shell indexing to interact more seamlessly with the system's shell environment.

Usability Enhancements

  • Fixed the maximum length computation issue for preview models, optimizing performance.
  • Improved general shell interactions for a smoother user experience.
  • Added improvements specifically targeted at shell command order and execution.

Fixes and Minor Tweaks

  • Resolved issues with incorrect version numbers.
  • Added missing package installations to prevent potential operational hiccups.
  • Included minor tweaks to optimize existing functionalities.

Documentation and Help

  • Enriched the system's manual pages to assist users in utilizing new and existing features.

- Python
Published by Xpitfire about 2 years ago

symbolicai - v0.2.56

Release Notes

Bug Fixes

  • Added fix for max token setting based on relative computation.
  • Major bugfixes for strategy of chat and completion model.

New Features

  • Indexing an entire folder
  • Retrieval augmented generation

- Python
Published by Xpitfire about 2 years ago

symbolicai - v0.2.54

Enhancements

  • Data for fine-tuning models has been added alongside a refactoring of primitives for fine-tuning.
  • Parallel execution has been introduced to enhance performance.
  • Shell capabilities have been extended to provide more functionality.
  • First working prototype of the new shell tool is now available.

Fixes

  • Issue with pickle has been resolved.
  • A fix for an issue discovered in the interactive shell has been added.
  • Additional error handling for permission-related and filenotfound errors has been added.

Other Updates

  • The way pickle is used in parallel has been updated using pathos.
  • Default core usage has been reduced.
  • Missing files for the interactive shell and the new shell tool prototype have been added.
  • Styles for word completer have been implemented.

- Python
Published by Xpitfire about 2 years ago

symbolicai - v0.2.50

Release Note

New Features

  • Added support to stream over large audio files in batches of 30s.
  • Added comments to symbol; added fine tuning support for openai.
  • Support added to recover the transcript with timestamps.
  • Added fine tuning capability.
  • New release.

Bug Fixes

  • Fixed issue with accessing properties when outside of class.
  • Corrected the return type handling.
  • Fixed some edge cases in timestamp sync.
  • Fixed a bug related to object return and lazy loading. (Fixed issue with BIG maggotrons; Big Daddy commit.)

Improvements

  • Improved timestamp synchronization.
  • Switched from mel based decoding to transcribe because mel detection.
  • Added support for returning timestamps alongside the transcription.
  • Made preview fix.
  • Fixed readme video.

Other Changes

  • Added top-k feature.
  • Included minor fixes and better error handling.

- Python
Published by Xpitfire over 2 years ago

symbolicai - v0.2.49

Release Notes

Major Stability Issue Fixed after Refactoring

New Features

  • Added 'topk' feature
  • Introduced 'os command'

Improvements

  • Included better error handling
  • Added fixes

Bug Fixes

  • Fixed bug related to object return and lazy loading
  • Resolved bug with stream processing
  • Fixed table view

- Python
Published by Xpitfire over 2 years ago

symbolicai - v0.2.47

Release Notes:

New Features:

  • Added repository cloner
  • Added new pdf arxiv parser
  • Added initial BLIP2 support; extended to support for blip2
  • Added merger
  • Other minor fixes
  • Experimental support for google bard; helper tools
  • Experimental OS command expression, and more added

Changes:

  • Added prompt formatting to Function (incl. args and kwargs support for format)
  • Class stub added for fine tuner
  • Moved from backend -> ops; adjusted the return type
  • Refactored Symbol to use mixins
  • Renamed pre- and post-processors to be addressed as plural

Fixes:

  • Fixed nasty maggot due to improper value handling
  • Fixed no usage of json parser template with Function
  • Fixed cast to result
  • Fixed issue in JsonParser template

Code Refactoring:

  • Passed through Symbol; adjusted types and checked for inconsistencies

Merges:

  • Merge of branch 'refactor/processor_namings' with the main branch
  • Merge pull request from refactor/symbol.py
  • Merge pull request from maggot/indexer
  • Added merged branch
  • Merge pull request from refactor/symreturntype

Other Commits:

  • Cleanup done
  • Added type(self) return type
  • Added init to backend/mixin

- Python
Published by Xpitfire over 2 years ago

symbolicai - v0.2.41

Release Note:

Added Features: - Loader animation - Package creator symdev - Load support improvement - Enhanced Symrun error message - Console style for formatted output

Updates: - Quality of life improvements for the sym package tools - Load time improvement through changing instantiation - Updated engines to create metadata

Fixes: - Fixed broken stream after refactoring - Fixed load serialization - Fixed multiple module load - Fixed package installation - Fixed packages reference - Fixed template

Import Fixes: - Fixed import issues - Fixed wrong import and dependency overwriting - Fixed import of packges from console - Fixed the pinecone import

Other: - Sorted imports - New version updates - Symrun of aliases implemented

- Python
Published by Xpitfire over 2 years ago

symbolicai - v0.2.34

Release Note:

Added Features: 1. Added package creator symdev 2. Added formatter; added parents and children structures 3. Added token usage tracker and stateful conversation 4. Added support for conversation component 5. Engine updates to create metadata and initial experiments with open_llama

Improvements: 1. Improved the draw usage to feel more intuitive

Fixes: 1. Sorted imports 2. Fixed imports (multiple instances) 3. Added the missing packages file 4. Fixed the remove function 5. Changed the base directory to user's home directory

- Python
Published by Xpitfire over 2 years ago

symbolicai - v0.2.32

Release Notes for v0.2.32

This present release encompasses various enhancements and fixes:

Features Added: - Added additional packages. - Appended corrected version of python. - Integrated readthedocs requirements. - Created doctree docs; adjusted conf.py for sphinx; fixed pyproject.toml.

Fixes and Improvements: - Updated documentation page. - Added a fix for documentation. - Implemented fix to import missing requirements. - Corrected wrongly committed files; added index. - Removed debug breakpoints() from engine code

- Python
Published by Xpitfire over 2 years ago

symbolicai - v0.2.31

Release Note

In this new version, our development team made significant improvements and fixed several issues to optimize overall performance.

Enhancements:

  • Stream, Trace and Log Handling: Increased the efficiency of tracking errors and usage via the with trace statement. This will be instrumental in debugging and problem-solving.
  • API Usage: There's improved management of API handling. This will streamline the flow of data, assure timely responses, and improve user experience.
  • SymbiaChat: We've exported SymbiaChat for improved integration and increased functionality (step-wise-interactions).
  • Other Improvements: Minor fixes and improvements have been implemented throughout the application.

Maggot Fixes:

  • GPT3.5 Prompts Preview: A glitch that was affecting the creation of GPT3.5 prompts has been fixed.
  • Component Handling of Document: Refactoring has of document retrieval.
  • Retrieval Variable: The newly added retrieval variable offers an improved way to inspect data entries.

Please update to the newest version and enjoy the better performance and improved user experience. If you do encounter any issues, do not hesitate to report it to us.

- Python
Published by Xpitfire over 2 years ago

symbolicai - v0.2.30

Fixed installation requirements. Improved document query / retrieval.

- Python
Published by Xpitfire over 2 years ago

symbolicai - v0.2.29

Fix a lot of maggots in the code: - embedding of list objects - zipping embeddings - pinecone batched-insert - other minor issues - added new DocumentReader component

- Python
Published by Xpitfire over 2 years ago

symbolicai - v0.2.28

Fixed and improved the stream function. Added support for most of OpenAI's models. Added cost estimation. Fixed a lot of maggots in the code.

- Python
Published by Xpitfire over 2 years ago

symbolicai - v0.2.25

  • fixed stream bug with properties
  • improved fuzzy equals comparison

- Python
Published by Xpitfire over 2 years ago

symbolicai - v0.2.23

  • Fixed minor bugs and improved sym conversion
  • Expanded file read capabilities

- Python
Published by Xpitfire over 2 years ago

symbolicai - v0.2.22

Fixed pinecone access. Refactored to relative imports inside the main package. Added experimental interfaces expressions. Moved symai config, cache and chromedriver to use home directory. Fixed reset of config on update. Fixed Symbia [DK] narration. Fixed other maggots.

- Python
Published by Xpitfire over 2 years ago

symbolicai - v0.2.21

Refactoring of expression command and setup. Improvements for Symbia. Fixes for Pinecone memory. Multiple Maggot fixes.

- Python
Published by Xpitfire over 2 years ago

symbolicai - v0.2.20

Created an improved version for code execution and analytisis

- Python
Published by Xpitfire over 2 years ago

symbolicai - v0.2.19

New release improving on the Symbia chat. Separating memory to own class and improving long-term memory. Adding cosine similarity classification for context detection.

- Python
Published by Xpitfire over 2 years ago

symbolicai - v0.2.18

New release:

  • refactoring attach to payload
  • adding support for ChatGPT and GPT-4 API
  • Fixed required expression recursive self-call
  • Minor bugfixes in the prompt construction
  • new test for preview
  • test passed for complex expressions
  • fixed template bug for GPT-4
  • fixed bug for preview expansion

- Python
Published by Xpitfire over 2 years ago

symbolicai - v0.2.15

New release.

Fixed ChatBot config ignoring WolframAlpha. Improved Stream feature. Added preview command. Other minor bugfixes.

- Python
Published by Xpitfire over 2 years ago

symbolicai - v0.2.13

Extended style and html generation. Minor improvements and bug fixes. Improved chatbot.

- Python
Published by Xpitfire almost 3 years ago

symbolicai - v0.2.9

Release Notes:

  • Added Shell Apps (sym+)
  • Exposed SymbolicAI functions via shell commands
  • Improved documentation
  • Added Lambda Expression

- Python
Published by Xpitfire almost 3 years ago

symbolicai - v0.2.7

Release notes:

  • Added HuggingFace backend support for local LLM execution
  • Added server-cliend local model hosting
  • Added new test for local hosting
  • Added runtime adaptable API Key command
  • Added elapsed time monitoring command
  • Added Sphinx documentation
  • Minor Bugfixes and improvements

- Python
Published by Xpitfire almost 3 years ago

symbolicai - v0.2.6

Added indexing engine support (pinecone).

- Python
Published by Xpitfire almost 3 years ago

symbolicai - v0.2.4

  • Added fix for chatbot implementation.
  • Added binary script to run chatbot from shell
  • Made fetch and search engine more robust to other data types (Expressions) than strings.

- Python
Published by Xpitfire almost 3 years ago

symbolicai - v0.2.2

First public release.

- Python
Published by Xpitfire almost 3 years ago