import gradio as gr from scrape_amazon import AmazonScraper, AIInterface import re llms = ['meta-llama/Llama-2-70b-chat-hf', "mistralai/Mixtral-8x7B-Instruct-v0.1", "mistralai/Mistral-7B-Instruct-v0.1", "mistralai/Mistral-7B-Instruct-v0.2", "togethercomputer/LLaMA-2-7B-32K"] scraper = AmazonScraper() aii = AIInterface() def replace_img_tag(url, html_text, img_dict): # Regular expression pattern to find tags img_tag_pattern = r'' # Function to replace tag def replacer(match, url=url): img_url = match.group(1) srcset = ', '.join(f'{url} {w}w' for url, (w, h) in img_dict.items()) replacement = f'''
Image from Amazon.com
Image from Amazon.com
''' return replacement # Use re.sub() to replace tags new_html_text = re.sub(img_tag_pattern, replacer, html_text) return new_html_text def upload_to_wordpress(html_content): print("upload_to_wordpress() is called\n") print(html_content) pass def write_article(url): # Your logic to fetch HTML content from the URL # Replace this with your actual implementation text = scraper.get_product_info_and_reviews(url) image = list(scraper.images)[0] # prompt_for_ai = ("Write a summary of the following product and an overview of people's experiences based on the " # "provided reviews of it as follows. Format it nicely and professionally in HTML:\n\n") + text # prompt_for_ai = "write a succinct summary article about this product. Format it nicely in HTML:\n\n" + text prompt_for_ai = ("write an article containing a short summary of the following product and an overview of people's " "experiences based on the provided reviews of it as follows. Format it nicely in HTML:\n") + text # prompt_for_ai = (f"Write an HTML code that includes a professionally authored article summary of the following " # f"product and an overview of people's experiences based on the provided reviews of it as " # f"follows. Underneath the title add this tag

This page includes " # f"paid Amazon affiliate links

and Include a link to the product {url} at the very end. Also " # f"include this image {image} after the second paragraph. Format it nicely and professionally in " # f"HTML. :\n\n") + text html_content = aii.ask_ai(prompt_for_ai, model=llms[2]) prompt_for_ai = (f"Take the following HTML code and slightly modify it. Underneath the title add this tag '

This page includes paid Amazon affiliate links

'. Include a " f"link {url} to the product at the end. Also include this image {image} after the first or " f"second paragraph. Return a nice and professional HTML code:\n") + html_content html_content = aii.ask_ai(prompt_for_ai, model=llms[2]) html_content = replace_img_tag(url, html_content, scraper.images) print(html_content) return html_content with gr.Blocks() as demo: gr.Markdown("Start typing below and then click **Run** to see the output.") with gr.Row(): with gr.Column(): inp = gr.Textbox(placeholder="Amazon link:") btn_write_article = gr.Button("Write Article") btn_upload_to_wordpress = gr.Button("Upload To Wordpress") with gr.Column(): html_output = gr.HTML() btn_write_article.click(write_article, inputs=[inp], outputs=html_output) btn_upload_to_wordpress.click(upload_to_wordpress, inputs=[html_output]) demo.launch(server_port=7373, share=True)