Rumah >pembangunan bahagian belakang >Tutorial Python >Mengautomasikan Ringkasan Kemas Kini Pakej Debian dengan Python dan Gemini (gemini--flash)

Mengautomasikan Ringkasan Kemas Kini Pakej Debian dengan Python dan Gemini (gemini--flash)

Barbara Streisand
Barbara Streisandasal
2024-12-18 14:54:11343semak imbas

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

Jika anda menggunakan distro seperti Debian dan merupakan pengguna baharu atau baru memulakan kerjaya anda sebagai sysadmin, anda mungkin sudah tahu kepentingan mengemas kini pakej menggunakan kemas kini apt. Anda juga mungkin ingin memahami perkara yang dilakukan oleh setiap pakej untuk mengetahui lebih lanjut tentang Linux. Selain itu, pentadbir sistem (sysadmins) selalunya perlu berkomunikasi atau mendokumentasikan kepada pihak berkepentingan tentang kemas kini yang mendesak atau berkaitan keselamatan.

Dalam siaran ini, saya akan menunjukkan kepada anda cara menggabungkan Python, arahan senarai apt -u dan Gemini AI untuk membuat ringkasan kemas kini pakej yang belum selesai yang boleh dibaca oleh manusia.


Matlamatnya?

  • Dapatkan semula senarai kemas kini yang belum selesai pada Debian menggunakan arahan apt list -u. Nota: Jika mahu, anda boleh mengubah suai output menggunakan sesuatu seperti:
  apt list -u | awk '{ print  }' | sed 's|/.*||'
  • Hantar senarai ini kepada Gemini AI (menggunakan perpustakaan generatif Google).
  • Gunakan AI untuk mengkategorikan dan meringkaskan kepentingan setiap kemas kini pakej.
  • Simpan keputusan dalam fail Markdown untuk memudahkan perkongsian.

Keperluan?

  • Python 3.8
  • Kunci API Google Gemini
  • Perpustakaan Diperlukan:pip pasang google-generativeai environs
  • Sistem Berasaskan Debian: Skrip ini bergantung pada arahan apt.

Kod

Berikut ialah pecahan penyelesaian merentas dua skrip:

apt_list.py

Skrip ini menjalankan apt list -u untuk mengambil kemas kini yang belum selesai, memproses output dan menggunakan fungsi gesaan untuk mendapatkan ringkasan yang dikategorikan daripada 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

Skrip ini mengkonfigurasi API Gemini dan mentakrifkan fungsi gesaan untuk kandungan yang dijana 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. Jalankan skrip apt_list.py: python apt_list.py
  2. Skrip melakukan perkara berikut:

    • Mengambil semula kemas kini pakej Debian yang belum selesai.
    • Meluluskan senarai kepada Gemini AI untuk pengkategorian dan penjelasan.
    • Menyimpan output yang dijana AI ke gemini_result.md.
  3. Buka gemini_result.md untuk melihat ringkasan kemas kini yang jelas dan dikategorikan untuk memudahkan komunikasi.


Contoh Output

Berikut ialah contoh rupa ringkasan yang dijana:

## 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.
...

Kesimpulan

Dengan sedikit Python dan Gemini AI, anda boleh mengautomasikan dan menambah baik cara anda menyampaikan kemas kini pakej Debian. Skrip ini adalah asas yang sangat baik untuk menyepadukan AI ke dalam aliran kerja sysadmin. Siaran ini adalah untuk tujuan pendidikan, jadi berhati-hati dengan sumber Gemini API, serta pengendalian sistem anda yang selamat.

Terima kasih kerana membaca! ?

Atas ialah kandungan terperinci Mengautomasikan Ringkasan Kemas Kini Pakej Debian dengan Python dan Gemini (gemini--flash). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn