Change #239869
Category | rsyslog |
Changed by | Rainer Gerhards <rgerhards | @adiscon.com>
Changed at | Tue 15 Jul 2025 17:33:07 |
Repository | https://github.com/rsyslog/rsyslog.git |
Project | rsyslog |
Branch | master |
Revision | fb51433919e2b73cabe0cde03dd8ca60409d0721 |
Comments
feat: introduce mmaitag PoC with Gemini AI provider (#5754) This commit adds the initial implementation of the `mmaitag` module, a pluggable AI-based message classification processor. The module supports two providers: - `gemini`: uses the Gemini API via libcurl and JSON-C - `gemini_mock`: a deterministic in-memory mock used for testing Each log message is classified individually and tagged with a label stored in a configurable message variable (default: `$.aitag`). Included: - Provider abstraction layer (`ai_provider.h`) - Gemini provider with API key support (inline or via file) - Prompt customization and input property selection - Two regression tests: basic and invalid-key scenarios - Sphinx documentation under `doc/configuration/modules` Note: mmaitag is in its infancy and primarily a PoC. Future work will improve batching, performance, and add more providers. Refs: - https://github.com/rsyslog/rsyslog/issues/5747 (AI-first strategy) With the help of AI Agents: Codex, Gemini
Changed files
- Makefile.am
- configure.ac
- doc/source/configuration/modules/mmaitag.rst
- plugins/mmaitag/Makefile.am
- plugins/mmaitag/ai_provider.h
- plugins/mmaitag/ai_provider_gemini.c
- plugins/mmaitag/ai_provider_gemini_mock.c
- plugins/mmaitag/mmaitag.c
- tests/Makefile.am
- tests/mmaitag-basic.sh
- tests/mmaitag-invalid-key.sh