File size: 1,161 Bytes
4dd70a8 f8a041b 4dd70a8 e66e891 4dd70a8 f8a041b 00764df f8a041b 4dd70a8 e66e891 4dd70a8 e66e891 00764df eb02e01 8863982 687d26a 8863982 4dd70a8 f8a041b 4dd70a8 e66e891 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
'''Main script to run gradio interface and MCP server.'''
import logging
from pathlib import Path
from logging.handlers import RotatingFileHandler
import gradio as gr
import assets.html as html
from functions import tools as tool_funcs
# Make sure log directory exists
Path('logs').mkdir(parents=True, exist_ok=True)
# Set-up logger
logger = logging.getLogger()
logging.basicConfig(
handlers=[RotatingFileHandler(
'logs/rss_server.log',
maxBytes=100000,
backupCount=10,
mode='w'
)],
level=logging.INFO,
format='%(levelname)s - %(name)s - %(message)s'
)
logger = logging.getLogger(__name__)
with gr.Blocks() as demo:
with gr.Row():
gr.HTML(html.TITLE)
gr.Markdown(html.DESCRIPTION)
website_url = gr.Textbox('hackernews.com', label='Website')
output = gr.Textbox(label='RSS entries', lines=10)
submit_button = gr.Button('Submit')
submit_button.click( # pylint: disable=no-member
fn=tool_funcs.get_feed,
inputs=website_url,
outputs=output,
api_name='Get RSS feed content'
)
if __name__ == '__main__':
demo.launch(mcp_server=True)
|