AI文档解析功能实现

234 阅读2分钟

目前AI文档解析是火的一塌糊涂,本着什么火学什么的态度,研究了一下,发现市面上已经有现成的API可以调用,下面整理了一下使用方法,供大家学习参考

API文档地址:api.atalk-ai.com

要实现AI文档解析功能分为三步

  1. 上传文档或文字进行解析
  2. 根据上传的文档进行会话
  3. 获取AI回答所采用的是文档中的那一部分

下面我来带大家一一实现

1、上传文档或文字进行解析

该接口会返回docsId后续我们会根据docsId去进行文档会话


import axios from 'axios';

const options = {
  method: 'POST',
  url: 'https://api.atalk-ai.com/docs/upload',
  headers: {'Content-Type': 'application/json', Accept: 'application/json'},
  data: {fileUrl: 'string', fileName: 'string'}
};


try {
  const { data } = await axios.request(options);
  console.log(data);
} catch (error) {
  console.error(error);
}

接口返回数据格式如下

{
  "code": 0,
  "data": {
    "docsId": 1252
  },
  "msg": "success"
}

2、根据上传的文档进行会话

import axios from 'axios';

const options = {
  method: 'POST',
  url: 'https://api.atalk-ai.com/docs/chat',
  headers: {'Content-Type': 'application/json', Accept: 'application/json'},
  data: {
    docId: 0,
    question: 'string',
    messages: [
      {role: 'system', content: 'You are a helpful assistant.'},
      {role: 'assistant', content: 'can i help you ?'},
      {role: 'user', content: 'Hello!'}
    ],
    model: 'gpt-3.5-turbo'
  }
};

try {
  const { data } = await axios.request(options);
  console.log(data);
} catch (error) {
  console.error(error);
}

如果需要问题以流式方式回答可以调用axiosonDownloadProgress方法,事例如下

request({
     method: 'POST',
     url: 'https://api.atalk-ai.com/docs/chat',
     headers: {'Content-Type': 'application/json', Accept: 'application/json'},
     data: {
        docId: 0,
        question: 'string',
        messages: [
          {role: 'system', content: 'You are a helpful assistant.'},
          {role: 'assistant', content: 'can i help you ?'},
          {role: 'user', content: 'Hello!'}
        ],
        model: 'gpt-3.5-turbo'
      },
    responseType: 'stream',
    onDownloadProgress: (res) => {

    },
})

到此为止已经实现了基于文档的AI会话功能,如果你想要知道AI根据你的问题去检索了哪些数据,那么就可以调用下面的接口

回答来源追溯

该接口可以实现以下功能

image.png

import axios from 'axios';

const options = {
  method: 'POST',
  url: 'https://api.atalk-ai.com/docs/sourceNodes',
  headers: {'Content-Type': 'application/json', Accept: 'application/json'},
  data: {docId: 0, question: 'string'}
};

try {
  const { data } = await axios.request(options);
  console.log(data);
} catch (error) {
  console.error(error);
}