Mencipta pembantu gaya hiasan rumah diperibadikan boleh membantu pengguna mencari gaya, produk dan penyelesaian mesra bajet yang sempurna untuk ruang mereka. Dalam catatan blog ini, kami akan meneruskan pembinaan Pembantu Gaya Hiasan Rumah menggunakan Lyzr dan Streamlit. Aplikasi ini akan membolehkan pengguna memasukkan pilihan gaya, jenis bilik, belanjawan dan spesifikasi lain mereka untuk menerima cadangan hiasan yang disesuaikan.
Prasyarat
Sebelum menyelam, pastikan anda mempunyai perkara berikut:
-Python 3.8 atau lebih tinggi dipasang.
-Lyzr SDK dipasang.
-Streamlit dipasang.
-Fail .env yang mengandungi OPENAI_API_KEY dan LYZR_API_KEY anda.
lyzr_agent.py: Berinteraksi dengan API Lyzr
Fail lyzr_agent.py mentakrifkan kelas LyzrAgent, yang berfungsi sebagai antara muka untuk berinteraksi dengan API Lyzr. Kelas ini menyediakan kaedah untuk mencipta persekitaran, ejen dan mengendalikan komunikasi dengan platform Lyzr.
Berikut ialah pecahan komponen utama:
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
Permulaan: Pembina (init) memulakan URL titik akhir API, pengepala untuk permintaan API (termasuk kunci API Lyzr) dan menyimpan Kunci API OpenAI untuk kegunaan kemudian.
Mewujudkan Persekitaran
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: Kaedah ini mewujudkan persekitaran baharu dalam platform Lyzr. Ia memerlukan nama, senarai ciri dan alatan. Persekitaran adalah penting untuk menubuhkan ejen yang akan mengendalikan tugas tertentu, seperti menjalankan carian atau memberikan respons.
Mencipta Ejen
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: Selepas mencipta persekitaran, kami memerlukan ejen untuk melaksanakan tugas dalam persekitaran itu. Kaedah ini menyediakan ejen dengan gesaan dan nama tertentu, yang menentukan cara ia berinteraksi dengan input pengguna.
Menghantar Mesej kepada Ejen
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: Kaedah ini membolehkan kami menghantar mesej kepada ejen, yang memproses input pengguna dan mengembalikan respons. Respons akan digunakan untuk menjana cadangan hiasan yang diperibadikan.
Membuat Tugasan
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: Kaedah ini boleh digunakan untuk mencipta tugas khusus untuk ejen, seperti menjalankan analisis terperinci atau melakukan operasi kompleks berdasarkan input pengguna.
app.py: Membina Antara Muka Streamlit
Fail app.py ialah tempat keajaiban berlaku. Di sini, kami mencipta antara muka pengguna dengan Streamlit, menangkap input pengguna dan berinteraksi dengan LyzrAgent untuk menjana dan memaparkan cadangan hiasan rumah yang diperibadikan.
Menyediakan Halaman 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!")
Persediaan Streamlit: Kami bermula dengan mengimport perpustakaan yang diperlukan, memuatkan pembolehubah persekitaran dan mengkonfigurasi halaman Streamlit dengan tajuk, reka letak dan ikon. Ini menetapkan peringkat untuk antara muka mesra pengguna kami.
Memulakan LyzrAgent
Agent = LyzrAgent( api_key=LYZR_API_KEY, llm_api_key=OPENAI_API_KEY )
Permulaan LyzrAgent: Kami mencipta tika kelas LyzrAgent, menghantar kunci API kami. Ejen ini akan mengendalikan semua interaksi bahagian belakang dengan platform Lyzr.
Mencipta Ejen
@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
Fungsi create_agent: Fungsi ini menyediakan persekitaran dan ejen dengan arahan khusus tentang cara mengendalikan input pengguna. System_prompt membimbing ejen dalam interaksinya, memastikan ia menyampaikan cadangan hiasan rumah yang relevan dan tepat.
Mengendalikan Input Pengguna
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'])
Interaksi Pengguna: Kami menggunakan kawasan_teks Streamlit untuk menangkap pilihan dan spesifikasi hiasan pengguna. Apabila "Bantuan!" butang diklik, input diproses oleh ejen, dan nasihat yang terhasil dipaparkan pada halaman.
Dengan menggabungkan kuasa Lyzr dan Streamlit, kami telah mencipta Pembantu Gaya Hiasan Rumah yang responsif dan pintar. Alat ini bukan sahaja memudahkan proses penggayaan rumah tetapi juga menyediakan cadangan terperibadi dipacu data yang memenuhi pilihan individu.
Pautan apl: https://homestyle-lyzr.streamlit.app/
Kod Sumber: https://github.com/isakshay007/home_style
Untuk sebarang pertanyaan atau sokongan, sila hubungi Lyzr. Anda boleh mengetahui lebih lanjut tentang Lyzr dan tawaran mereka melalui pautan berikut:
Tapak web: Lyzr.ai
Tempah Demo: Tempah Demo
Discord: Sertai komuniti Discord kami
Slack: Sertai saluran Slack kami
Atas ialah kandungan terperinci Membina Pembantu Gaya Hiasan Rumah menggunakan Lyzr Agent-API. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!