株式会社mofmofのkoba_hiro_です。
Rustの勉強も兼ねて、CLIでGPTとチャットできるツールを作っているので、途中経過を書いてみようかと思います!

経緯

mofmofでは自由参加の社内技術部活動のようなものがあり、現在はRust入門をテーマに活動しています。
入門したついでに何かつくってみたいなーということで、個人開発でCLIツールを作り始めました!

なぜGPTとチャットするツールなのかというと、
OpenAIのAPIを気軽に試せる方法が欲しいな〜curlは面倒だしな〜
APIkeyさえ用意すれば気軽にAPI試せるツールを・・・という感じです。

過程

とりあえずは、Rust公式が用意してくれているTHE BOOKというチュートリアルを読んでみました。
簡単なCLIプログラムを書いたり、webサーバを構築してみたり、かなり充実していて勉強になりました。

その後、THE BOOKの内容を参考にしながら実際に作り始め、わからない部分はGPT先生に相談し・・・
SystemRoleを設定した状態でチャットができるところまでは完成しました!

使ったもの

Rust

rustupを使ってインストールしました(Rustのインストーラ・管理ツール

Cargo

Rustのビルドツール兼パッケージマネージャー
rustup使うと自動的にインストールされる

clap

コマンドライン引数をパースするためのクレート
引数を構造体で定義するとよしなにやってくれる
コマンドのヘルプ表示も自動で用意してくれたりする

Serde/serde_json

データをシリアライズ/デシリアライズしてくれるフレームワーク
今回は構造体↔jsonの変換のために使った

async-openai

さくっとOpenAIのAPIを叩いてくれるライブラリ
使用例も豊富で親切

できたもの

スクリーンショット 2023-06-28 12.40.05.png

今後やりたいこと

とりあえず動く所まで作ってみたレベルなので、もっとしっかりしたツールにして公開したいです。
OpenAIには画像生成だったり、音声認識のAPIもあるっぽいのでそこらへん組み込んで何か面白いもの作れないかなーとも考えています。
あとは、Tauriを使ってReact✕Rustでデスクトップアプリ化してみるとかもやりたいですね!

感想

Rust触ってみるまではとっつきづらそうだし難しそうだなーと思っていました。
実際、所有権やライフタイムの概念、独特な記法等、戸惑うことも多いのですが、
コンパイラが優秀でエラーが起きた際に何が悪いのかわかりやすく、トライ&エラーしながら学ぶことができました。

まだまだ触り始めたばかりですが触っていて楽しい言語だと感じているので、
今後も使い続けてRustaceanを名乗れるようになりたいです。

このプロダクトは株式会社mofmofの「水曜日の個人開発」にサポートされています。

 

广告
将在 10 秒后关闭
bannerAds