实现网页访问/接口调用KernelMemory

1、背景

访问Kernel Memory有两种方式:客户端访问、API(或网页访问),本次以API接口进行说明

2、具体实现

2.1 部署服务端

Kernel Memory的单独部署的使用中说明了如何单独部署一个Kernel Memory,若部署成功后,访问:http://localhost:9001/swagger/index.html,就能看到如下的界面。
在这里插入图片描述
这里面有具体的方法和参数说明
以ask方法为例,其http方法为post。消息体的参数要求为:

{
  "index": "string",
  "question": "string",
  "filters": [
    {
      "additionalProp1": [
        "string"
      ],
      "additionalProp2": [
        "string"
      ],
      "additionalProp3": [
        "string"
      ]
    }
  ],
  "minRelevance": 0,
  "stream": true,
  "args": {
    "additionalProp1": "string",
    "additionalProp2": "string",
    "additionalProp3": "string"
  }
}

以上面规定的参数进行传递,参数不一定全部用上,可以只写部分

2.2 js端调用

前端调用实现的代码如下:

const axios = require("axios");

const data = {
  question: "北京动物园有多少只动物?",  //因为上一篇文章中,我们山传了动物和门票的信息
};

axios
  .post("http://127.0.0.1:9001/ask", data, {
    headers: {
      "Content-Type": "application/json",
    },
  })
  .then((response) => {
    if ("text" in response.data) {
      console.log(response.data.text);
    } else {
      console.log("Response does not contain a 'text' property.");
    }
  })
  .catch((error) => {
    console.error(error.message);
  });

这里使用了node进行代码执行,但是原理是一样的。只不过需要提前安装一些axios这个包

2.3 实现的效果

在这里插入图片描述
可以看到已经进行了回答

2.4 山传文件的具体实现

同样是使用node进行程序运行,js的代码如下

const axios = require("axios"); 
const fs = require("fs");
const FormData = require("form-data");

async function run() {
  const fileBuffer = await fs.promises.readFile("README.md"); //需要上传的文件

  const formData = new FormData();
  formData.append("file1", fileBuffer, { filename: "README.md" });
  formData.append("documentId", "doc01");

  axios
    .post("http://127.0.0.1:9001/upload", formData, {
      headers: {
        "Content-Type": "multipart/form-data",
      },
    })
    .then((response) => {
      console.log(response.data);
    })
    .catch((error) => {
      console.error(error);
    });
}

run();

需提前安装axios和fs。使用node和其他前端调用api方式的原理是一样的。

3、参考资料

1、官网

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值