* fix: resolve tiktoken encoding without constructing the embedding client EmbeddingClient.encoding forced full client construction, which raises 'OpenAI API key is required' even though tiktoken needs no credentials. The document dedup tie-break (src/crud/document.py) only needs .encoding for token counting, so any test hitting that path fails in environments without embedding keys — notably CI for pull requests from forks, where repo secrets are unavailable (e.g. #908's test-python job failing on tests/crud/test_document.py::test_duplicate_rejection_reinforces_existing). Resolve the encoding from the configured model directly, falling back to cl100k_base, and only reuse the underlying client's encoding when it has already been constructed. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * fix: make embedding batch size configurable Add optional max_batch_size to the embedding model config (EMBEDDING_MODEL_CONFIG__MAX_BATCH_SIZE) to cap texts per request for OpenAI-compatible providers with smaller limits than OpenAI's, such as DashScope text-embedding-v4 (10) and Alibaba Bailian qwen3.7-text-embedding (20). When unset, native provider defaults are preserved (OpenAI 2048, Gemini 100). Fixes #687. * test(embedding): cover Gemini batching and config fallbacks per review - Gemini transport now tested for configured batch splitting and the 100 default fallback - OpenAI unset default (2048, single request) explicitly covered - env-parsing test now asserts the value survives resolve_embedding_model_config - docs: 100 is the client's conservative Gemini default, not a native limit * test(embedding): assert provider batch-size defaults --------- Co-authored-by: adavyas <adavyasharma@gmail.com> Co-authored-by: Claude Fable 5 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| api-reference | ||
| contributing | ||
| documentation | ||
| guides | ||
| migrations | ||
| README.md | ||
| openapi.json | ||
README.md
This subdirectory contains the peer-paradigm documentation for Honcho (Honcho v2.0.0 onwards).