Releases: oracle/ai-optimizer
v2.1.2
Patch release focused on testbed generation robustness and OCI VM bootstrap reliability
New
- Testbed generation reports per-file outcomes. POST /v1/testbed/testset_generate now validates each uploaded PDF before running Giskard. Files that can't produce at least MIN_CHUNKS_PER_FILE (10) text chunks are skipped with a structured reason instead of crashing the whole request, and the response payload includes a rejected_files list alongside qa_data. The client testbed surface renders the rejections as a warning (partial success) or an error (all files rejected).
- Same-named uploads no longer collide. Each PDF is staged in its own temp sub-directory, so two files sharing a basename resolve to distinct bytes on disk during generation.
- Configurable server bind address. New AIO_SERVER_ADDRESS client setting (default 127.0.0.1) lets the client spawn the embedded API server on a non-loopback interface — used by the cloud-init VM template to bind 0.0.0.0.
Fixed
- Missing OpenGL runtime dependency. mesa-libGL is now installed in both the client and server container images and on compute VMs, unblocking libraries (e.g. OpenCV transitive deps) that link against libGL.so.
- FastAPI multipart file parameters. store_local_file, upload_testset, and generate_testset_endpoint now declare files: list[UploadFile] = File(...) so OpenAPI/Swagger generate a correct multipart schema.
Full Changelog: v2.1.1...v2.1.2
v2.1.1
Bug Fixes
Server API exposure
The IaC VM deployment has been reverted to expose the client UI and the server API on dedicated, independently gated LB listeners. This is to re-introduce IP/CIDR gates on each service.
Notes
- Non-SSL: client on :80, server on :8000
- SSL: client on :443 (HTTP → HTTPS redirect from :80), server on :8443 (HTTP → HTTPS redirect from :8000)
- client_allowed_cidrs gates only client ports; server_allowed_cidrs only server ports — full L4 isolation between UI and API callers
Max in-memory client sessions was not configurable
A new AIO_MAX_CLIENTS setting (default 64) caps the number of distinct client sessions cached in the server's in-memory store; LRU eviction applies beyond the cap.
Dynamic SQLcl registration on new database
The SQLcl MCP proxy now registers newly added databases at runtime rather than only at startup — adding a DB no longer requires a server restart for MCP access.
Miscellaneous
- Split/Embed: UI now shows the DB alias when splitting/embedding instead of the internal identifier.
- .env.example: corrected example port.
- Restored rag_base_optimizer_config_mcp.py LangChain RAG example.
- Streamlit client config.toml tweak to avoid bad messaging when binding to non-localhost IPs
v2.1.0
Highlights
Configuration Overhaul to Pydantic Settings
What this means:
- Configuration can now be driven entirely through environment variables with the AIO_ prefix (e.g., AIO_DB_USERNAME, AIO_SERVER_PORT, AIO_LOG_LEVEL), with support for .env.dev, .env.prd, or custom env files via AIO_ENV.
- Existing JSON configs still work.
- Settings validation is now stricter and more predictable thanks to Pydantic.
Unified Entrypoint (entrypoint.py)
Introduction of a single Python entrypoint that bootstraps both the server and client, replacing the previous ad-hoc startup approach.
Changes to be aware of:
launch_client.pyis removed. If you previously ranlaunch_client.py, switch tosrc/entrypoint.py client.launch_server.pyis removed. If you previously ranlaunch_server.py, switch tosrc/entrypoint.py server.
Oracle AgentSpec
Introduced as the foundation for how AI agents and flows are defined in the AI Optimizer. AgentSpec represents agents as pure data (JSON/YAML) — no executable code — making them portable, versionable, and shareable across runtimes.
Upgrading
- No config changes required — your existing JSON settings will be auto-migrated on import.
- Optional: adopt env-var-based configuration (AIO_*) for easier container/Helm deployments.
- Note that any settings exported from v2.1 use new field names and won't re-import into a pre-v2.1 instance.
New Features
- Gateway API support — connect through gateway APIs (#408) @anders-swanson
- Pull Ollama models from the GUI — no more CLI-only model management (#420) @ViliTajnic
- AgentSpec exposed in GUI — configure agent specifications directly from the UI (#441) @gotsysdba
- Testbed: multi-file QA generation — add more than one file when generating Q&A pairs (#440) @gotsysdba
- Pre-configured databases for SQL query embedding (#444) @gotsysdba
- Dynamic registration (DynReg) for databases and models (#437) @gotsysdba
- IDE integration guide — new documentation for IDE setup @ViliTajnic
- TLS documentation added @gotsysdba
- Spring AI upgraded to 2.0.0-M2 @ldemarchis
Bug Fixes
- Fixed AIO startup delays (#431)
- Five-bug fix: Ollama embed detection, :latest tag lookup, DB usable reset on import, DB alias sync, testbed 503 crash
- Testbed: fail fast with 503 when CORE DB is unavailable on generate
- CORE DB connectivity issue resolved
- 503 regression fixed with additional test coverage
- Small Ollama models disabled by default to avoid IaC issues
- Spring AI LOGGER bug resolved
- Legacy settings import edge cases resolved (#435)
Maintenance & Security
- Bumped Packages
- CPU optimization for small models (#161)
- Versioned documentation infrastructure
- Improved logging
- Test suite rewritten (unit tests replaced with integration tests)
New Contributors
- @anders-swanson made their first contribution in #408
Full Changelog: v2.0.3...v2.1.0
v2.0.3
What's Changed
- Helm and IaC Updates by @gotsysdba in #394
- Ollama Container - Create empty /tmp by @gotsysdba in #395
- Helm workflow update by @gotsysdba in #396
- Fix routes when baseURL changes by @gotsysdba in #397
- Fix MCP routing by @gotsysdba in #398
- OCI Cohere/Gemini Model Judges by @gotsysdba in #392
Full Changelog: v2.0.2...v2.0.3
v2.0.2
What's Changed
- flatten tools with no_history by @gotsysdba in #388
- Trigger Upgrades by @gotsysdba in #389
Full Changelog: v2.0.1...v2.0.2
v2.0.1
What's Changed
- Fix Ollama with latest LiteLLM by @gotsysdba in #384
- Helm Updates by @gotsysdba in #385
- Add document page to references by @gotsysdba in #386
Full Changelog: v2.0.0...v2.0.1
v2.0.0
Major Release
This is a major release with breaking changes; please review these release notes for more information.
What's Changed
- MCP Capabilities – The AI Optimizer and Toolkit now function as both an MCP client and server.
- Prompts – Fully accessible via MCP; all prompts are now exposed, giving users more granular control.
- SelectAI Replacement – Replaced by SQLcl MCP for improved SQL interaction.
- Multi-Agent Graph – Enables combining Vector Search with NL2SQL for more sophisticated queries.
- Infrastructure as Code (IaC) – Updates applied for improved deployment and management.
- Tests – Unit and integration tests have been restructured and expanded for better coverage.
- Dependencies Upgraded
Breaking Changes
- Settings exported pre-2.0 will not work with 2.0+
Contributors
Full Changelog: v1.3.1...v2.0.0
v1.3.1
Breakage
Previous saved configurations will no longer be able to be imported. This is due to the restructuring of prompts to use MCP.
What's Changed
- Prompts migrated to MCP implementation @gotsysdba
- All prompts are now exposed to the end-user for modifications @gotsysdba
- Helm and IaC updates @gotsysdba
- Standalone MCP export improvements @corradodebari
What's New
- Basic Web Crawling @ldemarchis in #318
- Enhancement/vector store OCI refresh by @ViliTajnic in #324
- OCI Cohere LM added @gotsysdba
- SQLcl MCP included to replace SelectAI @gotsysdba
What's Removed
- SelectAI (to be replaced by SQLcl MCP for unstructured queries) @gotsysdba
New Contributors
- @ViliTajnic made their first contribution in #324
Full Changelog: v1.3.0...v1.3.1
v1.3.0
What's Changed
- Instance/Workload Principal patch for LiteLLM access to OCI GenAI Models
- Additional IaC Functionality Added
- Minor GUI bug fixes
Full Changelog: v1.2.0...v1.3.0
v1.2.2
Minor fixes to K8s deployment:
- OCI bucket access w/Instance Princpals
- start.sh for SpringAI Download
- patch OraOperator
Full Changelog: v1.2.1...v1.2.2