


Construisez un coach de fitness Langchain: votre entra?neur personnel AI
Jul 05, 2025 am 09:06 AMDe nombreuses personnes ont frappé le gymnase avec passion et croient qu'ils sont sur le bon chemin pour atteindre leurs objectifs de fitness. Mais les résultats ne sont pas là en raison d'une mauvaise planification de l'alimentation et d'un manque de direction. L'embauche d'un entra?neur personnel avec une pile de gym chère n'est pas toujours une option. C'est pourquoi j'ai créé cet article de blog pour vous montrer comment construire votre coach de fitness en utilisant le pouvoir de Langchain. Avec cela, vous pouvez désormais obtenir des conseils d'entra?nement et de régime personnalisés à vos objectifs avec un co?t minimal. Commen?ons par prendre une technologie incroyable et en transformant votre copilote de fitness!
Table des matières
- Pourquoi utiliser Langchain?
- Condition préalable
- Comment construire votre coach de fitness?
- Dépendances de base
- Classe SerperSearchTool
- Classe UserDatatracker
- Configuration de l'agent de Langchain
- Gradio Chatbot Logic
- Interface utilisateur
- Des cas d'utilisation pour Langchain
- Conclusion
Pourquoi utiliser Langchain?
Langchain vous permet de faire beaucoup plus lors de la création d'applications AI avancées en combinant des modèles de langage de grands (LLM) avec des outils, des sources de données et de la mémoire. Au lieu d'invoquer le LLM avec une invite de texte brut, vous pouvez créer des agents qui invoquent les fonctions, interrogent les informations et gérer les conversations avec l'état. Pour un coach de fitness, Langchain vous permet de combiner l'intelligence LLM avec la logique personnalisée - par exemple, créer des suggestions d'entra?nement, suivre les progrès et obtenir des données de santé - afin que vous puissiez être un coach interactif plus intelligent sans avoir à comprendre cela vous-même.
Condition préalable
Pour créer votre coach de fitness à l'aide de Langchain, vous aurez besoin:
- Une clé API OpenAI pour accéder aux modèles de langue
- Une clé pour le service Serpapi pour utiliser la recherche Web
- Connaissance de base de Python
C'est tout, vous êtes maintenant prêt à commencer.
Comment construire votre coach de fitness?
Dans cette section, je vais montrer comment faire de votre coach de fitness en utilisant un agent de Langchain. Assurez-vous que tout a préparé en fonction des conditions préalables. Je vous guiderai à travers le processus étape par étape de construction de la solution et expliquerai le r?le que chaque étape joue dans la réalisation du résultat.
FitCoach AI est un coach de fitness conversationnel qui collecte les données des utilisateurs de manière cohérente et génère des plans d'entra?nement et de régime personnalisés à l'aide d'agents de Langchain avec OpenAI.
Dépendances de base
Pour installer toutes les bibliothèques requises pour construire l'agent de fitness, exécutez la commande suivante dans votre ligne de commande:
pip install gradio langchain openai serper-dev python-doten
Une fois toutes les dépendances en place, nous commencerions par importer tous les modules pertinents pour la tache:
Importer un système d'exploitation Importer Gradio en tant que Gr Importer Traceback Importer DateTime à partir de la liste d'importation, Tuple, facultatif De Langchain_Openai Import Chatopenai De Langchain.Memory Import ConversationBuffermory De Langchain.agents Import Initialize_agent, AgentType De Langchain.tools Import Basetool Importer JSON Demandes d'importation importer dotenv # Variables d'environnement de chargement dotenv.load_dotenv ()
Classe SerperSearchTool
Fonctionnalité: offre la possibilité d'avoir des capacités de recherche Web en temps réel pour des informations de fitness / nutrition à jour.
Caractéristiques principales:
- S'intègre à l'API Serper pour obtenir les résultats de recherche Google
- Renvoie les 5 premiers résultats de recherche formatés qui incluent le titre, l'extrait et l'URL
- A des modes de défaillance acceptables avec la protection de temps mort
- Prend en charge la synchronisation et l'async
# ----------- Outil de recherche serper ------------ Classe SerperSearchTool (Basetool): Nom: str = "search_web" Description: str = "Recherche le Web pour des informations en temps réel et renvoie des résultats structurés" def _run (self, requête: str) -> str: "" "Recherchez le Web à l'aide de l'API Serper" "" essayer: api_key = os.getenv ("serper_api_key") Sinon API_KEY: return "Erreur: serper_api_key non trouvé dans les variables d'environnement" url = "https://google.serper.dev/search" Payload = JSON.Dumps ({"Q": Query}) en-têtes = { 'X-ap-key': api_key, ?Contenu-Type?: ?Application / JSON? } Response = requers.post (URL, en-têtes = en-têtes, données = charge utile, délai de délai = 10) réponse.raise_for_status () search_results = réponse.json () # Extrait et format Résultats organiques résultats = [] Si ?organique? dans Search_Results: Pour l'article dans Search_Results ['Organic'] [: 5]: # Limite aux 5 meilleurs résultats résultats.APPEND ({ "titre": item.get ('title', ''), "lien": item.get ('lien', ''), "extrait": item.get ('extrait', '') }) # Le format entra?ne une manière lisible Si les résultats: formatted_results = "Résultats de recherche: \ n \ n" Pour I, vous trouvez en énumération (résultats, 1): formatted_results = f "{i}. {Result ['title']} \ n" formatted_results = f "{result ['extrait']} \ n" formatted_results = f "url: {result ['link']} \ n \ n" retour formated_results autre: Renvoie "Aucun résultat de recherche trouvé." sauf requêtes.exception.requestException comme e: return f "Erreur effectuer la recherche - problème de réseau: {str (e)}" sauf exception comme e: return f "Erreur effectuant la recherche: {str (e)}" Async Def _arun (self, requête: str) -> str: "" "Version asynchrone de la recherche" "" return self._run (requête)
Classe UserDatatracker
Fonctionnalité: Obtenez toutes les informations nécessaires avant de créer des plans de fitness
Champs de données requis (dans l'ordre):<br><br> Objectif de fitness (perte de poids, gain musculaire, etc.)<br> ?ge (dans la plage de 10 à 100 validation)<br> Genre (homme / femme / autre)<br> Poids (en unités, - kg / lb)<br> Hauteur (en cm ou pieds / pouces)<br> Niveau d'activité (5 niveaux prédéfinis)<br> Préférences de régime (végétarien, végétalien, etc.)<br> Restrictions de régime / allergie<br> PRéFéRENCE ENTRACTIF
Caractéristiques principales:
- Validation du champ: chaque entrée sera validée avec des fonctions de validation personnalisées.
- Flux séquentiel: personne ne peut sauter.
- Gestion des erreurs: fournissez des messages d'erreur spécifiques pour les entrées non valides.
# ----------- Classe de suivi des données utilisateur ------------ Classe UserDatatracker: def __init __ (soi): self.data = {} # Définir les champs requis avec leurs fonctions de validation et leurs invites de questions self.requured_fields = { 'fitness_goal': { ?Question?: ?Quel est votre principal objectif de fitness? (par exemple, perte de poids, gain musculaire, forme physique générale)?, 'valider': self._validate_fitness_goal }, 'age': { ?Question?: ?Quel age avez-vous? (Doit être entre 10 et 100)?, 'valider': self._validate_age }, 'genre': { ?Question?: ?Quel est votre sexe? (hommes / femmes / autres)?, 'valider': self._validate_gender }, 'poids': { ?Question?: ?Quel est votre poids actuel? (par exemple, 150 lb ou 68 kg)?, 'valider': self._validate_weight }, 'hauteur': { 'Question': "Quelle est votre taille? (par exemple, 5'10 \" ou 178 cm) ", 'valider': self._validate_height }, 'Activity_level': { ?Question?: ?Quel est votre niveau d'activité? (sédentaire, légèrement actif, modérément actif, très actif, extrêmement actif)?, 'valider': self._validate_activity_level }, 'Dietary_Preferences': { ?Question?: ?Suivez-vous un régime spécifique? (Par exemple, végétarien, végétalien, céto, aucun)?, 'valider': self._validate_dietary_preferences }, 'Dietary_Restrictions': { ?Question?: ?Toute allergies alimentaires ou restrictions alimentaires? (Par exemple, noix, laiterie, gluten, aucun)?, 'valider': self._validate_dietary_Restrictions }, 'workout_preferences': { ?Question?: ?Quelles sont vos préférences d'entra?nement? (Par exemple, gymnase, entra?nements à domicile, équipement disponible, toute blessure?)?, 'valider': self._validate_workout_preferences }, } self.current_step = 0
Configuration de l'agent de Langchain
Initialisation de l'agent:
- Modèle: GPT-4O-MINI avec température 0,3 pour la cohérence.
- Mémoire: ConversationBufferMemory pour la cohérence du contexte.
- Outils: Recherche sur le Web pour permettre à l'agent de rechercher des informations en temps réel.
La fonction initialize_fitcoach_agent configure Fitcoach, un agent conversationnel de Langchain qui sert de coach de fitness et de nutrition virtuel. Il se connecte au modèle de langue GPT-4O-MINI, est potentiellement augmenté par des outils de recherche Web et garde une trace de la mémoire de conversation pour le contexte. L'agent suit une continuité stricte et basée sur des règles: il pose des questions spécifiques aux utilisateurs une à la fois pour extraire toutes les informations importantes concernant les objectifs de fitness, l'age, les métriques corporelles, les habitudes alimentaires et les antécédents médicaux, entre autres. Ce n'est qu'après que tout ce que vous aviez besoin de savoir a été rassemblé et confirmé que l'agent s'engagera à ne générer aucun régime de fitness ou de régime. De cette fa?on, l'agent permet les instructions s?res, précises et personnalisées que les utilisateurs souhaitent chez un agent. Une fois que toutes les informations nécessaires ont été recueillies, Fitcoach génère des routines d'entra?nement complètes et des plans de repas basés sur l'utilisateur, tout en offrant un plan de coaching interactif et engageant.
# ----------- Configuration de l'agent de Langchain ------------ def initialize_fitcoach_agent (): "" "Initialiser l'agent Fitcoach avec une gestion des erreurs" "" essayer: # Vérifiez la clé de l'API Openai openai_key = os.getenv ("openai_api_key") Si pas openai_key: augmenter ValueError ("openai_api_key non trouvé dans les variables d'environnement") # Initialiser le modèle de langue avec le nom du modèle correct llm = chatopenai ( modèle = "gpt-4o-mini", température = 0,3, openai_api_key = openai_key ) # Initialiser les outils outils = [] essayer: si os.getenv ("serper_api_key"): search_tool = serpersearchtool () outils.append (search_tool) Imprimer ("? outil de recherche initialisé avec succès") autre: print ("?? serper_api_key introuvable - la fonctionnalité de recherche sera limitée") sauf exception comme e: print (f "?? n'a pas pu initialiser l'outil de recherche: {e}") # Initialiser la mémoire mémoire = ConversationBufferMemory (Memory_Key = "Chat_history", return_messages = true)
Gradio Chatbot Logic
- IS_PLAN_CONTENT : Détermine si un texte donné a un plan de forme physique ou de nutrition détaillé en vérifiant plusieurs mots clés, tels que les jours de la semaine, les noms de repas et les comparaisons d'entra?nement. Aide à séparer les plans des conversations informelles autour de la forme physique.
- format_plan_for_text : formats des textes de plan de fitness bruts dans des sections plus propres tout en conservant des en-têtes, des listes et des paragraphes, pour améliorer la lisibilité et la pertinence pour le partage dans le chat ou le courrier électronique.
- Chat_function : gère le flux de chat FitCoach. Collecte les informations de l'utilisateur par étapes (objectif de fitness de l'utilisateur, préférences de repas), appelle l'agent d'IA pour produire un plan d'entra?nement et de repas personnalisé et gère en toute sécurité les erreurs pour garder le flux de chat sans interruption.
----------- Logique Gradio Chatbot ------------ def is_plan_content (texte: str) -> bool: "" "Vérifiez si le texte contient un plan de fitness avec un contenu détaillé" "" Si pas du texte ou Len (text.strip ()) = 3
Remarque: Je n'ai montré que des parties du code dans l'article. Mon code complet est disponible ici.
Interface utilisateur
En ce qui concerne l'interface utilisateur, vous pouvez utiliser des solutions comme Streamlit ou Gradio pour rester simple. J'ai utilisé Gradio car il me permet de créer une application Web poli avec une conception personnalisée, des mises à jour automatiques et une interface rapide et réactive qui convient aux applications de santé et de fitness. Cliquez ici pour afficher le code source.
Des cas d'utilisation pour Langchain
- Bots de support client: créez un assistant qui peut rechercher des bases de connaissances du support client pour trouver des réponses aux questions des clients.
- Chatbots assistés par la recherche: MAPS MALLES DES SOURCES DE CONNAISSANCES EN EN TEMPS CELLE telles que Google et Wikipedia.
- Document Q&R: permettez à l'utilisateur de télécharger un PDF et de récupérer automatiquement des réponses précises avec des citations.
- Assistants de manipulation des données: permettez aux utilisateurs de télécharger et d'explorer les données dans une feuille de calcul tout en posant des questions liées aux données.
- Outils de génération de contenu: générer du contenu, y compris des blogs, des e-mails ou des publications sur les réseaux sociaux.
- Systèmes multi-agents: créer des systèmes dans lesquels les agents de l'IA peuvent collaborer ou se spécialiser dans la tache.
Conclusion
Quand tout est dit et fait, l'IA n'est pas tout au sujet de la technologie; Il s'agit du fonctionnement interne de la fa?on de tirer parti de la technologie comme un pouvoir pour améliorer notre vie quotidienne! Qu'il s'agisse de se mettre en forme, de bien manger ou de rester motivé, de concevoir votre propre coach de fitness personnel unique est un parfait exemple de la fa?on dont l'IA peut soutenir et motiver, tout en nous tienant responsables de nos actions pour atteindre nos objectifs. Et la meilleure partie est que vous n'avez pas besoin d'être un assistant technologique pour commencer à construire votre application! Il existe un certain nombre d'outils comme Langchain pour le développement, Openai pour les capacités de l'IA et Gradio pour le déploiement de votre application intelligente, pour en mentionner quelques-unes, qui peuvent aider n'importe qui à créer des applications intelligentes et uniques pour eux-mêmes. L'avenir du fitness, ainsi que de nombreux autres domaines de la vie, est à notre disposition!
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)

Rappelez-vous le flot de modèles chinois open source qui a perturbé l'industrie du Genai plus t?t cette année? Alors que Deepseek a fait la majeure partie des titres, Kimi K1.5 était l'un des noms importants de la liste. Et le modèle était assez cool.

à la mi-2025, l'AI ?Arme Race? se réchauffe, et Xai et Anthropic ont tous deux publié leurs modèles phares, Grok 4 et Claude 4.

Mais nous n'aurons probablement pas à attendre même 10 ans pour en voir un. En fait, ce qui pourrait être considéré comme la première vague de machines vraiment utiles, de type humain, est déjà là. Les dernières années ont vu un certain nombre de prototypes et de modèles de production sortant de T

Jusqu'à l'année précédente, l'ingénierie rapide était considérée comme une compétence cruciale pour interagir avec les modèles de langage grand (LLM). Récemment, cependant, les LLM ont considérablement progressé dans leurs capacités de raisonnement et de compréhension. Naturellement, nos attentes

Construit sur le moteur de profondeur neuronale propriétaire de Leia, l'application traite des images fixes et ajoute de la profondeur naturelle avec un mouvement simulé - comme les casseroles, les zooms et les effets de parallaxe - pour créer de courts bobines vidéo qui donnent l'impression de pénétrer dans le SCE

Imaginez quelque chose de sophistiqué, comme un moteur d'IA prêt à donner des commentaires détaillés sur une nouvelle collection de vêtements de Milan, ou une analyse de marché automatique pour une entreprise opérant dans le monde entier, ou des systèmes intelligents gérant une grande flotte de véhicules.

Une nouvelle étude de chercheurs du King’s College de Londres et de l’Université d’Oxford partage les résultats de ce qui s'est passé lorsque Openai, Google et Anthropic ont été jetés ensemble dans un concours fardé basé sur le dilemme du prisonnier itéré. Ce n'était pas

Les scientifiques ont découvert une méthode intelligente mais alarmante pour contourner le système. Juillet 2025 a marqué la découverte d'une stratégie élaborée où les chercheurs ont inséré des instructions invisibles dans leurs soumissions académiques - ces directives secrètes étaient la queue
