开发者
我要评分
获取效率
正确性
完整性
易理解
在线提单
论坛求助

部署记忆服务(单机)

记忆服务相关进程(openGauss、OpenViking)整体CPU资源建议限定为16个vCPU,可按需进行绑核约束。

  1. 下载openGauss数据库的Docker镜像。
    docker pull swr.cn-north-4.myhuaweicloud.com/kunpeng-ai/opengauss-distributed:0328
  2. 启动单机openGauss容器。
      docker run --name opengauss --privileged=true -d \
      -e GS_USERNAME={OG_USER} \
      -e GS_PASSWORD={OG_PASSWORD} \
      -e GS_NODENAME={OG_NODE_NAME}    \
      -e GS_PORT={OG_PORT}    \
      -p {HOST_PORT}:{OG_PORT} \
      swr.cn-north-4.myhuaweicloud.com/kunpeng-ai/opengauss-distributed:0328

    GS_PASSWORD包含大写字母、小写字母、数字及特殊符号中的三种或三种以上

    推荐使用以下简易启动命令,默认{OG_USER}omm{OG_NODE_NAME}omm{OG_PORT}5432

      docker run --name opengauss --privileged=true -d \
      --cpuset-cpus="32-39" \
      -e GS_PASSWORD={OG_PASSWORD} \
      -p {HOST_PORT}:5432 \
      swr.cn-north-4.myhuaweicloud.com/kunpeng-ai/opengauss-distributed:0328

    按照默认配置部署成功后,下列openGauss容器应处于正常运行状态。

  3. 配置openGauss。
    1. 进入容器。
      docker exec -it opengauss bash
    2. 切换到管理用户。
      su omm
    3. 进入SQL命令行。
      gsql -r
    4. 创建新用户test,并赋予权限。user_password包含大写字母、小写字母、数字及特殊符号中的三种或三种以上
      create user test with password '<user_password>';
      grant all privileges to test;
  4. 下载并启动支持openGauss数据库的OpenViking镜像。
    docker pull swr.cn-north-4.myhuaweicloud.com/kunpeng-ai/openviking-opengaussbackend:0328
    启动OpenViking容器。
      docker run -d --name OpenViking \
      -p 1933:1933 \
      -e OPENVIKING_VLM_PROVIDER=openai \
      -e OPENVIKING_VLM_API_BASE=<your_vlm_api_base> \
      -e OPENVIKING_VLM_API_KEY="<your_api_key>" \
      -e OPENVIKING_VLM_MODEL=<your_vlm_model> \
      -e OPENVIKING_EMBEDDING_PROVIDER=openai \
      -e OPENVIKING_EMBEDDING_API_BASE=<your_embedding_api_base> \
      -e OPENVIKING_EMBEDDING_API_KEY="<your_api_key>" \
      -e OPENVIKING_EMBEDDING_MODEL=<your_embedding_model> \
      -e OPENVIKING_TARGET_URI=viking://user/memories \
      -e OPENVIKING_ROOT_API_KEY=<your_root_key> \
      -v /your_path/openclaw-data:/root/.openclaw \
      -v /your_path/openviking-data:/root/.openviking \
      swr.cn-north-4.myhuaweicloud.com/kunpeng-ai/openviking-opengaussbackend:0328
    • /your_path/openclaw-data:挂载宿主机目录,用于持久化OpenClaw的配置和数据。
    • /your_path/openviking-data:挂载宿主机目录,用于持久化OpenViking的配置和数据。
    • your_root_key:(可选)设置用于控制OpenViking多租户模式下用户的访问。
  5. 修改ov.conf文件。
    1. 进入容器。
      docker exec -it OpenViking bash
    2. 修改ov.conf配置文件。
      vi /root/.openviking/ov.conf
    3. 按“i”进入编辑模式,配置OpenViking的向量数据库后端引擎为openGauss,按需修改Embedding模型。
      {
          "server": {
            "host": "0.0.0.0",
            "port": 1933,
            "root_api_key": null,
            "cors_origins": ["*"]
          },
          "storage": {
            "workspace": "/home/your_user/openviking_workspace",
            "vectordb": {
              "backend": "opengauss",        # 使用openGauss
              "dimension": 1024,             # 需根据模型而定,建议小于等于1536
              "opengauss": {
                "host": "{HOST_IP}",         # 对应配置
                "port": "{HOST_PORT}",       # 对应配置
                "user": "{OG_USER}",         # 对应创建的用户
                "password": "{OG_PASSWORD}", # 对应配置
                "db_name": "{OG_NODE_NAME}", # 对应配置
                "mode": "standalone"         # 单机
              }
            },
            "agfs": {
              "port": 1833,
              "log_level": "warn",
              "backend": "local"
            }
          },
          "embedding": {
            "dense": {
              "provider": "openai",
              "api_key": "local_key",
              "model": "bge-m3-Q8_0.gguf",        # 对应Embedding模型
              "api_base": "http://127.0.0.1:11133/v1",  # 对应API地址
              "dimension": 1024,                  # Embedding模型的维度大小
              "input": "multimodal"
            }
          },
          "vlm": {
            "provider": "openai",
            "api_key": "your_api_key",
            "model": "your_model",
            "api_base": "your_model_api_base",
            "temperature": 0.1,
            "max_retries": 3
          },
          "log": {
            "level": "INFO",
            "output": "stdout"
          }
        }
    4. 按“Esc”键退出编辑模式,输入:wq!,按“Enter”键保存并退出文件。
    5. 重启OpenViking容器使配置生效。
       docker restart OpenViking
    6. 进入openGauss数据库查看。
      docker exec -it opengauss bash
      su omm
      gsql -r
      \d    

      应看到OpenViking初始化的三张表。

  6. 验证OpenViking服务。
    curl http://<your_server_ip>:1933/health

    预期返回:{"status":"ok"},示例如下。

  7. (可选)如需实现多Agent共享记忆,可启用OpenViking的多租户模式,并让多个Agent共用一个工作区下的User Key。
    1. 修改ov.conf配置文件。
      vi /root/.openviking/ov.conf
    2. 按“i”进入编辑模式,设置server字段的root_api_key值。
      "server": {
            "host": "0.0.0.0",
            "port": 1933,
            "root_api_key": "<root_key>",
            "cors_origins": ["*"]
          },
    3. 重启OpenViking容器使配置生效。
      docker restart openViking
    4. 创建新工作区及其首个管理员用户。
      curl -X POST http://localhost:1933/api/v1/admin/accounts\
         -H "Content-Type: application/json"\
         -H "X-API-Key: <root_key>"\
         -d '{
          "account_id": "<your_account_id>",
          "admin_user_id": "<your_usr_id>"
        }'

      响应示例如下:

      {"status":"ok","result":{"account_id":"your_account_id","admin_user_id":"your_usr_id","user_key":"c11e7372fe26ed05541ad7f..."},"error":null,"telemetry":null}

    5. 在工作区中注册新用户。
      curl -X POST http://localhost:1933/api/v1/admin/accounts/<your_account_id>/users\
         -H "Content-Type: application/json"\
         -H "X-API-Key: <root_key>"\
         -d '{
          "user_id": "<your_usr_id>",
          "role": "user"
        }'

      响应示例如下:

      {"status":"ok","result":{"account_id":"your_account_id","user_id":"your_usr_id","user_key":"8ac0c833971ab9a91a74b83386..."},"error":null,"time":0.0,"usage":null}