Chris4K's picture
Update app.py
1c13312 verified
raw
history blame
4.12 kB
import streamlit as st
from PIL import Image
from tool_loader import ToolLoader
from app_user_desc import app_user_desc
from app_dev_desc import app_dev_desc
from logger import log_response
from logger import log_enabled
from app_chat import app_chat
import numpy as np
import re,sys,unicodedata
from app_agent_config import AgentConfig
st.set_page_config(
page_title="Custom Transformers can realy do anything...",
page_icon="πŸ‘‹",
)
# Create an instance of AgentConfig
agent_config = AgentConfig()
st.title("Hugging Face Agent and Tools")
## LB https://huggingface.co/spaces/qiantong-xu/toolbench-leaderboard
st.markdown("Welcome to the Hugging Face Agent and Tools app! This app allows you to interact with various tools using the Hugging Face Inference API. CustomTransformers can do anything \nπŸ€ͺπŸ€—πŸ˜„πŸ€—πŸ€ͺ.")
#######
import pandas as pd
from io import StringIO
with st.sidebar:
st.header("Set Tools and Option. ")
with st.expander("Configure the agent and activate tools"):
agent_config.configure()
with st.expander("Set Content and Context"):
agent_config.context = st.text_area("Context")
agent_config.image = st.camera_input("Take a picture")
img_file_buffer = st.file_uploader('Upload a PNG image', type='png')
if img_file_buffer is not None:
image_raw = Image.open(img_file_buffer)
#global image
agent_config.image = np.array(image_raw)
########
st.image(agent_config.image)
uploaded_file = st.file_uploader("Choose a pdf", type='pdf')
if uploaded_file is not None:
# To read file as bytes:
pdf_document = uploaded_file.getvalue()
agent_config.document = pdf_document
st.write(pdf_document)
uploaded_txt_file = st.file_uploader("Choose a txt", type='txt')
if uploaded_txt_file is not None:
# To read file as bytes:
txt_document = uploaded_txt_file.getvalue()
agent_config.document = txt_document
st.write(txt_document)
uploaded_csv_file = st.file_uploader("Choose a csv", type='csv')
if uploaded_csv_file is not None:
# To read file as bytes:
csv_document = uploaded_csv_file.getvalue()
agent_config.document = csv_document
st.write(csv_document)
uploaded_csv_file = st.file_uploader("Choose audio", type='wav')
if uploaded_csv_file is not None:
# To read file as bytes:
csv_document = uploaded_csv_file.getvalue()
agent_config.document = csv_document
st.write(csv_document)
uploaded_csv_file = st.file_uploader("Choose video", type='avi')
if uploaded_csv_file is not None:
# To read file as bytes:
csv_document = uploaded_csv_file.getvalue()
agent_config.document = csv_document
st.write(csv_document)
# To convert to a string based IO:
#stringio = StringIO(uploaded_file.getvalue().decode("utf-8"))
#st.write(stringio)
# To read file as string:
#string_data = stringio.read()
#st.write(string_data)
# Can be used wherever a "file-like" object is accepted:
dataframe = pd.read_csv(uploaded_file)
st.write(dataframe)
# Create a page with tabs
tabs = st.tabs(["Chat","User Description"])
with tabs[0]:
st.markdown("Start to chat. e.g. Generate an image of a boat. This will make the agent use the tool text2image to generate an image. Set content, context, Inference URL , tools and logging in the sidebar.")
with tabs[1]:
app_user_desc()
app_chat(agent_config)