bpm-agent / app.py
dkolarova007's picture
Update app.py
57e6576 verified
import os
import json
import arxiv
# import packages that are used in our tools
import requests
from typing import Tuple
from bs4 import BeautifulSoup
from huggingface_hub import HfApi
from pypdf import PdfReader
# from models import HfApiModel
from smolagents import CodeAgent, tool, GradioUI, HfApiModel
from smolagents.monitoring import LogLevel
@tool
def process_file_transfer_result(job_id: str) -> Tuple:
"""
This function processes the logs sent by the server.
Args:
job_id: The job identifier of the initated file transfer
Returns:
True if the transfer suceeded and the corresponding message if an error occured.
"""
return True, ''
@tool
def request_file_transfer(file_path: str, server: str) -> str:
"""
This function sends a request for a file transfer initiation.
Args:
file_path: The path to the source file.
server: identifier of the file transfer server
Returns:
The job identifier of the initated file transfer
"""
return 'trans001'
@tool
def encrypt_file(file_path: str) -> bool:
"""
This function encrypts the source file.
Args:
file_path: The path to the source file.
Returns:
True if encryption went well
"""
print(f'File {file_path} encrypted')
return True
@tool
def validate_file(file_path: str) -> str:
"""
This function validates that the source file exists.
Args:
file_path: The path to the source file.
Returns:
A boolean value indicateing the existance of a file.
"""
return True
model_id = "Qwen/Qwen2.5-Coder-32B-Instruct"
hf_token = os.environ["HF_TOKEN"]
model = HfApiModel()
agent = CodeAgent(tools=[process_file_transfer_result,
validate_file,
encrypt_file,
request_file_transfer,
],
verbosity_level=LogLevel.DEBUG,
model=model,
add_base_tools=True)
agent.visualize()
#agent.run(
# "Summarize today's top paper on Hugging Face daily papers by reading it.",
#)
GradioUI(agent).launch()