ReClineとSourceSageとCopilotの無料Language Model APIを使用したTerraformインフラ改修の実験レポート

AI開発

概要

本レポートでは、AWS Terraformコードの改修作業において、ClineのフォークであるReCline(Copilotの無料Language Model API、Claude 3.5 Sonnet搭載)とSourceSageを組み合わせた実験結果を報告します。

開発環境セットアップ

SourceSageのインストールと設定

# SourceSageのインストール
pip install sourcesage

# リポジトリ情報の収集
sourcesage

# 生成されるドキュメントの場所
.SourceSageAssets\DOCUMIND\Repository_summary.md

実験内容

1. セキュリティグループの改修タスク

前提条件:

  • SourceSageによるリポジトリ構造の文書化
  • ReClineの設定

指示内容:

下記で下記の複数のセキュリティグループをアタッチするようにして

cloudfront_security_group_id: sg-03e35cd397ab91b2d
default_security_group_id: sg-07f88719c48f3c042
vpc_internal_security_group_id: sg-0097221f0bf87d747
whitelist_security_group_id: sg-0a7a8064abc5c1aee

ReClineの挙動:

  1. SourceSageが生成したリポジトリ構造を基に、関連ファイルを特定
  2. 既存コードの依存関係を分析
  3. 変更が必要なファイルのリストを作成
  4. 段階的な変更を提案:
    • common_variables.tf
    • terraform.tfvars
    • compute/variables.tf
    • compute/main.tf
    • networking関連モジュール

結果:

  • 変数型の定義をstringからlist(string)に変更
  • モジュール間の変数受け渡しをリスト形式に対応
  • 関連するすべてのモジュールでの参照を更新

2. セキュリティグループの説明追加タスク

指示内容:

セキュリティグループそれぞれにdescription を付与して可読性を上げて

実装プロセス:

  1. SourceSageのリポジトリ構造を参照
  2. 関連するセキュリティグループ設定ファイルを特定
  3. 各セキュリティグループの役割を分析
  4. 説明文の追加と更新

ツールの統合効果

SourceSageの貢献

  1. プロジェクト構造の可視化

    • リポジトリ全体のマークダウンドキュメント生成
    • ファイル間の依存関係の明確化
    • モジュール構造の体系的な把握
  2. LLMの制御強化

    • プロジェクト全体のコンテキスト提供
    • 関連ファイルの特定精度向上
    • 不適切な変更の防止

ReClineの活用

  1. コード解析と生成

    • Terraformベストプラクティスの適用
    • 型の整合性維持
    • モジュール間の一貫性確保
  2. インタラクティブな改修

    • エラーフィードバックの提供
    • 段階的な変更提案
    • ユーザーフィードバックへの適応

具体的な変更例

# 変数定義の変更
variable "security_group_ids" {
  type        = list(string)
  description = "List of security group IDs to attach"
}

# モジュール呼び出しの更新
module "compute" {
  source = "./modules/compute"

  security_group_ids = [
    var.cloudfront_security_group_id,
    var.default_security_group_id,
    var.vpc_internal_security_group_id
  ]
}

結論

SourceSageとReClineの組み合わせは、以下の点で特に効果的でした:

  1. 構造化された開発アプローチ

    • リポジトリ全体の文書化
    • 改修影響範囲の正確な把握
    • 段階的な変更管理
  2. 品質管理の向上

    • コードの一貫性維持
    • エラーの早期発見
    • ベストプラクティスの適用
  3. 効率的な作業プロセス

    • 必要な変更箇所の迅速な特定
    • 自動化された文書生成
    • レビュー工数の削減

この統合アプローチにより、大規模なインフラコードの改修作業を、より安全かつ効率的に実施することができました。特に、SourceSageによるリポジトリ構造の可視化が、ReClineのコード改修精度を大きく向上させる結果となりました。

参考サイト

GitHub - Sunwood-ai-labs/SourceSage
Contribute to Sunwood-ai-labs/SourceSage development by creating an account on GitHub.
Language Model API
A guide to adding AI-powered features to a VS Code extension by using language models and natural language understanding.
GitHub - julesmons/recline: Recline: The autonomous AI assistant that seamlessly integrates with your CLI and editor to create, edit and run; redefining how you code.
Recline: The autonomous AI assistant that seamlessly integrates with your CLI and editor to create, edit and run; redefining how you code. - julesmons/recline

コメント

タイトルとURLをコピーしました