![見出し画像](https://assets.st-note.com/production/uploads/images/125482006/rectangle_large_type_2_8b69f448e563fe8f09bfaa78f4c58fc7.png?width=800)
今月の開発ハイライト: AI技術を駆使した3つのアプリ
今月はAI技術を活用して、いくつかの興味深いプロジェクトに取り組みました。この記事では、それぞれのプロジェクトの背景、挑戦、そして私が学んだことについて詳しくお話しします。
長期プロジェクト:ウェブアプリ開発の重要な転換点
プロジェクトの背景
今年の夏ぐらいから開発していたプロジェクトについてやっと今月に入ってMVPに該当する機能の開発が達成できました。内容としては、DjangoとChatGPTを組み合わせたウェブアプリになっており、まぁそっちに詳しい人なら難しくないのかもしれないが、結構いろいろな機能を組み合わせて作ったので、やっとという気分があります
主な成果と教訓
今までにChatGPTを使ってる人は知ってるでしょうが、長文のコードの開発を依頼するのにはかなりの癖があるので、機能が10以上あるアプリの開発が達成できたのはかなり嬉しいですね
まだ現時点ではデザインや文章の改善や様々な機能の追加も必要なので、そのあたりの修正も必要な反面、デプロイについても考える必要があるため、そろそろサーバーに上げて、テストを検討したほうがいいかもしれない
効率化の一歩:音声変換アプリの並列起動
アプリの概要と並列化の動機
最近流行ってきているVCClientについてですが後で解説するアプリでAIと会話する際に、こちらの音声と、AIの音声の両方を変換できるようにしたいので、アプリを並列して起動できるようにしました
デフォルトだとポートの問題もあれば、アプリが起動判定をしてるのか動かないので、docker版を利用して、docker名を変えたり、ポート番号を変更したりしながら達成しました
うまく行かなかったこと
ここにコードを書いても良いんですが、何がうまく行かなかったことだけ記載しておきますと、
docker-composeを使った処理をすると、GPUが使えなくなったので、shに処理を書いて、完結させました
ちょくちょくChatGPTにも間違ったコードを書かれて書き直しになったりしましたが、for文を書いてサーバーを二回実行してもらい、
itが引数にあると一台目が動き出したタイミングで止まってしまうので、バクグラウンドで実行してもらいました
全体のコードはChatGPTに書いてもらいました
オプションだけ記載しておくと以下のようなものです
docker run -d --rm --gpus all --shm-size=1024M \
-e EX_IP="`hostname -I`" \
-e EX_PORT=${CURRENT_PORT} \
-e LOCAL_UID=$(id -u $USER) \
-e LOCAL_GID=$(id -g $USER) \
-v `pwd`/docker_folder/model_dir:/voice-changer/server/model_dir \
-v `pwd`/docker_folder/pretrain:/voice-changer/server/pretrain \
-p ${CURRENT_PORT}:18888 \
--name "${CONTAINER_NAME}" \
$DOCKER_IMAGE -p 18888 --https true \
>> "${LOG_FILE}" 2>&1
新たな挑戦:AI音声チャットアプリの開発
アプリのコンセプトと特徴
このアプリのコンセプトは音声を使ったウインドウズ用の簡単なアプリを作成することでした
そのために、inputとoutputのデバイスを選んで、音声を録音し、録音した音声を音声認識させて、認識された文章をインプットとして会話に対する返事を取得し、それを音声に変換するというOpenAIのAPIを使い回す使用となっております
デバイスを選べるようにしたので、使い勝手が上がり、場合によって外に出したくない音声が作れたり、上のVCと並列敷いて使いやすい形にしました
開発過程での挑戦と克服
APIを使った開発なので難しいところは殆どありませんでしたが、一つずつ機能を追加する形だったので、安定して処理ができました
これもAIとの協力開発では大事なことですね
コーディングの新しい風:AI技術の活用
最近のアプリ開発では、AIツールを積極的に利用しています。特に、少し前に使い始めたCursorのようなツールはGPTsのコーディング特化モデルとは違う意味で使い勝手がどんどん良くなってるのが良いですね
このアプリの良さは機能が次々に追加されていく開発ペースの速さと、同じ画面内で複数のアプローチができることにあるのかなと思います
エラー画面からアプローチもできれば、エディットで依頼を書くこともできれば、会話しながらコードを書いてもらってからそれを適用してもらうこともできるという利用方法の多彩さはきっとcopilotにもあったのでしょうが
気軽さはこっちでも良かったです
まとめと今後の展望
この月を通して、AI技術を駆使したプロジェクト群に取り組む中で、プログラミングの冒険は決して一人での孤独な旅ではないことを再認識しました。ChatGPTのようなAIは、時には頼りない相棒のような存在でしたが、一緒に問題を解決することで、その奥深さと可能性を垣間見ることができました。
この記事が気に入ったらサポートをしてみませんか?