こんばんは。『KakeiBon by Rust』でおなじみのYoshihiro NAKAHARAです。
今日は新しく立ち上げたプロジェクト『Promps(プロンプス)』のご紹介です。
■Promps(プロンプス)はどんなプロダクト?
AIプロンプトの作成を支援する補助ツールです。
■どんなアーキテクチャになっている?
Rust + Tauriフレームワーク(GUI) + Blockly.js(ブロックコンポーネント)の構成になっています。
まだ未定ですが、将来的にはこれにファイルベースのデータベース"SQLite3"を加えて、プロジェクトの書き込み/読み出し機能を実装するかもしれません。
■特徴は?
GUIベースで、Scratchのようなブロック指向のインターフェースを備えています。
■現在のバージョンは?
現在の最新バージョンはv0.0.2です。まだ開発がスタートして間がないのですが、GUIでのブロック配置と自然言語での出力機能は実際に動かせる状態になっています。
■プロジェクト(ソース)規模は?
プロジェクト自体は規模で言うと小規模プロジェクトになります。
また、ソースコード規模については、ミニマル実装で最低限の機能を実装しているため、フロントエンド・バックエンド込みで1,700行を少し越えたぐらいです。
もう少し細かいレベルで言うと、RustとJavaScriptがそれぞれ700行ちょっと。CSSが少し大きいのですが、その他に関しては各数十行といった規模で、仕事をされている方でも、帰宅後に2〜3時間とれば、2〜3日で全体像を把握できるレベルです。
■Prompsではどんなことができるの?
品詞ブロックを配置してブロック同士をつなげることで、自然言語の文章を生成することができます。
■利用に費用はかかるの?
いいえ、現在、技術評価用のテックプレビューとしてGitHubにて公開しており、無料でご利用いただけます。
将来的には、基本機能を無料利用できるようにして、オプションの追加機能を有償(Freemiumモデル)でリリースしようかと考えています。ただ、まだこれに関しては決定ではないので、今後のGitHubでのリリース情報をご確認ください。
■拡張性は?
MITライセンスのもとでソースコードを公開しているので、改変や二次配布にもご利用いただけます。
Prompsの技術的なアーキテクチャを簡単にご説明すると、Phase 0でコア機能を実装しており、その外側をPhase 1のGUI層(GUIレイヤー)で包む形になっています。独自にブロック等を拡張したい方は、GUIレイヤーのさらに外側にブロックを定義していくことで、機能拡張が可能になっています。
また、面白い技術として、セルフホスティング(※)開発が可能なアーキテクチャを採用しており、Prompsで生成したプロンプトを使って、Prompsを拡張することができるので、メタ的に非常に面白い特性を有しています。
※)自分の機能で自分自身を開発していける、プログラミング言語の開発において、多く採用されている古典的開発手法。
例)C言語を使ってGCC(Cコンパイラ)を開発、や、Delphi(RAD)を開発するためにDelphi(言語)を使ってDelphiコンパイラを実装などが代表的な例です。
■自分も開発に参加したい!
コントリビューターとしてご参加いただけます。
現在、開発者(Yoshihiro NAKAHARA)はLinuxをインストールしたPCしか所有しておらず、WindowsやMacでの実機テストができない状態です。そのため、実際に実機で動作テストしていただける方を大募集しています。ちなみにこのテストは、プログラミングができない方でもご参加いただけます。
また、今後の実装アイデアや、テスト機能の妥当性チェックを行ってくださる方等も募集していますので、興味がある方はご一報いただければと思います。
実際に、Prompsを使ってみて、こんなことが面白かった!とか、こんな機能があると面白いなどをコメント欄に書き込んで、皆さんに共有しませんか?また、バグ報告も大歓迎ですので、ぜひPrompsを使ってみてください!
それでは、最後までお読みいただき、ありがとうございました!