diff --git a/ai_agent_tutorials/ai_competitors_analysis_team/__pycache__/firecrawl.cpython-312.pyc b/ai_agent_tutorials/ai_competitors_analysis_team/__pycache__/firecrawl.cpython-312.pyc new file mode 100644 index 0000000..ccd244c Binary files /dev/null and b/ai_agent_tutorials/ai_competitors_analysis_team/__pycache__/firecrawl.cpython-312.pyc differ diff --git a/ai_agent_tutorials/ai_competitors_analysis_team/exaai.py b/ai_agent_tutorials/ai_competitors_analysis_team/exaai.py index 99e2cf3..8a7f630 100644 --- a/ai_agent_tutorials/ai_competitors_analysis_team/exaai.py +++ b/ai_agent_tutorials/ai_competitors_analysis_team/exaai.py @@ -1,6 +1,5 @@ from exa_py import Exa -# Initialize Exa with your API key exa = Exa(api_key="EXA_API_KEY") def get_competitor_urls(url=None, description=None): @@ -27,6 +26,5 @@ def get_competitor_urls(url=None, description=None): # Extracting and return only the competitor URLs competitor_urls = [item.url for item in result.results] return competitor_urls - # return result print(get_competitor_urls(description="Competitors of a company that works on AI Neuro Health Tech")) \ No newline at end of file diff --git a/ai_agent_tutorials/ai_competitors_analysis_team/fire.py b/ai_agent_tutorials/ai_competitors_analysis_team/fire.py new file mode 100644 index 0000000..01c4432 --- /dev/null +++ b/ai_agent_tutorials/ai_competitors_analysis_team/fire.py @@ -0,0 +1,41 @@ +from phi.agent import Agent +from phi.tools.firecrawl import FirecrawlTools +from phi.model.openai import OpenAIChat + +firecrawl_tools = FirecrawlTools( + api_key="", + scrape=False, + crawl=True, + limit=5 +) + +agent = Agent( + model=OpenAIChat(id="gpt-4o-mini", api_key=""), + tools=[firecrawl_tools], + show_tool_calls=True, + markdown=True +) + +def extract_competitor_info(competitor_url: str): + crawl_response = agent.run(f"Crawl and summarize {competitor_url}") + crawled_data = crawl_response.content + + structured_info = agent.run( + f"""Extract the following information from the crawled data: + - Product pricing and features - exact pricing numbers from their pricing page + - Technology stack information + - Marketing messaging/positioning + - Customer testimonials/case studies + + Crawled Data: + {crawled_data} + """ + ) + + return structured_info.content + +if __name__ == "__main__": + competitor_url = "https://www.equal.in" + competitor_info = extract_competitor_info(competitor_url) + print(f"Competitor: {competitor_url}") + print(competitor_info) \ No newline at end of file diff --git a/ai_agent_tutorials/ai_competitors_analysis_team/firecrawl.py b/ai_agent_tutorials/ai_competitors_analysis_team/firecrawl.py deleted file mode 100644 index e69de29..0000000 diff --git a/ai_agent_tutorials/ai_competitors_analysis_team/main.py b/ai_agent_tutorials/ai_competitors_analysis_team/main.py index e69de29..78b9b57 100644 --- a/ai_agent_tutorials/ai_competitors_analysis_team/main.py +++ b/ai_agent_tutorials/ai_competitors_analysis_team/main.py @@ -0,0 +1,37 @@ +from firecrawl import FirecrawlApp +from pydantic import BaseModel, Field +from typing import Optional + +# Define a simple schema for testing +class SimpleSchema(BaseModel): + title: Optional[str] = Field(description="Title of the webpage.") + description: Optional[str] = Field(description="Meta description of the webpage.") + +# Initialize the FirecrawlApp with your API key +app = FirecrawlApp(api_key='fc-') # Replace with your API key + +def extract_competitor_info(competitor_url: str): + + try: + # Use Firecrawl to scrape and extract data + data = app.scrape_url(competitor_url, { + 'formats': ['extract'], + 'extract': { + 'schema': SimpleSchema.model_json_schema(), + } + }) + return data.get("extract", {}) + except Exception as e: + return {"error": str(e)} + +# Example usage +if __name__ == "__main__": + # Competitor URL to analyze + competitor_url = "https://www.equal.in" # Replace with your competitor URL + + # Extract competitor information + competitor_info = extract_competitor_info(competitor_url) + + # Print the structured information + print(f"Competitor: {competitor_url}") + print(competitor_info) \ No newline at end of file diff --git a/ai_agent_tutorials/ai_competitors_analysis_team/requirements.txt b/ai_agent_tutorials/ai_competitors_analysis_team/requirements.txt index 367c38c..e188d2f 100644 --- a/ai_agent_tutorials/ai_competitors_analysis_team/requirements.txt +++ b/ai_agent_tutorials/ai_competitors_analysis_team/requirements.txt @@ -1 +1,2 @@ -exa-py==1.0.6 \ No newline at end of file +exa-py==1.0.6 +firecrawl-py==1.9.0 \ No newline at end of file