Skip to content

服务端配置

首次配置建议使用 openviking-server init,保存后运行 openviking-server doctor

OpenViking 服务端和 Python SDK 嵌入模式读取 ov.conf。默认路径是:

text
~/.openviking/ov.conf

也可以通过环境变量或启动参数指定其他文件:

bash
export OPENVIKING_CONFIG_FILE=/path/to/ov.conf
openviking-server --config /path/to/ov.conf

服务端启动时读取配置。修改模型、检索、存储或 server 配置后,需要重启服务;重启后建议运行 openviking-server doctor

配置结构

json
{
  "embedding": {},
  "vlm": {},
  "query_planner": {},
  "rerank": {},
  "retrieval": {},
  "storage": {},
  "server": {},
  "memory": {},
  "parsers": {},
  "encryption": {},
  "log": {},
  "telemetry": {}
}

未配置的可选模块使用默认值。ov.conf 不允许未知字段,字段名写错时服务端会拒绝加载。

顶层配置

配置项类型 / 可选值默认值作用
default_accountstring"default"SDK 嵌入模式使用的默认账号
default_userstring"default"SDK 嵌入模式使用的默认用户
embeddingobject内置本地 Dense 模型向量化模型和稀疏/混合检索配置;默认使用 local / bge-small-zh-v1.5-f16
vlmobject空配置内容理解、摘要和记忆抽取使用的模型;使用相关能力前需要配置可用模型
query_plannerobject / nullnull检索意图分析模型;未配置时回退到 vlm
rerankobjectdisabled检索结果重排模型
retrievalobject见下表检索排序和意图分析策略
grepobject内置默认值文本搜索引擎配置
storageobject本地存储工作目录、文件系统和向量数据库
queue_workersobject见下表QueueFS 消费 worker 的运行时并发配置
serverobject本地开发模式HTTP 服务、鉴权、上传和可观测性
memoryobject见下表会话提交后的记忆与技能抽取
parsersobject各解析器默认值PDF、代码、图片、音视频等解析行为
semanticobject内置默认值abstract 和 overview 的生成限制
parser_apiobjectdisabled第三方文件解析 API
connectorobjectdisabled外部 Connector 数据导入服务
encryptionobjectdisabled文件和敏感字段加密
gitobjectlocal版本管理后端,可使用 locals3
logobject控制台日志日志级别、格式和文件输出
telemetryobjectdisabledOpenTelemetry trace 上报
oauthobjectdisabledMCP OAuth 2.1 配置
promptsobject内置模板自定义 Prompt 模板目录
ingestobject内置默认值会话日志导入配置
output_language_overridestring""强制摘要和记忆输出语言;空值表示自动识别
allow_private_networksbooleanfalse是否允许抓取内网或私有地址资源

auto_generate_l0auto_generate_l1default_search_modedefault_search_limit 是已弃用的兼容字段。旧配置文件仍可加载这些字段,但它们不会影响运行时行为。

模型配置

API 型 embeddingvlmquery_plannerrerank 配置会复用部分字段名,但各模块使用独立 schema。请只使用下表中对应模块支持的字段。

json
{
  "embedding": {
    "dense": {
      "provider": "volcengine",
      "model": "doubao-embedding-vision-251215",
      "api_base": "https://ark.cn-beijing.volces.com/api/v3",
      "api_key": "<your-ark-api-key>",
      "dimension": 1024,
      "input": "multimodal"
    }
  },
  "vlm": {
    "provider": "volcengine",
    "model": "doubao-seed-2-0-code-preview-260215",
    "api_base": "https://ark.cn-beijing.volces.com/api/v3",
    "api_key": "<your-ark-api-key>",
    "temperature": 0,
    "max_retries": 3,
    "thinking": false
  },
  "query_planner": {
    "provider": "volcengine",
    "model": "doubao-seed-2-0-code-preview-260215",
    "api_base": "https://ark.cn-beijing.volces.com/api/v3",
    "api_key": "<your-ark-api-key>",
    "thinking": false
  },
  "rerank": {
    "provider": "vikingdb",
    "ak": "<your-volcengine-ak>",
    "sk": "<your-volcengine-sk>",
    "host": "api-vikingdb.vikingdb.cn-beijing.volces.com",
    "model_name": "doubao-seed-rerank",
    "model_version": "251028",
    "threshold": 0.1,
    "max_input_tokens": 0
  }
}
字段 / 路径适用模块作用
providermodelapi_baseapi_keyEmbedding、VLM、Query Planner、Rerank模型服务、地址和凭证
api_versionEmbedding、VLM、Query PlannerAzure 等服务的 API 版本
extra_headersEmbedding、VLM、Query Planner、Rerank附加请求头
extra_request_bodyVLM、Query Planner附加的 Completion 请求参数
extra_bodyembedding.dense / sparse / hybrid附加的 Embedding 请求参数
timeoutVLM、Query Planner、Rerank单次请求超时,单位为秒
embedding.max_retriesvlm.max_retriesquery_planner.max_retriesEmbedding、VLM、Query Planner请求失败重试次数;Rerank 没有 max_retries 字段

embedding.dense

字段类型 / 可选值作用
provideropenaivolcengineazureollamalocalDense Embedding 服务
dimensioninteger,> 0向量维度,必须与模型输出及已有集合一致
input"text" / "multimodal"输入类型
encoding_format"float" / "base64"OpenAI 兼容接口的向量编码格式

更换模型或 dimension 可能与已有向量集合不兼容,需要迁移或重建索引。

rerank

字段类型 / 可选值默认值作用
providervikingdbcohereopenailitellm / nullnullRerank 服务类型;省略时根据凭证字段推断
modelstring / nullnullOpenAI 兼容或 LiteLLM Rerank 模型
thresholdnumber0.1判定结果相关的最低分数
max_input_tokensinteger;0>= 1280每个 query-document pair 的最大估算 token;0 表示不截断

Rerank 没有单独的 enabled 字段;配置了对应 provider 所需的凭证后才会启用。

检索配置

json
{
  "retrieval": {
    "hotness_alpha": 0,
    "score_propagation_alpha": 1,
    "enable_intent": true
  }
}

retrieval

字段类型 / 可选值默认值作用
hotness_alphanumber,010热度分数权重;0 表示关闭热度加权
score_propagation_alphanumber,011层级检索时子结果自身分数的权重
enable_intentbooleantruesession_id 时是否进行意图分析和查询规划

Search 和 Find 请求的默认 limit10,可以在每次 API 或 SDK 请求中覆盖。retrieval.enable_intent 控制带 Session 的 Search 是否执行 LLM 查询规划;只有配置了可用的 rerank provider 时才会执行结果重排。

存储配置

json
{
  "storage": {
    "workspace": "./data",
    "skip_process_lock": false,
    "agfs": {
      "backend": "local"
    },
    "vectordb": {
      "backend": "local"
    }
  }
}

storage

字段类型 / 常用值默认值作用
workspacepath"./data"OpenViking 工作目录
agfs.backendlocalmemorys3local文件与元数据存储后端
vectordb.backendlocalcuvshttpvolcenginevikingdblocal向量数据库后端
vectordb.dimensioninteger跟随 Embedding向量集合维度
skip_process_lockbooleanfalse是否跳过 workspace 进程锁;仅在明确接受并发写风险时启用

远程存储后端还需要配置 endpoint、bucket/collection、鉴权和超时等字段。完整后端示例见配置指南

队列 Worker 配置

queue_workers.external_parse

字段类型默认值说明
max_concurrentinteger4同时消费的完整 ExternalParse 作业数,必须大于 0;修改后需重启服务

该配置控制队列作业并发,不等同于 vlm.media.max_concurrent 的音视频 VLM 调用并发,也不限制 Understanding API 的单独 HTTP 请求数。

HTTP 服务配置

json
{
  "server": {
    "host": "127.0.0.1",
    "port": 1933,
    "workers": 1,
    "auth_mode": "dev",
    "cors_origins": ["http://localhost:5173"],
    "profile_enabled": false,
    "temp_upload": {
      "default_mode": "local"
    }
  }
}

server

字段类型 / 可选值默认值作用
hostIP / hostname"127.0.0.1"HTTP 监听地址
portinteger1933HTTP 监听端口
workersinteger1服务进程数量
timeout_keep_aliveinteger(秒)5空闲 HTTP keep-alive 超时;应调大到超过上游空闲连接寿命
auth_modedevapi_keytrusted / nullnull鉴权模式;空值根据 root_api_key 自动判断
root_api_keystring / nullnullRoot API Key;配置后默认启用 api_key 模式
cors_originsstring[]["*"]允许的跨域来源
profile_enabledbooleanfalse是否允许请求返回性能 profile
with_botbooleanfalse是否启用 VikingBot API 代理
bot_api_urlURLhttp://localhost:18790VikingBot OpenAPI 地址
public_base_urlURL / nullnull外部访问使用的服务基准地址
upload_signed_ttl_secondsinteger600签名上传 URL 有效期
temp_upload.default_mode"local" / "shared""local"临时上传存储模式

文件加密与 API Key 哈希

文件加密和 API Key 哈希在顶层 encryption 中配置,不属于 server

json
{
  "encryption": {
    "enabled": false,
    "api_key_hashing": {
      "enabled": false
    }
  }
}
字段类型 / 可选值默认值作用
encryption.enabledbooleanfalse是否启用文件级 AES 加密
encryption.api_key_hashing.enabledbooleanfalse是否使用 Argon2id 保存 API Key

Provider 和密钥管理配置见加密指南

鉴权模式

使用场景
dev仅监听本机地址的开发环境,不要求 API Key
api_key服务端校验 root/user/admin key
trusted由受信任网关注入 account/user 身份

记忆配置

json
{
  "memory": {
    "custom_templates_dir": "",
    "experimental_memory_switch": false,
    "eager_prefetch": true,
    "prefetch_search_topn": 5,
    "extraction_enabled": true,
    "session_skill_extraction_enabled": false,
    "link_enabled": false,
    "v2_lock_retry_interval_seconds": 0.2,
    "v2_lock_max_retries": 0
  }
}

memory

字段类型 / 可选值默认值作用
custom_templates_dirpath""附加的自定义记忆模板目录
experimental_memory_switchbooleanfalse是否启用实验性记忆模板
eager_prefetchbooleantrue是否在抽取前预取并读取记忆内容
prefetch_search_topninteger,>= 15预取时读取的检索结果数量
extraction_enabledbooleantruesession commit 时是否抽取长期记忆
session_skill_extraction_enabledbooleanfalse是否同时抽取可复用 Skill
link_enabledbooleanfalse是否生成和解析记忆链接
v2_lock_retry_interval_secondsnumber,>= 00.2记忆锁获取失败后的重试间隔
v2_lock_max_retriesinteger,>= 00最大重试次数;0 表示不限次数

解析器配置

解析器放在 parsers 下:

json
{
  "parsers": {
    "pdf": {},
    "code": {
      "code_summary_mode": "ast",
      "extract_functions": true,
      "extract_classes": true,
      "max_token_limit": 50000
    },
    "image": {},
    "audio": {},
    "video": {},
    "markdown": {},
    "excel": {},
    "html": {},
    "text": {},
    "directory": {},
    "feishu": {
      "domain": "https://open.feishu.cn",
      "max_rows_per_sheet": 1000,
      "max_records_per_table": 1000,
      "download_images": true
    },
    "webfeed": {}
  }
}
配置项作用
pdfPDF 文本、图片和版面解析
code代码仓库文件类型、忽略规则和安全限制
image图片理解和 OCR
audiovideo音视频内容解析
markdownhtmltext文本文档分段
excelExcel 工作表解析与分段
directory目录扫描和忽略规则
feishu飞书文档访问与解析
webfeedSitemap、RSS 和 Atom 导入

各模型 provider、解析器、存储后端和加密后端包含较多专用字段,完整字段表和配置示例见配置指南

最小示例

json
{
  "embedding": {
    "dense": {
      "provider": "volcengine",
      "model": "doubao-embedding-vision-251215",
      "api_base": "https://ark.cn-beijing.volces.com/api/v3",
      "api_key": "<your-ark-api-key>",
      "dimension": 1024,
      "input": "multimodal"
    }
  },
  "vlm": {
    "provider": "volcengine",
    "model": "doubao-seed-2-0-code-preview-260215",
    "api_base": "https://ark.cn-beijing.volces.com/api/v3",
    "api_key": "<your-ark-api-key>",
    "thinking": false
  },
  "storage": {
    "workspace": "./data"
  },
  "server": {
    "host": "127.0.0.1",
    "port": 1933
  }
}

Released under the Apache-2.0 License.