produces the correct html code and summary. Next objective is to be able to push it to wordpress directly from this gradio UI.

This commit is contained in:
shahab00x 2024-02-18 21:02:26 +03:30
parent edd3fcaca5
commit de5f91852a
2 changed files with 30 additions and 6 deletions

View File

@ -100,7 +100,7 @@ class AmazonScraper:
print(review_data)
print(product_info)
print(product_info['images'], type(product_info['images']))
self.images = eval(product_info['images']).keys()
self.images = eval(product_info['images'])
print(self.images)

View File

@ -1,25 +1,49 @@
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", "togethercomputer/LLaMA-2-7B-32K"]
scraper = AmazonScraper()
aii = AIInterface()
def replace_img_tag(html_text, img_dict):
# Regular expression pattern to find <img> tags
img_tag_pattern = r'<img src="(.*?)">'
# Function to replace <img> tag
def replacer(match):
img_url = match.group(1)
srcset = ', '.join(f'{url} {w}w' for url, (w, h) in img_dict.items())
replacement = f'''<div style="display: flex; justify-content: center;">
<figure>
<a href="{img_url}"><img src="{img_url}" srcset="{srcset}" sizes="(max-width: 600px) 100vw, 600px" alt="Image from Amazon.com"></a>
<figcaption style="text-align: center;">Image from Amazon.com</figcaption>
</figure>
</div>'''
return replacement
# Use re.sub() to replace <img> tags
new_html_text = re.sub(img_tag_pattern, replacer, html_text)
return new_html_text
def write_article(url, ai_prompt):
# Your logic to fetch HTML content from the URL
# Replace this with your actual implementation
text = scraper.get_product_info_and_reviews(url)
images = 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 = f"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. The title of this product should links to {url}. Also include this image {images} after the first or second paragraph as a link to {url} and <figcaption>Image from Amazon.com</figcaption>:\n\n" + text
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 = f"Write an HTML code that includes summary of the following product and an overview of people's experiences based on the provided reviews of it as follows. Underneath the title in small letters write 'This page includes paid Amazon affiliate links' and Include a link to the product {url} at the very end. Also include this image {image} after the second paragraph. Format it nicely and professionally in HTML. :\n\n" + text
ai_response = aii.ask_ai(prompt_for_ai, model=llms[1])
print(ai_response)
html_content = ai_response
prompt_for_ai = f"Take the following HTML code and slightly modify it by converting the names of this product to links to {url}. Also include this image {images} after the first or second paragraph as a link to {url} and caption it with <figcaption>Image from Amazon.com</figcaption>. Return a nice and professional HTML code:\n" + ai_response
html_content = aii.ask_ai(prompt_for_ai, model=llms[1])
# prompt_for_ai = f"Take the following HTML code and slightly modify it by converting the names of this product to links to {url}. Also include this image {image} after the first or second paragraph. Return a nice and professional HTML code:\n" + ai_response
# html_content = aii.ask_ai(prompt_for_ai, model=llms[1])
html_content = replace_img_tag(html_content, scraper.images)
print(html_content)
return html_content