Spaces:
Runtime error
Runtime error
from langchain.prompts import PromptTemplate | |
from langchain.chains import LLMChain | |
from langchain.llms import OpenAI | |
from load_model import call_palm | |
from calling_apis import google_api_key, openai_api_key | |
def product_description_gen(product_name:str, product_desc:str, tone_of_voice:str, language='En', model_name = 'Google Palm 2', creativity = 'Original') -> str: | |
''' | |
Description: | |
This function generates an engaging product description based on user-provided inputs. | |
It utilizes the LangChain library to prompt an AI model (Language Model) to create a product description tailored to the specified product name, description, tone of voice, and a provided LLM (Long Language Model). | |
''' | |
''' | |
Parameters: | |
product_name (str) -> Required: The name of the product for which the description is generated. | |
product_desc (str) -> Required: A brief description of the product. | |
tone_of_voice (str) -> Required: The intended tone of the product description (e.g., professional, friendly, persuasive). | |
language (str): Opitonal Parameter -> The language of the model. | |
creativity (str): Optional Parameter -> Controling the randomness of the model. Default value is Original | |
model_name (str): Optional Parameter -> select the LLM model. Default Value is Google Palm 2 | |
''' | |
''' | |
Return Value: | |
product_desc (str): The generated Amazon product description. | |
''' | |
temp = 0 | |
if creativity == 'Original': | |
temp = 0 | |
elif creativity == 'Balanced': | |
temp = 0.25 | |
elif creativity == 'Creative': | |
temp = 0.5 | |
elif creativity == 'Spirited': | |
temp = 0.75 | |
elif creativity == 'Visionary': | |
temp = 1 | |
if model_name == 'Google Palm 2': | |
llm = call_palm(google_api_key, temperature=temp) | |
elif model_name == 'GPT-3.5': | |
llm = OpenAI(model_name='gpt-3.5-turbo', openai_api_key=openai_api_key, temperature=temp) | |
elif model_name == 'GPT-4': | |
llm = OpenAI(model_name='gpt-4', openai_api_key=openai_api_key, temperature=temp) | |
if language == 'En': | |
productDesc_prompt = f"Write an engagging and {tone_of_voice} Amazon product description of {product_name} Product here is a short description of my product:\n\n{product_desc}\n" | |
productDesc_promptTemp = PromptTemplate( | |
input_variables=["text_input"], | |
template="You are a content creator and product description writer who helps clients to write their product description on amazon:\n{text_input}\nAmazon Product Description:") | |
elif language == 'Ar': | |
productDesc_prompt = f"اكتب وصفًا جذابًا و{tone_of_voice} عن منتج {product_name} في أمازون. هنا وصف قصير لمنتجي:\n\n{product_desc}\n" | |
productDesc_promptTemp = PromptTemplate( | |
input_variables=["text_input"], | |
template="أنت كاتب محتوى وكاتب وصف المنتجات الذي يساعد العملاء في كتابة وصف منتجاتهم على أمازون:\n{text_input}\nوصف منتج أمازون:") | |
productDesc_extraction_chain = LLMChain(llm=llm, prompt=productDesc_promptTemp) | |
product_desc = productDesc_extraction_chain.run(productDesc_prompt) | |
return product_desc |