秤陷曲 发表于 2026-2-18 13:10:02

OpenClaw+OpenViking + NVIDIA API 配置教程

本教程介绍如何在 OpenClaw 环境中配置 OpenViking,使用 NVIDIA NIM API 作为 Embedding 和 VLM 后端。
什么是 OpenViking?

OpenViking 是火山引擎开源的 AI Agent 上下文数据库。它用"虚拟文件系统"的方式管理 Agent 的记忆、资源和技能,提供:

[*]分层上下文:L0摘要 / L1概览 / L2全文,按需加载节省 Token
[*]语义搜索:融合目录定位与向量检索
[*]自动摘要:VLM 自动生成文档摘要和概览
[*]会话记忆:自动提取对话中的长期记忆
GitHub: https://github.com/volcengine/OpenViking
前置条件


[*]Python 3.9+
[*]NVIDIA NIM API Key(免费注册)
[*]稳定的网络连接
第一步:安装 OpenViking

pip install openviking第二步:创建配置文件

创建目录和配置文件:
mkdir -p ~/.openviking编辑 ~/.openviking/ov.conf:
{"embedding": {    "dense": {      "api_base": "https://integrate.api.nvidia.com/v1",      "api_key": "你的NVIDIA_API_KEY",      "provider": "openai",      "dimension": 4096,      "model": "nvidia/nv-embed-v1"    }},"vlm": {    "api_base": "https://integrate.api.nvidia.com/v1",    "api_key": "你的NVIDIA_API_KEY",    "provider": "openai",    "model": "meta/llama-3.3-70b-instruct"}}配置说明

参数说明api_baseNVIDIA NIM API 端点api_key从 NVIDIA Build 平台获取dimensionEmbedding 维度,nv-embed-v1 固定为 4096embedding.model推荐使用 nvidia/nv-embed-v1(对称模型,不需要 input_type 参数)vlm.model用于生成摘要的语言模型,推荐 meta/llama-3.3-70b-instruct为什么不用 kimi-k2.5?

NVIDIA 上的推理模型(如 kimi-k2.5)返回的 content 字段为空,内容在 reasoning 字段里。OpenViking 期望标准的 message.content 格式,所以要用非推理模型。
如何获取 NVIDIA API Key


[*]访问 https://build.nvidia.com/
[*]登录/注册账号
[*]点击右上角用户名 → API Keys → Generate Key
[*]复制保存(只显示一次)
第三步:设置环境变量

export OPENVIKING_CONFIG_FILE=~/.openviking/ov.conf建议添加到 ~/.bashrc:
echo 'export OPENVIKING_CONFIG_FILE=~/.openviking/ov.conf' >> ~/.bashrcsource ~/.bashrc第四步:验证安装

创建测试脚本 test_openviking.py:
import openviking as ov# 初始化客户端,数据存储在当前目录的 openviking_data 文件夹client = ov.SyncOpenViking(path="./openviking_data")try:    client.initialize()    print("✅ OpenViking 初始化成功!")      # 添加一个测试文件    result = client.add_resource(path="./your_file.md")    print(f"添加文件: {result}")      # 等待处理完成    print("等待处理...")    client.wait_processed()    print("✅ 处理完成!")      # 搜索测试    results = client.find("测试关键词", limit=3)    print(f"\n搜索结果:")    for r in results.resources:      print(f"{r.uri} (score: {r.score:.4f})")      client.close()    print("\n
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

苗嘉惠 发表于 2026-3-10 02:40:47

这个好,看起来很实用

篁瞑普 发表于 13 小时前

收藏一下   不知道什么时候能用到
页: [1]
查看完整版本: OpenClaw+OpenViking + NVIDIA API 配置教程