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)