openviking backend delegates resource parsing, indexing, and retrieval to OpenViking, so VeADK does not need a local embedding model. Each index maps to viking://user/<openviking_user_id>/resources/<index>/ by default, where openviking_user_id is the owner/context the resources belong to; it defaults to default. This backend is available in VeADK 1.0.3 and later.
openviking_user_id identifies the OpenViking owner/context used to isolate resources and memory for different applications or tenants within the same OpenViking service. It is distinct from Runner.user_id, which identifies the end user.Dependencies
The OpenViking SDK is part of VeADK’s base dependencies:Example
backend_config is omitted, url, api_key, and openviking_user_id are read from the DATABASE_OPENVIKING_* environment variables, and index comes from KnowledgeBase(index=...) or app_name:
close() to release the OpenViking client held by the backend when the knowledge base is no longer needed:
Parameters
KnowledgeBase parameters
Backend configuration
When
openviking_user_id is not configured, VeADK checks DATABASE_OPENVIKING_USER_ID and then OPENVIKING_USER_ID, falling back to default. user_id remains available as a compatibility alias and is equivalent to openviking_user_id.
Environment variables
The parameters map toDATABASE_OPENVIKING_URL, DATABASE_OPENVIKING_API_KEY, DATABASE_OPENVIKING_USER_ID, DATABASE_OPENVIKING_ACCOUNT, DATABASE_OPENVIKING_USER, DATABASE_OPENVIKING_ACTOR_PEER_ID, DATABASE_OPENVIKING_TARGET_URI, DATABASE_OPENVIKING_WAIT, DATABASE_OPENVIKING_IMPORT_TIMEOUT, DATABASE_OPENVIKING_HYDRATE_RESULTS, DATABASE_OPENVIKING_READ_LIMIT, DATABASE_OPENVIKING_SCORE_THRESHOLD, and DATABASE_OPENVIKING_USE_CONTEXT_SEARCH. The URL, API key, user ID, account, user, actor peer ID, and target URI also accept the corresponding OPENVIKING_* variables.
Per-operation overrides
Constructor parameters define the defaults. These keyword arguments can override them for one ingestion or search operation.wait=False confirms submission only, not search readiness. hydrate_results=True adds content reads for matched resources, limited by read_limit; it does not guarantee the complete document is returned. Runner.user_id does not automatically change the resource directory; configure explicit directories and service permissions for separate tenants
The example search should return the annual-leave policy. For empty results, check successful ingestion, matching embedding dimensions, completed server processing, network access, and permissions. Managed ingestion may not be immediately searchable. Running the configured Agent also requires model credentials