Eventual-Inc
Daft
Blog
Docs
Changelog
Blog
Docs
Changelog
Overview
Optimizations
Branches
Benchmarks
Runs
Performance History
Latest Results
fix(ai): bound a long row's chunk requests by the same limits An input over `input_text_token_limit` is split into chunks, and every chunk went out in a single request. The per-request limits bind that request like any other: a row of roughly 1.2 MB chunks into enough pieces to exceed `batch_token_limit`, so it failed with an HTTP 400. That is true on `main` too - this path has never respected either limit. The chunks now go through the same fullness check as ordinary rows. A row that already succeeded keeps its embedding bit for bit, since the weighted average is taken over the same chunks with the same weights, only gathered from more than one response. A row between roughly 0.9 MB and 1.2 MB now takes two requests where it took one, because the three-characters-per-token estimate is more conservative than the server's tokenizer.
FANNG1:fix/ai-embed-batch-size-default
3 hours ago
fix(parquet): resolve legacy two-level list groups under name mapping
YuangGao:feat/iceberg-name-mapping
4 hours ago
feat(iceberg): read data files without field IDs via schema.name-mapping.default
YuangGao:feat/iceberg-name-mapping
4 hours ago
chore(ai): drop the embed option defaults that never applied Both text embedder descriptors declared `batch_size=64, max_retries=3, on_error="raise"` through a `default_factory`, but a provider always passes `embed_options` explicitly - an empty dict when the caller supplied no options - and an explicitly passed argument wins over `default_factory`. The declaration was therefore unreachable through `embed_text` and only misled readers. With the input cap enforced in the embedder, nothing depends on it. Whether `embed_text` should ship a default UDF `batch_size` is a separate question: it changes the request count for every existing caller, so it wants throughput benchmarks rather than a default that silently starts applying.
FANNG1:fix/ai-embed-batch-size-default
18 hours ago
test(ai): hoist test imports to file scope Repository convention is file-scope imports; the stdlib and openai imports added for the base64 decoding test do not need the optional-package exception. Flagged by review on #7615.
FANNG1:fix/ai-embedding-base64-fast-path
23 hours ago
fix(ai): apply the declared embed option defaults on the provider path ## Changes Made - Merge `DEFAULT_EMBED_OPTIONS` into the descriptor instead of relying on the dataclass `default_factory`. Providers always pass `embed_options` explicitly (an empty dict when the caller gave no options), so the factory never ran on the public `embed_text` path and the declared `batch_size=64` silently became "whole morsel". - Apply the same merge to LM Studio. - Cover the default and an explicit override with a regression test. Beyond the declared/actual mismatch, the unbounded default produces requests the real API rejects: OpenAI caps an embeddings request at 2,048 inputs, and only the 300,000-token cap was enforced. Against a stub server, 5,000 rows went out as a single 5,000-input request before this change and as 79 requests of at most 64 after it. Verification: `DAFT_RUNNER=native pytest tests/ai/openai/test_openai_text_embedder.py tests/ai/test_lm_studio.py` (36 passed). ruff and mypy report no new findings against the HEAD baseline.
FANNG1:fix/ai-embed-batch-size-default
24 hours ago
fix(ai): stop disabling the OpenAI SDK base64 fast path in embeddings ## Changes Made - Add `encoding_format` to `EmbedTextOptions`, defaulting to base64. - Stop passing `encoding_format="float"` on every OpenAI-compatible embedding call, which disabled the SDK's base64 fast path and made it build one Python object per float (~15-19x slower response parsing on large batches). - Forward an explicit `"float"` only when the caller opts in, for servers whose base64 support is broken. - Apply the same behavior to the dimension probes and to LM Studio. - Drop `encoding_format="float"` from the contributor guide's sample implementation so it no longer teaches the slow path. - Cover the SDK's base64 decoding at the transport layer, which mocking `Embeddings.create` cannot reach. Verification: `DAFT_RUNNER=native pytest tests/ai/openai/test_openai_text_embedder.py tests/ai/test_lm_studio.py` (39 passed). ruff and mypy report no new findings against the HEAD baseline.
FANNG1:fix/ai-embedding-base64-fast-path
24 hours ago
fix(io): expose documented HTTPConfig properties (#7579) ## Changes Made Expose the five read-only `HTTPConfig` properties already declared in the Python stubs: bearer token, retry backoff, connection/read timeouts, and attempt count. Use the existing PyO3 getter pattern so readers can preserve caller HTTP settings when applying authentication. Credential representations remain redacted; serialization is unchanged. ## Validation Native extension rebuilt. Tests cover configured/default values, pickle round trips, and credential redaction. Cargo formatting passed. ## Related Issues Related to #5295.
main
24 hours ago
Latest Branches
CodSpeed Performance Gauge
0%
fix(ai): bound embedding requests by input count, not just tokens
#7616
4 hours ago
8859bcf
FANNG1:fix/ai-embed-batch-size-default
CodSpeed Performance Gauge
0%
feat(iceberg): read data files without field IDs via schema.name-mapping.default
#7618
4 hours ago
524dae2
YuangGao:feat/iceberg-name-mapping
CodSpeed Performance Gauge
0%
fix(ai): stop disabling the OpenAI SDK base64 fast path in embeddings
#7615
23 hours ago
710f71f
FANNG1:fix/ai-embedding-base64-fast-path
© 2026 CodSpeed Technology
Home
Terms
Privacy
Docs