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

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

Dec 18, 2024 pm 02:54 PM

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 サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

LinuxターミナルでPythonバージョンを表示するときに発生する権限の問題を解決する方法は? LinuxターミナルでPythonバージョンを表示するときに発生する権限の問題を解決する方法は? Apr 01, 2025 pm 05:09 PM

LinuxターミナルでPythonバージョンを表示する際の許可の問題の解決策PythonターミナルでPythonバージョンを表示しようとするとき、Pythonを入力してください...

中間の読書にどこでもfiddlerを使用するときにブラウザによって検出されないようにするにはどうすればよいですか? 中間の読書にどこでもfiddlerを使用するときにブラウザによって検出されないようにするにはどうすればよいですか? Apr 02, 2025 am 07:15 AM

fiddlereveryversings for the-middleの測定値を使用するときに検出されないようにする方法

あるデータフレームの列全体を、Python内の異なる構造を持つ別のデータフレームに効率的にコピーする方法は? あるデータフレームの列全体を、Python内の異なる構造を持つ別のデータフレームに効率的にコピーする方法は? Apr 01, 2025 pm 11:15 PM

PythonのPandasライブラリを使用する場合、異なる構造を持つ2つのデータフレーム間で列全体をコピーする方法は一般的な問題です。 2つのデータがあるとします...

uvicornは、serving_forever()なしでhttpリクエストをどのように継続的に聞いていますか? uvicornは、serving_forever()なしでhttpリクエストをどのように継続的に聞いていますか? Apr 01, 2025 pm 10:51 PM

UvicornはどのようにしてHTTPリクエストを継続的に聞きますか? Uvicornは、ASGIに基づく軽量のWebサーバーです。そのコア機能の1つは、HTTPリクエストを聞いて続行することです...

プロジェクトの基本と問題駆動型の方法で10時間以内にコンピューター初心者プログラミングの基本を教える方法は? プロジェクトの基本と問題駆動型の方法で10時間以内にコンピューター初心者プログラミングの基本を教える方法は? Apr 02, 2025 am 07:18 AM

10時間以内にコンピューター初心者プログラミングの基本を教える方法は?コンピューター初心者にプログラミングの知識を教えるのに10時間しかない場合、何を教えることを選びますか...

Investing.comの反クローラーメカニズムをバイパスするニュースデータを取得する方法は? Investing.comの反クローラーメカニズムをバイパスするニュースデータを取得する方法は? Apr 02, 2025 am 07:03 AM

Investing.comの反クラウリング戦略を理解する多くの人々は、Investing.com(https://cn.investing.com/news/latest-news)からのニュースデータをクロールしようとします。

See all articles