ホームページ > バックエンド開発 > Python チュートリアル > Python と Gemini を使用した Debian パッケージ更新概要の自動化 (gemini--flash)

Python と Gemini を使用した Debian パッケージ更新概要の自動化 (gemini--flash)

Barbara Streisand
リリース: 2024-12-18 14:54:11
オリジナル
337 人が閲覧しました

Automating Debian Package Update Summaries with Python and Gemini (gemini--flash)

Debian のようなディストリビューションを使用していて、新しいユーザーであるか、システム管理者 としてキャリアを始めたばかりの場合は、おそらくパッケージの更新の重要性をすでにご存知でしょう。 aptアップデートを使用します。 Linux についてさらに学ぶために、各パッケージが何を行うのかを理解することもできます。さらに、システム管理者 (sysadmin) は、どの更新が緊急であるか、セキュリティに関連しているかを関係者に伝達したり、文書化したりする必要があることがよくあります。

この投稿では、Python、apt list -u コマンド、Gemini AI を組み合わせて、保留中のパッケージ更新に関する人間が判読できる概要を作成する方法を説明します。


目標 ?

  • apt list -u コマンドを使用して、Debian の保留中のアップデートのリストを取得します。 注: 必要に応じて、次のようなものを使用して出力を変更できます。
  apt list -u | awk '{ print  }' | sed 's|/.*||'
ログイン後にコピー
  • このリストを Gemini AI に送信します (Google の生成ライブラリを使用)。
  • AI を使用して、各パッケージ更新の重要性を分類し、要約します。
  • 共有しやすくするために、結果を Markdown ファイルに保存します。

要件 ?

  • Python 3.8
  • Google Gemini API キー
  • 必要なライブラリ:pip install google-generativeai environs
  • Debian ベースのシステム: このスクリプトは apt コマンドに依存しています。

コード

ここでは、2 つのスクリプトにわたるソリューションの内訳を示します:

apt_list.py

このスクリプトは apt list -u を実行して保留中の更新を取得し、出力を処理し、プロンプト関数を使用して Gemini AI から分類された概要を取得します。

import subprocess
from utils.gemini_cfg import prompt

try:
    # Run 'apt list -u' to list upgradable packages
    result = subprocess.run(["apt", "list", "-u"], capture_output=True, text=True, check=True)
    output = result.stdout  # Get command output

    # Use the Gemini AI model to summarize the updates
    summary = prompt(output)

    # Save the AI-generated summary to a Markdown file
    with open("./gemini_result.md", "w") as file:
        file.write(summary)

    print("Summary saved to gemini_result.md")

except subprocess.CalledProcessError as e:
    print("Error while running apt list:", e)
ログイン後にコピー

gemini_cfg.py

このスクリプトは Gemini API を構成し、AI 生成コンテンツのプロンプト関数を定義します。

import google.generativeai as genai
from environs import Env

# Load API key from .env file
env = Env()
env.read_env()
key = env("TOKEN")  # Replace with your environment variable key name

# Configure Gemini API
genai.configure(api_key=key)
model = genai.GenerativeModel("gemini-1.5-flash")

# Function to prompt Gemini AI for summaries
def prompt(content):
    message = (
        "You work as a sysadmin (Debian server infrastructure). "
        "You must create a list categorizing the importance in terms of security and priority, "
        "providing a brief summary for each package so that business managers can understand "
        "what each library is from this output of the `apt list -u` command: "
        f"{content}"
    )
    response = model.generate_content([message])
    return response.text
ログイン後にコピー
  1. apt_list.py スクリプトを実行します: python apt_list.py
  2. スクリプトは次のことを行います:

    • 保留中の Debian パッケージの更新を取得します。
    • 分類と説明のためにリストを Gemini AI に渡します。
    • AI が生成した出力を gemini_result.md に保存します。
  3. gemini_result.md を開くと、更新の明確で分類された概要が表示され、コミュニケーションが容易になります。


出力例

生成された概要の例を次に示します。

## Debian Package Update List: Priority and Security

The list below categorizes the packages available for update, considering their importance in terms of security and business operation priority. The classification is subjective and may vary depending on your company's specific context.

**Category 1: High Priority - Critical Security (update immediately)**
- **linux-generic, linux-headers-generic:** Critical kernel updates to fix security vulnerabilities.  
- **libcurl4:** Resolves potential security issues for data transfer operations.  
...

**Category 2: High Priority - Maintenance and Stability (update soon)**

* **`e2fsprogs`, `logsave`:** Packages related to ext2/ext3/ext4 file systems. Update to ensure data integrity and file system stability. **Medium-High priority.**
...

**Category 3: Medium Priority - Applications (update as needed)**

* **`code`:** Visual Studio Code editor. Update for new features and bug fixes, but not critical for system security.
* **`firefox`, `firefox-locale-en`, `firefox-locale-pt`:** Firefox browser. Updates for security fixes and new functionalities. Priority depends on Firefox usage in your infrastructure.
...

ログイン後にコピー

結論

Python と Gemini AI を少し使用すると、Debian パッケージの更新を伝達する方法を自動化および改善できます。このスクリプトは、AI をシステム管理ワークフローに統合するための優れた基盤です。この投稿は教育を目的としているため、Gemini API リソースとシステムの安全な取り扱いに注意してください。

読んでいただきありがとうございます! ?

以上がPython と Gemini を使用した Debian パッケージ更新概要の自動化 (gemini--flash)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート