創造個人化居家裝潢風格助理可以幫助使用者找到適合其空間的完美風格、產品和經濟實惠的解決方案。在這篇文章中,我們將逐步介紹如何使用 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中文網其他相關文章!