たねやつの木

Photographs, Keyboards and Programming

【実践編1】プログラマー必見!LM Studioでコーディングを加速させるAI活用術

こんにちは、たねやつです。

前回の記事では、LM StudioのローカルAPIサーバー機能を使って、手元のPCを自分だけのAIサーバーにする方法をご紹介しました。 今回はその実践編として、プログラマーの方々にとって非常に強力な武器となる、ローカルLLMを活用したコーディングの効率化テクニックを解説します。

前の記事

www.taneyats.com

この記事でできること

  • コーディングに特化したLLMの選び方と使い方がわかる
  • コード生成やリファクタリングを効率化するプロンプトが学べる
  • デバッグやドキュメント作成に応用する方法がわかる

コーディング特化モデルの活用

第2回で紹介したように、LLMにはそれぞれ得意分野があります。コーディングタスクを効率的にこなすには、やはりコーディングに特化したモデルを選ぶのが最善です。

  • Qwen/Qwen2.5-Coder-7B-Instruct

このモデルは、膨大な量のソースコードを学習しており、プログラミング言語の文法やロジック、さらには設計パターンまで深く理解しています。 前回の記事で紹介したローカルAPIサーバーと組み合わせることで、これらの強力なモデルをVSCodeなどのエディタから直接呼び出し、開発フローにシームレスに組み込むことができます。

プロンプト例:コード生成・補完

良いコードを生成させるには、良いプロンプト(指示)が不可欠です。AIに「何をしてほしいか」を具体的かつ明確に伝えましょう。

悪いプロンプト例

Pythonでフィボナッチ数列の関数を書いて

これでも簡単なコードは生成できますが、品質はAI任せになってしまいます。

良いプロンプト例

あなたはPythonの熟練プログラマーです。
指定されたn番目のフィボナッチ数を計算するPython関数を、以下の要件に従って作成してください。

# 要件
- 関数名は `fibonacci` とする
- 引数 `n` (int) を受け取る
- 再帰呼び出しではなく、ループ処理を用いた効率的なアルゴリズムで実装する
- PEP 484に準拠した型ヒントを必ず付与する
- 関数には、処理内容を説明する簡潔なdocstringを追加する

このように、役割を与え(あなたは〜です)、具体的な要件を箇条書きで示すことで、期待通りの高品質なコードが出力されやすくなります。

プロンプト例:リファクタリング

既存のコードを改善したい場合にも、AIは非常に役立ちます。

プロンプト例

あなたは、クリーンで効率的なコードを書くことを信条とするソフトウェアエンジニアです。
以下のPythonコードをリファクタリングしてください。

# 指示
- より効率的で、Pythonic(Pythonらしい)な書き方に修正してください。
- 修正の前後でコードの挙動が変わらないようにしてください。
- 修正前と修正後のコードを並べて提示し、変更点とその理由を簡潔に説明してください。

# 対象のコード
[ここにリファクタリングしたいコードを貼り付ける]

応用:デバッグとドキュメント作成

面倒な作業もAIに任せてしまいましょう。

デバッグ

エラーメッセージと関連するコードを渡して、原因を分析させます。

以下のPythonコードを実行したところ、`IndexError: list index out of range` というエラーが発生しました。
エラーの原因を特定し、修正案を提示してください。

# コード
[エラーが発生するコード]

# エラーメッセージ
[ターミナルに出力されたエラー全文]

ドキュメント作成

コードのコメントや仕様書(docstring)を自動生成させます。

以下のPython関数について、処理内容、引数、戻り値を説明するdocstringを作成してください。
フォーマットはGoogleスタイルに従ってください。

# 対象の関数
[docstringを書きたい関数]

最後に

今回は、ローカルLLMをコーディングの相棒として活用するための具体的なテクニックをご紹介しました。 外部サービスにコードを送信する必要がないため、セキュリティ面でも安心です。また、API料金を気にせず何度でも試せるので、プロンプトの試行錯誤もしやすいのが大きな利点です。 ぜひ、ご自身の開発環境にローカルAIアシスタントを導入してみてください。

次の記事

www.taneyats.com