Βοήθεια AI
Προαιρετική βοήθεια AI με δικό σας κλειδί: προτάσεις τίτλου και meta description, εξηγήσεις προβλημάτων σάρωσης σε απλή γλώσσα, αναδιατύπωση περιγραφής με ένα κλικ και πρόταση δομημένων δεδομένων (schema.org). Είναι ανενεργή από προεπιλογή — με ανενεργή τη σημαία, δεν εκτελείται καθόλου κώδικας AI.
Τρία στοιχεία καθορίζουν τον σχεδιασμό:
- Δικό σας κλειδί, δικός σας πάροχος. Τα αιτήματα πηγαίνουν από τον δικό σας διακομιστή απευθείας στον πάροχο που ρυθμίζετε εσείς — Anthropic, OpenAI, Google ή τοπικό / συμβατό με OpenAI διακομιστή — με χρέωση στον λογαριασμό σας όπου ισχύει. Δεν μεσολαβεί διακομιστής του πακέτου, ούτε μέτρηση χρεώσιμης χρήσης ή μεταπώληση, και το πακέτο δεν στέλνει τηλεμετρία πουθενά.
- Οι διαδραστικές προτάσεις απαιτούν ρητή αποδοχή. Η επιλογή πρότασης συμπληρώνει τη φόρμα· οι διορθώσεις πίνακα ελέγχου απαιτούν Εφαρμογή. Από το Pro 2.42, το CLI μαζικής συμπλήρωσης αποθηκεύει ιδιωτικά προσχέδια από προεπιλογή. Χρησιμοποιήστε το
--auto-applyμόνο όταν θέλετε συνειδητά άμεσες εγγραφές. - Πάντα χωρίς διακοπή λειτουργίας. Κλειδί που λείπει ή είναι άκυρο, εξαντλημένο υπόλοιπο λογαριασμού, όριο ρυθμού ή λήξη χρόνου εμφανίζουν ενσωματωμένο μήνυμα. Δεν μπορούν ποτέ να εμποδίσουν αποθήκευση, απόδοση ή σάρωση.
Οι πάροχοι με μια ματιά
Επιλέξτε με βάση την πρόσβαση λογαριασμού, τις απαιτήσεις δεδομένων και το κόστος. Και οι τέσσερις ενσωματώσεις παρέχουν τις ίδιες εργασίες, αλλά η υποστήριξη μοντέλων, η μορφή εξόδου, η ταχύτητα και η ποιότητα μπορεί να διαφέρουν.
| Πάροχος | Προεπιλεγμένο μοντέλο πακέτου | Δομημένη έξοδος | Ενδεικτικό κόστος | Χρήση |
|---|---|---|---|---|
| Local (Ollama / LM Studio / vLLM) | llama3.1 (ορίστε το δικό σας) | Κατά το δυνατόν (response_format) | $0 χρέωση API για αυτοφιλοξενούμενη εξαγωγή συμπερασμάτων· παραμένει το κόστος υποδομής | Έλεγχος του προορισμού δεδομένων |
| OpenAI | gpt-5.5 | Structured Outputs όπου το υποστηρίζει το επιλεγμένο μοντέλο | περίπου $0,005 / πρόταση με τις παρακάτω παραδοχές παραδείγματος | Υπάρχων λογαριασμός OpenAI |
| Anthropic | claude-opus-4-8 | output_config.format όπου υποστηρίζεται | περίπου $0,015 / πρόταση με εκείνες τις παραδοχές | Υπάρχων λογαριασμός Anthropic |
gemini-2.5-flash | responseSchema όπου υποστηρίζεται | περίπου $0,0005 / πρόταση με εκείνες τις παραδοχές | Λογαριασμός Google· ελέγξτε όρια και τιμές μοντέλου |
Αυτά τα ονόματα περιγράφουν τις ρυθμίσεις που παρέχει το πακέτο, όχι εγγυημένη τρέχουσα διαθεσιμότητα στον λογαριασμό σας. Τα κόστη χρησιμοποιούν τις παραδοχές παραδείγματος του πακέτου, όχι επαληθευμένες τρέχουσες τιμές. Συμπεριφορά ενσωμάτωσης και παρατηρήσεις από τις δημοσιευμένες δοκιμές:
- Δομημένη έξοδος. Οι υποστηριζόμενες διαδρομές OpenAI, Google και Anthropic λαμβάνουν JSON schema· οι άκυρες απαντήσεις αποτυγχάνουν ομαλά. Οι τοπικοί διακομιστές λαμβάνουν
response_formatκατά το δυνατόν. Αν αγνοηθεί, η ανεκτική ανάλυση επιστρέφει είτε έγκυρη λίστα είτε αποτυχία, χωρίς εφαρμογή μερικής εξόδου. - Ο συλλογισμός αλλάζει την κατανάλωση token. Η περιγραφόμενη δοκιμή Gemini χρησιμοποίησε περίπου 500 κρυφά token συλλογισμού και περίπου 100 ορατά token για περιγραφή· οι δοκιμασμένες κλήσεις Anthropic δεν ανέφεραν κρυφά token συλλογισμού. Αυτό δεν είναι καθολική ιδιότητα αυτών των οικογενειών μοντέλων. Τα κρυφά token μπορεί να χρεώνονται ως έξοδος, γι’ αυτό υπάρχει το παρακάτω ελάχιστο όριο συλλογισμού.
- Τα μοντέλα ρυθμίζονται. Ορίστε το
SEO_PRO_AI_MODELσε διαθέσιμο μοντέλο συμβατό με το API και τις παραμέτρους του προσαρμογέα. Παραδείγματα είναι ταclaude-haiku-4-5,gpt-5.4-miniκαιgemma-3-12b-it· επαληθεύστε υποστήριξη και ποιότητα εξόδου πριν χρησιμοποιήσετε μοντέλο σε ολόκληρη συλλογή.
Εγκατάσταση και ρύθμιση
Ενεργοποιήστε τη λειτουργία και βάλτε το κλειδί παρόχου στο περιβάλλον. Αλλάξτε πάροχο cloud ενημερώνοντας πάροχο και κλειδί, ελέγχοντας επίσης τυχόν παράκαμψη μοντέλου. Ο τοπικός προσαρμογέας χρειάζεται και τη URL του διακομιστή του.
SEO_PRO_AI_ENABLED=true
SEO_PRO_AI_PROVIDER=local
SEO_PRO_AI_MODEL=llama3.1 # a model the server has pulled
SEO_PRO_AI_LOCAL_BASE_URL=http://localhost:11434/v1
SEO_PRO_AI_LOCAL_ALLOW_PRIVATE=true # required for a localhost server
# no API key needed for a local serverSEO_PRO_AI_ENABLED=true
SEO_PRO_AI_PROVIDER=openai
SEO_PRO_AI_API_KEY=sk-...
# optional: SEO_PRO_AI_MODEL=gpt-5.4-mini (default: gpt-5.5)SEO_PRO_AI_ENABLED=true
SEO_PRO_AI_PROVIDER=anthropic
SEO_PRO_AI_API_KEY=sk-ant-...
# optional: SEO_PRO_AI_MODEL=claude-haiku-4-5 (default: claude-opus-4-8)SEO_PRO_AI_ENABLED=true
SEO_PRO_AI_PROVIDER=google
SEO_PRO_AI_API_KEY=AIza... # AI Studio key: aistudio.google.com/apikey
# use a paid (billing-enabled) key for real use — the free tier is heavily rate-limited
# optional: SEO_PRO_AI_MODEL=gemma-3-12b-it (default: gemini-2.5-flash)Το κλειδί API παρόχου είναι ξεχωριστό από συνδρομή Claude / ChatGPT
Μια συνδρομή Claude Code, Claude.ai ή ChatGPT δεν χρηματοδοτεί το API. Το SEO_PRO_AI_API_KEY πρέπει να είναι κλειδί API με χρέωση βάσει χρήσης από την κονσόλα προγραμματιστών του παρόχου (ή κλειδί Google AI Studio), με δικό του υπόλοιπο. Ένας λογαριασμός μόνο συνδρομής ή χωρίς χρηματοδότηση θα περάσει τον έλεγχο ταυτότητας αλλά θα επιστρέψει σφάλμα εξαντλημένου υπολοίπου / ορίου χρήσης — δείτε Αντιμετώπιση προβλημάτων.
Το αρχείο ρυθμίσεων (config/seo-pro.php, τμήμα ai) εκθέτει timeout, max_input_chars, max_output_tokens, token_budgets, reasoning_models και reasoning_min_output_tokens, suggestion_count, bulk_model (την οικονομική βαθμίδα μαζικής συμπλήρωσης — δείτε Κόστος), retry, τον πίνακα pricing και το υποτμήμα local — όλα καλύπτονται στα Όρια και προσαρμογή.
Χειρισμός κλειδιού με ρυθμίσεις σε cache
Οι ρυθμίσεις αποθηκεύουν μόνο το όνομα της μεταβλητής περιβάλλοντος (api_key_env), ποτέ το κλειδί — επομένως το php artisan config:cache δεν γράφει ποτέ το κλειδί σας στο bootstrap/cache/config.php. Από την άλλη: με ρυθμίσεις σε cache δεν φορτώνεται το .env, οπότε ορίστε το SEO_PRO_AI_API_KEY ως πραγματική μεταβλητή περιβάλλοντος στον διακομιστή.
Τοπική εξαγωγή συμπερασμάτων και επιλογές cloud
- Η αυτοφιλοξενούμενη εξαγωγή συμπερασμάτων αποφεύγει τη χρέωση API ανά token του παρόχου. Υλικό, ηλεκτρικό ρεύμα και λειτουργία εξακολουθούν να κοστίζουν. Το περιεχόμενο μένει στο δίκτυό σας μόνο όταν ο ρυθμισμένος διακομιστής εξαγωγής συμπερασμάτων και οι εξαρτήσεις του μένουν εκεί.
- Το Google έχει όρια και τιμές ανά μοντέλο και βαθμίδα. Ένα κλειδί AI Studio (
aistudio.google.com/apikey, μορφήAIza…) μπορεί να επιτρέπει δοκιμές δωρεάν βαθμίδας· ελέγξτε αν τα όριά του ταιριάζουν στον φόρτο σας πριν ενεργοποιήσετε χρέωση όπου χρειάζεται. Τοgemini-2.5-flashείναι η προεπιλογή του πακέτου. Τα μοντέλα Gemini και Gemma δεν έχουν όλα τις ίδιες δυνατότητες συλλογισμού: τοreasoning_modelsεφαρμόζει ρυθμισμένα μοτίβα ονομάτων, όχι έλεγχο δυνατοτήτων.
Για να ελέγξετε πού εκτελείται η εξαγωγή συμπερασμάτων:
- Local / συμβατό με OpenAI. Χρησιμοποιήστε
provider=localμε διακομιστή συμβατό με OpenAI Chat Completions, όπως Ollama, LM Studio, vLLM ή LocalAI, ή απομακρυσμένη πύλη όπως OpenRouter. Ορίστε τοSEO_PRO_AI_LOCAL_BASE_URLστη ρίζα API του (προστίθεται το/chat/completions) και επιλέξτε διαθέσιμοSEO_PRO_AI_MODEL. Μια απομακρυσμένη πύλη λαμβάνει τα δεδομένα έξω από το δίκτυό σας και μπορεί να σας χρεώνει: το όνομα προσαρμογέαlocalδεν συνεπάγεται τοπική εξαγωγή συμπερασμάτων.
Το τοπικό base_url επικυρώνεται — ενεργοποιήστε ρητά το localhost
Το base_url είναι προνομιακή ρύθμιση, που επικυρώνεται μέσω του ίδιου SsrfGuard που χρησιμοποιεί κάθε άλλη εξερχόμενη ανάκτηση: μόνο http/https, χωρίς userinfo και — από προεπιλογή — πρέπει να επιλύεται σε δημόσια διεύθυνση, ώστε ένα λανθασμένο ή κακόβουλο base_url να μην μπορεί να χρησιμοποιηθεί για διερεύνηση εσωτερικών υπηρεσιών. Ένας πραγματικά τοπικός διακομιστής βρίσκεται στο 127.0.0.1 (ιδιωτική διεύθυνση), οπότε ο τοπικός πάροχος χρειάζεται τη ρητή επιλογή seo-pro.ai.local.allow_local_addresses (SEO_PRO_AI_LOCAL_ALLOW_PRIVATE=true). Αφήστε την ανενεργή για δημόσια πύλη (OpenRouter). Η διαδρομή αιτήματος είναι σταθερή και δεν ακολουθούνται ποτέ ανακατευθύνσεις, ώστε το κλειδί να μην μπορεί να σταλεί σε άλλο host.
Έλεγχος συλλογισμού σε υποστηριζόμενα μοντέλα Ollama
Ένα τοπικό μοντέλο συλλογισμού μπορεί να υπερβεί τον προεπιλεγμένο χρόνο αναμονής. Αν το υποστηρίζουν το μοντέλο και η έκδοση διακομιστή, το ['think' => false] στο seo-pro.ai.local.extra_body μπορεί να απενεργοποιήσει τον συλλογισμό για προτάσεις. Η υποστήριξη ποικίλλει· ελέγξτε την τεκμηρίωση Ollama. Αυξήστε το seo-pro.ai.timeout αν χρειάζεται. Το πακέτο δεν στέλνει temperature, επειδή ορισμένα μοντέλα το απορρίπτουν.
Κόστος
Δεν υπάρχει προσαύξηση του πακέτου — πληρώνετε απευθείας τον πάροχο, χωρίς χρέωση API παρόχου για αυτοφιλοξενούμενη εξαγωγή συμπερασμάτων (παραμένει το κόστος υποδομής). Δύο αριθμοί μετρούν: το κόστος ανά πρόταση για διαδραστική χρήση και το κόστος μαζικής συμπλήρωσης ολόκληρης συλλογής.
Ο πίνακας seo-pro.ai.pricing (USD ανά 1.000.000 token) μετατρέπει μια εκτίμηση token στο ποσό δολαρίων που εμφανίζει η επιβεβαίωση μαζικής συμπλήρωσης. Είναι παραδοχές εκτίμησης του πακέτου, όχι επαληθευμένες τρέχουσες δημόσιες τιμές — αντικαταστήστε τις με τις τρέχουσες δημοσιευμένες τιμές του παρόχου σας για ακριβή εκτίμηση:
| Μοτίβο μοντέλου | Είσοδος $/1M | Έξοδος $/1M |
|---|---|---|
claude-opus-* | 15,00 | 75,00 |
claude-sonnet-* | 3,00 | 15,00 |
claude-haiku-* | 1,00 | 5,00 |
gpt-5*mini* | 0,50 | 1,50 |
gpt-5* | 5,00 | 15,00 |
gemini-2.5-pro* | 1,25 | 10,00 |
gemini-*flash* | 0,15 | 0,60 |
Το δημοσιευμένο παράδειγμα χρησιμοποιεί την κατανάλωση token δοκιμασμένης σελίδας (έναν τίτλο και μία περιγραφή) με αυτές τις παραδοχές. Η τελευταία στήλη εφαρμόζει την ενδεικτική έκπτωση batch 50% στους υποστηριζόμενους προσαρμογείς. Δεν είναι προσφορές τρεχουσών τιμών.
| Πάροχος / μοντέλο | περίπου ανά ζεύγος προτάσεων | περίπου ανά 1.000 εγγραφές (μαζική συμπλήρωση) | περίπου ανά 1.000 εγγραφές (--batch) |
|---|---|---|---|
Local gemma/llama (Ollama) | $0 χρέωση API | $0 χρέωση API | δεν εφαρμόζεται (δεν υλοποιείται από τον προσαρμογέα) |
Google gemini-2.5-flash (με χρέωση) | περίπου $0,001 | περίπου $0,40 | δεν εφαρμόζεται (δεν υλοποιείται από τον προσαρμογέα Rankbeam) |
OpenAI gpt-5.5 | περίπου $0,008 | περίπου $5,25 | περίπου $2,63 (έκπτωση 50%) |
Anthropic claude-opus-4-8 | περίπου $0,03 | περίπου $20 | περίπου $10 (έκπτωση 50%) |
Η εντολή επισημαίνει την εκτίμησή της ως περίπου ±50%, αλλά αυτό δεν είναι όριο δαπάνης ούτε εγγυημένο εύρος σφάλματος. Πραγματικές είσοδοι, έξοδοι και τιμές αλλάζουν το σύνολο. Η εκτίμηση μοντελοποιεί ορατή έξοδο· ο χρεώσιμος κρυφός συλλογισμός μπορεί να αυξήσει το κόστος πέρα από αυτή. Μοντέλα χωρίς καταχώριση τιμής δείχνουν μόνο εκτίμηση token.
Οικονομικότερη μαζική παραγωγή
Ορίστε seo-pro.ai.bulk_model (SEO_PRO_AI_BULK_MODEL) για να χρησιμοποιείτε διαφορετικό μοντέλο μόνο στη μαζική συμπλήρωση (seo-pro:ai-fill / SeoPro::aiFill()). Το Filament και το seo-pro:ai-suggest κρατούν το model. Όταν είναι null, η μαζική συμπλήρωση χρησιμοποιεί επίσης το model. Η εκτίμηση χρησιμοποιεί το μοτίβο τιμής του επιλεγμένου μοντέλου. Αξιολογήστε αντιπροσωπευτική έξοδο πριν αυξήσετε τον όγκο· ένα φθηνότερο μοντέλο δεν είναι αυτόματα κατάλληλο.
SEO_PRO_AI_MODEL=claude-opus-4-8 # interactive: highest quality
SEO_PRO_AI_BULK_MODEL=claude-haiku-4-5 # bulk-fill: cheap tierΤα παραδείγματα πακέτου χρησιμοποιούν anthropic claude-haiku-4-5, openai gpt-5.5-mini, google gemini-2.5-flash ή μικρότερο local μοντέλο. Ένα μοτίβο τιμής μπορεί να αντιστοιχεί σε όνομα ακόμη κι αν ο πάροχος δεν το προσφέρει: επιβεβαιώστε το πραγματικό αναγνωριστικό μοντέλου, τη συμβατότητα API και την τιμή πριν το ρυθμίσετε.
Μια συμπλήρωση 100 σελίδων (λείπουν τίτλος και περιγραφή από κάθε σελίδα = 200 κλήσεις παρόχου), με τιμές από τις προεπιλογές pricing του πακέτου και το μοντέλο token ανά κλήση του εκτιμητή (600 token εισόδου + 150 εξόδου/κλήση), μοντέλο ποιότητας έναντι της οικονομικής βαθμίδας bulk_model του:
| Πάροχος | Μοντέλο ποιότητας — 100 σελίδες | Οικονομική βαθμίδα bulk_model — 100 σελίδες |
|---|---|---|
| Anthropic | claude-opus-4-8 ≈ $4,05 | claude-haiku-4-5 ≈ $0,27 |
| OpenAI | gpt-5.5 ≈ $1,05 | gpt-5.5-mini ≈ $0,11 |
gemini-2.5-pro ≈ $0,45 | gemini-2.5-flash ≈ $0,04 | |
| Local (Ollama / vLLM) | οποιοδήποτε μοντέλο — $0 χρέωση API | οποιοδήποτε μοντέλο — $0 χρέωση API |
Είναι ενδεικτικές εκτιμήσεις, χωρίς εγγυημένο εύρος ±50% και χωρίς πρόβλεψη για κρυφό συλλογισμό. Ενημερώστε το seo-pro.ai.pricing με τις δημοσιευμένες τιμές του επιλεγμένου παρόχου πριν βασιστείτε στην εκτίμηση.
Γλώσσα εξόδου
Κάθε prompt κατονομάζει τη γλώσσα σελίδας και τον κωδικό BCP-47 της — «στα Πορτογαλικά Βραζιλίας (pt-BR), τη γλώσσα της σελίδας, ανεξάρτητα από οποιαδήποτε άλλη γλώσσα στο απόσπασμα» — και το περιβάλλον σελίδας που στέλνεται στο μοντέλο περιλαμβάνει γραμμή Language: (Pro 2.34). Πριν από αυτό, τα prompt έλεγαν «στην ίδια γλώσσα με το περιεχόμενο πηγής», αφήνοντας το μοντέλο να μαντέψει από σύντομο απόσπασμα ή απόσπασμα με εναλλαγή γλωσσών: μια τουρκική σελίδα με αγγλικό όνομα επωνυμίας στο απόσπασμά της μπορούσε να επιστρέψει Αγγλικά. Η γλώσσα είναι εκείνη στην οποία επιλύθηκαν τα μεταδεδομένα σελίδας (η γλώσσα εφαρμογής αν η σελίδα δεν έχει δική της), η ίδια για την οποία επιλέγεται το όριο μήκους, οπότε μια ιαπωνική σελίδα ζητά τίτλους περίπου 30 χαρακτήρων στα Ιαπωνικά.
Από το Pro 2.36, μια ρητή γλώσσα περιεχομένου ελέγχει μαζί τη γραμμή μεταδεδομένων, τα hooks περιεχομένου και τη γλώσσα prompt. Η γλώσσα περιβάλλοντος εργασίας του χειριστή παραμένει αμετάβλητη.
$ai = app(\Rankbeam\Seo\Pro\Ai\SeoSuggestionService::class);
$titles = $ai->suggestTitles($post, locale: 'it');
$descriptions = $ai->suggestDescriptions($post, locale: 'ja');
$rewrite = $ai->rewriteDescription($post, locale: 'it');
$schema = $ai->suggestSchemaType($post, locale: 'it');
$request = $ai->suggestionRequest($post, 'title', locale: 'ja');Τα υπάρχοντα ορίσματα θέσης παραμένουν ίδια. Παραλείψτε το locale: για να χρησιμοποιήσετε την προεπιλογή seoData() του μοντέλου, που επιτρέπει σε ξεχωριστά μοντέλα μετάφρασης να δηλώνουν τη γλώσσα τους. Το απόσπασμα χρησιμοποιεί getContentForSEO() όταν επιστρέφει μη κενό περιεχόμενο και έπειτα καταφεύγει στα ρυθμισμένα πεδία περιεχομένου. Το Filament 1.11 περνά αυτόματα τη γλώσσα της επιλεγμένης καρτέλας, περιλαμβάνοντας λειτουργίες μίας γλώσσας και επιλογέα σελίδας.
php artisan seo-pro:ai-suggest "App\Models\Post" 42 --locale=it
php artisan seo-pro:suggest-schema "App\Models\Post" 42 --locale=ja
php artisan seo-pro:ai-fill "App\Models\Post" --field=description --locale=it --batchΤα μαζικά plan(), fill() και submitBatchFill() δέχονται επίσης τελικό locale:. Χρησιμοποιήστε την ίδια γλώσσα κατά τη δημιουργία FillProgress(..., locale: 'it') και την υποβολή της εκτέλεσης. Κάθε στοιχείο batch καταγράφει τη γλώσσα περιεχομένου του· η συλλογή χρησιμοποιεί αυτή την αποθηκευμένη γλώσσα και επανελέγχει τη γραμμή μεταδεδομένων της πριν γράψει. Οι εκτελέσεις με ρητή γλώσσα έχουν ξεχωριστά αρχεία checkpoint και οι δείκτες επεξεργασίας διακρίνουν γλώσσες. Εκτελέστε ξανά την ίδια εντολή για συλλογή. Οι προσαρμοσμένες εργασίες πρέπει να σειριοποιούν και να περνούν τη γλώσσα περιεχομένου.
Τα checkpoint πριν από το Pro 2.36 δεν κατέγραφαν γλώσσα περιεχομένου. Ένα εκκρεμές παλαιό batch διατηρείται και απορρίπτεται για αυτόματη συλλογή. Αντιπαραβάλετε τα αποτελέσματα παρόχου με την επιδιωκόμενη γλώσσα πριν το απορρίψετε με --fresh· αλλιώς μια υποβολή αντικατάστασης μπορεί να χρεώσει ξανά την ίδια δουλειά. Ένα παλαιό διαδοχικό checkpoint με επεξεργασμένες εγγραφές απαιτεί επίσης συμφωνία πριν από την επαναφορά.
Αξιολόγηση ανά γλώσσα
Το αποθετήριο πηγαίου κώδικα Pro περιέχει 170 σελίδες εισόδου σε 17 γλώσσες και προαιρετικό μηχανισμό αξιολόγησης. Οι σελίδες εισόδου έχουν δομικούς και ευρετικούς ελέγχους βασικής γλώσσας· η ανεξάρτητη έγκριση φυσικών ομιλητών παραμένει εκκρεμής.
Ο μηχανισμός ελέγχει και τίτλους και περιγραφές, καταγράφει μήκη γραφημάτων και στοιχεία γλώσσας/γραφής και διατηρεί κάθε απόκριση παρόχου πριν από τους ελέγχους. Σύντομοι τίτλοι, μεικτό κείμενο και κοινοί κινεζικοί/ιαπωνικοί χαρακτήρες μπορεί να παραμένουν αβέβαιοι. Μια εκτίμηση βασικής πορτογαλικής γλώσσας δεν τεκμηριώνει βραζιλιάνικη χρήση, και οι μερικοί έλεγχοι κινεζικών χαρακτήρων δεν πιστοποιούν τοπική ποιότητα γραφής.
Οι ζωντανές εκτελέσεις απαιτούν SEO_PRO_AI_EVAL=1, ρητή επιλογή SEO_PRO_AI_EVAL_LOCALES και αναγνωριστικό SEO_PRO_AI_EVAL_RUN. Μπορεί να επιφέρουν χρεώσεις παρόχου· καμία δεν εκτελείται από προεπιλογή. Κάθε εκτέλεση συνδέει τα αποδεικτικά της με πάροχο, ζητούμενο/επιστρεφόμενο μοντέλο, hash fixture/αιτήματος/κώδικα και χρονικές σημάνσεις. Οι αποτυχημένες προσπάθειες παραμένουν διαθέσιμες. Η συνέχιση επαναχρησιμοποιεί αποθηκευμένες αποκρίσεις· ένα διακοπέν αίτημα χρειάζεται ρητή επανάληψη επειδή μπορεί να έχει ήδη φτάσει στον πάροχο.
Τα αποδεικτικά αποθηκεύονται στο storage/app/seo-ai-evals/<run-id>/, στο περιβάλλον δοκιμών πηγαίου κώδικα. Το README.md του fixture τεκμηριώνει το σχήμα με εκδόσεις και τις εντολές. Φυσικοί ομιλητές αξιολογούν ακριβή hash εξόδου σε ξεχωριστές εγγραφές ανασκόπησης. Ένας επιτυχής αυτόματος έλεγχος δεν είναι έγκριση φυσικού ομιλητή ούτε εγγύηση δημοσιεύσιμου κειμένου.
Όρια και προσαρμογή
Κάθε ρύθμιση βρίσκεται στο τμήμα ai του config/seo-pro.php:
timeout(προεπιλογή15δευτερόλεπτα, envSEO_PRO_AI_TIMEOUT) — επίσης όριο της σύγχρονης κλήσης που κάνει το modal προτάσεων Filament όσο ανοίγει, οπότε κρατιέται σύντομο για την εμπειρία χρήσης. Ένα αργό μοντέλο συλλογισμού ή τοπικό μοντέλο μπορεί να ξεπεράσει τα 15 δευτερόλεπτα και να λήξει ο χρόνος· αυξήστε το μέσωSEO_PRO_AI_TIMEOUT(και δείτε την παραπάνω συμβουλή Ollamathink => false) αν χρησιμοποιείτε τέτοιο μοντέλο. Η λήξη χρόνου δεν διακόπτει ποτέ τη λειτουργία: εμφανίζει ενσωματωμένο σφάλμα, ποτέ αποκλεισμένη αποθήκευση.max_input_chars(προεπιλογή6000) — το όριο κόστους και ιδιωτικότητας για το πόσο περιεχόμενο σελίδας (απλό κείμενο, χωρίς HTML) στέλνεται ανά αίτημα.max_output_tokens(προεπιλογή1000) — βασικό όριο παραγόμενων token. Απάντηση που το φτάνει επιστρέφει διακριτή αποτυχίαtruncated, ποτέ σιωπηρή μισή απάντηση.token_budgets— όρια εξόδου ανά εργασία (suggestions800,explanation600,rewrite300,schema_suggestion700). Κανένα δεν χρειάζεται όλη την προεπιλογή, αλλά επιπλέον εφαρμόζεται το ελάχιστο όριο συλλογισμού.reasoning_modelsκαιreasoning_min_output_tokens(προεπιλογή2000) — κάθε μοντέλο του οποίου το όνομα ταιριάζει σε μοτίβο (*gemma*,gemini-2.5-*,o1*/o3*/o4*) λαμβάνει προϋπολογισμό εξόδου αυξημένο τουλάχιστον σε αυτό το ελάχιστο, επειδή ένα μοντέλο συλλογισμού καταναλώνει κρυφά token πριν παράγει ορατή έξοδο και ένας μικρός προϋπολογισμός θα την έκοβε.suggestion_count(προεπιλογή3) — πόσες εναλλακτικές τίτλου/περιγραφής ζητούνται.retry— αυτόματη επανάληψη μόνο για παροδικές αποτυχίες· δείτε Χειρισμός απαντήσεων.
Στο Filament
Με εγκατεστημένα τα προαιρετικά πακέτα Filament (rankbeam/laravel-seo-filament >= 1.1), η ενεργοποίηση βοήθειας AI προσθέτει:
- Πρόταση με AI στα πεδία τίτλου και περιγραφής SEO κάθε πόρου που χρησιμοποιεί την ενότητα SEO (σε σελίδες επεξεργασίας). Το modal δείχνει τις παραγόμενες εναλλακτικές με πλήθη χαρακτήρων· η επιλογή μίας συμπληρώνει το πεδίο για ανασκόπηση.
- Εξήγηση (AI) στον πίνακα προβλημάτων: σύντομη εξήγηση του προβλήματος σε απλή γλώσσα και η συγκεκριμένη διόρθωση.
- Αναδιατύπωση περιγραφής (AI) στον πίνακα προβλημάτων (δίπλα στην Εξήγηση): προτείνει μία βελτιωμένη meta description, πάντα εντός του ορίου περιγραφής σελίδας (160 χαρακτήρες για λατινικό κείμενο, περίπου 80 για CJK — η πολιτική μήκους του core). Ελέγξτε τη στο modal· το κλικ στο Εφαρμογή της αναδιατύπωσης τη γράφει στην εγγραφή
seo_metaτης σελίδας. Δεν γράφεται τίποτε μέχρι να την εφαρμόσετε. - Πρόταση δομημένων δεδομένων (AI) στον πίνακα προβλημάτων: προτείνει τον καλύτερο τύπο εμπλουτισμένου αποτελέσματος schema.org (Product, Article ή Breadcrumb) και δείχνει το JSON-LD που κατασκευάστηκε γι’ αυτόν. Το κλικ στο Εφαρμογή δομημένων δεδομένων το προσθέτει στο
seo_meta.schema_jsonldτης σελίδας — την ίδια στήλη που διαχειρίζεται ο προαιρετικός επεξεργαστής δομημένων δεδομένων, ώστε να διατηρείται κατά την ανάγνωση/αποθήκευση και να παραμένει επεξεργάσιμο εκεί. Μια ελλιπής πρόταση (π.χ. Article χωρίς συντάκτη ή εικόνα) εμφανίζεται με τα πεδία που λείπουν και δεν εφαρμόζεται.
Οι δύο τελευταίες είναι περιορισμένες διορθώσεις: δείτε Περιορισμένες διορθώσεις.
Περιορισμένες διορθώσεις (πρόταση, ποτέ αυτόματη εφαρμογή)
Δύο ενέργειες βοήθειας πηγαίνουν ένα βήμα πέρα από την πρόταση — παράγουν μία περιορισμένη τιμή που εφαρμόζεται με ένα κλικ. Και οι δύο εξακολουθούν μόνο να προτείνουν: τίποτε δεν αποθηκεύεται μέχρι να αποδεχτείτε ρητά.
- Αναδιατύπωση περιγραφής (
SeoSuggestionService::rewriteDescription($model, $issue?)) επιστρέφει μία meta description πάντα εντός του ορίου της πολιτικής μήκους core για τη γραφή σελίδας (160 για λατινικό κείμενο, περίπου 80 για CJK) — το ίδιο όριο που έχουν τα prompt προτάσεων τίτλου και περιγραφής, επιλεγμένο από την επιλυμένη τιμή της ίδιας της σελίδας. Αν το μοντέλο το υπερβεί, το κείμενο περικόπτεται ντετερμινιστικά σε όριο πρότασης (και μετά λέξης), ώστε μια αποδεκτή αναδιατύπωση να μην μπορεί από μόνη της να ενεργοποιήσει την προειδοποίησηdescription_too_long. Η παροχή προβλήματος σάρωσης κατευθύνει την αναδιατύπωση (π.χ. πολύ μεγάλη αντί λείπει). - Πρόταση δομημένων δεδομένων (
SeoSuggestionService::suggestSchemaType($model)) ζητά από το μοντέλο μόνο πρόταση τύπου και τιμές τελικών πεδίων — ποτέ ακατέργαστο JSON-LD. Ντετερμινιστικός κώδικας συναρμολογεί έπειτα το έγγραφο με τους builders schema του core (ProductSchema/ArticleSchema/BreadcrumbSchema) και το επικυρώνει με τονSchemaValidatorτου core, ώστε επινοημένο@type,@contextή δομή να μην μπορεί ποτέ να φτάσει στη σελίδα. Αν λείπει απαιτούμενο πεδίο από το συναρμολογημένο έγγραφο, εμφανίζεται ως ελλιπές και δεν εφαρμόζεται — σε ζωντανή δοκιμή, ένας πάροχος πρότεινεArticleγια σελίδα με ελάχιστο περιεχόμενο και σωστά δεν εφαρμόστηκε λόγω έλλειψης συντάκτη και εικόνας, ενώ άλλοι αρνήθηκαν να προτείνουν τύπο.
Headless
Η ίδια δυνατότητα ως JSON, για script και εφαρμογές χωρίς Filament:
# title + description suggestions for a model
php artisan seo-pro:ai-suggest "App\Models\Post" 42
# one field only
php artisan seo-pro:ai-suggest "App\Models\Post" 42 --field=description
# explain a scan issue (IDs from seo-pro:scan-status)
php artisan seo-pro:ai-suggest --issue=17
# suggest a schema.org type + built, validated JSON-LD for a model
php artisan seo-pro:suggest-schema "App\Models\Post" 42Η έξοδος περιλαμβάνει τις προτάσεις (ή τον προτεινόμενο τύπο, το κατασκευασμένο JSON-LD και αν επικυρώνεται), το μοντέλο που χρησιμοποιήθηκε και τη χρήση token ανά αίτημα (είσοδος / έξοδος / συλλογισμός) — για να βοηθά στον υπολογισμό κόστους με τις τιμές του παρόχου σας· τα πλήθη token δεν είναι τιμολόγιο. Η εντολή τερματίζει με μη μηδενικό κωδικό σε κάθε αποτυχία, με το σφάλμα στο περίβλημα JSON. Όπως κάθε λειτουργία βοήθειας, το seo-pro:suggest-schemaμόνο προτείνει — εμφανίζει το έγγραφο και δεν γράφει τίποτε.
Μαζική συμπλήρωση μεταδεδομένων που λείπουν
Το Pro 2.42 αλλάζει την προεπιλογή CLI: το seo-pro:ai-fill αποθηκεύει ένα ιδιωτικό προσχέδιο ανά παραγόμενο πεδίο. Τα δημοσιευμένα μεταδεδομένα SEO μένουν αμετάβλητα μέχρι την έγκριση. Υπάρχουσες τιμές και υπολογισμένες εναλλακτικές παραλείπονται. Ένα τρέχον εκκρεμές προσχέδιο επαναχρησιμοποιείται αντί να παραχθεί ξανά.
php artisan seo-pro:ai-fill "App\Models\Post" --field=description
php artisan seo-pro:ai-review
php artisan seo-pro:ai-review DRAFT_ID
php artisan seo-pro:ai-review DRAFT_ID --approve --reviewer="editor@example.com"
php artisan seo-pro:ai-review DRAFT_ID --reject --reviewer="editor@example.com"Το seo-pro:ai-review παραθέτει τα πρώτα 100 εκκρεμή προσχέδια ως JSON· εξετάστε ένα αναγνωριστικό για να διαβάσετε την τιμή και τα ιδιωτικά αποδεικτικά του. Έγκριση και απόρριψη λειτουργούν με ανενεργό AI και δεν καλούν πάροχο. Η έγκριση απαιτεί ετικέτα χειριστή και απορρίπτει προσχέδια των οποίων άλλαξε η εγγραφή πηγής ή τα μεταδεδομένα προορισμού ή διαγράφηκε η εγγραφή. Η ετικέτα καταγράφει ποιος δηλώνει ότι είναι ο χειριστής· δεν αποδεικνύει ουσιαστική ανθρώπινη ανασκόπηση. Χρησιμοποιήστε --connection=NAME για ρυθμισμένη μη προεπιλεγμένη βάση δεδομένων.
Το --auto-apply επαναφέρει ρητά την άμεση δημοσίευση πεδίων που εξακολουθούν να λείπουν. Το --force παραλείπει την επιβεβαίωση, όχι την ανασκόπηση. Το --dry-run παράγει και εμφανίζει τιμές χωρίς αποθήκευση προσχεδίων ή μεταδεδομένων· εξακολουθεί να καλεί τον πάροχο και μπορεί να κοστίζει. Τα --field, --limit και --locale οριοθετούν την παραγωγή. Ενημερώστε συνειδητά τις προγραμματισμένες εντολές μετά την αναβάθμιση.
Σε κλίμακα: ρυθμός, εκτίμηση κόστους και συνέχιση μετά από διακοπή
Το seo-pro.ai.fill.throttle_ms έχει προεπιλογή 200 χιλιοστά του δευτερολέπτου. Στο confirm_over (100 εγγραφές από προεπιλογή), η εντολή δείχνει την εκτίμηση από το seo-pro.ai.pricing και ρωτά πριν από την παραγωγή. Τα checkpoint διατηρούν ολοκληρωμένα πεδία στις διακοπές. Λήξη χρόνου μετά την αποδοχή από πάροχο μπορεί και πάλι να οδηγήσει σε διπλή χρέωση· διευκρινίστε την αβέβαιη εργασία πριν από το --fresh. Εκτελείτε μόνο μία αντίστοιχη μαζική εργασία κάθε φορά.
use Rankbeam\Seo\Pro\Facades\SeoPro;
$summary = SeoPro::aiFill()->fill([\App\Models\Post::class], 'all', limit: 50, review: true);Για προσαρμοσμένες ενσωματώσεις, περάστε review: true για προετοιμασία προσχεδίων. Το API PHP χαμηλότερου επιπέδου κρατά apply: true, review: false για συμβατότητα, οπότε οι υπάρχουσες κλήσεις εξακολουθούν να γράφουν αμέσως. Το apply: false κάνει προεπισκόπηση χωρίς αποθήκευση. Το κλειδί σύνοψης filled μετρά επεξεργασμένες εγγραφές, μαζί με εκείνες που προετοιμάστηκαν σε λειτουργία ανασκόπησης· το CLI τις ονομάζει staged.
Λειτουργία batch (50% οικονομικότερη)
Το --batch χρησιμοποιεί το υποστηριζόμενο ασύγχρονο endpoint Anthropic ή OpenAI· η τεκμηριωμένη έκπτωσή τους αντικατοπτρίζεται στην εκτίμηση, αλλά ελέγξτε τις τρέχουσες τιμές μοντέλου. Οι προσαρμογείς Google και local καταφεύγουν σε διαδοχική παραγωγή. Υποβάλετε τώρα και εκτελέστε την ίδια εντολή αργότερα για να συλλέξετε προσχέδια:
php artisan seo-pro:ai-fill "App\Models\Post" --field=description --batch
# Re-run the same command to collect drafts.
php artisan seo-pro:ai-fill "App\Models\Post" --field=description --batchΚρατήστε πάροχο, γλώσσα και λειτουργία δημοσίευσης αμετάβλητα μεταξύ υποβολής και συλλογής. Η ανασκόπηση και το --auto-apply χρησιμοποιούν ξεχωριστά checkpoint· το CLI αρνείται να ξεκινήσει την άλλη λειτουργία όσο εκκρεμεί αντίστοιχο batch. Μια αβέβαιη υποβολή σταματά για συμφωνία στοιχείων. Οι μερικές επιτυχίες διατηρούνται· οι παροδικές αποτυχίες μπορούν να επαναληφθούν. Η συλλογή επανελέγχει τα πεδία που λείπουν· η έγκριση ελέγχει και το στιγμιότυπο πηγής πριν από την υποβολή. Το seo-pro.ai.fill.batch.request_timeout έχει προεπιλογή 120 δευτερόλεπτα. Μια προγραμματισμένη συλλογή αποθηκεύει προσχέδια από προεπιλογή.
Εγγραφές προέλευσης, μεταναστεύσεις και φιλτράρισμα δεδομένων
Απαιτεί Core 3.21 και Pro 2.42. Το core φορτώνει αυτόματα τη μετανάστευσή του· δημοσιεύστε τις μεταναστεύσεις Pro και εκτελέστε τες σε κάθε βάση δεδομένων που χρησιμοποιούν τα μοντέλα SEO πριν παράγετε αποθηκευμένες προτάσεις:
php artisan vendor:publish --tag=seo-pro-migrations
php artisan migrateΟ ιδιωτικός πίνακας seo_ai_proposals αποθηκεύει παραγόμενες τιμές και αποδεικτικά παρόχου/μοντέλου/αιτήματος με κρυπτογραφημένα casts Laravel. Κρατήστε ασφαλές το APP_KEY και το αντίγραφό του: η απώλειά του καθιστά αυτές τις τιμές μη αναγνώσιμες. Τα αναγνωριστικά εγγραφών, η κατάσταση και τα μεταδεδομένα απόφασης παραμένουν συνηθισμένες στήλες βάσης. Εναλλακτικές φόρμας μπορεί να μείνουν offered ή selected όταν εγκαταλείπεται φόρμα. Δεν υπάρχει αυτόματη εκκαθάριση: ορίστε πολιτική διατήρησης εφαρμογής, κρατήστε εκκρεμή προσχέδια και αποδεικτικά που αναφέρονται ακόμη από το seo_meta.ai_provenance και περιορίστε την πρόσβαση σε εξαγωγές βάσης και έξοδο εντολών ανασκόπησης.
Οι αποδεκτές προτάσεις φόρμας, διορθώσεις πίνακα ελέγχου και μαζικές τιμές φέρουν προέλευση πεδίου. Μεταγενέστερες αλλαγές Eloquent κρατούν το origin: ai και ορίζουν edited: true· αυτό σημαίνει ότι άλλαξε η τιμή, όχι ότι την επαλήθευσε άνθρωπος. Η εκκαθάριση πεδίου αφαιρεί τη σήμανσή του. Οι έξοδοι HTML, array, JSON και Inertia του core εκθέτουν μόνο όνομα πεδίου, προέλευση και κατάσταση επεξεργασίας, χρησιμοποιώντας την προσαρμοσμένη ετικέτα meta rankbeam:ai-origin όπου εφαρμόζεται. Τα αναγνωριστικά παραγωγής και οι λεπτομέρειες παρόχου μένουν ιδιωτικά. Μην εκθέτετε ακατέργαστα μοντέλα SEOMeta σε δημόσιο API.
Αυτό καταγράφει μελλοντικές υποστηριζόμενες διαδρομές αποθήκευσης, όχι ιστορικό περιεχόμενο ή κάθε αναθεώρηση. Άμεσο SQL, ενημερώσεις query builder και προσαρμοσμένοι renderer μπορούν να παρακάμψουν αυτούς τους ελέγχους. Επαναφέρετε ρητά την προέλευση όταν δικαιολογείται από ανεξάρτητα συνταγμένη αντικατάσταση· οι συνηθισμένες αλλαγές τη διατηρούν. Η προσαρμοσμένη σήμανση δεν είναι τυποποιημένο υδατογράφημα, απαραβίαστη απόδοση προέλευσης ή ισχυρισμός συμμόρφωσης με το Άρθρο 50. Η πραγματική ποιότητα εξόδου παρόχου και οι εγγενείς σημάνσεις του απαιτούν ξεχωριστή αξιολόγηση.
Προαιρετικά υλοποιήστε AiPromptFilter και ρυθμίστε seo-pro.ai.context_filter. Φιλτράρει το συναρμολογημένο prompt χρήστη πριν από σύγχρονη υποβολή ή υποβολή batch· η αποτυχία εμποδίζει την υποβολή και επιστρέφει καθαρισμένο σφάλμα. Οι οδηγίες συστήματος παραμένουν ίδιες. Η προεπιλογή είναι null, χωρίς αυτόματη απόκρυψη ευαίσθητων δεδομένων. Αυτό το παράδειγμα αντικαθιστά μόνο μία γνωστή τιμή· υλοποιήστε και δοκιμάστε κανόνες κατάλληλους για την εφαρμογή σας:
namespace App\Support;
use Rankbeam\Seo\Pro\Ai\AiPromptFilter;
final class RedactAiContext implements AiPromptFilter
{
public function filter(string $prompt): string
{
return str_replace('internal@example.com', '[redacted]', $prompt);
}
}
// Configure seo-pro.ai.context_filter with this class in config/seo-pro.php.
// Runtime equivalent:
config(['seo-pro.ai.context_filter' => RedactAiContext::class]);Χειρισμός απαντήσεων
Κάθε κλήση επιστρέφει ενιαίο περίβλημα ανεξάρτητο από πάροχο, ώστε η συμπεριφορά να είναι ίδια μεταξύ παρόχων (και όσων προστεθούν αργότερα):
- Δομημένη έξοδος όπου την υποστηρίζει ο πάροχος. OpenAI (εγγενή Structured Outputs), Google (Gemini
responseSchema) και Anthropic (output_config.format) έχουν όλα τη μορφή JSON επιβεβλημένη από το API — απάντηση που δεν είναι έγκυρο JSON είναι σαφής αποτυχία, χωρίς εξαγωγή από ελεύθερο κείμενο. Ένας τοπικός / συμβατός με OpenAI διακομιστής τη λαμβάνει επίσης ως αίτημα (response_format), κατά το δυνατόν: διακομιστής που αγνοεί το πεδίο εξακολουθεί να επιστρέφει αξιοποιήσιμο κείμενο, το οποίο αναλύεται ανεκτικά ως εναλλακτική. Σε κάθε περίπτωση λαμβάνετε καθαρή λίστα ή σαφή αποτυχία — ποτέ μισοαναλυμένη απάντηση. - Η περικοπή είναι ρητό σφάλμα με δυνατότητα διόρθωσης. Αν απάντηση κοπεί στο όριο token εξόδου, λαμβάνετε σφάλμα
truncatedπου ζητά αύξηση τουseo-pro.ai.max_output_tokens— όχι σιωπηρά συντομευμένο τίτλο. Αυτό είναι συχνότερο με μοντέλα reasoning / thinking· αυτά λαμβάνουν αυτόματα το υψηλότερο ελάχιστοreasoning_min_output_tokens. - Οι παροδικές αποτυχίες επαναλαμβάνονται αυτόματα. Όριο ρυθμού
429ή5xxεπαναλαμβάνεται με περιορισμένη εκθετική αναμονή, τηρώντας κεφαλίδαRetry-Afterόταν υπάρχει (με όριο, ώστε κακόβουλη τιμή να μην μπορεί να καθηλώσει το αίτημα). Οι ντετερμινιστικές αποτυχίες δεν επαναλαμβάνονται — λανθασμένο κλειδί, κακοσχηματισμένο αίτημα, υπερμεγέθες payload, λήξη χρόνου ή λογαριασμός χωρίς υπόλοιπο / όριο χρήσης (η επανάληψη για μη χρηματοδοτημένο λογαριασμό απλώς σπαταλά χρόνο αναμονής). Προσαρμόστε ή απενεργοποιήστε τις επαναλήψεις μέσω του τμήματοςretry· ορίστε τοmax_attemptsσε0για απενεργοποίηση. - Τα σφάλματα έχουν τύπο και καθαρισμένο περιεχόμενο. Κάθε αποτυχία φέρει σταθερό κωδικό (
unauthorized,quota_exceeded,rate_limited,timeout,content_too_large,bad_request,truncated,content_filtered,provider_error, …) και σημαίαretryableγια τις παροδικές. Το μήνυμα είναι σύντομη, καθαρισμένη συμβολοσειρά — το ακατέργαστο σώμα απόκρισης παρόχου δεν εμφανίζεται ούτε καταγράφεται από τη συνήθη διαδρομή εφαρμογής· ο παραπάνω προαιρετικός μηχανισμός αξιολόγησης πράγματι διατηρεί αποκρίσεις ως αποδεικτικά. Στο Filament, μια αποτυχία αποδίδεται στο μορφοποιημένο τμήμα modal με προσαρμοσμένη υπόδειξη επόμενου βήματος για τις κοινές περιπτώσεις (δείτε Αντιμετώπιση προβλημάτων).
Αντιμετώπιση προβλημάτων
Κάθε αποτυχία είναι ενσωματωμένη και δεν διακόπτει τη λειτουργία, με κωδικό τύπου και καθαρισμένο μήνυμα. Οι συνηθισμένες περιπτώσεις και η πραγματική διόρθωσή τους:
| Σύμπτωμα (κωδικός σφάλματος) | Τι σημαίνει | Διόρθωση |
|---|---|---|
quota_exceeded — εξαντλημένο υπόλοιπο ή όριο χρήσης λογαριασμού παρόχου | Το κλειδί είναι έγκυρο αλλά ο λογαριασμός API δεν έχει υπόλοιπο / διαθέσιμο όριο. Δεν είναι όριο ρυθμού — η επανάληψη δεν βοηθά. Διαφέρει ανά πάροχο: το Anthropic επιστρέφει «credit balance is too low», το OpenAI «exceeded your current quota… check your plan and billing» (insufficient_quota), το Google «prepayment credits are depleted». | Προσθέστε υπόλοιπο / ενεργοποιήστε χρέωση στην κονσόλα παρόχου — ή μεταβείτε σε τοπικό μοντέλο χωρίς χρέωση API παρόχου. Θυμηθείτε ότι μια συνδρομή Claude/ChatGPT δεν χρηματοδοτεί το API. |
unauthorized — αποτυχία ελέγχου ταυτότητας | Το κλειδί λείπει, είναι λανθασμένο ή δεν ισχύει για τον ρυθμισμένο πάροχο. | Ελέγξτε το κλειδί στη μεταβλητή περιβάλλοντος που κατονομάζει το seo-pro.ai.api_key_env (προεπιλογή SEO_PRO_AI_API_KEY) — ορισμένο, τρέχον και αντίστοιχο του SEO_PRO_AI_PROVIDER. |
rate_limited — επίτευξη ορίου ρυθμού παρόχου | Πραγματικό, παροδικό όριο ρυθμού (προηγείται αυτόματη επανάληψη). | Περιμένετε και δοκιμάστε ξανά ή μεταβείτε σε τοπικό μοντέλο (με τα όρια χωρητικότητας του διακομιστή σας) για να το αποφύγετε. Αυξήστε το seo-pro.ai.fill.throttle_ms για μαζικές εκτελέσεις σε χαμηλή βαθμίδα. |
timeout — λήξη χρόνου αιτήματος | Ο πάροχος δεν απάντησε εντός seo-pro.ai.timeout (προεπιλογή 15 δευτερόλεπτα). Συνηθισμένο με αργό τοπικό μοντέλο συλλογισμού. | Αυξήστε το μέσω SEO_PRO_AI_TIMEOUT· για Ollama ορίστε επίσης ['think' => false] στο seo-pro.ai.local.extra_body. |
truncated — επίτευξη ορίου max_output_tokens | Η απάντηση έφτασε τον προϋπολογισμό εξόδου, πιθανώς μαζί με κρυφό συλλογισμό. | Αυξήστε το seo-pro.ai.max_output_tokens (τα μοντέλα συλλογισμού μπορεί να χρειάζονται 2000+) ή επιβεβαιώστε ότι το μοντέλο ταιριάζει σε μοτίβο reasoning_models ώστε να εφαρμόζεται το ελάχιστο. |
content_too_large (HTTP 413) | Το περιεχόμενο σελίδας που στάλθηκε υπερέβη το όριο παρόχου. | Μειώστε το seo-pro.ai.max_input_chars για να στείλετε μικρότερο απόσπασμα. |
bad_request | Κακοσχηματισμένο αίτημα — συνήθως όνομα μοντέλου στο οποίο δεν έχει πρόσβαση ο λογαριασμός ή μη υποστηριζόμενη παράμετρος. | Ελέγξτε ότι το SEO_PRO_AI_MODEL είναι μοντέλο προσβάσιμο από το κλειδί/τον διακομιστή σας για τον ρυθμισμένο πάροχο. |
content_filtered | Το φίλτρο ασφάλειας παρόχου αρνήθηκε να απαντήσει. | Εξετάστε το περιεχόμενο και τις οδηγίες παρόχου· μην επαναλαμβάνετε αυτόματα το απορριφθέν αίτημα. |
Η τοπική εξαγωγή συμπερασμάτων χρειάζεται λειτουργικό διακομιστή
Το SEO_PRO_AI_PROVIDER=local με αυτοφιλοξενούμενη εξαγωγή συμπερασμάτων αποφεύγει προβλήματα υπολοίπου παρόχων cloud. Υλικό, μοντέλο, συμβατότητα API, χρόνος αναμονής και χωρητικότητα εξακολουθούν να έχουν σημασία. Μια απομακρυσμένη πύλη ρυθμισμένη με αυτόν τον προσαρμογέα μπορεί να απαιτεί κλειδί και πληρωμή.
Τι φεύγει από τον διακομιστή σας
Ακριβώς τα παρακάτω, μόνο στον ρυθμισμένο πάροχό σας, μόνο μετά από ρητή ενέργεια (κλικ σε ενέργεια ή εκτέλεση εντολής):
- Προτάσεις: το βασικό όνομα κλάσης και το κλειδί μοντέλου (π.χ. «Post #3»), ο τρέχων επιλυμένος τίτλος και η περιγραφή, η κανονική διεύθυνση URL και απόσπασμα απλού κειμένου (χωρίς HTML), με όριο
max_input_chars(προεπιλογή 6000 χαρακτήρες). - Εξηγήσεις προβλημάτων: τύπος προβλήματος, σοβαρότητα, πεδίο, μήνυμα και URL στόχου, μαζί με κλάση/κλειδί του επηρεαζόμενου μοντέλου, επιλυμένο τίτλο/περιγραφή, κανονική διεύθυνση URL και περιορισμένο απόσπασμα απλού κειμένου όταν υπάρχει διαθέσιμο μοντέλο.
- Αναδιατύπωση περιγραφής: το ίδιο ελάχιστο περιβάλλον σελίδας με μια πρόταση και — όταν δίνεται — ο τύπος και το μήνυμα προβλήματος σάρωσης.
- Πρόταση δομημένων δεδομένων: το ίδιο ελάχιστο περιβάλλον σελίδας με μια πρόταση. Το μοντέλο επιστρέφει μόνο τύπο και τιμές τελικών πεδίων· το JSON-LD συναρμολογείται τοπικά.
Το πακέτο δεν συλλέγει σκόπιμα δεδομένα επισκεπτών, διευθύνσεις IP, κεφαλίδες αιτημάτων ή διαπιστευτήρια στα prompt και δεν στέλνει πλήρες HTML. Τα πεδία περιεχομένου και τα αποσπάσματά σας μπορεί να περιέχουν τα ίδια ευαίσθητες πληροφορίες: ελέγξτε τι εκθέτει η εφαρμογή σας. Τα διαπιστευτήρια παρόχου χρησιμοποιούνται για τον έλεγχο ταυτότητας του αιτήματος. Το SECURITY.md του αποθετηρίου Pro είναι η αναφορά διαχείρισης δεδομένων.