Die Erstellung eines personalisierten Assistenten für den Einrichtungsstil kann Benutzern dabei helfen, den perfekten Stil, die perfekten Produkte und budgetfreundlichen Lösungen für ihre Räume zu finden. In diesem Blogbeitrag gehen wir Schritt für Schritt durch den Aufbau eines Home Décor Style Assistant mit Lyzr und Streamlit. Mit dieser Anwendung können Benutzer ihre Stilpräferenzen, Zimmertypen, ihr Budget und andere Besonderheiten eingeben, um maßgeschneiderte Dekorationsvorschläge zu erhalten.
Voraussetzungen
Bevor Sie eintauchen, stellen Sie sicher, dass Sie Folgendes haben:
-Python 3.8 oder höher installiert.
-Lyzr SDK installiert.
-Streamlit installiert.
-Eine .env-Datei, die Ihren OPENAI_API_KEY und LYZR_API_KEY enthält.
lyzr_agent.py: Interaktion mit der Lyzr-API
Die Datei lyzr_agent.py definiert die LyzrAgent-Klasse, die als Schnittstelle für die Interaktion mit der Lyzr-API dient. Diese Klasse bietet Methoden zum Erstellen von Umgebungen und Agenten sowie zum Verwalten der Kommunikation mit der Lyzr-Plattform.
Hier ist eine Aufschlüsselung der Schlüsselkomponenten:
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
Initialisierung: Der Konstruktor (init) initialisiert die API-Endpunkt-URL, die Header für API-Anfragen (einschließlich des Lyzr-API-Schlüssels) und speichert die OpenAI-API-Schlüssel zur späteren Verwendung.
Eine Umgebung schaffen
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: Diese Methode erstellt eine neue Umgebung innerhalb der Lyzr-Plattform. Es erfordert einen Namen, eine Liste von Funktionen und Tools. Die Umgebung ist wichtig für die Einrichtung eines Agenten, der bestimmte Aufgaben übernimmt, wie z. B. die Durchführung von Suchen oder die Bereitstellung von Antworten.
Agenten erstellen
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: Nachdem wir eine Umgebung erstellt haben, benötigen wir einen Agenten, der Aufgaben innerhalb dieser Umgebung ausführt. Diese Methode richtet einen Agenten mit einer bestimmten Eingabeaufforderung und einem bestimmten Namen ein, der bestimmt, wie er mit Benutzereingaben interagiert.
Senden einer Nachricht an den Agenten
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: Mit dieser Methode können wir eine Nachricht an den Agenten senden, der die Eingaben des Benutzers verarbeitet und eine Antwort zurückgibt. Die Antwort wird verwendet, um die personalisierten Dekorvorschläge zu generieren.
Eine Aufgabe erstellen
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: Mit dieser Methode können spezifische Aufgaben für den Agenten erstellt werden, z. B. die Durchführung einer detaillierten Analyse oder die Durchführung einer komplexen Operation basierend auf Benutzereingaben.
app.py: Aufbau der Streamlit-Schnittstelle
In der Datei app.py geschieht die Magie. Hier erstellen wir eine Benutzeroberfläche mit Streamlit, erfassen Benutzereingaben und interagieren mit dem LyzrAgent, um personalisierte Vorschläge für die Inneneinrichtung zu generieren und anzuzeigen.
Einrichten der Streamlit-Seite
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!")
Streamlit-Setup: Wir beginnen mit dem Importieren der erforderlichen Bibliotheken, dem Laden von Umgebungsvariablen und der Konfiguration der Streamlit-Seite mit Titel, Layout und Symbol. Dies schafft die Voraussetzungen für unsere benutzerfreundliche Oberfläche.
Initialisierung des LyzrAgent
Agent = LyzrAgent( api_key=LYZR_API_KEY, llm_api_key=OPENAI_API_KEY )
LyzrAgent-Initialisierung: Wir erstellen eine Instanz der LyzrAgent-Klasse und übergeben unsere API-Schlüssel. Dieser Agent kümmert sich um alle Backend-Interaktionen mit der Lyzr-Plattform.
Erstellen des Agenten
@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
create_agent-Funktion: Diese Funktion richtet die Umgebung und den Agenten mit spezifischen Anweisungen zum Umgang mit Benutzereingaben ein. Das system_prompt leitet den Agenten bei seinen Interaktionen und stellt sicher, dass er relevante und genaue Vorschläge für die Inneneinrichtung liefert.
Umgang mit Benutzereingaben
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'])
Benutzerinteraktion: Wir verwenden Streamlits text_area, um die Dekorvorlieben und Besonderheiten des Benutzers zu erfassen. Wenn die Meldung „Assist!“ erscheint. Wenn Sie auf die Schaltfläche klicken, wird die Eingabe vom Agenten verarbeitet und der resultierende Ratschlag wird auf der Seite angezeigt.
Durch die Kombination der Leistungsfähigkeit von Lyzr und Streamlit haben wir einen reaktionsschnellen und intelligenten Home Décor Style Assistant geschaffen. Dieses Tool vereinfacht nicht nur den Prozess des Home-Stylings, sondern liefert auch personalisierte, datengesteuerte Vorschläge, die auf individuelle Vorlieben eingehen.
App-Link: https://homestyle-lyzr.streamlit.app/
Quellcode: https://github.com/isakshay007/home_style
Bei Fragen oder Unterstützung können Sie sich gerne an Lyzr wenden. Über die folgenden Links können Sie mehr über Lyzr und seine Angebote erfahren:
Website: Lyzr.ai
Demo buchen: Demo buchen
Discord: Treten Sie unserer Discord-Community bei
Slack: Treten Sie unserem Slack-Kanal bei
Das obige ist der detaillierte Inhalt vonErstellen eines Assistenten für den Einrichtungsstil mithilfe der Lyzr Agent-API. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!