見出し画像

ChatGPTのAPI:ブログがすぐに書けるドキュメントを作った

お久しぶりです。
D1Cで習ったことを基に、小さくアレコレ作って遊んでいるS.Yです。

先日、ChatGPTのAPIをGoogleドキュメント上から呼び出し、ブログを書いたり画像を生成するシートを作ってみたので、覚え書きとしてその顛末を書いてみます。

他にもやったことがあるのですが、どうやったのかすでに忘れており、漠然と使っています。
記事ではなくリンク集やメモとしてで良いので、書いておくほうが良いと思いました。


参考記事

こちらの記事を参考に、ChatGPTに聞きながらコードを作り、設定も行った。コンソールにログを表示させながら、デバッグがなんとかできるようになった。

コード(省略版)

// DROP DOWN MENU
function onOpen() {
 DocumentApp.getUi().createMenu("ChatGPT")
 .addItem("Generate Ideas", "generateIdeas")
 .addItem("Write blog", "blogwriting")
 .addItem("構成を基に記事を書く", "textComposite")
 .addItem("ランダムに記事を書く", "randomComposite")
 .addItem("Generate Image", "generateImage")
  .addToUi();
}
// ****END MENU****
 
// FIXED VARIABLES. Your API and Model Type
var apiKey = "XXXXXXXXXXXXXXX";
var model = "gpt-3.5-turbo-0125"
// ****END VARIABLES****
 
// GENERATE PROMPT
function generateIdeas() {
var doc = DocumentApp.getActiveDocument()
var selectedText = doc.getSelection().getRangeElements()[0].getElement().asText().getText()
var body = doc.getBody()
var prompt = "generate blog Ideas for " + selectedText;
temperature= 0
maxTokens = 2000
  const requestBody = {
    "model": model,
    "messages": [{"role": "user", "content": prompt}],
    "temperature": temperature,
    "max_tokens": maxTokens,
  };
  const requestOptions = {
    "method": "POST",
    "headers": {
      "Content-Type": "application/json",
      "Authorization": "Bearer "+apiKey
    },
    "payload": JSON.stringify(requestBody)
  }


try {
        const response = UrlFetchApp.fetch("https://api.openai.com/v1/chat/completions", requestOptions);
        var responseText = response.getContentText();
        var json = JSON.parse(responseText);
        Logger.log(json['choices'][0]['message']['content'])
        var para = body.appendParagraph(json['choices'][0]['message']['content']);
    } catch (error) {
        Logger.log("Error: " + error.toString());
    }
}
// ****END PROMPT****


基本はこのパターンのコードの繰り返しです。
長すぎるので割愛しましたが、フルのイメージは参考記事の筆者様が公開してくださっているものを見てみてください。

『ChatGPT』というプルダウンメニューができる。

ドキュメントに単語を打ち込み選択した後、プルダウンメニューを選択することで、見出しを考えてくれたり、記事を作成してくれる。

つまづいたところ

●API利用による従量課金の上限額を設定していなかったために、エラーが出た。クレカを登録し、適宜上限額を設定することで解決

●GPT−4や3.5のモデルでは、一回のやり取りでマックスのトークン数が数千〜数万トークンまで行けるようなので、長文を書かせたくてトークン数を10000にしてみたら、動かなくなった。GASだとダメとかあるんだろうか。

●const response = UrlFetchApp.fetch("https://api.openai.com/v1/chat/completions", requestOptions);
の部分で、カッコ内のURLを使用するモデルに対応したURLにしなくてはいけない。

→これに気づくまで半日費やした。もしかしたら、ルーラちゃんボットがエラーになってしまったのも、時間が経ったためにモデルが古くなって、ここが合わなくなってしまったのでは

アプリのアップデートって、こういうことのフォローも含むのかもと想像しました。
余裕あるときに見直す。

そして、個人で初心者が開発代行を請け負うのは簡単なものであってもリスクが高いとあらためて感じた。
外的要素に起因する不具合をリアルタイムで追い、つきとめてフォローしながら、複数のアプリやサービス網羅するのは、少なくとも今の私には現実的ではない。

さしあたり教育とイベント企画、調べ物代行、レポート作成のみにとどめようと心に決めた。
今年度中に学費回収するぞ。

●なんか記事が思ったように書けない。APIを使うと、ChatGPTをアプリとして使った場合のように『NewChat』内で学習しないしやり取りすることで精度を上げられないため、かえって使いにくい気がする。

●そして『GenerateImage』のこの画像、なんでしょうね。。。

『日本に生息する外来種のヤモリについて』で、ダヴィンチにより生成した画像。ヤモリどこ行った。


こういう感じで、ドキュメント上で
直接画像生成ができます。

生成された記事と見出し

日本に生息する外来種のヤモリについて

1. 日本に生息する外来種のヤモリの影響とは?
2. 外来種のヤモリが日本の生態系に与える影響とは?
3. 日本に生息する外来種のヤモリの特徴と生態について
4. 外来種のヤモリが日本にどのように広がったのか?
5. 日本の生態系における外来種のヤモリの問題とは?
6. 外来種のヤモリが日本の在来種とどのように競合しているのか?
7. 外来種のヤモリの駆除や管理方法について考える
8. 日本に生息する外来種のヤモリの保護と管理について
9. 外来種のヤモリが日本の生態系に与えるリスクとは?
10. 外来種のヤモリの生態調査や研究の重要性について

日本に生息する外来種のヤモリについて

日本には多くの生物が生息しており、その中には外来種も存在します。外来種とは、本来その地域に生息していない種のことを指します。日本に生息する外来種の中でも、ヤモリは比較的よく知られている種の一つです。ヤモリは爬虫類の一種であり、日本には本来生息していないため、外来種として扱われています。ヤモリは主に熱帯地域に生息しており、日本の気候には適していないため、外来種として持ち込まれた可能性が高いとされています。

日本に生息するヤモリは、主にペットとして飼われていた個体が逃げ出して野生化したものと考えられています。そのため、野生のヤモリは比較的人間に慣れており、人家周辺や公園などで見かけることがあります。ヤモリは小型の爬虫類であり、体長は10〜20センチ程度と比較的小さいです。体は細長く、尾が長いのが特徴です。

また、ヤモリは四肢が発達しており、木や壁などにしっかりと登ることができます。そのため、建物の壁面や樹木などにヤモリが登っている姿をよく見かけることがあります。ヤモリは主に昆虫を捕食する肉食動物であり、主に昆虫や小さな節足動物を食べて生活しています。また、ヤモリは夜行性の生物であり、夜間に活動することが多いです。そのため、昼間には木の隙間や建物の隙間などで休んでいることが多いです。

日本に生息する外来種のヤモリは、繁殖力が高いため、急速に増殖することがあります。そのため、生態系に影響を及ぼす可能性があり、生態系のバランスを崩す恐れがあります。また、ヤモリは他の生物と競合することがあり、在来種の生態系に影響を与える可能性もあります。日本では外来種のヤモリの駆除や管理が行われており、特に生態系に悪影響を及ぼす可能性がある地域では積極的な駆除が行われています。

また、ヤモリを飼育する際には、逃げ出さないように注意することが重要です。ヤモリは外来種であるため、野生化した個体が繁殖することで生態系に悪影響を及ぼす可能性があるため、飼育には慎重さが求められます。日本に生息する外来種のヤモリは、熱帯地域に生息する爬虫類であり、日本の気候には適していないため外来種として扱われています。ヤモリは小型の爬虫類であり、昆虫を捕食する肉食動物であることが特徴です。

日本では外来種のヤモリの駆除や管理が行われており、生態系に悪影響を及ぼす可能性がある地域では積極的な駆除が行われています。ヤモリを飼育する際には、逃げ出さないように注意することが重要です。外来種のヤモリは生態系に影響を及ぼす可能性があるため、適切な管理が求められています。

私がこだわり強すぎるのかもしれないのですが、自動生成した記事にいつも納得いかない。直すのも時間がかかる。ランダムに同じ内容を繰り返していて伏線回収も起承転結もないし、内容も薄い。
きれいな文章かもしれないが、頭に入ってこない。なんていうか、刺さらない。
構成を考えてからパートごとに書くと、どうにか起承転結ができる。
そう考えると、ドキュメント上にAPIでChatGPTを呼び出して、直でブログを書くというのは、あまり実用的じゃないのかもしれない。
当然、AIをディスりたいわけではない。このコードを何かほかのことに使えないか、また考えてみる。

API利用

しかし、APIを使うと本当に安い。
D1Cでボットづくりにハマり、飯塚先生(ほげ隊長)のAPIを料金におびえながら使わせていただいていた私ですが、自分でAPIを設定してみたら、本当に安い。
友人誘って割り勘したい。
仕事に追われて久しぶりにChatGPTを見たら、APIまで教育できるようになっていてびっくりした。

教育したAPIを使えば、もう少し良いライティングができるシートが作れるだろうか。
すでにどなたかが作っているGPTsを使うほうが良いような気もするし、課金が必要なら自分用に似たGPTsを作っても良いと思う。
予算的に問題ないので、月10ドルの範囲で使い倒してみたい。

0.3ドルっていくらくらいでしょう。1ドル150円として、45円??

※追伸

かいぴーさん、Rieさん、その節は講座の練習相手をしていただきありがとうございました。
近く、活動報告を書きます。
マックさんもご連絡ありがとうございました。

直近のセミナー情報を載せてみます。

ルイ@クラウドソーシング×社会参加の研究家 on Instagram: "いいね・フォロー、いつもありがとうございます✨ 本日はイベントの告知で失礼いたします🍀 @rui_tapewriter スマホでできる!はじめてのチャットGPT&画像生成AI(未経験者・iPhoneユーザーOnly) スマホアプリ版『ChatGPT』で遊びながら、生成AIの基本操作を体験します。 ChatGPTの操作がはじめての方のみに受講者様を限定しますので、使ったことがなくても安心してご参加ください。 90分の講座本編に、PDFテキストとマンツーマンレクチャー30分チケットが付きます。 事前のアプリインストールと初期設定のサポート、講座後のご質問など、チケットはお好きなタイミングでお使いください。 【講座内容】 ●生成AIのしくみと実用例:『ChatGPT』『Adobe Firefly』を例に ●『ChatGPT』でアイデア出しをする ●『ChatGPT』で調べものをする ●『ChatGPT』で翻訳・要約をする ●『Adobe Firefly』でイラストを描く ●参考書、サイトの紹介 ●質疑応答 【対象】 ●『ChatGPT』に初めて触る方、始め方が分からない方 ●アプリをインストールしてみたものの、使い方が分からない方 ●生成AIの基本操作を体験したい方 ●文章が書けるAIだけでなく、イラストが描けるAIにも興味がある方 【条件・事前準備】 ●ChatGPTを使ったことがない方(使ったことがある方は事前にご相談ください) ●iPhoneユーザーの方(Androidユーザーの方は事前にお問い合わせください) ●スマートフォンに『LINE』が入っている方。 →講座中にAIスマホアプリで生成した文章・イラストを、『LINEオプチャ』に投稿しながら参加者様同士で見せ合います。 ※『LINEオプチャ』の利用で参加者様同士のアカウントが知られることはありません。 ●事前に『ChatGPT』『Adobe Firefly』のアカウントを作れる方 →『LINEオプチャ』に招待後、全体で事前準備の説明はいたします。迷ってしまったら、30分チケットで講座開始までに個別サポートを受けてくださる方。 ●『LINEオプチャ』『ChatGPT』『Adobe Firefly』を使うスマホとは別の端末(タブレット・PC等)でオンラインセミナーに参加できる方。 【日時/会場/料金/定員】 2024年3月13日(水)20時から21時30分 オンライン会議ツール『Teams』または『Zoom』にて開催 3000円(講座90分+PDF資料+30分マンツーマンチケット) 定員6名 ※クーポンコードをお持ちの方(Take Off 割、きっとんとん割):2300円 【自己紹介】 S.Y 国立大学理学部卒(火山・マグマ学)。 2018年からフリーランスとして、自然科学・情報工学分野に特化した資料作成(テープ起こし、議事録・レポート作成)をこなす。 本業の経験を活かし、テープ起こし&オフィスソフトの個別指導、クラウドソーシング関連の各種セミナーも展開。 本質的な理解と長く使える知識を大切に、分かりやすく親しみやすいコンテンツ作りを心掛けている。 昨年夏、生成AIの台頭を受け、BBT大学『デジタルファーストキャンプ』に第4期生として参戦。 『オタク力×事務代行×AI・デジタルツール』の掛け算で、さらなる価値提供を目指す。 最近の趣味は、チャットGPTを活用したプログラミングとアプリ作成。 #ChatGPTやったことない #実は8割の人は使ってない #アラフォー以上は多分10パーセントも使ってない #困ってないけど興味ある #スマホ教室 #パソコン教室 #ChatGPT #画像生成AI #stablediffusion #人工知能 #AIアート #スマホ講座 #ねこのても借りたい" 17 likes, 0 comments - rui_tapewriter on March 3, 2024: "いいね・ www.instagram.com
スイセンのところに載せるべきてはなかったかも

よろしければサポートお願いします! 頂いたサポートは書籍代にします。 より良い情報をお届けするため、学びます。