ブラウザ開くのって大変ですよねー
最近慣れていない言語を業務で書く機会があり、頻繁にOpenAIのChat GPTをブラウザで開き質問していました。ブラウザを開くの旅を取り除いて直接ターミナルで叩きたいと思いました。この数秒単位の節約をするべく、10時間ほどの開発をするのがプログラマという生き物なので、GoLLMと言うCLIが組み立てられました
ターミナルからchatGPTと会話
OpenAIはAPIを提供しており、そちらのAPIも用いてターミナルでかいができるはず。と言うことで少し調べらさまざまなSDKが存在しました。Golangもコミュニティのライブラリがありそちらを利用しております。
cliのセットアップ
Readmeに記載されていますが、homebrewでインストールできます。Go使いはgoでもできます
brew install chavdim/taps/gollm
API keyの設定
利用するにはOpenAI様でAPIキー取得が必要になります。記載当時は決済情報を登録しないと提供してくれませんでした。個人でちょいちょい利用する分には数円ぐらいしかからずあまりダメージを感じていないです。
*gpt 3.5を利用しています、gpt4がともう少し高い気がします
個人的に怖いので利用上限を設けてます、お勧めします。
登録後、こちらでキーを取得できます https://platform.openai.com/account/api-keys
OPENAI_API_KEY
の環境変数を期待してるので入れておきます
// 例
export OPENAI_API_KEY=xxxxxxx
その他の設定
下記で初回に設定が行われモデルとチャットGPTに装ってもらうペルソナをオプショナルで設定します。
❯ gollm
Use the arrow keys to navigate: ↓ ↑ → ←
? Select model:
▸ gpt-3.5-turbo
gpt-4
? Select PersonaDescription:
▸ None
SoftWareEngineer
HealthCareAdvisor
FinancialPlanner
↓ MarketingManager
どうしても毎回忘れることを質問する
❯ gollm
### interaction: 1
Enter prompt: cssでdivを画面の真ん中にするにはどうしたらいいんだっけ
div要素を画面の中央に表示するためには、CSSで以下のようなプロパティを使用します。
css
div {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
このCSSは、`div`要素がページの中心に配置されるようにします。`position: absolute;`は、要素をページに固定します。`top: 50%;`と`left:50%;`は、要素をページの中央に位置するようにします。最後の`transform: translate(-50%, -50%);`は、要素を正確に中央に揃えるためのものです。
ただし、ウィンドウのサイズが変わると、要素が画面から外れる可能性があります。この問題を解決するには、親要素に`position: relative;`プロパティを設定することができます。
### interaction: 2
Enter prompt: flexboxみたいなやつできないんでしたっけ?
はい、Flexboxを使うことでも、要素を中央に配置することができます。以下は、Flexboxを使った方法です。
css
.container {
display: flex;
justify-content: center;
align-items: center;
}
ちなみに、cliとGo言語はいいコンビ
これはただの偏見で視野が狭いだけかもしれないが、個人的にはGolangのエコシステムと CLIはすごく相性が良く簡単に高性能かつクロスプラットフォームの生産物が非常に作りやすかった
生産物のパブリッシュも非常に簡単でgoreleaserをGithub actionsで動かせば、プッシュするだけでマルチブラットフォームのディストリユーションが作成される世界線が簡単にできました。
最後に
みてくれてありがとうございます。普通に楽しいのでぜひ試してみてください、バグっていたら教えてください!