使用 Lyzr Agent-API 构建家居装饰风格助手

王林
发布: 2024-08-21 06:06:10
原创
1031 人浏览过

创建个性化家居装饰风格助手可以帮助用户找到适合其空间的完美风格、产品和经济实惠的解决方案。在这篇博文中,我们将逐步介绍如何使用 Lyzr 和 Streamlit 构建家居装饰风格助手。该应用程序将允许用户输入他们的风格偏好、房间类型、预算和其他细节,以获得量身定制的装饰建议。

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

先决条件

开始之前,请确保您具备以下条件:

-已安装 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中文网其他相关文章!

来源:dev.to
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!