Skip to content

[pull] trunk from spiceai:trunk#724

Merged
pull[bot] merged 4 commits into
TheRakeshPurohit:trunkfrom
spiceai:trunk
Apr 8, 2026
Merged

[pull] trunk from spiceai:trunk#724
pull[bot] merged 4 commits into
TheRakeshPurohit:trunkfrom
spiceai:trunk

Conversation

@pull
Copy link
Copy Markdown

@pull pull Bot commented Apr 8, 2026

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

lukekim and others added 4 commits April 7, 2026 21:18
* feat: Add per-model rate-limited concurrent execution to AI UDF

The AI UDF previously used DataFusion's target_partitions (CPU core count,
typically 2-8) to limit concurrency. This is far too low for I/O-bound LLM
API calls where providers support 50-10,000+ RPM.

This adds per-model rate controllers using governor token buckets and
semaphores, with provider-specific defaults sourced from official docs:

- OpenAI: Per-model (mini vs full-size), per-tier (Free through Tier 5)
- Anthropic: Tiers 1-4 via anthropic_tier param
- Google Gemini: Flash vs Pro differentiated
- xAI: Tiers 0-4 via xai_tier param
- Azure OpenAI: Mini/nano vs full-size differentiated
- AWS Bedrock: 20 concurrent, 800 RPM default
- Local models: 1 concurrent (single GPU), no RPM limit

Users can override via spicepod.yml model params:
  ai_max_concurrency, ai_requests_per_minute

Also adds llm_prompt_tokens_total and llm_completion_tokens_total OTel
counters to both Chat Completions and Responses API paths.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix: Rename params and make tier specs component-level

- ai_max_concurrency → max_concurrency
- ai_requests_per_minute → requests_per_minute_limit
- tier params → usage_tier (consistent with OpenAI convention)
- tier params are now component specs (prefixed by provider in YAML)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix: Address PR review comments

- Validate max_concurrency != 0 (NonZeroU32 check) to prevent deadlock
- Clean up responses_llms in remove_model (pre-existing stale entry bug)
- Refactor rate_limit.rs: extract RateLimitConfig struct so tests assert
  on actual chosen concurrency/RPM values instead of just building

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* formatting

* PR comments

* fix build

* clippy and tests

* fmt

* linting

* fix clippy doc_markdown warnings in ai_concurrency tests

* clippy

* fix clippy assertions_on_result_states in rate_limit tests

* fix lint: unused variable p1 and unwrap_used in rate_limit tests

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: jeadie <jack@spice.ai>
Co-authored-by: ewgenius <hey@ewgenius.me>
Co-authored-by: Viktor Yershov <viktor@spice.ai>
…d validation (#10203)

* review: improve CREATE TABLE LIKE error messages, success output, EXPLAIN, and validation

* Fix lint

* fix: decompose struct equality expressions in Cayenne position-based deletes (#10204)

* Fix lint

* Fix lint

* Fix lint

* Fix lint

---------

Co-authored-by: Viktor Yershov <viktor@spice.ai>
Co-authored-by: Luke Kim <80174+lukekim@users.noreply.github.com>
…#10209)

* Propagate `runtime.params.parquet_page_index` to Delta Lake connector

* Update

* Lint

* Lint
* fix: handle Utf8View/LargeUtf8 in GitHub connector ref filters

DataFusion 52 defaults to map_string_types_to_utf8view=true, so string
literals in WHERE clauses arrive as ScalarValue::Utf8View instead of
ScalarValue::Utf8. The GitHub connector's ref filter extraction only
matched Utf8, causing WHERE ref='...' to silently fail.

Changes:
- Add scalar_utf8_value() helpers to extract strings from all three
  ScalarValue string variants (Utf8, LargeUtf8, Utf8View)
- Update ref filter pushdown in files, commits, and workflow_runs
- Change files table ref filter from Inexact to Exact (ref is fully
  handled by the connector, no residual filter needed)
- Fix validate_installation_access to skip when token-based auth is
  active, preventing autoloaded app credentials from interfering
- Add GitHub App auth integration tests for commits, files, and issues

* fix: streamline ref value handling in commits filter pushdown
@pull pull Bot locked and limited conversation to collaborators Apr 8, 2026
@pull pull Bot added the ⤵️ pull label Apr 8, 2026
@pull pull Bot merged commit 4972610 into TheRakeshPurohit:trunk Apr 8, 2026
1 of 12 checks passed
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants