Zed + Ollama でAI支援ツールを初体験(無料) 【1-導入】
注意
LLMの知識はほぼ0です
そのためほとんど備忘録というかやったことログのようなものです
zed?
zedとはRust製のエディタです。
Ollama
ローカルでLLMを実行するためのツールだそう。
Ollamaのインストール
brewで入るそう。HPにもダウンロードリンクあるのでそっちでも良さげ。
brew install --cask ollama
CLIのインストール
launchpadから実行するとCLIのインストールを求められます。
実行
ollama run llama3.2
として待っていると入力待ちになります。ちなみにレスポンスは普通に速いです。(MacBook Pro M3 16/512GB)
ここでは「who are you?」とか適当に簡単なこと聞いてみましたが普通に会話できます。以下返答一覧。>>>の行は私の入力。改行などは一部編集。
>>> Who are you?
I'm an artificial intelligence model known as Llama. Llama stands for "Large Language Model Meta AI."
>>> あなたは日本語を使用できますか?
はい、僕は日本語でも対応できます。私はLLamaです。
Llamaは「Large Language Model Meta AI 」の略で、Japanese話すことができるAIモデルです。
僕はあなたに役立つように、どんな質問やトピックに関して話しますか
>>> Rustにおいて文字列を標準出力する方法を教えて
Rustで文字列を標準出力するには、次の方法ができます。
1."println!!マクロを使う
fn main) i
let str = "Hello, world!";
println!("{}", str);
}
~~~~~~~~長いので省略。'print!と"println!とか他の方法も出てました。~~~~~~~~
>>> 入力はpythonのようにinput()などの標準関数がありますか?
Rustでは、Python-Likeの'input()のような標準関数がなく、代わりに'std:io: stdin()を使用して標準入力から値を受け取る必要があります。
例:
use std:: 10;
fn main() {
let mut input = String:: new();
io:: stdin(). read_line(&mut input). unwrap();
println!("{}", input);
}
このコードでは、'read_Line()関数を使用して標準入力を受け取ります。
"unwrap()関数は、'read_line()が正常に実行されることを前提としています。
これは、'read_line()が失敗するとpanicするためです。
したがって、RustではPython-Likeの"input()のようなstandard Library提供の関数ではなく、より低しベルの入力処理を使用する必要があります。
Rustにinput()がありますか?などの嘘ぽい話もしましたが普通に正しい回答きましたね。ひとまず llama3.2 でいいじゃないんでしょうか?もうちょっと使ってみてからまた考えます。
バックグランド実行
Macはメニューバーにいます。RunCatと並べたら可愛いかも。
list
利用可能なリスト表示。
% ollama list
NAME ID SIZE MODIFIED
llama3.2:latest a80c4f17acd5 2.0 GB 29 minutes ago
install いつかやってみる
LLMを追加する場合もできそうですが、必要になったらやってみます。以下記事参考になるかもです。
Zedから
cmd + , などで設定を出して以下を追加します。
{
"assistant": {
// アシスタントの設定
"default_model": {
"provider": "ollama",
"model": "llama3.2:latest"
},
"enabled": true,
"version": "2"
},
~~~~~省略~~~~~
}
assistant panel
右下のボタンか cmd + R でパネルを表示します。パネル上でチャットを入れて cmd + Enter でアシスタントに送信できます。こちらでも応答が結構速いです。ただ端末性能による…?
ファイルを扱う
「+ Add context」ボタンから以下のメニューを出して、/file を選択するとファイル選択ができます。
するとこんな感じでファイルが出ます。ここで適当に日本語で聞いてみたら英語ですが、答えてくれました。一応詳細は以下pdfに。GPT翻訳付きです。
また、「+ Add context」の横の「三」みたいなボタンは、コードを選択してから押すと選択したコードがカーソル位置に挿入されます。そのため一部コードについてアシストを受けることもできます。
まとめ 編集後記?
そもそもzedを使ってないのでアレですが、初めてAIアシスタントをコーディングに導入してみました。vs codeでも使えないかと、あとは1週間くらい使ってみて感想、2点を来週以降投稿できればと思ってます。