|
import gradio as gr |
|
from transformers import pipeline |
|
|
|
|
|
strategy_generator = pipeline("text2text-generation", model="google/flan-t5-large") |
|
|
|
|
|
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) |
|
|
|
|
|
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) |
|
|
|
|
|
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}" |
|
|
|
|
|
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}" |
|
|
|
|
|
with gr.Blocks() as demo: |
|
gr.Markdown("# AI Business Strategy Generator") |
|
gr.Markdown("Generate actionable business strategies and SWOT analyses using AI.") |
|
|
|
|
|
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] |
|
) |
|
|
|
|
|
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] |
|
) |
|
|
|
|
|
demo.launch() |
|
|