使用 ONLYOFFICE 宏借助 ChatGPT 生成文章

AI 技术在过去几年中得到了显著提升,同时也成为了我们日常生活中必不可少的一部分。现在,我们会将这种高科技功能纳入到文档撰写过程。在本文中,我们将展示如何构建一个宏来使用 ChatGPT API 生成文章。

使用 ONLYOFFICE 宏借助 ChatGPT 生成文章_第1张图片

关于 ChatGPT

ChatGPT 是由 OpenAI 开发的创新性 AI 聊天机器人,可与人类进行自然交谈。ChatGPT 的对话设计使其能够对跟进问题做出响应、识别错误、生成文本并对不正确的陈述提出异议。此服务所采用的模型已经过训练,可遵循输入语句中的指示性内容进行工作,提供详细的响应。

OpenAI 提供了免费的试用 API,可便捷地集成至各类应用程序中。为了方便起见,我们将通过 RapidAPI 平台访问 OpenAI API。如需直接连接 OpenAI API,请访问官方文档页面。

关于 RapidAPI

RapidAPI 是一款可供开发人员寻找、连接以及管理 API 的综合性平台。其中包含了超过 10,000 种 API 目录,如:Google Maps、Twillio、Stripe 以及 YouTube。用户可对 API 进行搜索与免费试用,还可订阅 API 与服务。RapidAPI 还提供了仪表板来对 API 订阅、使用以及性能情况进行检测,此外还提供了访问方面的支持服务。另外,RapidAPI 还让开发人员获得了自建 API 并从中变现的能力。

构建 API 请求

我们在自己的项目中纳入了来自 FB/florianbreut 的 You Chat GPT API。目前其提供有高级免费版,基础包中每月提供了 100 个请求。对于测试我们的宏而言,这已经足够了。

RapidAPI 平台接口可生成多种语言的请求代码片段。这里我们选择的是 JavaScript 与 fetch 函数:

使用 ONLYOFFICE 宏借助 ChatGPT 生成文章_第2张图片

同时我们还能对请求参数进行调整。特别的,我们还能更改请求正文。API 提供了 4 种请求选项,具体取决于 OpenAI 模型:

  1. 编写代码
  2. 进行解释
  3. 时间响应约束
  4. 格式化回答

格式化回答选项尤其适合生成文章的操作。所以这里我们选择此选项,并将 max_response_time 参数更改为 20 秒。这将为 OpenAI 提供更多时间来生成回答:

使用 ONLYOFFICE 宏借助 ChatGPT 生成文章_第3张图片

构建宏

现在我们来将这一 fetch 请求纳入宏中!

首先,创建一个全局变量来储存响应:

let essay;

然后添加请求选项并通过更改请求正文中的 question 参数设置文章主题:

const options = {
method: 'POST',
headers: {
'content-type': 'application/json',
'X-RapidAPI-Key': '',
'X-RapidAPI-Host': 'you-chat-gpt.p.rapidapi.com'
},
body: '{"question":"write an essay on the benefits of using ONLYOFFICE products","max_response_time":20}'
};

之后我们来定义 insertEssay 函数。函数中将包含将生成的文章插入至文档中的 ONLYOFFICE API 方法。
首先,我们将活动文档设置为目标,并在其中创建用于添加文本的段落:

function insertEssay() {
const oDocument = Api.GetDocument();
const oParagraph = Api.CreateParagraph();
  
}

然后将生成的文章添加至段落中并使用 InsertContent 方法将其插入。同时也会传递“KeepTextOnly”参数以防止各类格式化问题出现:

function insertEssay() {
const oDocument = Api.GetDocument();
const oParagraph = Api.CreateParagraph();
oParagraph.AddText(essay);
oDocument.InsertContent([oParagraph], { "KeepTextOnly": true })
  

我们还会整合 handleFetchResponse 函数,其会从响应中提取答案并触发 insertEssay 函数以将其插入至文档中:

function handleFetchResponse(response) {
return response.json().then(json => {
essay = json.answer;
insertEssay();
});
}

然后,我们向服务器发出获取请求:

fetch('https://you-chat-gpt.p.rapidapi.com/', options)
.then(handleFetchResponse);

完整的宏代码如下:

(function()
{
let essay;
const options = {
method: 'POST',
headers: {
'content-type': 'application/json',
'X-RapidAPI-Key': '',
'X-RapidAPI-Host': 'you-chat-gpt.p.rapidapi.com'
},
body: '{"question":"write an essay on the benefits of using ONLYOFFICE products","max_response_time":20}'
};
 
function insertEssay() {
const oDocument = Api.GetDocument();
const oParagraph = Api.CreateParagraph();
oParagraph.AddText(essay);
oDocument.InsertContent([oParagraph], { "KeepTextOnly": true });
}
 
function handleFetchResponse(response) {
return response.json().then(json => {
essay = json.answer;
insertEssay();
});
}
 
fetch('https://you-chat-gpt.p.rapidapi.com/', options)
.then(handleFetchResponse);
})();

注意!

  • 此宏仅在线上版本的编辑器中可用。
  • 如需获取 100 个免费请求,请订阅 You Chat GPT API 并使用您自己的 RapidAPI Key
  • 在将请求内容插入至文档中之前可能需要 30 秒时间来处理请求。
  • 按下空格键以插入文本。

希望此宏能够在您的工作流中带来一些让人着迷的 AI 技术,帮助您减轻繁琐的日常工作负担。我们倡议开发人员充分利用我们的 API 方法来构建其自己的宏。我们的宏采用 JavaScript 进行编写,这使得其具有很强的功能性和适应性。
如果您有任何疑问或建议,欢迎随时与我们联系。我们很乐意聆听您的想法,同时期待着与您开展合作。祝您的探索之旅一帆风顺!

相关链接

ONLYOFFICE 文本文档 API
You Chat GPT API
OpenAI API 文档页面
另一个使用 RapidAPI 与 ONLYOFFICE 宏的案例
在 ONLYOFFICE 文档中引入 ChatGPT

你可能感兴趣的:(教程,chatgpt,onlyoffice,宏)