File size: 5,514 Bytes
ce0bf87
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
"""
Enhanced Search Functions for Native Function Calling
This file defines all the function calling schemas for the enhanced research system
"""

ENHANCED_SEARCH_FUNCTIONS = [
    {
        "type": "function",
        "function": {
            "name": "search_web",
            "description": "Search the web for current information and real-time data using DuckDuckGo",
            "parameters": {
                "type": "object",
                "properties": {
                    "query": {
                        "type": "string",
                        "description": "The search query to find current information relevant to the expert analysis"
                    },
                    "depth": {
                        "type": "string",
                        "enum": ["standard", "deep"],
                        "description": "Search depth - 'standard' for single source, 'deep' for multi-source synthesis",
                        "default": "standard"
                    }
                },
                "required": ["query"]
            }
        }
    },
    {
        "type": "function", 
        "function": {
            "name": "search_wikipedia",
            "description": "Search Wikipedia for comprehensive background information and authoritative encyclopedic data",
            "parameters": {
                "type": "object",
                "properties": {
                    "topic": {
                        "type": "string",
                        "description": "The topic to research on Wikipedia for comprehensive background information"
                    }
                },
                "required": ["topic"]
            }
        }
    },
    {
        "type": "function",
        "function": {
            "name": "search_academic",
            "description": "Search academic papers and research on arXiv and Google Scholar for scientific evidence",
            "parameters": {
                "type": "object",
                "properties": {
                    "query": {
                        "type": "string",
                        "description": "Academic research query to find peer-reviewed papers and scientific studies"
                    },
                    "source": {
                        "type": "string",
                        "enum": ["arxiv", "scholar", "both"],
                        "description": "Academic source to search - arXiv for preprints, Scholar for citations, both for comprehensive",
                        "default": "both"
                    }
                },
                "required": ["query"]
            }
        }
    },
    {
        "type": "function", 
        "function": {
            "name": "search_technology_trends",
            "description": "Search GitHub for technology adoption, development trends, and open source activity",
            "parameters": {
                "type": "object",
                "properties": {
                    "technology": {
                        "type": "string",
                        "description": "Technology, framework, or programming language to research for adoption trends"
                    }
                },
                "required": ["technology"]
            }
        }
    },
    {
        "type": "function",
        "function": {
            "name": "search_financial_data", 
            "description": "Search SEC EDGAR filings and financial data for public companies",
            "parameters": {
                "type": "object",
                "properties": {
                    "company": {
                        "type": "string",
                        "description": "Company name or ticker symbol to research financial data and SEC filings"
                    }
                },
                "required": ["company"]
            }
        }
    },
    {
        "type": "function",
        "function": {
            "name": "multi_source_research",
            "description": "Perform comprehensive multi-source research synthesis across all available sources",
            "parameters": {
                "type": "object",
                "properties": {
                    "query": {
                        "type": "string",
                        "description": "Research query for comprehensive multi-source analysis"
                    },
                    "priority_sources": {
                        "type": "array",
                        "items": {
                            "type": "string",
                            "enum": ["web", "wikipedia", "arxiv", "scholar", "github", "sec"]
                        },
                        "description": "Priority list of sources to focus on for this research",
                        "default": []
                    }
                },
                "required": ["query"]
            }
        }
    }
]

def get_function_definitions():
    """Get the complete function definitions for API calls"""
    return ENHANCED_SEARCH_FUNCTIONS

def get_function_names():
    """Get list of all available function names"""
    return [func["function"]["name"] for func in ENHANCED_SEARCH_FUNCTIONS]

# Function routing map for backward compatibility
FUNCTION_ROUTING = {
    "search_web": "web_search",
    "search_wikipedia": "wikipedia_search", 
    "search_academic": "academic_search",
    "search_technology_trends": "github_search",
    "search_financial_data": "sec_search",
    "multi_source_research": "multi_source_search"
}