Files
ALwrity/docs/ALwrity Researcher/INTENT_RESEARCH_API_REFERENCE.md

19 KiB

Intent Research API Reference

Date: 2025-01-29
Status: Current API Documentation


📋 Overview

This document provides comprehensive API reference for intent-driven research endpoints. All endpoints require authentication via get_current_user dependency.

Base Path: /api/research


🔐 Authentication

All endpoints require authentication. The user_id is extracted from the JWT token via get_current_user dependency.

Error Response (401):

{
  "detail": "Authentication required"
}

📡 Endpoints

1. POST /api/research/intent/analyze

Analyzes user input to understand research intent, generates targeted queries, and optimizes provider parameters.

Request

Endpoint: POST /api/research/intent/analyze

Headers:

Authorization: Bearer <jwt_token>
Content-Type: application/json

Body:

{
  user_input: string;              // Required: User's keywords, question, or goal
  keywords?: string[];              // Optional: Extracted keywords
  use_persona?: boolean;            // Optional: Use research persona (default: true)
  use_competitor_data?: boolean;    // Optional: Use competitor data (default: true)
}

Example:

{
  "user_input": "AI marketing tools for small businesses",
  "keywords": ["AI", "marketing", "tools", "small", "businesses"],
  "use_persona": true,
  "use_competitor_data": true
}

Response

Success (200):

{
  success: boolean;                 // Always true on success
  intent: {
    input_type: "keywords" | "question" | "goal" | "mixed";
    primary_question: string;
    secondary_questions: string[];
    purpose: "learn" | "create_content" | "make_decision" | "compare" | 
             "solve_problem" | "find_data" | "explore_trends" | 
             "validate" | "generate_ideas";
    content_output: "blog" | "podcast" | "video" | "social_post" | 
                   "newsletter" | "presentation" | "report" | 
                   "whitepaper" | "email" | "general";
    expected_deliverables: string[];  // e.g., ["key_statistics", "expert_quotes", "case_studies"]
    depth: "overview" | "detailed" | "expert";
    focus_areas: string[];
    perspective?: string;
    time_sensitivity: "real_time" | "recent" | "historical" | "evergreen";
    confidence: number;             // 0.0 - 1.0
    confidence_reason?: string;
    great_example?: string;
    needs_clarification: boolean;
    clarifying_questions: string[];
    analysis_summary: string;
  };
  analysis_summary: string;
  suggested_queries: Array<{
    query: string;
    purpose: string;               // Expected deliverable type
    provider: "exa" | "tavily";
    priority: number;              // 1-5 (5 = highest)
    expected_results: string;
    justification?: string;
  }>;
  suggested_keywords: string[];
  suggested_angles: string[];
  quick_options: Array<any>;        // Deprecated in unified approach
  confidence_reason?: string;
  great_example?: string;
  optimized_config: {
    provider: "exa" | "tavily" | "google";
    provider_justification: string;
    
    // Exa Settings
    exa_type: "auto" | "neural" | "fast" | "deep";
    exa_type_justification: string;
    exa_category?: "company" | "research paper" | "news" | "github" | 
                   "tweet" | "personal site" | "pdf" | "financial report" | "people";
    exa_category_justification?: string;
    exa_include_domains?: string[];
    exa_include_domains_justification?: string;
    exa_num_results: number;
    exa_num_results_justification: string;
    exa_date_filter?: string;      // ISO date string
    exa_date_justification?: string;
    exa_highlights: boolean;
    exa_highlights_justification: string;
    exa_context: boolean;
    exa_context_justification: string;
    
    // Tavily Settings
    tavily_topic: "general" | "news" | "finance";
    tavily_topic_justification: string;
    tavily_search_depth: "basic" | "advanced";
    tavily_search_depth_justification: string;
    tavily_include_answer: boolean | "basic" | "advanced";
    tavily_include_answer_justification: string;
    tavily_time_range?: "day" | "week" | "month" | "year";
    tavily_time_range_justification?: string;
    tavily_max_results: number;
    tavily_max_results_justification: string;
    tavily_raw_content: "false" | "true" | "markdown" | "text";
    tavily_raw_content_justification: string;
  };
  recommended_provider: "exa" | "tavily" | "google";
  error_message?: string;          // Only present on error
}

Error (500):

{
  "success": false,
  "intent": {},
  "analysis_summary": "",
  "suggested_queries": [],
  "suggested_keywords": [],
  "suggested_angles": [],
  "quick_options": [],
  "confidence_reason": null,
  "great_example": null,
  "error_message": "Error message here"
}

Example Response

{
  "success": true,
  "intent": {
    "input_type": "keywords",
    "primary_question": "What are the best AI marketing tools for small businesses?",
    "secondary_questions": [
      "What features do small businesses need in AI marketing tools?",
      "What is the ROI of AI marketing tools for small businesses?"
    ],
    "purpose": "make_decision",
    "content_output": "blog",
    "expected_deliverables": ["key_statistics", "case_studies", "comparisons", "best_practices"],
    "depth": "detailed",
    "focus_areas": ["small business", "AI automation", "marketing efficiency"],
    "time_sensitivity": "recent",
    "confidence": 0.85,
    "confidence_reason": "Clear intent to find tools for decision-making",
    "needs_clarification": false,
    "clarifying_questions": [],
    "analysis_summary": "User wants to research AI marketing tools specifically for small businesses, likely to make a purchasing decision. Needs comparisons, statistics, and case studies."
  },
  "analysis_summary": "User wants to research AI marketing tools specifically for small businesses...",
  "suggested_queries": [
    {
      "query": "best AI marketing tools small business 2024 comparison",
      "purpose": "comparisons",
      "provider": "exa",
      "priority": 5,
      "expected_results": "Tool comparison articles and reviews",
      "justification": "High priority for decision-making"
    },
    {
      "query": "AI marketing tools ROI statistics small business",
      "purpose": "key_statistics",
      "provider": "exa",
      "priority": 4,
      "expected_results": "Statistics on AI tool adoption and ROI",
      "justification": "Important for decision-making"
    }
  ],
  "suggested_keywords": ["AI marketing", "automation", "small business", "SMB tools"],
  "suggested_angles": [
    "Compare top AI marketing tools for small businesses",
    "ROI analysis of AI marketing automation",
    "Case studies: Small businesses using AI marketing tools"
  ],
  "optimized_config": {
    "provider": "exa",
    "provider_justification": "Exa's semantic search is best for finding tool comparisons and detailed analysis",
    "exa_type": "neural",
    "exa_type_justification": "Neural search provides better semantic understanding for tool comparisons",
    "exa_category": "company",
    "exa_category_justification": "Focus on company/product pages for tool information",
    "exa_num_results": 10,
    "exa_num_results_justification": "10 results provide comprehensive coverage without overwhelming",
    "exa_highlights": true,
    "exa_highlights_justification": "Highlights help extract key features and comparisons",
    "exa_context": true,
    "exa_context_justification": "Context string enables better AI analysis of results"
  },
  "recommended_provider": "exa"
}

Implementation Details

Backend Flow:

  1. Validates authentication
  2. Fetches research persona (if use_persona: true)
  3. Fetches competitor data (if use_competitor_data: true)
  4. Calls UnifiedResearchAnalyzer.analyze()
  5. Returns structured response

Performance: Typically 2-5 seconds (single LLM call)


2. POST /api/research/intent/research

Executes research based on confirmed intent and returns structured deliverables.

Request

Endpoint: POST /api/research/intent/research

Headers:

Authorization: Bearer <jwt_token>
Content-Type: application/json

Body:

{
  user_input: string;                    // Required: Original user input
  confirmed_intent?: ResearchIntent;      // Optional: Confirmed intent from UI
  selected_queries?: ResearchQuery[];      // Optional: Selected queries to execute
  max_sources?: number;                   // Optional: Max sources (default: 10, min: 1, max: 25)
  include_domains?: string[];            // Optional: Domains to include
  exclude_domains?: string[];            // Optional: Domains to exclude
  skip_inference?: boolean;              // Optional: Skip intent inference if intent provided (default: false)
}

Example:

{
  "user_input": "AI marketing tools for small businesses",
  "confirmed_intent": {
    "primary_question": "What are the best AI marketing tools for small businesses?",
    "purpose": "make_decision",
    "expected_deliverables": ["key_statistics", "case_studies", "comparisons"],
    "depth": "detailed"
  },
  "selected_queries": [
    {
      "query": "best AI marketing tools small business 2024 comparison",
      "purpose": "comparisons",
      "provider": "exa",
      "priority": 5
    }
  ],
  "max_sources": 10,
  "include_domains": [],
  "exclude_domains": []
}

Response

Success (200):

{
  success: boolean;
  
  // Direct Answers
  primary_answer: string;
  secondary_answers: Dict<string, string>;
  
  // Deliverables
  statistics: Array<{
    value: string;
    description: string;
    citation: {
      title: string;
      url: string;
      domain: string;
    };
    relevance_score: number;
  }>;
  expert_quotes: Array<{
    quote: string;
    author: string;
    author_title?: string;
    source: {
      title: string;
      url: string;
      domain: string;
    };
    relevance_score: number;
  }>;
  case_studies: Array<{
    title: string;
    summary: string;
    key_findings: string[];
    source: {
      title: string;
      url: string;
      domain: string;
    };
    relevance_score: number;
  }>;
  trends: Array<{
    trend: string;
    description: string;
    evidence: string[];
    time_frame: string;
    source: {
      title: string;
      url: string;
      domain: string;
    };
  }>;
  comparisons: Array<{
    title: string;
    items: Array<{
      name: string;
      attributes: Dict<string, string>;
    }>;
    source: {
      title: string;
      url: string;
      domain: string;
    };
  }>;
  best_practices: string[];
  step_by_step: string[];
  pros_cons?: {
    pros: string[];
    cons: string[];
    source?: {
      title: string;
      url: string;
      domain: string;
    };
  };
  definitions: Dict<string, string>;
  examples: string[];
  predictions: string[];
  
  // Content-Ready Outputs
  executive_summary: string;
  key_takeaways: string[];
  suggested_outline: string[];
  
  // Sources and Metadata
  sources: Array<{
    title: string;
    url: string;
    domain: string;
    snippet: string;
    credibility_score: number;
    relevance_score: number;
    published_date?: string;
  }>;
  confidence: number;                    // 0.0 - 1.0
  gaps_identified: string[];
  follow_up_queries: string[];
  
  // The inferred/confirmed intent
  intent?: ResearchIntent;
  
  error_message?: string;                // Only present on error
}

Error (500):

{
  "success": false,
  "primary_answer": "",
  "secondary_answers": {},
  "statistics": [],
  "expert_quotes": [],
  "case_studies": [],
  "trends": [],
  "comparisons": [],
  "best_practices": [],
  "step_by_step": [],
  "pros_cons": null,
  "definitions": {},
  "examples": [],
  "predictions": [],
  "executive_summary": "",
  "key_takeaways": [],
  "suggested_outline": [],
  "sources": [],
  "confidence": 0.0,
  "gaps_identified": [],
  "follow_up_queries": [],
  "error_message": "Error message here"
}

Example Response

{
  "success": true,
  "primary_answer": "The best AI marketing tools for small businesses include Mailchimp, HubSpot, and Hootsuite, offering automation, analytics, and social media management at affordable prices.",
  "secondary_answers": {
    "pricing": "Most tools range from $0-50/month for small businesses",
    "features": "Key features include email automation, social scheduling, and analytics"
  },
  "statistics": [
    {
      "value": "78%",
      "description": "of small businesses use AI marketing tools",
      "citation": {
        "title": "Small Business Marketing Trends 2024",
        "url": "https://example.com/trends",
        "domain": "example.com"
      },
      "relevance_score": 0.95
    }
  ],
  "expert_quotes": [
    {
      "quote": "AI marketing tools have become essential for small businesses to compete effectively.",
      "author": "Jane Smith",
      "author_title": "Marketing Expert",
      "source": {
        "title": "Marketing Technology Guide",
        "url": "https://example.com/guide",
        "domain": "example.com"
      },
      "relevance_score": 0.90
    }
  ],
  "case_studies": [
    {
      "title": "Small Business Increases ROI by 40% with AI Tools",
      "summary": "A local bakery used AI marketing automation to increase customer engagement and revenue.",
      "key_findings": [
        "40% increase in ROI",
        "3x email open rates",
        "50% reduction in manual work"
      ],
      "source": {
        "title": "Case Study: AI Marketing Success",
        "url": "https://example.com/case-study",
        "domain": "example.com"
      },
      "relevance_score": 0.88
    }
  ],
  "trends": [
    {
      "trend": "AI Marketing Automation Adoption",
      "description": "Small businesses are rapidly adopting AI marketing tools",
      "evidence": [
        "78% adoption rate in 2024",
        "Growing market of affordable tools"
      ],
      "time_frame": "2024",
      "source": {
        "title": "Marketing Trends Report",
        "url": "https://example.com/trends",
        "domain": "example.com"
      }
    }
  ],
  "comparisons": [
    {
      "title": "AI Marketing Tools Comparison",
      "items": [
        {
          "name": "Mailchimp",
          "attributes": {
            "price": "$0-50/month",
            "features": "Email, Automation, Analytics"
          }
        },
        {
          "name": "HubSpot",
          "attributes": {
            "price": "$0-90/month",
            "features": "CRM, Email, Social, Analytics"
          }
        }
      ],
      "source": {
        "title": "Tool Comparison Guide",
        "url": "https://example.com/comparison",
        "domain": "example.com"
      }
    }
  ],
  "best_practices": [
    "Start with free trials to test tools",
    "Focus on tools that integrate with your existing stack",
    "Prioritize automation features for time savings"
  ],
  "step_by_step": [
    "1. Identify your marketing needs",
    "2. Research available AI tools",
    "3. Compare features and pricing",
    "4. Start with free trials",
    "5. Implement gradually"
  ],
  "pros_cons": {
    "pros": [
      "Time savings through automation",
      "Better targeting and personalization",
      "Improved ROI tracking"
    ],
    "cons": [
      "Learning curve for new tools",
      "Potential costs for advanced features",
      "Dependency on technology"
    ]
  },
  "definitions": {
    "AI Marketing": "Use of artificial intelligence to automate and optimize marketing tasks",
    "Marketing Automation": "Technology that automates repetitive marketing tasks"
  },
  "examples": [
    "Mailchimp's AI-powered email subject line suggestions",
    "HubSpot's predictive lead scoring",
    "Hootsuite's optimal posting time recommendations"
  ],
  "predictions": [
    "AI marketing tools will become standard for all businesses by 2026",
    "Integration between tools will improve significantly",
    "Costs will continue to decrease as competition increases"
  ],
  "executive_summary": "AI marketing tools offer significant benefits for small businesses, including automation, better targeting, and improved ROI. Key tools include Mailchimp, HubSpot, and Hootsuite, with most offering affordable pricing for small businesses.",
  "key_takeaways": [
    "78% of small businesses use AI marketing tools",
    "Tools range from $0-50/month for small businesses",
    "Key benefits include automation and improved ROI",
    "Free trials are available for most tools"
  ],
  "suggested_outline": [
    "Introduction to AI Marketing Tools",
    "Benefits for Small Businesses",
    "Top Tools Comparison",
    "Case Studies and Success Stories",
    "Implementation Guide",
    "Conclusion and Recommendations"
  ],
  "sources": [
    {
      "title": "Small Business Marketing Trends 2024",
      "url": "https://example.com/trends",
      "domain": "example.com",
      "snippet": "78% of small businesses now use AI marketing tools...",
      "credibility_score": 0.92,
      "relevance_score": 0.95,
      "published_date": "2024-01-15"
    }
  ],
  "confidence": 0.88,
  "gaps_identified": [
    "Limited data on long-term ROI",
    "Need more case studies from specific industries"
  ],
  "follow_up_queries": [
    "What are the specific ROI metrics for AI marketing tools?",
    "How do AI marketing tools compare to traditional methods?"
  ],
  "intent": {
    "primary_question": "What are the best AI marketing tools for small businesses?",
    "purpose": "make_decision",
    "expected_deliverables": ["key_statistics", "case_studies", "comparisons"],
    "depth": "detailed"
  }
}

Implementation Details

Backend Flow:

  1. Validates authentication
  2. Determines intent (from confirmed_intent or infers from user_input)
  3. Generates queries (from selected_queries or generates from intent)
  4. Executes research via ResearchEngine (Exa → Tavily → Google)
  5. Analyzes results via IntentAwareAnalyzer
  6. Returns structured deliverables

Performance: Typically 10-30 seconds (depends on provider and query count)


🔄 Error Handling

Common Error Responses

401 Unauthorized:

{
  "detail": "Authentication required"
}

500 Internal Server Error:

{
  "success": false,
  "error_message": "Detailed error message",
  // ... other fields with empty/default values
}

Error Scenarios

  1. Invalid user_input: Empty or too short
  2. Provider unavailable: Exa/Tavily API keys not configured
  3. LLM failure: AI service unavailable or rate limited
  4. Database error: Persona/competitor data fetch failed
  5. Subscription limits: User exceeded subscription quota

📊 Rate Limits

  • Intent Analysis: Subject to subscription tier limits
  • Research Execution: Subject to subscription tier limits
  • Provider APIs: Exa/Tavily/Google have their own rate limits

  • GET /api/research/config - Get research configuration and persona defaults
  • GET /api/research/providers/status - Get provider availability
  • POST /api/research/execute - Traditional synchronous research (fallback)
  • POST /api/research/start - Traditional asynchronous research (fallback)

  • Intent-Driven Research Guide: INTENT_DRIVEN_RESEARCH_GUIDE.md
  • Architecture Rules: .cursor/rules/researcher-architecture.mdc
  • Architecture Overview: CURRENT_ARCHITECTURE_OVERVIEW.md

Status: Current API Reference - Use this for integrating with intent-driven research endpoints.