nat-ad / main.py
ibombonato's picture
Add Mercado Livre support (#4)
94a7d52 verified
import os
import csv
from dotenv import load_dotenv
from social_media_crew import SocialMediaCrew
import mlflow
mlflow.crewai.autolog()
# Optional: Set a tracking URI and an experiment name if you have a tracking server
mlflow.set_tracking_uri("http://localhost:5000")
mlflow.set_experiment("CrewAI")
# Load environment variables from .env file
load_dotenv()
# Now you can safely access the API key
# Make sure your .env file has OPENAI_API_KEY="your_key_here"
api_key = os.getenv("OPENAI_API_KEY")
natura_api_token = os.getenv("NATURA_API_TOKEN")
if not api_key:
raise ValueError("OPENAI_API_KEY not found in .env file or environment variables.")
if not natura_api_token:
raise ValueError("NATURA_API_TOKEN not found in .env file or environment variables. Please set it for the URL shortener tool.")
CSV_FILE = 'urls.csv'
MARKDOWN_FILE = 'social_media_ads.md'
all_results = []
# Initialize the SocialMediaCrew
social_media_crew = SocialMediaCrew()
try:
with open(CSV_FILE, mode='r', encoding='utf-8') as file:
reader = csv.DictReader(file)
for row in reader:
current_url = row['url']
# Run the crew for the current URL
result = social_media_crew.run_crew(current_url)
print("######################")
print("Crew work finished for URL:", current_url)
print("Final result:")
print(result)
print("######################\n")
all_results.append({'url': current_url, 'ad': result})
# Write all results to a Markdown file
with open(MARKDOWN_FILE, mode='w', encoding='utf-8') as md_file:
md_file.write("# Social Media Ads for Perfumes\n\n")
for item in all_results:
md_file.write(f"## URL: {item['url']}\n\n")
md_file.write(f"{item['ad']}\n\n---\n\n")
print(f"All social media ads have been written to '{MARKDOWN_FILE}'")
except FileNotFoundError:
print(f"Error: The CSV file '{CSV_FILE}' was not found. Please create it with a 'url' column.")
except KeyError:
print(f"Error: The CSV file '{CSV_FILE}' must contain a 'url' column.")
except Exception as e:
print(f"An unexpected error occurred: {e}")