Roo Codeを使います。
editor 1
いつも通りにvimを使いたいのですがvisual studio codeの情報が圧倒的に多いので、今から1年間はLLMはvisual studio codeから使うことにします。
数年経ったらvimからLLMを簡単に使えるように開発が進むことを期待しています。
開発環境
開発環境はひとまず仮想環境で構築することとします。
M3 MacBook Airは引き続きVMwareを使うこととします。脱VMwareとか言う人達が増えている状況ですが。
editor 2
仮想環境でUbuntuで開発します。
依存関係を無くしておいた方が安心なのでsnapを使いたいのですがCPUがARMだと用意されていません。(2025.03.31)
visual studio codeの公式HPからdebをdownloadして下記のようにします。
公式ホームページ。
Your code editor. Redefined with AI.
公式ホームページ。ダウンロード。ここからダウンロードします。
$ cd ~/Downloads
$ sudo apt install ./code_1.98.2-1741787947_arm64.deb
Add Microsoft apt repository for Visual Studio Code ?
と質問されるのでYesかNoで回答します。(Noでも使えます。)
Perplexity Proの設定
左下のアカウント名の右のギアをクリックします。
左のWorkspaceの下のAPIをクリックします。
Setup PaymentのSetupをクリックします。
LINEMOを契約しているのでPerplexity Proを一年間無料で使えてPerplexity Proが使える場合5$分はAPIを無料で使えます。
無料で使うのですがクレジットカードを登録する必要があります。
API KeysのGenerateをクリックします。
Copyをクリックします。
model一覧です。
visual studio code / 設定
Extensionsでroo codeで検索します。
installします。
OpenRouterとかはここでは無視してorの下を設定していきます。
(すぐにUI/UX変わるかもですが。AI Agentは開発速度が速すぎて少し前の記事とUI/UXが一致しない。)
Bring Your Own API Key
[Base URL]
https://api.perplexity.ai/
[OpenAI API Key]
*****************************************************
[Model]
sonar
[Let’s go]
Auto-approve: None
Model
慣れるまではsonarで試してみることにしました。ほぼ勘です。
ときどき欲しくなる機能を作ってもらう
仕様
指定したfolderの下のfile一覧とfile sizeを出力するprogramを作ります。
folderの指定は実行時引数で渡します。
file sizeは人間にわかりやすい単位で降順で出力してください
directoryはdirectoryの下のfile sizeの合計を再帰的に取得してください。
directoryはdirectory一覧を出力してください。各directoryごとにそのdirecotryの下のfile sizeの合計を出力してください。
Google翻訳です。賢い。少し修正してます。
specification
create a python script that outputs a list of files and their sizes under a specified folder.
the folder is specified as an argument at run time.
please output file sizes in descending order in human-friendly units.
for directory, recursively get the total file size under the directory.
for directory, output a list of directories. for each directory, output the total file size under that directory.
sonar-reasoningを使って60秒以上戻って来ない場合は無限loopになっているはずです。
Cancelしましょう。reasoningだからかな。
費用
上記のpythonを作ってもらって、ゆっくり作業して1-2時間で1$を消費する感じです。
それぞれの人に強く依存すると思うので「Perplexity Proはそのくらいなのかも」くらいで考えてください。
output
file nameは変えてます。
file_sizes_roo_code.py
import os
import pathlib
from argparse import ArgumentParser
def get_file_sizes(directory):
"""Get file sizes in a directory."""
files = []
for file in os.listdir(directory):
path = os.path.join(directory, file)
if os.path.isfile(path):
size = os.path.getsize(path)
files.append((file, size))
return files
def get_directory_sizes(directory):
"""Get total size of all files in a directory and its subdirectories."""
total_size = 0
for entry in os.scandir(directory):
if entry.is_file():
total_size += entry.stat().st_size
elif entry.is_dir():
total_size += get_directory_sizes(entry.path)
return total_size
def convert_size(size):
"""Convert size in bytes to human-friendly units."""
for unit in ['', 'K', 'M', 'G', 'T', 'P', 'E', 'Z']:
if abs(size) < 1024.0:
return f"{size:3.1f}{unit}B"
size /= 1024.0
return f"{size:.1f}YB"
def main():
parser = ArgumentParser(description='List files and directories with sizes.')
parser.add_argument('directory', help='Path to the directory to scan.')
args = parser.parse_args()
directory = args.directory
# Get file sizes
files = get_file_sizes(directory)
files.sort(key=lambda x: x[1], reverse=True)
print(f"Files in {directory}:")
for file, size in files:
print(f"{file}: {convert_size(size)}")
# Get directory sizes
subdirectories = [entry.name for entry in os.scandir(directory) if entry.is_dir()]
print("\nSubdirectories with total file sizes:")
for subdirectory in subdirectories:
subdirectory_path = os.path.join(directory, subdirectory)
total_size = get_directory_sizes(subdirectory_path)
print(f"{subdirectory}: {convert_size(total_size)}")
if __name__ == "__main__":
main()
まとめ
file sizeは降順だけどdirectoryが降順でない。
sonar-reasoningでpythonを実行したら無限ループに入ってしまうscriptを生成する場合もありました。
広告
IT開発関連書とビジネス書が豊富な翔泳社の通販『SEshop』
さくらのレンタルサーバ

ムームードメイン

Oisix(おいしっくす)

らでぃっしゅぼーや

珈琲きゃろっと

エプソムソルト
