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.
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!