


Utilisez le compositeur pour résoudre le dilemme des systèmes de recommandation: Andres-Montanez / Recommandations-Bundle
Apr 18, 2025 am 11:48 AMLors de la recherche d'une solution, j'ai trouvé le plugin Symfony2 Andres-Montanez / Recommations-Bundle, qui a apporté des améliorations significatives à mon projet. Ce plugin est basé sur MongoDB et implémente un moteur de recommandation basé sur des articles qui utilise la distance Pearson pour correspondre aux éléments similaires. Ses fonctions de base incluent:
-
registerItem
: vous pouvez spécifier le type d'élément (par exemple: film), étiquette (par exemple: tracé, action) et espace de noms. - Enregistrer l'interaction utilisateur (
addAction
) : Vous pouvez enregistrer le comportement des utilisateurs, par exemple, l'utilisateur "Jon" a marqué 5 points pour le film "Batman". -
getRecommendations
: Fournissez des recommandations pour des utilisateurs spécifiques et les résultats peuvent être filtrés par type, balises et espaces de noms.
L'utilisation du compositeur pour installer ce plugin est très simple:
<code>composer require andres-montanez/recommendations-bundle</code>
Après l'installation, vous devez activer ce plugin dans le projet Symfony et configurer la base de données MongoDB. Ensuite, définissez régulièrement un travail chronométré pour mettre à jour la similitude des articles. La fréquence de cette tache de synchronisation peut être définie en fonction de votre volume de données et de vos exigences de mise à jour, et c'est généralement un bon point de départ une fois par semaine.
Afin d'optimiser davantage les performances, j'ai également construit un emballage de service pour envelopper ce service recommandé. Cela me permet de personnaliser en fonction des besoins spécifiques et d'ajouter un cache à plusieurs niveaux. Par exemple, pour les grands ensembles de données, les résultats de la recommandation des utilisateurs changent lentement, de sorte que les résultats de recommandation des utilisateurs peuvent être mis en cache pendant 24 à 48 heures, ce qui peut améliorer considérablement la vitesse de réponse du système.
Dans les applications pratiques, ce système de recommandation fonctionne très bien. Les résultats des tests de données utilisés montrent que pour l'ensemble de données avec 100 000 notes, 943 utilisateurs et 1 682 éléments, la génération de similitude ne prend qu'environ 4 minutes et la recommandation de l'utilisateur est obtenue en moins de 2 secondes. Pour les ensembles de données plus importants (1 million de notations, 6040 utilisateurs et 3883 éléments), le temps de production de similitude est d'environ 90 minutes, mais l'obtention de recommandations utilisateur est toujours terminée en 2 secondes. Ces ensembles de données sont disponibles sur http://ipnx.cn/link/117007d714adf33db6d2653d903ebf2d .
Dans l'ensemble, Andres-Montanez / Recommandations-Bundle installé et intégré dans le projet via le compositeur a non seulement résolu mon dilemme de système de recommandation, mais a également apporté des améliorations de performances significatives et des améliorations de la satisfaction des utilisateurs. La flexibilité et l'efficacité de ce plugin le rendent idéal pour construire des systèmes de recommandation personnalisés.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Article chaud

Outils chauds

Bloc-notes++7.3.1
éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

L'entrée vocale de l'utilisateur est capturée et envoyée au backend PHP via l'API MediaRecorder du JavaScript frontal; 2. PHP enregistre l'audio en tant que fichier temporaire et appelle STTAPI (tel que Google ou Baidu Voice Recognition) pour le convertir en texte; 3. PHP envoie le texte à un service d'IA (comme Openaigpt) pour obtenir une réponse intelligente; 4. PHP appelle ensuite TTSAPI (comme Baidu ou Google Voice Synthesis) pour convertir la réponse en fichier vocal; 5. PHP diffuse le fichier vocal vers l'avant pour jouer, terminant l'interaction. L'ensemble du processus est dominé par PHP pour assurer une connexion transparente entre toutes les liens.

L'idée principale d'intégrer les capacités de compréhension visuelle AI dans les applications PHP est d'utiliser l'API de service visuel AI tiers, qui est responsable du téléchargement d'images, de l'envoi de demandes, de la réception et de l'analyse des résultats JSON et du stockage de balises dans la base de données; 2. Le marquage automatique de l'image peut considérablement améliorer l'efficacité, améliorer la recherche de contenu, optimiser la gestion et la recommandation et changer le contenu visuel des "données mortes" aux "données en direct"; 3. La sélection des services d'IA nécessite des jugements complets basés sur la correspondance fonctionnelle, la précision, le co?t, la facilité d'utilisation, le retard régional et la conformité des données, et il est recommandé de commencer à partir de services généraux tels que Google CloudVision; 4. Les défis courants comprennent le délai d'expiration du réseau, la sécurité clé, le traitement des erreurs, la limitation du format d'image, le contr?le des co?ts, les exigences de traitement asynchrones et les problèmes de précision de reconnaissance de l'IA.

PHP n'effectue pas directement un traitement d'image AI, mais s'intègre via les API, car il est bon dans le développement Web plut?t que dans les taches à forte intensité informatique. L'intégration de l'API peut atteindre une division professionnelle du travail, réduire les co?ts et améliorer l'efficacité; 2. Intégration des technologies clés incluez l'utilisation de Guzzle ou Curl pour envoyer des demandes HTTP, le codage et le décodage des données JSON, l'authentification de la sécurité des clés de l'API, les taches de traitement de la file d'attente asynchrones, les taches prenant du temps, la gestion des erreurs robuste et le mécanisme de retrait, le stockage et l'affichage d'images; 3. Les défis courants incluent le co?t des API incontr?lable, les résultats de génération incontr?lables, la mauvaise expérience utilisateur, les risques de sécurité et la gestion difficile des données. Les stratégies de réponse consistent à définir des quotas et des caches utilisateur, en fournissant des conseils ProTT et une sélection multi-images, des notifications asynchrones et des invites de progrès, un stockage et un audit de contenu de la variable d'environnement clé et un stockage cloud.

La hiérarchie gratuite de Mongodbatlas a de nombreuses limites de performance, de disponibilité, de restrictions d'utilisation et de stockage, et ne convient pas aux environnements de production. Premièrement, le cluster M0 a partagé les ressources CPU qu'il fournit, avec seulement 512 Mo de mémoire et jusqu'à 2 Go de stockage, ce qui rend difficile de prendre en charge les performances ou la croissance des données en temps réel; Deuxièmement, l'absence d'architectures à haute disponibilité telles que les répliques multi-n?uds et le basculement automatique, ce qui peut entra?ner une interruption de service pendant la maintenance ou la défaillance; De plus, les opérations horaires de lecture et d'écriture sont limitées, le nombre de connexions et la bande passante sont également limités et la limite actuelle peut être déclenchée; Enfin, la fonction de sauvegarde est limitée et la limite de stockage est facilement épuisée en raison de l'indexation ou du stockage de fichiers, il ne convient donc que pour la démonstration ou les petits projets personnels.

Pour permettre aux conteneurs PHP de prendre en charge la construction automatique, le noyau réside dans la configuration du processus d'intégration continue (CI). 1. Utilisez Dockerfile pour définir l'environnement PHP, y compris l'image de base, l'installation d'extension, la gestion de la dépendance et les paramètres d'autorisation; 2. Configurez des outils CI / CD tels que GitLabci et définissez les étapes de construction, de test et de déploiement via le fichier .gitlab-ci.yml pour réaliser une construction, un test et un déploiement automatique; 3. Intégrer des cadres de test tels que PHPUnit pour s'assurer que les tests sont automatiquement exécutés après les modifications du code; 4. Utiliser des stratégies de déploiement automatisées telles que Kubernetes pour définir la configuration de déploiement via le fichier de déploiement.yaml; 5. Optimiser Dockerfile et adopter une construction en plusieurs étapes

YouShouldUseComposerRequire - Devroave / Security-Advisories: Dev-MasterTocheckForkNownSecurityVulnerAbilitiesDuringDevelopment.1.ThispackageBlockSinstallationofPendecces.ItonlyWorkisSuesDu

TouseprivateComposerRepository, configUrecomposer.jsonwiththecorrecrestropositoryurl, handleauthenticationsserelyviasshorhttps, antenSurePackagesAreAccessible.first, addTherepositoryIncomposer.

La construction d'un environnement de conteneur de taches PHP indépendant peut être implémentée via Docker. Les étapes spécifiques sont les suivantes: 1. Installez Docker et DockerCose comme base; 2. Créez un répertoire indépendant pour stocker les fichiers Dockerfile et Crontab; 3. écrivez Dockerfile pour définir l'environnement PHPCLI et installer Cron et les extensions nécessaires; 4. écrivez un fichier crontab pour définir les taches de synchronisation; 5. écrivez un répertoire de script Docker-Compose.yml et configurer les variables d'environnement; 6. Démarrez le conteneur et vérifiez le journal. Par rapport à l'exécution de taches de synchronisation dans des conteneurs Web, les conteneurs indépendants présentent les avantages de l'isolement des ressources, de l'environnement pur, de la forte stabilité et de l'expansion facile. Pour assurer la journalisation et la capture d'erreur
