Maison développement back-end Tutoriel Python Création d'un assistant de style de décoration intérieure à l'aide de l'API Lyzr Agent

Création d'un assistant de style de décoration intérieure à l'aide de l'API Lyzr Agent

Aug 21, 2024 am 06:06 AM

La création d'un assistant de style de décoration intérieure personnalisé peut aider les utilisateurs à trouver le style, les produits et les solutions économiques parfaits pour leurs espaces. Dans cet article de blog, nous expliquerons la création d'un assistant de style de décoration intérieure à l'aide de Lyzr et Streamlit. Cette application permettra aux utilisateurs de saisir leurs préférences de style, leurs types de chambres, leur budget et d'autres détails pour recevoir des suggestions de décoration sur mesure.

Building a Home Décor Style Assistant using Lyzr Agent-API

Prérequis

Avant de plonger, assurez-vous d'avoir les éléments suivants :

-Python 3.8 ou supérieur installé.
-SDK Lyzr installé.
-Streamlit installé.
-Un fichier .env contenant votre OPENAI_API_KEY et LYZR_API_KEY.

lyzr_agent.py : Interagir avec l'API Lyzr

Le fichier lyzr_agent.py définit la classe LyzrAgent, qui sert d'interface pour interagir avec l'API Lyzr. Cette classe fournit des méthodes pour créer des environnements, des agents et gérer la communication avec la plateforme Lyzr.

Voici une répartition des composants clés :

import requests
import json
class LyzrAgent:
    def __init__(self, api_key, llm_api_key):
        self.url = "https://agent.api.lyzr.app/v2/"
        self.headers = {
            "accept": "application/json",
            "x-api-key": api_key
        }
        self.llm_api_key = llm_api_key

Initialisation : Le constructeur (init) initialise l'URL du point de terminaison de l'API, les en-têtes des requêtes API (y compris la clé API Lyzr) et stocke le Clé API OpenAI pour une utilisation ultérieure.
Créer un environnement

def create_environment(self, name, features, tools):
    payload = json.dumps({
        "name": name,
        "features": features,
        "tools": tools,
        "llm_api_key": self.llm_api_key
    })
url = self.url + "environment"
    response = requests.post(url, headers=self.headers, data=payload)
    if response.status_code == 200:
        return response.json()
    else:
        print(f"Error: {response.status_code} - {response.text}")
        return None

create_environment : Cette méthode crée un nouvel environnement au sein de la plateforme Lyzr. Cela nécessite un nom, une liste de fonctionnalités et des outils. L'environnement est essentiel pour mettre en place un agent qui gérera des tâches spécifiques, comme effectuer des recherches ou fournir des réponses.
Créer un agent

def create_agent(self, env_id, system_prompt, name):
    payload = json.dumps({
        "env_id": env_id,
        "system_prompt": system_prompt,
        "name": name,
        "agent_persona": "",
        "agent_instructions": "",
        "agent_description": ""
    })
url = self.url + "agent"
    response = requests.post(url, headers=self.headers, data=payload)
    if response.status_code == 200:
        return response.json()
    else:
        print(f"Error: {response.status_code} - {response.text}")
        return None

create_agent : Après avoir créé un environnement, nous avons besoin d'un agent pour effectuer des tâches dans cet environnement. Cette méthode configure un agent avec une invite et un nom spécifiques, qui déterminent la manière dont il interagit avec les entrées de l'utilisateur.

Envoi d'un message à l'agent

def send_message(self, agent_id, user_id, session_id, message):
    payload = json.dumps({
        "user_id": user_id,
        "agent_id": agent_id,
        "session_id": session_id,
        "message": message
    })
url = self.url + "chat/"
    response = requests.post(url, headers=self.headers, data=payload)
    if response.status_code == 200:
        return response.json()
    else:
        print(f"Error: {response.status_code} - {response.text}")
        return None

send_message : Cette méthode nous permet d'envoyer un message à l'agent, qui traite la saisie de l'utilisateur et renvoie une réponse. La réponse sera utilisée pour générer les suggestions de décoration personnalisées.
Créer une tâche

def create_task(self, agent_id, session_id, input_message):
    payload = json.dumps({
        "agent_id": agent_id,
        "session_id": session_id,
        "input": input_message
    })
url = self.url + "task"
    response = requests.post(url, headers=self.headers, data=payload)
    if response.status_code == 200:
        return response.json()
    else:
        print(f"Error: {response.status_code} - {response.text}")
        return None

create_task : Cette méthode peut être utilisée pour créer des tâches spécifiques pour l'agent, comme effectuer une analyse détaillée ou effectuer une opération complexe basée sur la saisie de l'utilisateur.

app.py : Création de l'interface Streamlit
Le fichier app.py est l'endroit où la magie opère. Ici, nous créons une interface utilisateur avec Streamlit, capturons les entrées de l'utilisateur et interagissons avec LyzrAgent pour générer et afficher des suggestions de décoration d'intérieur personnalisées.

Configuration de la page Streamlit

import os
from lyzr_agent import LyzrAgent
import streamlit as st
from dotenv import load_dotenv

load_dotenv()
OPENAI_API_KEY = os.getenv("OPENAI_API_KEY")
LYZR_API_KEY = os.getenv("LYZR_API_KEY")
st.set_page_config(
    page_title="Lyzr Home Décor Style",
    layout="centered",  # or "wide"
    initial_sidebar_state="auto",
    page_icon="lyzr-logo-cut.png",
)
st.title("Home Décor Style Assistant?")
st.markdown("### Welcome to the Home Décor Style Assistant!")

Configuration Streamlit : Nous commençons par importer les bibliothèques nécessaires, charger les variables d'environnement et configurer la page Streamlit avec un titre, une mise en page et une icône. Cela ouvre la voie à notre interface conviviale.
Initialisation du LyzrAgent

Agent = LyzrAgent(
    api_key=LYZR_API_KEY,
    llm_api_key=OPENAI_API_KEY
)

Initialisation LyzrAgent : Nous créons une instance de la classe LyzrAgent, en transmettant nos clés API. Cet agent gérera toutes les interactions backend avec la plateforme Lyzr.
Création de l'agent

@st.cache_resource
def create_agent():
    env_id = Agent.create_environment(
        name="Post_home",
        features=[{
            "type": "TOOL_CALLING",
            "config": {"max_tries": 3},
            "priority": 0
        }],
        tools=["perplexity_search"]
    )
    print(env_id)
prompt = """
[prompts here]
    """
    agent_id = Agent.create_agent(
        env_id=env_id['env_id'],
        system_prompt=prompt,
        name="home"
    )
    print(agent_id)
    return agent_id

Fonction create_agent : Cette fonction configure l'environnement et l'agent avec des instructions spécifiques sur la façon de gérer les entrées de l'utilisateur. Le system_prompt guide l'agent dans ses interactions, garantissant qu'il fournit des suggestions de décoration d'intérieur pertinentes et précises.
Gestion des entrées utilisateur

query = st.text_area("Give your style preference, room type, budget, space dimensions, and other specifics like brand preference etc.")
if st.button("Assist!"):
    agent = create_agent()
    print(agent)
    chat = Agent.send_message(
        agent_id=agent['agent_id'],
        user_id="default_user",
        session_id="akshay@lyzr.ai",
        message=query
    )
    st.markdown(chat['response'])

Interaction utilisateur : Nous utilisons la zone text_area de Streamlit pour capturer les préférences et les spécificités de décoration de l'utilisateur. Lorsque le message « Aide ! » est cliqué sur le bouton, la saisie est traitée par l'agent et le conseil résultant est affiché sur la page.

En combinant la puissance de Lyzr et Streamlit, nous avons créé un Assistant de style de décoration intérieure réactif et intelligent. Cet outil simplifie non seulement le processus de décoration de la maison, mais fournit également des suggestions personnalisées basées sur des données qui répondent aux préférences individuelles.

Lien de l'application : https://homestyle-lyzr.streamlit.app/

Code source : https://github.com/isakshay007/home_style

Pour toute demande de renseignements ou d'assistance, n'hésitez pas à contacter Lyzr. Vous pouvez en savoir plus sur Lyzr et ses offres via les liens suivants :

Site Internet : Lyzr.ai
Réserver une démo : Réservez une démo
Discord : Rejoignez notre communauté Discord
Slack : rejoignez notre chaîne Slack

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Stock Market GPT

Stock Market GPT

Recherche d'investissement basée sur l'IA pour des décisions plus intelligentes

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

Comment installer des packages à partir d'un fichier exigence.txt dans Python Comment installer des packages à partir d'un fichier exigence.txt dans Python Sep 18, 2025 am 04:24 AM

Exécutez pipinstall-rrequirements.txt pour installer le package de dépendance. Il est recommandé de créer et d'activer l'environnement virtuel d'abord pour éviter les conflits, s'assurer que le chemin du fichier est correct et que le PIP a été mis à jour et utiliser des options telles que --No-Deps ou --User pour ajuster le comportement d'installation si nécessaire.

Stratégie de fusion efficace de l'adaptateur et du modèle de base PEFT LORA Stratégie de fusion efficace de l'adaptateur et du modèle de base PEFT LORA Sep 19, 2025 pm 05:12 PM

Ce tutoriel détaille comment fusionner efficacement l'adaptateur PEFT LORA avec le modèle de base pour générer un modèle complètement indépendant. L'article souligne qu'il est faux d'utiliser directement Transformers.Automodel pour charger l'adaptateur et fusionner manuellement les poids, et fournit le processus correct pour utiliser la méthode Merge_and_unload dans la bibliothèque PEFT. De plus, le tutoriel souligne également l'importance de traiter les segments de mots et discute des problèmes et des solutions de compatibilité des versions de PEFT.

Comment tester le code Python avec Pytest Comment tester le code Python avec Pytest Sep 20, 2025 am 12:35 AM

Python est un outil de test simple et puissant dans Python. Après l'installation, les fichiers de test sont automatiquement découverts en fonction des règles de dénomination. Écrivez une fonction commençant par test_ pour les tests d'assurance, utilisez @ pytest.fixture pour créer des données de test réutilisables, vérifiez les exceptions via PyTest.Rais, prend en charge l'exécution de tests spécifiés et plusieurs options de ligne de commande et améliore l'efficacité des tests.

Problème de précision du nombre de points flottants dans Python et son schéma de calcul de haute précision Problème de précision du nombre de points flottants dans Python et son schéma de calcul de haute précision Sep 19, 2025 pm 05:57 PM

Cet article vise à explorer le problème commun de la précision de calcul insuffisante des nombres de points flottants dans Python et Numpy, et explique que sa cause profonde réside dans la limitation de représentation des nombres de points flottants 64 bits standard. Pour les scénarios informatiques qui nécessitent une précision plus élevée, l'article introduira et comparera les méthodes d'utilisation, les fonctionnalités et les scénarios applicables de bibliothèques mathématiques de haute précision telles que MPMATH, SYMPY et GMPY pour aider les lecteurs à choisir les bons outils pour résoudre les besoins de précision complexe.

Comment gérer les arguments de ligne de commande dans Python Comment gérer les arguments de ligne de commande dans Python Sep 21, 2025 am 03:49 AM

TheargParsemoduleisthereComMendwaytoHandleCommand-lineargumentsInpython, fournissantRobustParsing, Typevalidation, HelpMessages, AnderrorHling; usys.argvforsimplécasesrequiringminimalsepup.

Comment travailler avec les fichiers PDF dans Python Comment travailler avec les fichiers PDF dans Python Sep 20, 2025 am 04:44 AM

PYPDF2, PDFPLUMBER et FPDF sont les bibliothèques de base pour Python pour traiter PDF. Utilisez le PYPDF2 pour effectuer l'extraction de texte, la fusion, la division et le chiffrement, tels que la lecture de la page via Pdfreader et l'appel extract_text () pour obtenir du contenu; PDFPLUMBER convient plus pour conserver l'extraction de texte de mise en page et la reconnaissance de la table, et prend en charge extract_tables () pour capturer avec précision les données de table; FPDF (FPDF2 recommandé) est utilisé pour générer du PDF, et les documents sont construits et sorties via add_page (), set_font () et cellule (). Lors de la fusion des PDF

Python Obtenez l'exemple de l'heure actuelle Python Obtenez l'exemple de l'heure actuelle Sep 15, 2025 am 02:32 AM

L'obtention de l'heure actuelle peut être implémentée dans Python via le module DateTime. 1. Utilisez dateTime.now () pour obtenir l'heure actuelle locale, 2. Utilisez le strftime ("% y-% m-% d% h:% m:% s") pour formater l'année de sortie, le mois, le jour, l'heure, la minute et la seconde, 3. UTCNow () et les opérations quotidiennes peuvent répondre aux besoins en combinant DateTime.now () avec des chaînes formatées.

Intégration efficace des données multi-fichiers à l'aide du didacticiel Pandas: IP, Mac et Port Association Intégration efficace des données multi-fichiers à l'aide du didacticiel Pandas: IP, Mac et Port Association Sep 21, 2025 pm 03:00 PM

Ce didacticiel montre en détail comment extraire, corréler et intégrer efficacement des données spécifiques à partir de plusieurs fichiers texte à l'aide de la bibliothèque Pandas de Python. En chargeant les données du fichier dans une dataframe et en utilisant l'opération de fusion pour effectuer des connexions internes en fonction de l'adresse IP et de l'adresse MAC, de l'implémentation finale de correspondance précise et de diffusion des informations d'association de l'IP, de l'adresse MAC et des ports correspondants à partir de fichiers provenant de différentes sources.

See all articles