背景#
おそらく 4 月ごろ、GPT、Midjourneyなどの AI の「新しいもの」について詳しく調べ、それらを実際に使用して体験することに決めました。midjourney(以降 MJ と呼びます)を使用すると、描かれた図の効果は本当に素晴らしいですが、使用する過程でいくつかの問題があります。
- MJ には VPN が必要で、discord で使用するためには一定のハードルがあります。
- prompt コマンドを学習する必要があります。直接中国語で入力すると、認識率が低く、大きな偏差のある画像が描かれる可能性があります。
- prompt の専門用語が蓄積されていないため、「意識」と使用方法が不足しています。
これらの問題が一連の問題であるため、全体的な体験があまり良くありません。そのため、中間層を作成してこれを受け入れることができるかどうかを考えました。GitHub で調べてみると、MJ の非公式のインターフェースがすでに存在していることがわかりました:トークンを使用して discord アカウントにメッセージを送信し、ボットがメッセージを監視する方法はさまざまで、Python、JavaScript、Go、Java で実装されています。自分が望む言語を見つけることができます。そして、すでにこの基盤があることを知ったので、自分自身の「ツールステーション」を作成し始めました。
開始#
雛形#
プログラマーは、言ったことをやる人です。直接スケルトンを使ってフロントエンドプロジェクトのコードを生成し、vite + react で新しいプロジェクトを素早く開始しました。バックエンドは何にしましょうか?もちろん、最も馴染みのあるもっとも簡単な Express を使って、まずは動かしてみましょう。
カカカとコードを叩く(よく夜遅くまで書いているので、読者にはお勧めしません、体が一番大切です)、そして五一節前に初版を完成させ、すでに動作することができました。
使用した技術フレームワーク
- React + antd + vite フロントエンドエンジニアリングフロー
- Express + Sqlite バックエンドサーバー
- GO オープンソースの MJ ラッパー
- Alibaba Cloud Light Cloud(シンガポール)
五一節の休暇中に個人的な事務処理 + 病気のため、ウェブサイトが停滞し、開発を続けることができませんでした
MVP バージョン#
世界は常に変化しており、毎日新しいものが生まれています。私自身も深い焦燥感に陥っており、自分がやっていることの価値と意味を疑問視しています。彼女は私に言いました、「これらのことをする前に、あなたは自分に何も得るつもりはないと言いました。ただ興味や趣味のためにやっていて、技術を学ぶことができるだけでも十分です。疲れたと感じたら、そのことをやめればいいです。」私はそれを聞いて、突然納得しました。確かに、私は初心に戻るべきだと思いました。私がこのことをするとき、自分は幸せだと感じるだけで、何かを得ようとしているわけではありません。MVP バージョンの計画を立て、アカウントシステムの追加、モバイルサポートの UI の改善、Prompt のツール化による使用の容易化などの方向性を考えました。
5 月 14 日までに初期の MVP バージョンを完成させる予定です。
休暇中には多くの知識を吸収し、多くのフレームワークを試しましたが、最終的には Nextjs を使用してこのウェブサイトを作成することにしました。
技術フレームワークは以下のように変更されました。
- Nextjs + Typescript
- tailwindcss + daisyui
- Prisma + Sqilte
- Go
開発のスムーズさが大幅に向上し、ChatGPT を使用してコードを補完することで、以前に Express で書かれた API やユーティリティ関数をすべて TS のコードに変換するのは非常に簡単でした。
今週は本当に毎晩仕事が終わったら家に帰ってコードを書き始め、週末には 2 日間書いて、この MVP バージョンを再構築しました。コードをたくさん書いたので、本当に速くなりました。
また、Typescriptでコードを書くのは本当に楽しいです。インターフェースの定義については、コードを書いているときに多くの問題を検出してくれます!インターフェースを書くときは、強力な型チェックを使用する必要があります。
ここにいくつかのウェブサイトの実際の効果を示します。
MJ の絵を描いてみたい方は、直接メッセージでお知らせください。個人のおもちゃシリーズなので、広く公開されています。
インターメッツォ#
昨夜コードを公開した後、寝ました。何事もなく平穏でした(誰も使っていないので)。
朝起きて、いくつかの友達が使っていることに気づきました。いくつかの画像を生成しても問題ありませんでしたが、突然非常に遅くなり始めたことに気づきました。急いで起き上がって、自分のサーバーを確認しましたが、SSH に接続できませんでした。CPU も正常に動作しているように見えましたが、SSH に入るまでに非常に長い時間がかかりました。メモリがいっぱいになっていることに気づきました。私が購入した最も安いライトクラウドには 1GB のメモリしかありませんでしたが、すぐにサーバーのグレードをアップグレードしました。その後、正常に動作しました。
これは、仕事の開発、デプロイ、個人の開発デプロイの違いを思い出させます。仕事では基本的にサーバーの問題を考える必要はありませんし、サーバーのパフォーマンスの問題もほとんど考える必要はありません。会社が補償してくれます。個人の開発サービスでは、メモリと CPU のそれぞれがお金になることに気づきました。後で、GO を使用してサーバーを開発することを検討する必要があります。コストパフォーマンスは絶対に高いです。ただし、JS は現在の主力言語であり、フロントエンドとバックエンドの統一言語でもあるため、まだ迷っています。
結論#
以前はたくさんの考えがあり、何かを始めることはあっても、続けることはありませんでした。今の私は考えが以前と同じくらい多いですが、違うのは、今の私は考えを最後まで実行したいと思っていることです。今回も新しい試みですが、ウェブサイト全体を自分のコーディング能力だけで作成し、UI からバックエンドまで完全に自分で書いてみたいと思います。自分のコーディング能力もかなり向上したと感じています。また、英語の読解力も向上しました。ドキュメントをずっと翻訳するのが面倒で、プラグインを使わずに元の検索情報を見るだけです。
「躬身入局」、「最後までやり抜く」ということは、本当に成長と洞察をもたらします。最終的な結果がどうであれ、このプロセスが最大の収穫です。
この小さなウェブサイトは、今後のイテレーションの更新速度が低下するかもしれませんが、興味のある方はフォローして、WeChat でコミュニケーションを取り合ってください~
読んでくださった皆さん、ありがとうございました!