Membina Pembantu Gaya Hiasan Rumah menggunakan Lyzr Agent-API

王林
Lepaskan: 2024-08-21 06:06:10
asal
1120 orang telah melayarinya

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.

Building a Home Décor Style Assistant using Lyzr Agent-API

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
Salin selepas log masuk

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
Salin selepas log masuk

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
Salin selepas log masuk

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
Salin selepas log masuk

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
Salin selepas log masuk

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!")
Salin selepas log masuk

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
)
Salin selepas log masuk

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
Salin selepas log masuk

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'])
Salin selepas log masuk

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!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan