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가 설치되었습니다.
-스트림라이트가 설치되었습니다.
-OPENAI_API_KEY 및 LYZR_API_KEY가 포함된 .env 파일.

lyzr_agent.py: Lyzr API와 상호작용

lyzr_agent.py 파일은 Lyzr API와 상호 작용하기 위한 인터페이스 역할을 하는 LyzrAgent 클래스를 정의합니다. 이 클래스는 환경, 에이전트를 생성하고 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: 간소화된 인터페이스 구축
app.py 파일은 마법이 일어나는 곳입니다. 여기에서는 Streamlit을 사용하여 사용자 인터페이스를 만들고, 사용자 입력을 캡처하고, LyzrAgent와 상호 작용하여 맞춤형 홈 데코 제안을 생성 및 표시합니다.

스트림라이트 페이지 설정

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 초기화: API 키를 전달하여 LyzrAgent 클래스의 인스턴스를 생성합니다. 이 에이전트는 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의 강력한 기능을 결합하여 응답성이 뛰어나고 지능적인 Home Décor Style Assistant를 만들었습니다. 이 도구는 홈 스타일링 과정을 단순화할 뿐만 아니라 개인의 선호도에 맞는 개인화된 데이터 기반 제안을 제공합니다.

앱 링크: 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 학습자의 빠른 성장을 도와주세요!