File size: 4,000 Bytes
34f575a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106

import streamlit as st
import pandas as pd
from datetime import datetime, timedelta
from unsloth import FastLanguageModel
import torch

# Cargar el modelo y el tokenizador
model_path = "/home/roser97/MarketAI/lora_model"
model, tokenizer = FastLanguageModel.from_pretrained(
    model_name=model_path,
    max_seq_length=800,  # Ajusta según tus necesidades
    load_in_4bit=True,
)

# Configurar el modelo para inferencia
FastLanguageModel.for_inference(model)

def generate_marketing_content(instruction, input_context):
    inputs = tokenizer(
        [f"### Instruction:\n{instruction}\n### Input:\n{input_context}\n### Response:"],
        return_tensors="pt"
    ).to("cuda" if torch.cuda.is_available() else "cpu")

    output = model.generate(**inputs, max_new_tokens=128)
    return tokenizer.decode(output[0], skip_special_tokens=True)

def main():
    st.set_page_config(page_title="Compass AI", layout="wide")
    st.title("Compass AI")

    # Sidebar for navigation
    page = st.sidebar.selectbox("Choose a page", ["Home", "Campaign Creation", "Strategy", "Scheduling", "Analytics"])

    if page == "Home":
        show_home()
    elif page == "Campaign Creation":
        show_campaign_creation()
    elif page == "Strategy":
        show_strategy()
    elif page == "Scheduling":
        show_scheduling()
    elif page == "Analytics":
        show_analytics()

def show_home():
    st.header("Welcome to AI Marketing Campaign Agent")
    st.write("This tool helps you create, manage, and analyze your marketing campaigns using AI.")
    st.write("Use the sidebar to navigate through different features.")

def show_campaign_creation():
    st.header("Campaign Creation")
    
    # Brand Questionnaire
    st.subheader("Brand Questionnaire")
    brand_name = st.text_input("Brand Name")
    industry = st.selectbox("Industry", ["Technology", "Fashion", "Food & Beverage", "Other"])
    target_audience = st.text_area("Describe your target audience")
    campaign_objective = st.selectbox("Campaign Objective", ["Brand Awareness", "Lead Generation", "Sales", "Other"])

    # Content Generation
    st.subheader("Content Generation")
    content_type = st.selectbox("Content Type", ["Social Media Post", "Ad Copy", "Email"])
    content_prompt = st.text_area("Describe the content you want to generate")

    if st.button("Generate Content"):
        with st.spinner("Generating content..."):
            generated_content = generate_marketing_content(content_prompt, f"{brand_name}, {industry}, {target_audience}, {campaign_objective}")
        st.text_area("Generated Content", generated_content, height=200)

def show_strategy():
    st.header("Marketing Strategy")
    
    start_date = st.date_input("Campaign Start Date")
    duration = st.number_input("Campaign Duration (days)", min_value=1, value=30)
    
    if st.button("Generate Strategy"):
        with st.spinner("Generating strategy..."):
            strategy = generate_marketing_content("Generate a marketing strategy", f"Start Date: {start_date}, Duration: {duration} days")
        
        st.subheader("Generated Marketing Strategy")
        st.text(strategy)
        
        if st.button("Generate PDF Proposal"):
            st.write("PDF generation functionality to be implemented.")

def show_scheduling():
    st.header("Content Scheduling")
    
    platforms = st.multiselect("Select Platforms", ["Facebook", "Instagram", "Twitter"])
    post_content = st.text_area("Post Content")
    post_date = st.date_input("Post Date")
    post_time = st.time_input("Post Time")
    
    if st.button("Schedule Post"):
        scheduled_datetime = datetime.combine(post_date, post_time)
        for platform in platforms:
            st.success(f"Post scheduled for {platform} at {scheduled_datetime}")

def show_analytics():
    st.header("Campaign Analytics")
    st.write("This feature is under development. It will show campaign performance metrics and insights.")
    
if __name__ == "__main__":
    main()