|
import streamlit as st |
|
from transformers import BertModel, BertTokenizer |
|
from transformers import HfAgent, load_tool |
|
|
|
|
|
controlnet_transformer = load_tool("huggingface-tools/text-to-image") |
|
upscaler = load_tool("diffusers/latent-upscaler-tool") |
|
|
|
tools = [controlnet_transformer, upscaler ] |
|
|
|
|
|
model = BertModel.from_pretrained('bert-base-uncased') |
|
tokenizer = BertTokenizer.from_pretrained('bert-base-uncased') |
|
|
|
|
|
st.title("Hugging Face Agent") |
|
|
|
|
|
message_input = st.text_input("Enter your message:", "") |
|
|
|
|
|
tool_checkboxes = [st.checkbox(f"Use {tool}") for tool in tools] |
|
|
|
|
|
submit_button = st.button("Submit") |
|
|
|
|
|
def handle_submission(): |
|
|
|
message = message_input |
|
selected_tools = [tool for tool, checkbox in zip(tools, tool_checkboxes) if checkbox] |
|
|
|
|
|
agent = HfAgent("https://api-inference.huggingface.co/models/bigcode/starcoder", additional_tools=tools) |
|
|
|
agent.config.tokenizer = tokenizer |
|
agent.config.tools = selected_tools |
|
|
|
|
|
inputs = tokenizer.encode_plus(message, add_special_tokens=True, return_tensors="pt") |
|
outputs = agent(inputs['input_ids'], attention_mask=inputs['attention_mask']) |
|
|
|
|
|
response = outputs.logits[0].item() |
|
st.text(f"{response:.4f}") |
|
|
|
|
|
submit_button = st.button("Submit", on_click=handle_submission) |
|
|
|
|
|
|