AI_BizGen / app.py
mgbam's picture
Update app.py
f6d0b11 verified
raw
history blame
4.44 kB
import gradio as gr
from transformers import pipeline
# Load a more capable open-source model
strategy_generator = pipeline("text2text-generation", model="google/flan-t5-large")
# Function to clean up repetitive or irrelevant sentences in generated text
def clean_output(text):
sentences = text.split(". ")
seen = set()
cleaned_sentences = []
for sentence in sentences:
if sentence.strip() not in seen:
seen.add(sentence.strip())
cleaned_sentences.append(sentence.strip())
return ". ".join(cleaned_sentences)
# Function to validate and refine generated text
def validate_output(output, prompt):
if len(output.split()) < 10 or output.lower().startswith("the company") or output.count("The company") > 2:
return "The response was unclear. Please adjust the input or try again with a refined question."
return clean_output(output)
# Function to generate a business strategy
def generate_strategy(industry, challenge, goals):
prompt = f"""
You are an experienced business consultant specializing in the {industry} industry.
The company faces the following challenge: {challenge}.
The company's goal is to achieve: {goals}.
Provide a strategy with:
1. Three to five actionable steps.
2. Measurable outcomes within the next 6 months to 1 year.
Example:
1. Improve marketing through targeted ads.
2. Streamline operations for better efficiency.
3. Partner with local businesses to reach new customers.
"""
try:
response = strategy_generator(prompt, max_length=300, num_return_sequences=1, temperature=0.7, top_p=0.9)
validated_response = validate_output(response[0]['generated_text'], prompt)
return validated_response
except Exception as e:
return f"Error generating strategy: {e}"
# Function to perform a SWOT analysis
def swot_analysis(strengths, weaknesses, opportunities, threats):
prompt = f"""
You are an experienced business consultant performing a SWOT analysis for a company.
- Strengths: {strengths}
- Weaknesses: {weaknesses}
- Opportunities: {opportunities}
- Threats: {threats}
Provide detailed insights for each category and specific recommendations for improvement.
"""
try:
response = strategy_generator(prompt, max_length=300, num_return_sequences=1, temperature=0.7, top_p=0.9)
validated_response = validate_output(response[0]['generated_text'], prompt)
return validated_response
except Exception as e:
return f"Error generating SWOT analysis: {e}"
# Gradio interface
with gr.Blocks() as demo:
gr.Markdown("# AI Business Strategy Generator")
gr.Markdown("Generate actionable business strategies and SWOT analyses using AI.")
# Tab 1: Generate Business Strategy
with gr.Tab("Generate Strategy"):
gr.Markdown("### Input Information to Generate a Business Strategy")
industry_input = gr.Textbox(label="Industry", placeholder="E.g., E-commerce, Healthcare")
challenge_input = gr.Textbox(label="Key Challenge", placeholder="E.g., Low customer retention")
goals_input = gr.Textbox(label="Goals", placeholder="E.g., Increase sales by 20% in 6 months")
strategy_button = gr.Button("Generate Strategy")
strategy_output = gr.Textbox(label="Generated Strategy", lines=10)
strategy_button.click(
generate_strategy,
inputs=[industry_input, challenge_input, goals_input],
outputs=[strategy_output]
)
# Tab 2: SWOT Analysis
with gr.Tab("SWOT Analysis"):
gr.Markdown("### Input Information to Perform a SWOT Analysis")
strengths_input = gr.Textbox(label="Strengths", placeholder="E.g., Strong brand presence")
weaknesses_input = gr.Textbox(label="Weaknesses", placeholder="E.g., Limited market reach")
opportunities_input = gr.Textbox(label="Opportunities", placeholder="E.g., Emerging markets")
threats_input = gr.Textbox(label="Threats", placeholder="E.g., Rising competition")
swot_button = gr.Button("Perform SWOT Analysis")
swot_output = gr.Textbox(label="Generated SWOT Analysis", lines=10)
swot_button.click(
swot_analysis,
inputs=[strengths_input, weaknesses_input, opportunities_input, threats_input],
outputs=[swot_output]
)
# Launch the Gradio app
demo.launch()