ソリューションreezoteのBPO

reezoteのBPO

reezoteは日々クライアントのサポートをしています。

会計DXや企業のSEOコンサル、web制作、MEOサポート、BPOなどが主な仕事です。

BPOについて、
弊社はRPAの技術を駆使していますがその中でどの企業でも使えるチップスがありますのでご紹介します。

RPA(ロボティック・プロセス・オートメーション)とは、パソコン上で行う事務作業を自動化する技術を指します。この技術では、ソフトウェアロボットが人間のマウスやキーボードの操作を学習し、それを基に作業を正確かつ迅速に処理します。これにより、通常の事務作業を効率化し、生産性を向上させることができます。RPAを導入することで、作業の効率アップや生産性の向上にとどまらず、ヒューマンエラーの減少、従業員が単純な作業から解放されることでモチベーションが向上し、より価値の高い業務に集中できるようになります。また、人手不足の解決にも貢献します。


弊社はスプレッドシートにGASプログラムを使い効率化をしています。

例えば、

このようなスプレッドシートを作り、
適当な文字列の中に どのサイトでもいいので適当に求人の情報をctrl aで全部コピーして
何も考えずに貼り付けた後に、

unction main() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  processJobDescription(sheet);
}

// 求人票の情報を取得し、C列に書き込む
function processJobDescription(sheet) {
  var jobDescription = sheet.getRange('B19').getValue();
  
  var fields = sheet.getRange('B3:B17').getValues().flat();
  var filledFields = [];

  // OpenAI API呼び出し
  var response = callOpenAI(jobDescription, fields);
  
  if (response) {
    Logger.log(response);  // レスポンスをログに出力して確認
    var responseData = JSON.parse(response);
    filledFields = responseData.choices[0].message.content.trim().split('\n');
  }

  // C列に書き込む
  for (var i = 0; i < fields.length; i++) {
    if (filledFields[i]) {
      sheet.getRange(3 + i, 3).setValue(filledFields[i]);
    } else {
      sheet.getRange(3 + i, 3).setValue("情報が見つかりませんでした。");
    }
  }
}

// OpenAI APIにリクエストを送信
function callOpenAI(jobDescription, fields) {
  var prompt = `以下の求人情報から、次の項目に対応する情報を抽出してください:\n\n求人情報:\n${jobDescription}\n\n項目:\n${fields.join('\n')}\n\nそれぞれの項目に対応する情報を以下のフォーマットで出力してください:\n\n`;
  for (var i = 0; i < fields.length; i++) {
    prompt += `${fields[i]}:\n`;
  }

  var requestBody = {
    model: "gpt-3.5-turbo",
    messages: [
      { role: "system", content: "You are a helpful assistant." },
      { role: "user", content: prompt }
    ],
    max_tokens: 1000,
    temperature: 0.5
  };

  var options = {
    method: "post",
    contentType: "application/json",
    headers: {
      Authorization: `Bearer ${OPENAI_API_KEY}`
    },
    payload: JSON.stringify(requestBody),
    muteHttpExceptions: true
  };

  try {
    var response = UrlFetchApp.fetch("https://api.openai.com/v1/chat/completions", options);
    var responseText = response.getContentText();
    Logger.log(responseText);  // レスポンスをログに出力して確認
    return responseText;
  } catch (error) {
    Logger.log("Error: " + error);
    SpreadsheetApp.getActiveSpreadsheet().toast("API request failed. Check the logs for more details.", "API Error", 5);
    return null;
  }

}

このようなコードをスクリプトとして登録し、
文字列を貼り付けた後に実行すると

このように一瞬で項目を取得します。

このコードはお好きにお使いください(OPENAI_API_KEYは自分のものに変えてください)

その上で、
GASで、

function generateText() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  
  // ターゲット (F3) と テイスト (F4) を取得
  var target = sheet.getRange("F3").getValue();
  var tone = sheet.getRange("F4").getValue();
  
  // E列の黄色背景を持つセルの値を取得し、文章を生成してF列に出力する
  var lastRow = sheet.getLastRow();
  for (var row = 5; row <= lastRow; row++) {
    var cellE = sheet.getRange(row, 5); // E列のセル
    var background = cellE.getBackground();

    // 背景が黄色の場合
    if (background === "#ffff00") { // 黄色背景のRGBコード
      var category = cellE.getValue(); // E列の内容 (求人票の項目)
      
      // プロンプトの作成
      var prompt = `ターゲット: ${target}\nテイスト: ${tone}\n求人票項目: ${category}\nこの情報をもとに、ターゲットに対して適切な求人情報の文章を生成してください。`;

      // GPT-3.5ターボAPIを使って文章を生成
      var generatedText = generateTextForCell(prompt);

      // F列 (E列の隣) に生成された文章を書き込む
      sheet.getRange(row, 6).setValue(generatedText); // F列に書き込み
    }
  }
}

// GPT-3.5ターボAPIを使用して文章を生成する関数
function generateTextForCell(prompt) {
  var requestBody = {
    model: "gpt-3.5-turbo",
    messages: [
      { role: "system", content: "You are a helpful assistant." },
      { role: "user", content: prompt }
    ],
    max_tokens: 150,
    temperature: 0.7
  };

  var options = {
    method: "post",
    contentType: "application/json",
    headers: {
      Authorization: `Bearer ${OPENAI_API_KEY}`
    },
    payload: JSON.stringify(requestBody),
    muteHttpExceptions: true
  };

  try {
    // APIリクエストを送信
    var response = UrlFetchApp.fetch("https://api.openai.com/v1/chat/completions", options);
    var responseData = JSON.parse(response.getContentText());

    // レスポンスコードが200の場合、生成された文章を返す
    if (response.getResponseCode() === 200) {
      return responseData.choices[0].message.content.trim();
    } else {
      Logger.log("Error: " + responseData.error.message);
      return "エラーが発生しました: " + responseData.error.message;
    }
  } catch (error) {
    Logger.log("Error: " + error);
    return "APIリクエストに失敗しました。詳細はログを確認してください。";
  }
}

すると、

一瞬で文章を生成できます。

ゼロから文章を考えている方々にはかなり便利なツールがGASで実現できたのではないでしょうか。Reezoteはこのような効率をあげるソリューションを提供しています。

ーーーー

AIの登場により、
AIがなくても時間さえあればこなせる作業が、AIを活用することで飛躍的に短時間で完了できるようになった一方で、まだAIを積極的に活用していない人も多くいます。

この結果、スキルやソリューションの面で新たな格差が広がりつつあると考えられます。
もともと企業ごとにIT化やDXの取り組みに差がありましたが、
AIの普及によりその差はさらに拡大しました。

しかし、どれだけ優れたソリューションがあっても、それを受け取る側の理解が追いつかなければ「ソリューションを理解できない」「使いこなせない」という問題が生じます。

実際、多くの企業でこのような課題が見られます。

つまり、「導入したいが内容を理解できず、指示通りにしか対応できない」や「導入はしたものの、自分たちでは使いこなせない」といった状況です。

今後は、「AIを最大限活用したソリューション」と「AI導入コスト以下で業務を処理するために海外の人材を活用するBPO」という2つの方向がますます主流になると予想されます。

私たちは、AI導入ができない会社さんたちのBPOとして、
そのBPO自体がAIを使った効率化を行っている状態で
通常よりも安価にBPOを提供できるという体制を敷いています。

AIそのものの支援もしながら、それをさまざまな理由で使えない会社様にもAI化されたBPOとして
早く正確に安価に提供しています。

AIが飛躍的に進化しても
富士樹海のゴミは最後まで人間が拾う。
海岸のゴミは最後まで人間が拾う。
と考えています。

技術的には可能ではありますが、経済合理性が合うか合わないか。
コストの比較的高いAI導入によるソリューションか、
それ以下のコストの安くなるBPOか、
BPO自身が社内でAI化することにより、どちらの需要にも適切に応えていきます。