無趣味の戯言

✈️

udcxx AI Platform

こんにちは。だいちゃんです。

趣味で作っている WebSite AssistantRECITONE といったAIツールをより楽に生み出せるように、開発基盤となる udcxx AI Platform を構築しました。

開発基盤(プラットフォーム)を用意することで、これまでより開発期間を短くすることができ、さらに、プロンプトのブラッシュアップも簡単になるので、よりサービスの質が上がることを期待しています。

プラットフォームに含まれるもの

今回用意したプラットフォームには、PHPで書かれたAPIをハブとして、以下のような外部システムが含まれています。

udcxx AI Platform API

苦手意識のある PHPで書かれたAPIです。

udcxx AI Platformのインターフェイスとなり、フロントエンド側からこのAPIをコールするだけで、AIの回答が返ってくるようになっています。

実際には、以下の動作をします:

  • フロントエンドからのリクエスト処理
  • パターンアプリからパターンの取得
  • パターンをもとにAIへのリクエストを生成・送信
  • AIからのレスポンスを解析
  • ログアプリにログの記録
  • フロントエンドへレスポンスを返す

APIキーなど、フロント側に情報を持たせたくないものも、サーバーサイドで処理されるPHPなら扱うことができるので、ここは泣く泣くPHPで書きました。

エラー処理やログの内容などがまだ甘いので、改良していきたいです。

パターンアプリ

kintoneのアプリです。

APIキー・model・プロンプトの一式などをまとめたものを「pattern(パターン)」と名付けて管理するようにしました。

フロントエンド側から適切なパターンを呼び出すことで、ツールごとにプロンプトやmodelを自由に選ぶことができます。

また、kintoneアプリとして管理することで、GUI上で簡単に内容の編集ができるため、プロンプトのブラッシュアップが容易になることが最大のメリットです。

Open AI

AI部分には、引き続きOpen AI APIを利用しています。

GPT-3.5-turboが安くなって嬉しい。

ログアプリ

こちらもkintoneアプリです。

Open AI APIへのリクエスト・レスポンスを記録しています。ログもkintone上から確認できるので、ユーザーの利用状況や、意図した回答ができているかが、いままで以上に監視しやすくなりました。

パターンごとの利用数もグラフ機能を使って視覚的に把握できるので、需要に応じて様々な施策も検討できるようになると思います。

サンプルツール

AI Platform|AIを使ったWebツール制作のプラットホーム

実際にudcxx AI Platformを利用したWebツールのサンプルもあわせて開発しました。

CSSとJavaScriptは汎用的に使い回せるようにしているので、ライブラリ的に呼び出すことで、新しくツールを作るときの開発期間短縮に貢献します。

さらに、これまでは、過去のツールをコピペして作っていたので、統一感がなかったり、修正のために全ツールを回らないといけなかったのが課題でしたが、ライブラリ化することで、1つのファイルを修正するだけで、プラットフォーム上のすべてのツールをアップデートできるようになりました。

AI Platform 構築の背景

これまでは、Open AI APIの処理にGASを、フロントエンド側では、PHPでGASとのやりとりや、結果の表示をおこなっていました。

特に、PHPで結果画面を作らなきゃいけないことに 苦痛 ハードルを感じていたため、一部をkintoneに移管、フロントエンド側ではFetch APIを使ってSPAっぽく処理するようなプラットフォームとしました。

その結果、PHPで作ったAPIを使い回せるため、新しいツールを立ち上げるときはJavaScript/HTML/CSSを書くだけで済むようになりました。ヤッタネ

これから:既存ツールをプラットフォームに乗せたい

現時点では、前述の サンプルツール のみが稼働している状況ですが、今後は、すでに公開済みの以下のツールもプラットフォームに乗せて運用していきたいと思っています。

RECITONEWebSiteAssistant はスムーズに移行できそうな気がしていて、RECITONE+ はフロント側も凝ってる上に、ファインチューニングされてるので、移行後にちゃんと動くか検証したいなと思っています。

あと、現状Open AI APIのコール前にコケたらログが残らない仕様なので、ログの拡充も進めたいですね。

そして、せっかく作ったプラットフォームなのでガンガン活用して、手当たり次第にツールを生み出していきたいと思います。

Buy Me A Coffee