ONLYOFFICEマクロを使ってChatGPTで小論文を生成する方法

2023年02月22日著者:Denis

AI技術は数年の間に著しく進歩し、私たちの日常生活に欠かせない存在となりました。今日は、このハイテク機能を文書作成のルーチンに組み込んでみましょう。このブログ記事では、ChatGPT APIを使ってエッセイ全体を生成するマクロを構築する方法をご紹介します。
Use ONLYOFFICE macro to generate an essay with ChatGPT

ChatGPTについて

ChatGPTは、OpenAIが開発した、自然な会話ができる革新的なAIチャットボットです。その対話設計により、フォローアップ質問への応答、そのエラーの認識、テキストの生成、不正確な発言への異議申し立てが可能です。このモデルは、プロンプトの指示に従い、詳細な返答をするように訓練されています。

OpenAIは、様々なアプリケーションへの統合を容易にするために、無料のトライアルAPIを提供しています。便宜上、RapidAPIプラットフォームを通じてOpenAI APIにアクセスすることにします。OpenAI APIに直接接続するには、公式ドキュメントのページをご覧ください。

RapidAPIについて

RapidAPIは、開発者がAPIを発見し、接続し、管理するための包括的なプラットフォームです。Google Maps、Twilio、Stripe、YouTubeなどの人気APIを含む10,000以上のAPIのディレクトリが含まれています。ユーザーは、APIの検索、無料トライアルの試用、APIやサービスの購読を行うことができます。また、RapidAPIは、APIのサブスクリプション、使用状況、パフォーマンスを監視するダッシュボードを提供し、サポートにアクセスすることができます。さらに、RapidAPIは、開発者がAPIを作成し、それを収益化することを可能にします。

APIリクエストの形成

今回のプロジェクトでは、FB/florianbreutのYou Chat GPT APIを取り入れました。現在、月100リクエストの基本パッケージから始まるフリーミアムプランが提供されています。マクロのテストには十分でしょう。

RapidAPIプラットフォームのインターフェースは、様々な言語でのリクエストコードスニペットを生成します。私たちの場合、JavaScriotとフェッチ関数が選択されます。

Use ONLYOFFICE macro to generate an essay with ChatGPT

また、リクエストのパラメータをいじることもできます。特に、リクエストボディを変更することができます。APIは、OpenAIのモデルによって、4つのリクエストオプションを提供しています。

  • コードを書く
  • 何でも説明する
  • 時間的制約のある応答
  • フォーマットされた回答

フォーマットされた回答は、エッセイの作成に最適なオプションです。そこで、これを選び、max_response_timeパラメータを20秒に変更します。こうすることで、OpenAIが答えを生成するための時間を増やすことができます。

Use ONLYOFFICE macro to generate an essay with ChatGPT

マクロの構築

では、このフェッチリクエストをマクロに組み込んでみましょう。まず、レスポンスを格納するグローバル変数を作成します。

let essay;

それから、リクエストオプションを追加し、リクエストボディの質問パラメータを変更することによってエッセイのトピックを設定します。

const options = {
  method: 'POST',
  headers: {
    'content-type': 'application/json',
    'X-RapidAPI-Key': '<yourRapidAPIkey>',
    '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': '<yourRapidAPIkey>',
    '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キーを使用してください。
  • ドキュメントに挿入する前に、リクエストを処理するのに約30秒かかります。
  • スペースキーを押すとテキストが挿入されます。

このマクロによって、新しい魅力的なAI技術をワークフローに導入し、面倒なルーチンワークを軽減することができればと思います。開発者の皆様には、私たちのAPIメソッドが提供する可能性を活用し、マクロを構築していただくことを強くお勧めします。マクロはJavaScriptで記述されており、高機能で適応性の高いものとなっています。

ご質問やご要望がありましたら、お気軽にお問い合わせください。皆様のご意見をお聞かせください。