cari
Rumahpembangunan bahagian belakangTutorial PythonMengautomasikan Ringkasan Kemas Kini Pakej Debian dengan Python dan Gemini (gemini--flash)

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
Apakah alternatif untuk menggabungkan dua senarai dalam Python?Apakah alternatif untuk menggabungkan dua senarai dalam Python?May 09, 2025 am 12:16 AM

Terdapat banyak kaedah untuk menyambungkan dua senarai dalam Python: 1. Pengendali menggunakan, yang mudah tetapi tidak cekap dalam senarai besar; 2. Gunakan kaedah Extend, yang cekap tetapi akan mengubah suai senarai asal; 3. Gunakan operator =, yang kedua -duanya cekap dan boleh dibaca; 4. Gunakan fungsi itertools.Chain, yang efisien memori tetapi memerlukan import tambahan; 5. Penggunaan senarai parsing, yang elegan tetapi mungkin terlalu kompleks. Kaedah pemilihan harus berdasarkan konteks dan keperluan kod.

Python: Cara yang cekap untuk menggabungkan dua senaraiPython: Cara yang cekap untuk menggabungkan dua senaraiMay 09, 2025 am 12:15 AM

Terdapat banyak cara untuk menggabungkan senarai Python: 1. Menggunakan pengendali, yang mudah tetapi tidak memori yang cekap untuk senarai besar; 2. Gunakan kaedah Extend, yang cekap tetapi akan mengubah suai senarai asal; 3. Gunakan itertools.chain, yang sesuai untuk set data yang besar; 4. Penggunaan * pengendali, bergabung dengan senarai kecil hingga sederhana dalam satu baris kod; 5. Gunakan numpy.concatenate, yang sesuai untuk set data dan senario yang besar dengan keperluan prestasi tinggi; 6. Gunakan kaedah tambahan, yang sesuai untuk senarai kecil tetapi tidak cekap. Apabila memilih kaedah, anda perlu mempertimbangkan saiz senarai dan senario aplikasi.

Disusun vs bahasa yang ditafsirkan: kebaikan dan keburukanDisusun vs bahasa yang ditafsirkan: kebaikan dan keburukanMay 09, 2025 am 12:06 AM

Compiledlanguagesofferspeedandsecurity, whilintpretedLanguagesprovideoeSeAfuseAndPortability.1) compiledLanguageslikec arefasterandsecureButhavelongerDevelopmentCyclesandplatformdependency.2) interpretedLanguagePyePyhonareeAseAreeAseaneAseaneSioSioSioSioSioSioSioSioSioSioSioSioSioSioSioSioSioSeaneaneAseaneaneAseaneaneAdoSioSiAdaSiAdoeSeaneAdoeSeaneAdoeSeanDoReAseanDOREPYHOREADOREB

Python: Untuk dan sementara gelung, panduan paling lengkapPython: Untuk dan sementara gelung, panduan paling lengkapMay 09, 2025 am 12:05 AM

Di Python, A untuk gelung digunakan untuk melintasi objek yang boleh dimakan, dan gelung sementara digunakan untuk melakukan operasi berulang kali apabila keadaan berpuas hati. 1) Untuk contoh gelung: melintasi senarai dan mencetak unsur -unsur. 2) Walaupun contoh gelung: Tebak permainan nombor sehingga anda rasa betul. Menguasai prinsip kitaran dan teknik pengoptimuman dapat meningkatkan kecekapan dan kebolehpercayaan kod.

Python Concatenate menyenaraikan ke dalam rentetanPython Concatenate menyenaraikan ke dalam rentetanMay 09, 2025 am 12:02 AM

Untuk menggabungkan senarai ke dalam rentetan, menggunakan kaedah Join () dalam Python adalah pilihan terbaik. 1) Gunakan kaedah Join () untuk menggabungkan elemen senarai ke dalam rentetan, seperti '' .join (my_list). 2) Untuk senarai yang mengandungi nombor, tukar peta (str, nombor) ke dalam rentetan sebelum menggabungkan. 3) Anda boleh menggunakan ekspresi penjana untuk pemformatan kompleks, seperti ','. Sertai (f '({Fruit})' forfruitinFruits). 4) Apabila memproses jenis data bercampur, gunakan peta (str, mixed_list) untuk memastikan semua elemen dapat ditukar menjadi rentetan. 5) Untuk senarai besar, gunakan '' .join (large_li

Pendekatan Hibrid Python: Kompilasi dan Tafsiran DigabungkanPendekatan Hibrid Python: Kompilasi dan Tafsiran DigabungkanMay 08, 2025 am 12:16 AM

Pythonusesahybridapproach, combiningcompilationtobytecodeandinterpretation.1) codeiscompiledtopplatform-independentbytecode.2) byteCodeisinterpretedbythepythonvirtualmachine, enhancingficiencyAndortability.

Ketahui perbezaan antara gelung 'untuk' dan 'sementara' PythonKetahui perbezaan antara gelung 'untuk' dan 'sementara' PythonMay 08, 2025 am 12:11 AM

TheKeydifferencesbetweenpython's "for" and "while" loopsare: 1) "untuk" loopsareidealforiteratingoversequencesorknowniterations, while2) "manakala" loopsarebetterforcontinuinguntilaconditionismetwithoutpredefinediterations.un

Senarai concatenate python dengan penduaSenarai concatenate python dengan penduaMay 08, 2025 am 12:09 AM

Di Python, anda boleh menyambungkan senarai dan menguruskan elemen pendua melalui pelbagai kaedah: 1) Gunakan pengendali atau melanjutkan () untuk mengekalkan semua elemen pendua; 2) Tukar ke set dan kemudian kembali ke senarai untuk mengalih keluar semua elemen pendua, tetapi pesanan asal akan hilang; 3) Gunakan gelung atau senarai pemantauan untuk menggabungkan set untuk menghapuskan elemen pendua dan mengekalkan urutan asal.

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

mPDF

mPDF

mPDF ialah perpustakaan PHP yang boleh menjana fail PDF daripada HTML yang dikodkan UTF-8. Pengarang asal, Ian Back, menulis mPDF untuk mengeluarkan fail PDF "dengan cepat" dari tapak webnya dan mengendalikan bahasa yang berbeza. Ia lebih perlahan dan menghasilkan fail yang lebih besar apabila menggunakan fon Unicode daripada skrip asal seperti HTML2FPDF, tetapi menyokong gaya CSS dsb. dan mempunyai banyak peningkatan. Menyokong hampir semua bahasa, termasuk RTL (Arab dan Ibrani) dan CJK (Cina, Jepun dan Korea). Menyokong elemen peringkat blok bersarang (seperti P, DIV),

VSCode Windows 64-bit Muat Turun

VSCode Windows 64-bit Muat Turun

Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

MantisBT

MantisBT

Mantis ialah alat pengesan kecacatan berasaskan web yang mudah digunakan yang direka untuk membantu dalam pengesanan kecacatan produk. Ia memerlukan PHP, MySQL dan pelayan web. Lihat perkhidmatan demo dan pengehosan kami.

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa