DataikuとChatGPTを使ってノーコードでCSVの英文データを翻訳＆要約する

# はじめに
OpenAIのAPIが公開されたことで、ChatGPTの機能をアプリケーションに取り入れることができるようになりました。

非常に便利ではあるのですが、このAPIを使うにあたり、
「大量の文書ファイル（CSVやPDF等）からデータを抜き出したり、レスポンスのJSONファイルから結果にあたる部分を取り出すためにコード記述するのがめんどくさい、、、」
みたいなことを感じたことはありませんか？
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3457621/62519cc6-2207-445c-040c-aad19ef9f0d5.png)

そこで本記事では、Dataiku上でChatGPTのプラグインを使い、文書ファイルを処理する方法を紹介します。
今回はCSVの英語のニュース記事データを翻訳、要約してもらいますが、Dataikuを使うことで、これらの処理を**ノーコード**で実装することができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3457621/9e92e354-26ea-1b80-92c0-26d10f090421.png)


# Dataikuとは
そもそもDataikuとは？について軽く解説します。
Dataiku（データイク）は、データソースへの接続からデータの準備、AIや機械学習モデルの構築に加え、分析アプリケーションの開発と運用までをひとつのソリューションとして統合させた、**オールインワンのAI・機械学習プラットフォーム**です。高度にビジュアル化されたGUIで、データサイエンティストやデータエンジニア、ビジネスアナリストなど、プロフェッショナルから技術的な専門知識がないユーザーまで、誰でも簡単に利用できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3457621/39b79b95-5704-966e-f003-072b3f84c3f4.png)
AI・機械学習に関する一連のプロセスをカバーしています。
データパイプラインを直感的にとらえることができ、ノーコード・ローコードで高度な分析も可能です。

詳しくは[こちら](https://www.intellilink.co.jp/dataiku/index.aspx)
[無料トライアル](https://www.dataiku.com/ja/%e8%a3%bd%e5%93%81/%e5%a7%8b%e3%82%81%e3%82%8b/)もやっているので、気になった方はぜひ一度触ってみてください

# Dataikuを使った実装
前提として、Dataiku内でChatGPTの機能を使えるようにする必要があります。
これは非常に簡単です。
「OpenAI GPT」というプラグインをインストールして、OpenAIのアカウントとAPIキーを設定すればすぐに使えるようになるので、導入に手間はほとんどかかりません。

詳しい手順は、[公式ドキュメント](https://www.dataiku.com/product/plugins/openai-gpt/?_gl=1*11rihrm*_ga*MTM1MTEzMDIxMy4xNjgwODQyMzM1*_ga_B3YXRYMY48*MTY4NTk0MDMxNC4xMjAuMS4xNjg1OTQxMTkzLjE3LjAuMA..)をご参照ください

## CSVのインポート
それでは、ここから実際にDataiku上でデータを処理していきます。

今回使用するデータは、[こちら](#参考資料)(*1)の英文のニュース記事がまとまったCSVファイルです。
これを翻訳＆要約させていきます。

そのために、まずCSVをDataiku上にインポートし、加工が可能な形にします。
インポートはマウスクリックだけで簡単にできます。
今回はHTTPからCSVをダウンロードしたので、そのURLを入れるだけです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3457621/46390b47-22b2-2b82-72b8-3bcb91aacc21.png)

インポートができたら、以下のようなテーブル形式のデータを得ることができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3457621/0e52a0ee-f680-0792-4dd2-25f91bb6758f.png)
この時点では、記事ID、出版日付、記事ソースリンク、タイトル、サブタイトル、本文の6つのカラムからなっています。
欠損値があるレコードも見られます。



## データの前処理
ここでは、ChatGPTに投げたいレコード情報を整理するために、先にインポートしたデータを処理していきます。
今回行ったのは、欠損値があるレコードや不要なカラムの削除、新たなカラムの追加です。
以下は欠損値を削除している例です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3457621/40859dc0-0791-3537-cf59-f1d79b7b5ecd.png)
タイトル、本文列に欠損値があるレコードを削除しています。

そのほか詳しいやり方は今回割愛しますが、これらはすべてノーコードで行うことができます。

整理した後のデータセットがこちらです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3457621/09a90b17-9ea7-82ac-6d98-73785ed62b55.png)
記事ソースリンク列やサブタイトル列が消え、カテゴリー列や単語数列ができました。
欠損値も処理されています。


## ChatGPTプラグインの使用
前処理が終わったので、いよいよChatGPTの機能を使って翻訳＆要約していきます。

使い方としては、先にインストールした「OpenAI GPT」というプラグインを使い、プロンプトやその他のちょっとした設定をします。
今回は以下のようにしました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3457621/da047a4c-5c16-c7c7-03d9-068997dba9c6.png)
Taskの箇所に命令を記載すればOKです。
命令は日本語で書きました。
API configuration presetには、APIキーを設定したプリセットを選択します。

これで実行すると、結果は以下のようになりました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3457621/70b59a02-20ba-fb08-041d-9ccd72a26d4b.png)
↓参考までに先頭の3レコードはこういった内容です
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3457621/903b04d5-9cb5-5397-2f1a-85b9903721ad.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3457621/d455935e-c19e-3ef2-f742-ddfe638a0c6f.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3457621/a67bc9e0-38c9-b01e-5ecb-aecfd321d3c5.png)

翻訳も要約ももっともらしいものを出力できています。

# おわりに
いかがだったでしょうか。
今回CSVの英文データを扱いましたが、ノーコードですべて処理できました。
PDFやExcelファイルでも同様にして処理が可能です。

また、これらの処理済みデータを使ってさらに分析や機械学習も行うことができるので、拡張性も十分です。

よろしければ皆様も一度お試しください。

# 参考資料
*1  ニュース記事  NewsArticles.csv
https://dataverse.harvard.edu/file.xhtml?persistentId=doi:10.7910/DVN/GMFCTR/IZQODZ