Add Google and Groq AI providers, enhance provider manager, and implement conversation and logging services

- Introduced `Groq_AI_Provider_Google` and `Groq_AI_Provider_Groq` classes for handling AI interactions with Google and Groq respectively.
- Enhanced `Groq_AI_Provider_Manager` to register and manage multiple AI providers.
- Implemented `Groq_AI_Conversation_Manager` for managing conversation IDs and context hashes.
- Added `Groq_AI_Generation_Logger` for logging AI generation events and managing log tables.
- Developed `Groq_AI_Prompt_Builder` for constructing prompts and processing AI responses.
- Established `Groq_AI_Settings_Manager` for managing plugin settings, including context fields and module configurations.
This commit is contained in:
Roberto Guagliardo
2025-12-05 23:58:15 +01:00
commit 5171f93a93
26 changed files with 4040 additions and 0 deletions

93
README.md Normal file
View File

@@ -0,0 +1,93 @@
# SitiAI Product Teksten (WordPress plugin)
Deze repository bevat de WordPress plugin waarmee productteksten via SitiAI kunnen worden gegenereerd. De plugincode leeft volledig in deze map en kan daarom veilig via git beheerd worden.
## Plugin installeren en gebruiken
### Systeemeisen
- WordPress 6.4 of hoger.
- WooCommerce (de plugin controleert dit en deactiveert zichzelf als WooCommerce ontbreekt).
- Minimaal één API-sleutel voor Groq, OpenAI of Google Gemini.
- (Optioneel) Rank Math SEO wanneer je de extra SEO-velden wilt gebruiken.
### Installatie
1. Download de nieuwste release (`siti-ai-product-content-generator-x.y.z.zip`) vanaf de [GitHub Releases](https://github.com/SitiWeb/siti-ai-product-content-generator/releases) of gebruik het zip-bestand dat door de workflow in `dist/` wordt geplaatst.
2. Ga in WordPress naar **Plugins → Nieuwe plugin → Plugin uploaden** en upload het zipbestand. Je kunt de map ook handmatig naar `wp-content/plugins/` uploaden.
3. Activeer **SitiAI Product Teksten** en controleer dat WooCommerce actief is.
### Configuratie
1. Navigeer naar **Instellingen → Siti AI**.
2. Kies een AI-aanbieder, vul de bijbehorende API-sleutel in en (optioneel) klik op **Live modellen ophalen** om beschikbare modellen te laden.
3. Stel een standaard prompt en winkelcontext in zodat het AI-venster vooraf gevuld is.
4. Selecteer welke productvelden standaard als context dienen (titel, beschrijvingen, attributen, …).
5. Gebruik de knop **Ga naar modules** om bijvoorbeeld de Rank Math integratie aan of uit te zetten en de limieten aan te passen.
6. Via **Bekijk AI-logboek** zie je alle eerdere generaties inclusief foutmeldingen of token usage.
### Productteksten genereren
1. Open een product in WooCommerce en gebruik de meta-box **Gebruik AI** om de modal te openen.
2. Vul (of hergebruik) een prompt, kies welke contextvelden meegestuurd worden en klik op **Genereer tekst**.
3. De resultaten verschijnen per veld (titel, korte beschrijving, beschrijving en indien geactiveerd Rank Math velden). Gebruik **Kopieer** of **Vul … in** om velden direct over te nemen.
4. Via de geavanceerde sectie kun je contextvelden tijdelijk uitschakelen; dit heeft alleen effect voor de huidige generatie.
5. Iedere generatie wordt opgeslagen in het AI-logboek zodat je binnen WordPress kunt terugzoeken wat er is gebeurd.
## Ontwikkelvereisten
- Docker Desktop of Docker Engine + Docker Compose v2
## Ontwikkelen in de Docker omgeving
1. Start de containers (WordPress + MariaDB + phpMyAdmin):
```bash
docker compose up --build -d
```
2. Open http://localhost:8080 om de WordPress installatie te doorlopen. Gebruik `db` als host en de volgende databasegegevens:
- database: `wordpress`
- gebruiker: `wordpress`
- wachtwoord: `wordpress`
3. Activeer in het WordPress dashboard de plugin **SitiAI Product Teksten** (deze repository wordt in de container gemount naar `wp-content/plugins/siti-ai-product-content-generator`).
### Handige commando's
- Shell in de WordPress container om bijvoorbeeld `wp` CLI of git te draaien binnen de container:
```bash
docker compose exec wordpress bash
```
- WP-CLI is al aanwezig:
```bash
docker compose exec wordpress wp plugin list
```
- Bekijk de database via phpMyAdmin op http://localhost:8081 (gebruik dezelfde DB-gebruiker/WW als hierboven).
- Containers stoppen:
```bash
docker compose down
```
## Werken met git
De pluginbestanden blijven op de host staan en worden alleen als bind-mount in de container gebruikt. Daardoor kun je git gewoon op je machine gebruiken:
```bash
git status
git add .
git commit -m "Beschrijf je wijziging"
git push origin <branch>
```
Je kunt optioneel vanuit de container git gebruiken (zelfde codepad) wanneer je liever binnen Docker werkt.
## Tips
- De databank (`db_data`) en WordPress bestanden (`wordpress_data`) worden in Docker volumes opgeslagen zodat je data behouden blijft tussen sessies.
- Wil je helemaal opnieuw beginnen? Voer `docker compose down -v` uit om de volumes te verwijderen.
## Releasen via GitHub Actions
De workflow `.github/workflows/release.yml` bouwt automatisch een distributie-zip van de plugin, maakt een git-tag (`vX.Y.Z`) op basis van de versie in `groq-ai-product-text.php` en publiceert een GitHub Release met het zipbestand als asset.
1. Werk de `Version`-header in `groq-ai-product-text.php` bij en commit de wijzigingen.
2. Push naar `main` of start handmatig de workflow **Build & Release Plugin** via **Actions → Run workflow** (optioneel met extra release notes).
3. De workflow slaat releases over wanneer een tag met dezelfde versie al bestaat.