Yet Another Application Framework Layer for Proof of Concept
Report Bug
·
Request Feature
現代のソフトウェア開発の世界では、イノベーションがすべてです。しかし、多くの企業にとって、環境の制約はイノベーションを難しいものにしています。ペースの速い開発の世界で常に先行するには、こうした制約を打ち破るツールが必要不可欠です。そこで登場するのがCraftForge
、ゲームのルールを変える革新的なアプリケーションフレームワークです。
制約の多い企業環境で働く開発者にとって、新しいアイデアを限られたメンバー間で実験することすら困難を極めます。厳格なセキュリティプロトコルや、プロトタイプ配布の際にすら強いられる無駄に長いレビュープロセスなど、創造性を阻害する環境に直面することがよくあります。
CraftForge
はプラグインベースのアーキテクチャを採用することで、これらの問題に真正面から取り組みます。モノリシックなアプリケーションの代わりに、CraftForge
では開発者が小さく汎用性の高いプラグインを作成し、共有することができます。これらのプラグインはzipファイルの形で構成されており、中身はただのテキストファイルですので、従来のような長い承認プロセスを必要とせず、簡単にインストールおよび更新ができます。
CraftForge
の中核をなすのがIntentConductor
です。これは、プラグイン間のシームレスなコミュニケーションと機能の共有を可能にするシステムです。「あのアプリの素敵なUIコンポーネントを使いたい」「あのアプリのデータ処理機能を借りたい」といった要望を、IntentConductor
が実現します。
CraftForge
はPython
で構築されています。Python
は読みやすさと緩やかな学習曲線で知られる言語であり、プログラミングの専門家でなくてもコードを理解し、修正することができます。これは、企業向けソフトウェアの世界では珍しい、オープンさと透明性のレベルです。ユーザーは受動的にプラグインを使うだけでなく、カスタマイズしたプラグインを能動的に共有するような形でも参加することができます。そして、こうした形でのソフトウェアの流通は、イノベーションを加速するための重要な要素だと考えています。
また、現在でも企業環境で業務用PCにPython
をインストールして環境を構築するには、セキュリティ上の制約など高いハードルがあります。CraftForge
は、Python
のランタイム環境をアプリケーションと一緒にパッケージ化することでこれらを解決しています。別途のインストールや複雑なセットアップ手順は必要ありません。
開発者所属先の業務でもCraftForge
を一部導入済みですが、すでにその恩恵を実感しつつあります。
これまでは、新しいプロトタイプを作っても私の開発用マシン上でしか動作せず、デモの時以外は他のメンバーがそれを触る機会すらありませんでした。例えばChatGPT
のレスポンスを使って別のプロンプトを生成するような処理を何度か繰り返す程度の簡単なアプリケーションでも、そのプロンプトのテンプレートの編集すらメンバー側ではできない非効率な状況でした。
しかし、CraftForge
を導入したことにより、プロンプトのテンプレートの編集はもちろん、一部の処理をコメントアウトするなどの作業であればエンドユーザー側で簡単にできるようになりました。ユーザー側で思いついたことを試すハードルが下がり、トライ&エラーのサイクルを回す速度が劇的に向上しただけでなく、開発者側のサポート負担も減り、新しい機能の追加にフォーカスできるようになりました。
また、IntentConductor
を活用することで、再利用可能な単機能特化のプラグインを作るアプローチに変わり、CraftForge
自身の開発スピードも大きく加速しています。例えば、あるプラグインが依存関係を持つプラグインを一括してインストールするDependency Install
の機能は半日で開発されました。
このように、CraftForge
はゲームチェンジャーであり、かつてないスピードでイノベーションを加速し、新しいアイデアを現場に投入することを可能にします。
今後の展開については、以下のようなことを検討中です。
- プラグイン側で import 可能なライブラリの増強
- コミュニティ間でプラグインを共有するためのサーバーの整備
- 多言語対応
- AI assistance の強化(プラグイン開発のサポート、ドキュメンテーションの自動生成など)
- クラウドサービスとの統合
これらは現時点での計画ですが、CraftForge
は常に進化を続けていくことだけは確かです。
CraftForge
は単なるアプリケーションフレームワーク以上のものです。それは開発者をこれまで長きにわたって制約してきた束縛から解き放つための手段なのです。CraftForge
はまだ初期のステージですが、大きな可能性を秘めていると考えています。CraftForge
の活動に参加し、開発の自由の新時代を一緒に切り開いていただける方々、ぜひご連絡ください!
依存関係のある以下のライブラリをインストールします
pip install flet
pip install cryptography
pip install openai
pip install langchain
pip install qdrant_client
pip install tiktoken
pip install pypdf2
pip install pyinstaller
または
pip install requirements.txt
- Clone the repo
git clone https://github.com/hamatz/chatgpt_minimal_starter_kit.git
- Run the app with flet
flet run app.py
- Build the app
chmod +x build_on_mac.sh ./build_on_mac.sh or ./build_on_win.ps1
- hidden import 等を解決した形でビルドしなおしたい場合
pyinstaller app.spec --clean
-
社内のイノベーションサイクルを加速 : CraftForgeは、技術的障壁を取り除き、アイデアから実装までのプロセスを簡素化します。zipファイルによるプラグインの簡単な共有と導入は、新しい機能の迅速なテストとチーム内での共有を可能にし、イノベーションサイクルを大幅に加速させます。このプロセスにより、イノベーションへのアプローチが劇的に簡易化され、社内での新しいアイデア試行の敷居が低くなります。
-
教育とトレーニング : 社内教育やトレーニングプログラムでCraftForgeを活用し、実践的な学習ツールとして使用します。プログラミングやアプリケーション開発の基本から、具体的なビジネスケースのシミュレーションまで、幅広い用途に対応できます
-
顧客向けPoCの迅速な提供 : さまざまなアイデアの検証に対して迅速に応えるカスタマイズサービスの提供にCraftForgeを利用します。顧客の要望に基づいた迅速なソリューションの開発が可能となり、アイデア検証のループを高速に回すことで顧客満足度の向上とともに差別化を図ります
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Distributed under the MIT License. See LICENSE.txt
for more information.