Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: volcengine/OpenViking
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v0.2.14
Choose a base ref
...
head repository: volcengine/OpenViking
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v0.2.15
Choose a head ref
  • 4 commits
  • 619 files changed
  • 5 contributors

Commits on Mar 30, 2026

  1. feat(embedder): add Cohere dense embedder (#941)

    * feat(embedder): add Cohere dense embedder with embed-v4.0 support
    
    Adds CohereDenseEmbedder using Cohere's Embed API v2.
    - Supports embed-v4.0, embed-english-v3.0, embed-multilingual-v3.0
    - Server-side dimension reduction for embed-v4.0 (256/512/1024/1536)
    - Client-side truncation + renormalization fallback for v3 models
    - Asymmetric search via input_type (search_query/search_document)
    - Batch embedding with 96-item chunking (Cohere API limit)
    - Full factory integration: provider validation, dimension resolution
    
    none
    
    * test(embedder): add unit tests for Cohere embedder
    
    16 tests covering:
    - Init validation (api_key required, defaults, model dimensions)
    - Dimension handling (v4 server-side, v3 client-side truncation, invalid dims)
    - Embedding calls (single, batch, query vs document input_type)
    - output_dimension sent for embed-v4.0
    - Error handling (API errors → RuntimeError)
    - Resource cleanup (close)
    
    none
    
    * feat(rerank): add Cohere rerank-v3.5 support
    
    Extends RerankConfig with provider field and api_key for Cohere.
    Adds CohereRerankClient with same interface as VikingDB RerankClient.
    HierarchicalRetriever auto-selects rerank backend based on provider.
    
    Config example:
      "rerank": {"provider": "cohere", "api_key": "...", "threshold": 0.15}
    
    Quality improvement: META tokenomics query 0.55 → 0.77 relevance score.
    
    none
    
    * test(rerank): add unit tests for Cohere reranker
    
    9 tests covering:
    - Rerank batch scoring with index-to-order mapping
    - Empty input handling
    - API error graceful fallback (returns None)
    - Original order preservation from Cohere's sorted response
    - Resource cleanup
    - RerankConfig provider auto-detection (cohere/vikingdb/empty)
    
    none
    
    * perf(retrieve): increase GLOBAL_SEARCH_TOPK from 5 to 10
    
    More vector candidates for reranker to evaluate = better precision.
    With Cohere rerank-v3.5, 10 candidates gives the cross-encoder enough
    material to find the best match without excessive latency.
    
    none
    
    * refactor: unify rerank dispatch — route all providers through RerankClient.from_config()
    
    Cohere was special-cased in hierarchical_retriever.py while openai/litellm
    went through the centralized RerankClient.from_config() dispatch. This commit
    adds CohereRerankClient.from_config() and routes it through the same path.
    
    Also fixes a bug where from_config() used config.provider directly instead
    of _effective_provider(), which meant auto-detected providers (e.g. api_key
    without explicit provider="cohere") would not dispatch correctly.
    
    none
    Dicoangelo authored Mar 30, 2026
    Configuration menu
    Copy the full SHA
    9bcdaf4 View commit details
    Browse the repository at this point in the history
  2. lisence: change the main lisence to AGPL-3.0 (#1085)

    * lisence: change the main lisence from Apache-2.0 to AGPL-v3
    
    * lisence: change the main lisence from Apache-2.0 to AGPL-v3
    
    * lisence: change the main lisence from Apache-2.0 to AGPL-v3
    
    ---------
    
    Co-authored-by: openviking <[email protected]>
    MaojiaSheng and openviking authored Mar 30, 2026
    Configuration menu
    Copy the full SHA
    ce99887 View commit details
    Browse the repository at this point in the history
  3. fix(storage): prevent silent data loss in VikingFS.append_file() (#1036)

    When reading existing file content fails (e.g. AGFS timeout, connection
    error, decryption failure), the broad `except Exception: pass` silently
    discards the error and sets existing content to empty string. The
    subsequent write then overwrites the entire file with only the new
    content, losing all previous data.
    
    Only suppress FileNotFoundError (HTTP 404) which is expected on first
    write. Let other AGFS errors propagate so the caller sees the failure
    instead of silently losing data.
    RGB-loop authored Mar 30, 2026
    Configuration menu
    Copy the full SHA
    3ca4de8 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    303cf40 View commit details
    Browse the repository at this point in the history
Loading