technikki

適当に技術系を書きます

例えツッコミジェネレータの作成

作ったもの

tatoe-tsukkomi-frontend.vercel.app

はじめに

自分はお笑いが好きでよくみる。
最近は元芸人の怪物くんのYotubeチャンネルがお気に入り。 貪るように物を食べ若干サイコパスな怪物くんに対して、カメラマン兼ディレクターの上田さんの的確な例えツッコミが超おもろい。

youtu.be

彼のツッコミは画像や様子から視覚的に例えることが多い印象。
これってOpenAIに画像を入力すればそれっぽいことできるんじゃね?と思った。
加えて、例えツッコミをググってみても、ジェネレータ的なものが存在しないっぽい。(2023年2月個人調べ)

というのが動機。とは言っても最初から画像認識はハードルが高そう。
じゃあまずは文章ベースで例えツッコミをしようかと。

OpenAIのPlayGroundでやってみても、まあまあいい感じの答えが返ってくる。 API使って遊んでみたい。

方針

  • ワードを入力すると、例えツッコミで返ってくる何かが欲しい
    • Input: 暑い
    • Output: 砂漠か!(クオリティ)
  • まず OpenAIのAPIをいじってみる
    • ユーザ入力部分はまあgetのパラメータで後々作る。
    • 文字数決めてInputして、OutPutはまあ任せるって感じで。

OpenAI API

ChatGPTがめっちゃバズってる。ズムサタでもスゲーって言ってた。

OpenAI

  • gpt-3のAPIを使用する
  • promptに例を与えてモデルを動作させる
    • 少ないテキストデータでもそれっぽく作れるので gpt-3
    • 教師データを多めに用意して学習させるのも面倒
    • 将来的にはLike機能とかつけて、よさげな回答からTraningしてもいいかもしれない。
  • プランはAPI動かしてみた感じで決める
    • 安さは正義
    • promptに定型文を毎回入力させてるが、何回もやるとやばそう。
      • Billing overviewからUsage limitsが設定できた。上限$10にしといた

GoでAPI使ってみる

試しにGo言語でapiを使用。
サンプルプログラムのpromptとかエンジンを変更してみてやってみた。
最高性能のDavinciじゃないといい感じの答えが返ってこない。
これはお金がかかりそう。
FineTuningのTrainingプランとやらでモデルをチューニングしてから使ったほうがpromptの分安上がりなのかもしれない。後々また調査しよう。

ChatGPTでやってみると

うーん怒られてしまいましたなあ。確かに例えツッコミは解釈を狭めてステレオタイプに押し込めてしまうとも言えるのか。 ChatGPT

OpenAPIでRESTのコード自動生成

なんかおすすめされていないみたい。
OpenAPI3.0のまともなGoコード生成ツールがいない • masu-mi's blog(dirty pages)

ようわからんけど、自動生成便利そうだからとりあえず使ってみた。
結果、それっぽくなった。

github.com

動作確認

curl 'http://localhost:8080/tsukkomi?tsukkomi=かわいい'
{"tsukkomi":"子犬か!"}

うまくできてそう。(クオリティ)

フロントエンド

Reactで適当に作成中

参考文献

【2023年版】OpenAIのAPIキー発行手順!ChatGPT風の文章生成やDALL-Eの画像生成AI利用 | AutoWorker〜Google Apps Script(GAS)とSikuliで始める業務改善入門

【OpenAI】ChatGPTのAPI利用方法と料金について解説 | Apple Geek LABO

OpenAIのAPIを使う

OpenAI GPT-3 APIの使い方を解説 | 楽しみながら理解するAI・機械学習入門

GitHub - PullRequestInc/go-gpt3: An OpenAI GPT-3 API client enabling Go/Golang programs to interact with the gpt3 APIs.

GitHub - deepmap/oapi-codegen: Generate Go client and server boilerplate from OpenAPI 3 specifications

OpenAPI3を使ってみよう!Go言語でクライアントとスタブの自動生成まで! - ZOZO TECH BLOG oapi-codegenでchi用APIインターフェースを自動生成 – rinoguchi's techlog

OpenAPI Specification 3.0 チートシート - 朝日ネット 技術者ブログ

[Go] OpenAPI コード自動生成でビジネスロジックに集中する開発へ - Qiita

OpenAPIからGo言語のコードを自動生成してくれるツールを試してみた