Spaces:
Running
Running
| import os | |
| import openai | |
| import gradio as gr | |
| from conversation import Conversation | |
| try: | |
| from dotenv import load_dotenv | |
| load_dotenv() | |
| except ImportError: | |
| pass # In production, python-dotenv may not be installed | |
| with gr.Blocks(css="footer {visibility: hidden}", title="ChatWebpage.com") as demo: | |
| conversation = Conversation() | |
| gr.Markdown("Enter your website url, then ask the AI a question.") | |
| with gr.Row(): | |
| with gr.Column(scale=2): | |
| url = gr.Textbox(label="1. Enter a webpage URL to chat about") | |
| url.change(fn=conversation.get_data, inputs=url) | |
| with gr.Column(scale=3): | |
| gr.Examples([ | |
| "https://www.bbc.com/news/business-64937251", | |
| "https://www.ycombinator.com/", | |
| "https://www.producthunt.com/posts/chatwebpage"], inputs=[url]) | |
| chatbot = gr.Chatbot().style(height=150) | |
| msg = gr.Textbox(label="2. Chat with AI about the webpage") | |
| msg.submit(conversation.user, [msg, chatbot], [msg, chatbot]).success(conversation.bot, chatbot, chatbot) | |
| with gr.Row(): | |
| with gr.Column(scale=4): | |
| gr.Examples(["Please summarise the webpage", "What is the tone of the webpage?", "Tell me your favorite part of the webpage"], inputs=[msg]) | |
| with gr.Column(scale=4): | |
| model = gr.Radio(["GPT-3.5", "GPT-4"], value="gpt-3.5", label="3. Which AI model?") | |
| with gr.Row(): | |
| with gr.Column(scale=2): | |
| clear_button = gr.Button("Clear") | |
| clear_button.click(lambda: None, None, chatbot) | |
| with gr.Column(scale=4): | |
| submit_button = gr.Button("Submit") | |
| submit_button.click(conversation.user, [msg, chatbot], [msg, chatbot]).success( | |
| conversation.bot, chatbot, chatbot | |
| ) | |
| if __name__ == "__main__": | |
| demo.queue(concurrency_count=4) | |
| demo.launch() | |