背景#
おそらく 4 月ごろ、GPT、Midjourneyなどの AI の「新しいもの」について詳しく調べ、実際に使用してみることにしました。midjourney(以下 MJ と略します)を使用すると、描かれた図の効果は本当に素晴らしいですが、使用中にはいくつかの問題があります。
- MJ には VPN が必要で、discord で使用するためには一定のハードルがあります。
- prompt コマンドを学習する必要があります。直接中国語で入力すると、認識率が低く、大きな偏差のある画像が描かれる可能性があります。
- prompt の専門用語が不足しており、「意識」と使用方法が不足しています。
これらの問題が一連の問題につながり、全体的な体験があまり良くないため、中間層を作成してこれを受け入れることができないかと考えました。GitHub で調べてみると、MJ の非公式のインターフェースがすでに存在していることがわかりました。トークンを使用して discord アカウントにメッセージを送信し、ボットがメッセージを監視する方法はさまざまで、Python、JavaScript、Go、Java などで実装されています。自分が必要とする言語を見つけることができました。そして、すでにこの基盤があることを知ったので、自分自身の「ツールサイト」を作成しようと試みました。
開始#
雛形#
プログラマーは、言ったことをやる人です。直接スケルトンを生成してフロントエンドプロジェクトを作成しました。vite + react を使用して新しいプロジェクトを素早く開始し、バックエンドには最も馴染みのある最もシンプルな Express を使用しました。
コードをカタカタと打ち込みました(よく夜遅くまで書いていますが、読者にはお勧めしません、健康が最も重要です)、そして 5 月 1 日前に初版を完成させることができました。
技術フレームワークの使用
- 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 は現在の主力言語であり、フロントエンドとバックエンドの統一された言語であるため、まだ迷っています。
結論#
以前はたくさんのアイデアがあり、何かを始めることはあっても、続けることはありませんでした。今の私はまだたくさんのアイデアを持っていますが、違うのは、今の私はアイデアを最後まで実行したいと思っていることです。これは新しい試みでもあり、ウェブサイト全体を自分のコーディング能力だけで作成することで、非常に達成感を感じています。自分のコーディング能力も大幅に向上したと感じています。また、英語の読解力も向上しました。ドキュメントをひたすら翻訳するのが面倒になって、プラグインを使わずに元の情報を見るだけです。
「躬身入局」、「最後までやり抜く」という完全性は、本当に成長と洞察をもたらします。最終的な結果がどうであれ、このプロセスが最大の収穫です。
この小さなウェブサイトは、今後のアップデートのスピードが低下するかもしれませんが、興味のある方はフォローして、WeChat でコミュニケーションを取り合ってください~
読んでくださった皆さん、ありがとうございました!