Spaces:
Runtime error
Runtime error
File size: 1,666 Bytes
4e39c00 d3d47a7 6809b1f d3d47a7 cdc39dd 5f9e82d d3d47a7 e640910 d3d47a7 6809b1f d3d47a7 6809b1f d3d47a7 6809b1f d3d47a7 6809b1f d3d47a7 5f9e82d 0f37419 d3d47a7 4e39c00 5f9e82d 75a4dbe d3d47a7 75a4dbe 0f37419 d3d47a7 69a704b 076687f | 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 | import gradio as gr
from huggingface_hub import InferenceClient
import requests
from bs4 import BeautifulSoup
import re
# Initialize Hugging Face InferenceClient
client = InferenceClient(model="HuggingFaceH4/zephyr-7b-beta")
def is_url(input_string):
url_pattern = re.compile(r'^(https?://)?([a-zA-Z0-9.-]+(?:\.[a-zA-Z]{2,4}))(?:/[^\s]*)?/?$')
return url_pattern.match(input_string) is not None
def scrape_website(url):
try:
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
return ' '.join([p.text for p in soup.find_all('p')])
except Exception as e:
return f"Failed to scrape the website. Error: {str(e)}"
def generate_response(input_text):
if is_url(input_text):
scraped_content = scrape_website(input_text)
return f"I've found the following content from the website:\n\n{scraped_content}"
else:
response = client.text_generation(f"User: {input_text}\nAssistant:", max_new_tokens=100, temperature=0.6)
return response['generated_text']
def process_input(input_text):
return generate_response(input_text)
# Define Gradio interface
with gr.Blocks() as demo:
gr.Markdown("# Conversational Chatbot with Web Scraping Ability")
with gr.Row():
with gr.Column():
text_input = gr.Textbox(label="Enter your message or URL here")
submit_button = gr.Button("Submit")
with gr.Column():
response_output = gr.Textbox(label="Chatbot Response", interactive=False)
submit_button.click(fn=process_input, inputs=[text_input], outputs=[response_output])
demo.launch()
|