Skip to content

feat: Add dense embedding integrations - #97

Draft
jiahuei wants to merge 3 commits into
mainfrom
feat/embeddings
Draft

jiahuei wants to merge 3 commits into
mainfrom
feat/embeddings

Conversation

@jiahuei

@jiahuei jiahuei commented Nov 3, 2026 •

Copy link
Copy Markdown
Member

Summary

  • Added Molto.embeddings() with a typed OpenAI request and parsed SDK result, native OpenAI-compatible transport for OpenAI/Infinity/vLLM, and Cohere v2/VoyageAI text embedding translation. Endpoint, provider, and destination remain independent; self-hosted routes require an explicit URL.
  • Preserved single/batched text and supported token inputs, vector indices, dimensions, SDK encoding defaults/overrides, native task/truncation options, model identity, and provider metadata. Unknown usage remains None. Unsupported multimodal/contextual, quantized, sparse, and multiple-vector semantics fail explicitly. Shared HTTP lifecycle, credentials, header filtering, and error conventions are reused without new runtime dependencies, streaming, or automatic batching.
  • Added independent hosted recordings and clearly labelled synthetic schema fixtures with public-coordinator replay coverage. Existing conversational cassettes and all original embedding recordings remain unchanged. A newly added synthetic Infinity error enum was corrected to the pinned schema's Empty value.
  • Published the five-provider support matrix, examples, architecture, and evidence limits. This PR is independent of feat: Add provider clients and multi-turn replay coverage #96.

Draft; related to #93. OpenAI (text-embedding-3-small) and Cohere (embed-v4.0) have successful live captures. VoyageAI's available credentials returned 401; the configured vLLM server timed out; Infinity was unconfigured. VoyageAI success coverage is synthetic. Infinity 3.0.0 and vLLM 0.33.0 are pinned source/schema references, not live-tested server/model claims. The issue remains open until successful evidence establishes all five integrations.

Verification

  • uv run --extra test pytest -q --tb=short: 1,625 passed; replay only, including existing conversational regressions.
  • uv run --extra test pytest -q --tb=short tests/test_embedding_translation.py tests/core/test_embeddings.py: 108 passed.
  • uv run --extra test pytest -q --tb=short tests/core/test_embedding_engines.py: 56 passed; corrected synthetic error also passed focused replay.
  • uv run --extra lint ruff check --output-format github --config pyproject.toml .: passed.
  • uv run --extra lint ruff format --diff --config pyproject.toml .: passed, 100 files.
  • npx prettier@3.8 --check .: passed; final matrix wording also passed a focused check.
  • git diff --check and recorded-fixture integrity checks: passed.
  • gh pr checks 97 --repo EmbeddedLLM/molto --watch --interval 10: all checks passed, including Python 3.12, 3.13, and 3.14, Ruff, and Prettier.
  • Live verification remains incomplete for VoyageAI, Infinity, and vLLM for the access/deployment reasons above.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant