创建个性化家居装饰风格助手可以帮助用户找到适合其空间的完美风格、产品和经济实惠的解决方案。在这篇博文中,我们将逐步介绍如何使用 Lyzr 和 Streamlit 构建家居装饰风格助手。该应用程序将允许用户输入他们的风格偏好、房间类型、预算和其他细节,以获得量身定制的装饰建议。
先决条件
开始之前,请确保您具备以下条件:
-已安装 Python 3.8 或更高版本。
-已安装 Lyzr SDK。
-安装了Streamlit。
-包含您的 OPENAI_API_KEY 和 LYZR_API_KEY 的 .env 文件。
lyzr_agent.py:与 Lyzr API 交互
lyzr_agent.py 文件定义了 LyzrAgent 类,该类充当与 Lyzr API 交互的接口。此类提供了创建环境、代理以及处理与 Lyzr 平台通信的方法。
以下是关键组件的细分:
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
初始化: 构造函数 (init) 初始化 API 端点 URL、API 请求的标头(包括 Lyzr API 密钥),并存储OpenAI API 密钥供以后使用。
创建环境
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:此方法在 Lyzr 平台内创建一个新环境。它需要名称、功能列表和工具。该环境对于设置处理特定任务(例如进行搜索或提供响应)的代理至关重要。
创建代理
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:创建环境后,我们需要一个代理来在该环境中执行任务。此方法设置一个具有特定提示和名称的代理,这决定了它如何与用户输入交互。
向代理发送消息
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:此方法允许我们向代理发送消息,代理处理用户的输入并返回响应。响应将用于生成个性化装饰建议。
创建任务
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:此方法可用于为代理创建特定任务,例如进行详细分析或根据用户输入执行复杂操作。
app.py:构建 Streamlit 界面
app.py 文件是神奇发生的地方。在这里,我们使用 Streamlit 创建用户界面,捕获用户输入,并与 LyzrAgent 交互以生成和显示个性化家居装饰建议。
设置 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!")
Streamlit 设置:我们首先导入必要的库,加载环境变量,并使用标题、布局和图标配置 Streamlit 页面。这为我们的用户友好界面奠定了基础。
初始化 LyzrAgent
Agent = LyzrAgent( api_key=LYZR_API_KEY, llm_api_key=OPENAI_API_KEY )
LyzrAgent 初始化:我们创建 LyzrAgent 类的实例,并传入我们的 API 密钥。该代理将处理与 Lyzr 平台的所有后端交互。
创建代理
@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 函数:此函数设置环境和代理,并提供有关如何处理用户输入的具体说明。 system_prompt 指导代理进行交互,确保其提供相关且准确的家居装饰建议。
处理用户输入
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'])
用户交互:我们使用 Streamlit 的 text_area 来捕获用户的装饰偏好和细节。当“协助!”时单击按钮,输入由代理处理,结果建议显示在页面上。
通过结合 Lyzr 和 Streamlit 的力量,我们创建了一个响应灵敏且智能的家居装饰风格助手。该工具不仅简化了家居设计的过程,还提供了个性化、数据驱动的建议,以满足个人喜好。
应用程序链接:https://homestyle-lyzr.streamlit.app/
源代码:https://github.com/isakshay007/home_style
如有任何疑问或支持,请随时联系Lyzr。您可以通过以下链接了解有关 Lyzr 及其产品的更多信息:
网站:Lyzr.ai
预订演示:预订演示
Discord:加入我们的 Discord 社区
Slack:加入我们的 Slack 频道
以上是使用 Lyzr Agent-API 构建家居装饰风格助手的详细内容。更多信息请关注PHP中文网其他相关文章!