From e5bb49a596a83dd0d86541ae2eb4c8b435e30d3a Mon Sep 17 00:00:00 2001 From: Vincent Date: Mon, 27 Jul 2026 17:42:48 +0900 Subject: [PATCH] First working implementation of the program --- .env | 7 + .gitignore | 12 ++ .vscode/settings.json | 3 + ...856365_capstoneprojectproblemstatement.pdf | Bin 0 -> 172755 bytes README.md | 32 +++ agent_workflows/crew_setup.py | 201 ++++++++++++++++++ agent_workflows/orchestration.py | 38 ++++ app.py | 161 ++++++++++++++ requirements.txt | 24 +++ shared_config.py | 53 +++++ utilities/logger.py | 27 +++ utilities/pdf_tools.py | 60 ++++++ 12 files changed, 618 insertions(+) create mode 100644 .env create mode 100644 .gitignore create mode 100644 .vscode/settings.json create mode 100644 1762856365_capstoneprojectproblemstatement.pdf create mode 100644 agent_workflows/crew_setup.py create mode 100644 agent_workflows/orchestration.py create mode 100644 app.py create mode 100644 requirements.txt create mode 100644 shared_config.py create mode 100644 utilities/logger.py create mode 100644 utilities/pdf_tools.py diff --git a/.env b/.env new file mode 100644 index 0000000..e24b670 --- /dev/null +++ b/.env @@ -0,0 +1,7 @@ +#LANGCHAIN_TRACING_V2=true +#LANGCHAIN_PROJECT=capstone_msagi_VR +#LANGCHAIN_ENDPOINT=https://apac.api.smith.langchain.com + +LANGSMITH_TRACING_V2=true +LANGSMITH_ENDPOINT=https://apac.api.smith.langchain.com +LANGSMITH_PROJECT="capstone_msagi_VR" diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4fe6041 --- /dev/null +++ b/.gitignore @@ -0,0 +1,12 @@ +# Ignore all __pycache__ directories +**/__pycache__/ + +# Ignore compiled Python files +*.py[cod] + +venv/ +log/ +output/ + + +bin/__pycache__/ \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..cc081ee --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "python-envs.defaultEnvManager": "ms-python.python:venv" +} \ No newline at end of file diff --git a/1762856365_capstoneprojectproblemstatement.pdf b/1762856365_capstoneprojectproblemstatement.pdf new file mode 100644 index 0000000000000000000000000000000000000000..61d5133cd198ced26eba93783ae636c2d6bba7d8 GIT binary patch literal 172755 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%0A7go*QWNTi24OU#TIht0k(V~uA*@7i3o<4e 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 literal 0 HcmV?d00001 diff --git a/README.md b/README.md index 9d33e4d..8427727 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,35 @@ +# Go through the following steps to run the application: + +1) Create Python Virtual Env from your root directory +python -m venv venv + +2) Activate Virtual Env +a) Windows: venv\Scripts\activate.bat +b) Unix: source venv/bin/activate + +3) Installing Dependencies +pip install -r requirements.txt + +4) +Install GTK-for-Windows (needed to generate the PDF) +1.Download the installer and install: Go to the GTK-for-Windows runtime project on GitHub (https://github.com/tschoonj/GTK-for-Windows-Runtime-Environment-Installer/releases) +2.Ensure you check the box during installation that says "Add to the PATH environment variable". + +5) +Disable Smart App Control (SAC) on Windows +1.Open the Start menu, type Windows Security, and press Enter. +2.Click on App & browser control from the left navigation panel or home menu. +3.Click the Smart App Control settings link. +4.Select Off to disable the feature + +6) Setup OPENAI_API_KEY from terminal +set LANGCHAIN_API_KEY= +set OPENAI_API_KEY= + +7) Running the Streamlit Application +python -m streamlit run app.py + + # capstone_msagi Course-end Project: Product Strategy Simulation diff --git a/agent_workflows/crew_setup.py b/agent_workflows/crew_setup.py new file mode 100644 index 0000000..27c9895 --- /dev/null +++ b/agent_workflows/crew_setup.py @@ -0,0 +1,201 @@ +import os +from pydantic import BaseModel, Field as PydanticField # Alias it to avoid conflicts +from crewai.tools import tool +from typing import List, Dict, Any +from shared_config import verbose, logger +from crewai import Agent, Task, Crew, Process, LLM, TaskOutput, TaskOutput +from crewai.tools import tool +from langchain_community.tools import DuckDuckGoSearchRun +from datetime import datetime +import os + +########################################################################################### +#Define a callback function to log CrewAI step task +########################################################################################### +def log_task_to_file(output:TaskOutput): + """Callback function to append task details into the log file.""" + + formatted_str = f""" +{'\n'}CrewAI Task Info +{"=" * 50} +Timestamp: {datetime.now()} +Task Description: {output.description} +Agent Assigned: {output.agent} +{"-" * 30} +Raw Output:{'\n'} +{output.raw}{'\n'} +{"=" * 50} +""" + logger.info(formatted_str) + +def create_crew(config): + + # ========================================== + # 1. DEFINE CUSTOM TOOLS & OUTPUT SCHEMAS + # ========================================== + + # Simple search tool for the Research Agent + @tool("web_search") + def web_search_tool(query: str) -> str: + """Search the web for current events, news, or factual information.""" + ddg = DuckDuckGoSearchRun() + return ddg.invoke(query) + + + + class ResearchEvidence(BaseModel): + source_url: str = PydanticField(..., description="The source URL of the evidence.") + claim: str = PydanticField(..., description="The factual finding or data point.") + context: str = PydanticField(..., description="The context or time frame of this data point.") + + class ResearchOutputSchema(BaseModel): + competitors: List[Dict[str, Any]] = PydanticField(..., description="List of competitors with pricing, features, and target audience.") + market_trends: List[str] = PydanticField(..., description="Key macro trends observed.") + evidence_citations: List[ResearchEvidence] = PydanticField(..., description="Valid source citations for facts collected.") + + + # --------------------------------------------------------- + #Create llm instance + # --------------------------------------------------------- + if config.provider == "OpenAI": + llm = LLM( + model=config.model, + api_key=os.getenv("OPENAI_API_KEY"), + temperature=config.temperature, + max_completion_tokens=config.max_tokens, + ) + else: + llm = LLM( + model=f"ollama/{config.model}", + api_key="ollama", + base_url="http://localhost:11434", + temperature=config.temperature + ) + + logger.info(f"""LLM Model: {config.model}, Provider: {config.provider}, Temperature: {config.temperature}""") + + # --------------------------------------------------------- + # 1. Agent Definitions + # --------------------------------------------------------- + + # 1. Orchestrator & Documenter (Manager) + head_planner = Agent( + role='Head Planner and Orchestrator', + goal="Synthesize intermediary outputs and assemble the final master GTM document.", + backstory="A precise compiler and documentarian...", + #goal='Orchestrate the GTM workflow, delegate tasks to specialized agents, and synthesize all insights into a flawless final GTM document.', + #backstory='You are a Principal Operations Strategy Director. You excel at managing cross-functional teams, ensuring strict alignment, and formatting messy raw data into executive-ready corporate documentation.', + allow_delegation=False, + verbose=verbose, + llm=llm + ) + + # 2. researcher + researcher_agent = Agent( + role="Market Research Specialist", + goal="Gather raw competitive intelligence, target audience signals, and pricing tiers with structural citations.", + backstory="An elite OSINT researcher who tracks digital signals. You ignore marketing fluff and extract verifiable numbers, product capabilities, and structural URLs.", + #role='Research Agent', + #goal='Gather comprehensive market data, identify industry trends, and map out the competitive landscape.', + #backstory='You are an elite Market Research Analyst. You are an expert at mining deep web data, extracting customer pain points, and finding precise statistical facts from modern industry reports.', + verbose=verbose, + tools=[web_search_tool], + use_system_prompt=False, + llm=llm + ) + + # 3. analyst + analyst_agent = Agent( + role="Strategic Business Analyst", + goal="Transform unstructured research data into rigorous market models, SWOT matrixes, and 4P/7P frameworks.", + backstory="A former MBB consultant who specializes in corporate strategy. You find patterns in chaotic data, flag market gaps, and synthesize pricing elasticities.", + #role='Analyst Agent', + #goal='Synthesize raw market data into structured frameworks like SWOT, 4P, 7P, and target user personas.', + #backstory='You are a data-driven Strategic Analyst. You look past surface-level facts to find underlying market gaps, evaluate competitive positioning, and model risks.', + verbose=verbose, + llm=llm + ) + + # 4. strategist + strategist_agent = Agent( + role="Go-To-Market (GTM) Strategist", + goal="Draft the final actionable GTM blueprint including ICP maps, messaging layers, and launch milestone phases.", + backstory="A legendary growth marketing executive. You turn raw analytical data into high-converting messaging matrixes, channel frameworks, and scalable product launch schedules.", + #role='Strategy Agent', + #goal='Formulate the actionable Go-To-Market blueprint, positioning, pricing strategies, and launch timelines.', + #backstory='You are a veteran GTM Growth Strategist. You specialize in crafting commercial launch playbooks, positioning products uniquely against rivals, and designing user-acquisition loops.', + verbose=verbose, + llm=llm + ) + # --------------------------------------------------------- + # 2. Task Definitions + # --------------------------------------------------------- + + #Fetch User query from config + query = config.user_query + + # Task 1: Research Agent gathers raw intelligence + research_task = Task( + description=( + "Search the web for the top 3-5 players in the target market: '{query}'. " + "Extract pricing tiers, core feature modules, and target customer profiles. " + "Every single metric or claim MUST have a URL source tracked inside the JSON structure. " + "Do not fabricate any data and do not make assumptions. Only include verifiable facts using working URLs." + "If you cannot find a specific metric, leave it blank and do not fabricate data." + ), + expected_output="A structured JSON file matching the schema with validated competitive rows and strict citation tracking.", + output_json=ResearchOutputSchema, + agent=researcher_agent + ) + + # Task 2: Analyst Agent creates comparative structures + analysis_task = Task( + description=( + "Review the structured JSON output provided by the Research Agent. " + "Construct a detailed markdown competitive landscape table and a pricing matrix. " + "Perform a comprehensive SWOT, 4P, and 7P analysis based strictly on the evidence compiled." + ), + expected_output="A deep-dive analytical report featuring clean markdown tables, a SWOT quadrant, and an exhaustive 4P/7P matrix analysis.", + agent=analyst_agent + ) + + # Task 3: Strategy Agent plans market entry + strategy_task = Task( + description=( + "Take the analytical matrices and SWOT outputs to build a comprehensive GTM document. " + "Define 2 distinct Ideal Customer Profiles (ICPs). Outline the core value proposition. " + "Create a messaging framework (Hook, Problem, Solution) per ICP. " + "Identify high-ROI acquisition channels and detail a 30-60-90 day milestone launch plan." + ), + expected_output="An actionable, comprehensive market entry strategy blueprint divided into logical execution phases.", + agent=strategist_agent + ) + + # Task 4: Head Planner synthesizes, formats, and exports + compilation_task = Task( + description=( + "Synthesize the outputs from the Research, Analyst, and Strategy agents into a seamless, high-caliber Master GTM Report. " + "Include all research data tables, citations, SWOT/7P strategic matrices, and execution timelines. " + "Include a title that cleary identifies the target market and a subtitle that highlights the core value proposition. " + ), + expected_output="Final master GTM document.", + context=[research_task, analysis_task, strategy_task], + agent=head_planner + ) + + # --------------------------------------------------------- + # 3. Crew Setup + # --------------------------------------------------------- + + crew= Crew( + agents=[researcher_agent, analyst_agent, strategist_agent, head_planner], + tasks=[research_task, analysis_task, strategy_task, compilation_task], + process=Process.sequential, # Tasks execute in exact sequence + #manager_agent=head_planner + task_callback=log_task_to_file, + verbose=verbose + ) + + logger.info(f"Crew setup complete with {len(crew.agents)} agents and {len(crew.tasks)} tasks.") + return crew + diff --git a/agent_workflows/orchestration.py b/agent_workflows/orchestration.py new file mode 100644 index 0000000..6bf2762 --- /dev/null +++ b/agent_workflows/orchestration.py @@ -0,0 +1,38 @@ + +from langsmith import traceable +from agent_workflows.crew_setup import create_crew +from shared_config import AgenticAIConfig, logger +from langsmith.integrations.otel import OtelSpanProcessor +from opentelemetry import trace +from opentelemetry.sdk.trace import TracerProvider +from opentelemetry.instrumentation.crewai import CrewAIInstrumentor +from opentelemetry.instrumentation.openai import OpenAIInstrumentor + +# Initialize the trace provider +tracer_provider = TracerProvider() +#trace.set_tracer_provider(tracer_provider) + +# Add the LangSmith OTel processor +tracer_provider.add_span_processor(OtelSpanProcessor()) + +# Instrument both CrewAI and OpenAI layers +CrewAIInstrumentor().instrument(tracer_provider=tracer_provider) +OpenAIInstrumentor().instrument(tracer_provider=tracer_provider) + +@traceable(name="Capstone_GTM Strategy Simulation", run_type="chain") +def runAgenticWorkflow(config: AgenticAIConfig): + """ + Main Entry Point of Agentic AI Workflow + """ + logger.info("Agentic Workflow Started...") + + crew = create_crew(config) + + result = crew.kickoff( + inputs={ + "query": config.user_query + } + ) + + config.response = str(result) + return config \ No newline at end of file diff --git a/app.py b/app.py new file mode 100644 index 0000000..ee41141 --- /dev/null +++ b/app.py @@ -0,0 +1,161 @@ + +from pathlib import Path +from shared_config import AgenticAIConfig, create_logger, logger +import streamlit as st +from dotenv import load_dotenv +from agent_workflows.orchestration import runAgenticWorkflow +from utilities.pdf_tools import export_to_pdf +from datetime import datetime + + +#2- Loading Env Variables +load_dotenv() # It will load all the Env Variables + +#3- Set Page Config +st.set_page_config( + page_title="Simplilearn Capstone Project", #Show it in the Tab + page_icon="🤖", + layout="wide" +) + +#4- Initialize Config +if "config" not in st.session_state: + st.session_state.config = AgenticAIConfig() +config = st.session_state.config + +#5- Initialize Streamlit- Conversation History +if "chat_history" not in st.session_state: + st.session_state.chat_history=[] + +#6- Setting dict for Available Models +#llm_model = "gpt-5-nano" #Output~ 0.4 US$ / 1M tokens +#llm_model = "gpt-4o-mini" #Output~ 0.6 US$ / 1M tokens +#llm_model = "gpt-5.4-nano" #Output~ 1.25 US$ / 1M tokens +#llm_model = "gpt-5-mini" #Output~ 2 US$ / 1M tokens +#llm_model = "gpt-5.4-mini" #Output~ 4.50 US$ / 1M tokens +#llm_model = "gpt-4o" #Output~ 10 US$ / 1M tokens +#llm_model = "gpt-5.5" #Output~ 30 US$ / 1M tokens +MODEL_REGISTRY={ + "OpenAI":["gpt-4o-mini","gpt-5.4-nano","gpt-5-mini","gpt-4.1","gpt-4o","gpt-3.5-turbo"], + "Ollama":["llama3.1","gpt-oss:20b","gemma4:e4b","qwen2.5-coder:14b","mistral-small3.2"], + } + +#7- Creating Sidebar +with st.sidebar: + st.title("LLM Configuration") + config.provider = st.selectbox( + "LLM Provider", + list(MODEL_REGISTRY.keys()) + ) + + #Dynamic Model Selection Logic + available_models = MODEL_REGISTRY[config.provider] + + config.model = st.selectbox( + "Model", + available_models + ) + + config.temperature= st.slider( + "Temperature", + min_value=0.0, + max_value=2.0, + value=config.temperature, + step=0.1 + ) + + config.max_tokens=st.slider( + "Max Tokens", + min_value=100, + max_value=4000, + value=config.max_tokens, + step=100 + ) + + st.divider() + + # Display Current Configurations Separately + st.subheader("Current Configuration:") + + st.write(f"**Provider:** {config.provider}") + st.write(f"**Model:** {config.model}") + st.write(f"**Temperature:** {config.temperature}") + st.write(f"**Max Token:** {config.max_tokens}") + + +#8- Setting Page Title +st.title("🤖 Simplilearn Agentic AI Capstone: Research and GTM Planning") + +#9- Creating User Input Section +config.user_query = st.text_area( + "Enter the product or service you want to research and plan a GTM strategy: ", + value = config.user_query, + height=200, + placeholder = "Example: Electrical bicycle, Burger shop in Tokyo, New AI-powered project management tool targeting small businesses, ..." +) +# Create Response Button +if st.button("Generate Response", type="primary"): + if not config.user_query.strip(): + st.warning("Please enter a prompt before clicking the button") + else: + #Create logger + if logger is not None: + if logger.hasHandlers(): + logger.removeHandler(logger.handlers[0]) # Remove existing handlers + create_logger() + #Store the User Query for displaying in conversation History on Streamlit + st.session_state.chat_history.append( + { + "role": "user", + "message": config.user_query + } + ) + + logger.info("Product or service to research and plan a GTM strategy: "+config.user_query) + + # Create a Spinner until response is generated + with st.spinner("AI Agent is Thinking..."): + # Call CrewAI FLow + runAgenticWorkflow(config) + + #Export the final GTM document to PDF + logger.info("Creating PDF...") + pdf_fiename_prefix = "Agentic_AI_Generated_GTM_Document" + script_dir = Path(__file__).parent + target_dir = script_dir / "output" + target_dir.mkdir(parents=True, exist_ok=True) + now = datetime.now() + formatted_DateTime = now.strftime("%Y-%m-%d_%H%M%S") + pdfpath = f"""output/{pdf_fiename_prefix}_{formatted_DateTime}.pdf""" + export_to_pdf( + inputText=config.response, + filename=pdfpath) + + logger.info("PDF Exported Successfully at: "+pdfpath) + + + #Store the response for display in conversation history + st.session_state.chat_history.append( + { + "role": "assistant", + "message": config.response + } + ) + st.session_state.config= config + + +#10- Creating Response Section +st.subheader("Conversation History") + +for chat in st.session_state.chat_history: + if chat["role"]=="user": + with st.chat_message("user"): + st.write(chat["message"]) + else: + with st.chat_message("assistant"): + st.write(chat["message"]) + +#11- Creating the button for Users to clear all the chats from the UI +if st.sidebar.button("Clear Chat"): + st.session_state.chat_history=[] + st.rerun() \ No newline at end of file diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..bd209e6 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,24 @@ +# Useful Python Librarires +python-dotenv + +# Agentic AI Libraries +langchain +langchain-openai +langchain-ollama +langchain-classic +langchain-community +langsmith +crewai +opentelemetry-instrumentation-crewai +opentelemetry-instrumentation-openai +#fastmcp + +#web search +ddgs + +# UI +streamlit + +#PDF Generation +markdown +weasyprint diff --git a/shared_config.py b/shared_config.py new file mode 100644 index 0000000..a1dac70 --- /dev/null +++ b/shared_config.py @@ -0,0 +1,53 @@ + +from datetime import datetime +import logging +from pathlib import Path +from dataclasses import dataclass, field +from typing import List +from utilities.logger import simple_logger + + +########################################################################################### +verbose = True #Set to True to see CrewAI process information in the console +########################################################################################### + +########################################################################################### +printLogToConsole = False #Set to True to save and print log information to console, else set to False to only save log information to file +########################################################################################### + +########################################################################################### +#Define logger parameter +########################################################################################### +logger = logging.getLogger() +def create_logger(): + log_fiename_prefix = "log" + script_dir = Path(__file__).parent + target_dir = script_dir / "log" + target_dir.mkdir(parents=True, exist_ok=True) + now = datetime.now() + formatted_DateTime = now.strftime("%Y-%m-%d_%H%M%S") + log_path = f"""log/{log_fiename_prefix}_{formatted_DateTime}.log""" + global logger + logger = simple_logger(log_path, printLogToConsole) + +########################################################################################### +#Create a 'dataclass' for all configs that can be used anywhere in this Project +########################################################################################### +@dataclass +class AgenticAIConfig: + # UI Selections from users + provider:str = "OpenAI" + model: str = "gpt-4o" + temperature: float = 0.4 + max_tokens:int = 3000 + + # User Input + user_query:str="" + + # Agent Settings (CrewAI Specifics) + #agent_name:str = "default" + #tools: List[str] = field(default_factory=list) + + # Runtime + response:str="" + chat_history:List[dict] = field(default_factory=list) diff --git a/utilities/logger.py b/utilities/logger.py new file mode 100644 index 0000000..69989a4 --- /dev/null +++ b/utilities/logger.py @@ -0,0 +1,27 @@ +import logging +from xmlrpc.client import boolean + + +############################################################################################################################## +#Function to create a simple logger that logs messages to a file and optionally prints them to the console. +#If logger_name = "", then the root logger will be used. If you want to create a custom logger, provide a name for it. +############################################################################################################################## +def simple_logger(log_relative_path = str, printToConsole = boolean, logger_name = ""): + logger = logging.getLogger(logger_name) + logger.setLevel(logging.INFO) + + formatter = logging.Formatter(fmt="%(asctime)s [%(levelname)s] %(message)s", + datefmt="%Y-%m-%d %H:%M:%S") + file_handler = logging.FileHandler(log_relative_path) + file_handler.setFormatter(formatter) + file_handler.setLevel(logging.INFO) + logger.addHandler(file_handler) + + if printToConsole: + console_handler = logging.StreamHandler() + console_handler.setFormatter(formatter) + console_handler.setLevel(logging.INFO) + logger.addHandler(console_handler) + + return logger + diff --git a/utilities/pdf_tools.py b/utilities/pdf_tools.py new file mode 100644 index 0000000..2667275 --- /dev/null +++ b/utilities/pdf_tools.py @@ -0,0 +1,60 @@ +html_template = """ + + + + + + + + {content} + + +""" + +import markdown +from weasyprint import HTML + +def export_to_pdf(inputText, filename): + + # Step 1: Convert Markdown components to HTML chunks. + # The 'tables' and 'fenced_code' extensions keep standard LLM formatting neat. + html_content = markdown.markdown(inputText, extensions=['tables', 'fenced_code']) + + # Step 2: Inject the content into our CSS-styled HTML boilerplate template + final_html = html_template.format(content=html_content) + + # Step 3: Render directly to a high-fidelity PDF file + HTML(string=final_html).write_pdf(filename) + #print(f"Successfully generated styled PDF at: {output_pdf_path}")