koboriakira.com

/2023/09/01/

2023/09/01

ChatGPTのBot開発は、ついにスケジュール作成まで到達した。まだ60点ぐらいだけれど、手動で組み立てるよりは相当早い気がする。

システムを作り込みながら良いなと感じるのは、日常においてどういうステップを踏むのが適切であるか、ある行動と他の行動の関連性をより深く考えるようになったことだ。「明日の予定を考える」ためには事前に完了しないといけない行動がいくつかある。それらを整理しようとすることで計画の深みがました気がする。ただし何度も言うが、計画通りに進む訳ではない。人生とは組み立てた計画を壊すことだ。


C.O.S.A.のラップが異次元。自分も適当にフリースタイルで合わしてみるが、まったくリズム感が違う。いちばん海外でウケる可能性のあるラップでは、と妄想している。

このリミックスはズルいぞ!

いまだに月1ぐらいで聴いてしまう。本当にいい曲。

ミスチルの曲でこれが一番好きなんだけど、自分がエンジニアだからなのかも。


ひらがな

2023/08/31

最近、とうとう子どもがひらがなを読むようになってきた。今日は「おいしい牛乳」を自分で読んでいて驚き。


ChatGPTを使ったBotの開発は、レシピの提案機能を作成。「〜が余ってるから、最近作ってないメニューの中でおすすめあるかい?」って聞くと、自分が準備したデータベースから回答してくれる。

またiOSのShortcutsをつかって「6時間置きに撮影した写真をSlackに自動アップロードする機能」まで作成。これでやっと写真データをSlackに集めることができる。Shortcutsは意外と便利だぞ、と気づいた。


ぷにぷに電機、パソコン音楽クラブ。どちらもものすごい良曲。

Furui Rihoにドハマりしていることが確定した。

きみが嫌いな ピンクの髪色
これだけ言うわ
(Sorry but I love my hair)

「ピンクの髪をブリーチする」というテーマだけでこんな曲かけるの? って感じ。コーラス後半にあたる「やだやだ〜」の箇所も良い。


Function Callingを実装して、ちょっとした変化だけど実は大きな変化が訪れた気がする。

とうのは、AIがいよいよ「コンシェルジュ」としての立ち回りをできるようになってきたことだ。これまで特定の文言や操作に反応するだけだったのが、会話の中でみずから行動を決めるようになってくれた。

今日作っていたのは、ChatGPTにスケジュールを作成させる機能だ。たとえば「明日の予定を作って。空き時間は重要なプロジェクトのタスクを進めたい。朝食は昨日の残りを食べるつもりで、夜は外食します」と指示すると、ChatGPTは、

  • カレンダーの予定を参照する必要があるので、Googleカレンダーの情報をとりにいく
  • 日々のルーティンを参照する必要があるので、以前作成したルーティンの情報をとりにいく
  • プロジェクトの情報を参照する必要があるので、Notionで管理されているプロジェクトのデータベースを取得する
  • 上記の情報と指示内容をまぜて、スケジュールを提出する

ということをやってくれる。ポイントは「スケジュールをつくる=上の4つの操作を行う」ではなく、今回の指示においては上記の操作をやるべきだと考えた点にある。

たとえば「子どもと1日遊ぶ予定。どこかいい場所がないかも提案して」みたいなことを書けば、(自分が実装しさえすれば)適したレジャーも検索して提案してくれる。私の現在地を把握できて、かつ乗換案内のAPIを呼び出せるなら、その場所に行くための方法や時間も計算したうえでスケジュールを組んでくれるだろう。

あとは画像認識の機能がほしいところ。メモを読ませて、適宜操作させられれば最高。手書きのメモを使いつつ、その内容を自動でいい具合に反映したりもできるだろうな。


Furui Rihoのハマり具合がとんでもない。聴けば聴くほど素晴らしいアーティストだと思う。私の音楽履歴から導き出された感想のひとつは、彼女はMINMIの系統であるだろうということだ。「I’m free」を聴くととくに感じる。

MINMIはキャリアを重ねるに連れて、どんどんと王道のレゲエ(というか湘南乃風の方向に)回帰していき、食指が伸びない時期もかなりあったのだけれど、デビュー作と2枚目のアルバムは天才的なバランスのJ-POPだった。

Furui Rihoも同様にJ-POPであり、その枠の中でリズムとブルースが色濃く発揮されている。どうか音楽好きだけが聴くようなオシャレなトラックではない、このままの路線で突っ走ってほしいなと思う。


原宿ぽむ選手撮影の「ぽむとれーと」が届いた。被写体は坂崎ユカ選手。たかがポートレート、なんて思ってた時期が私にもありました。


function callingの実装

今日は1日かけてFunction Callingの実装を試す。あとで絶対にブログに書こうと思うけど、すこしメモを。

たとえば「今日の天気を教えて」みたいな命令をしたいとき、ChatGPTは今日の天気情報を持っていないし、そもそも「今日」が何日かも知らない。

このような「まだできないこと」を補完してあげられるのがfunction callingなのでは、という理解。

ゆえに、

  • 今日の日付を取得する
  • 指定された天気を調べるAPIを呼び出す

という2つの関数をfunction callingとして利用できるようにする。そうすると、次のような感じでAIが処理してくれる

AIの処理イメージ

今日の天気を教えてほしい

まず今日の日付を知りたいから、今日の日付がわかる関数を呼び出そう…今日は2023年8月27日なのか。

2023年8月27日の天気を教えてほしい

この日の天気に関する情報は、天気を調べるAPIを呼び出せばよさそうだ。日付は2023年8月27日…JSON形式のデータが得られたぞ。

2023年8月27日の天気を教えてほしい。天気の情報は{JSON形式のデータ}を参照。

これなら返答できるな。返答しよう。

感想

このとき大事なのは「今日の天気を取得する関数」を作ってはいけないのだろう、ということ。通常の設計と同様に、無駄な依存関係は省くべきだ(※そのうえで複数のfunctionをまとめて利用したいケースはあるかも、と思っている)。

このあと画像生成のfunctionも追加したことで、「今日の天気をイラストで表して」みたいなことも回答してくれるようになった。

これの凄いところは、自分しか欲しくない機能を自分で作れるところだと思う。

たとえばNotionで管理しているデイリーログのページに何かを追加してほしい。そのための関数をOpenAIが用意してくれることはありえない。でも自身で実装することは簡単にできる。

前に「多くの情報をひとつに集めることが重要」と書いたけれど、さらにその確信を深めた。せめてAPI経由ですべての情報にアクセスできるべきだ。「めちゃくちゃ便利だし内部にAI機能も設けられているけれど、外部サービスと自由に連携できない」というサービスは、すくなくともAI目線ではもう使い物にならないサービスになるかもしれない。

※今日の天気を表したイラスト。プロンプトさえ改善すれば、結構いい感じになるのではと夢見ている。

2023 08 27


家でパウパトロールの非公式アニメ(違法配信ではなく、二次創作という意味)が永遠と流れ続けていた。

子供向けのYouTubeチャンネルはなかなか戦略的で、生放送という形態で1時間ぐらいのアニメが永遠とループされている。そのため他のチャンネルに移動することなく、ひたすら再生数を稼ぐことができていそうだ。

ほぼすべての大人が「自分もトミカ死ぬほど買って、池に投げ入れてみたり砂場に埋めてみたりした動画を撮って儲けようかな」と思ったはずだ。これを行動に移す人とそうでない人の差はなんだろうか。ケンブリッジ大学の研究にありそう。


本当に上の動画をひたすら見せられた記憶しかない。入浴前にLUSHのRootsをはじめて使ってみて、夜にこれを作って食べた。


Function Callingの実装をいよいよ試した。

すでに稼働している1日の要約機能をFunction Calling経由で呼び出せるようにしてみて、やりながら色々と考えることがあった。Function Callingは擬人化されたイメージ、つまりBotに付与してあげると良い具合なんだろうな、というのがいまの仮説。BotができることをFunction Callingとして定義しておき、Botに対してリクエストが飛んだらFunction Callingの中から任意のものを選ぶ感じ。


好きなゴスペラーズが戻ってきた! 最近ずっといい具合だったけど、とうとう自分の感覚と合ってきた感じ。ゴスペラーズはポップスをやらないと! という派閥なので。

chelmicoの楽曲のなかで一番好きだ。RIP SLYMEの流れであることをまったく隠さずにいるのが素敵。サビの軽快さがクセになる。

急いでFurui Rihoの曲を聴きまくった。「ABCでガッチャン」の衝撃が強かったけれども、たとえばこの「ピンクの髪」も相当いい。R&Bの素質をバリバリに持っているのだけれど、ちゃんとポップスをやってくれている。「あの曲からインピレーション受けてるのかな」みたいなのも沢山あり、聴いてて楽しい。

これは別に今日知った訳じゃなくて、ここ1ヶ月ずっと聴いてる。聴けば聴くほど憎たらしいというか、手のひらで踊らされている感じが強い。そして文字通り踊らされている。