Skip to content

Commit b74e430

Browse files
committed
fix: advanced search not existing
1 parent 1663869 commit b74e430

2 files changed

Lines changed: 34 additions & 6 deletions

File tree

src/core/perplexity/integrations/PerplexityIntegration.py

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -124,31 +124,35 @@ def as_tools(configuration: PerplexityIntegrationConfiguration):
124124

125125
integration = PerplexityIntegration(configuration)
126126

127-
class AskQuestionSchema(BaseModel):
127+
class SearchWebSchema(BaseModel):
128128
question: str = Field(..., description="The question to ask Perplexity AI")
129129
user_location: Optional[Annotated[str, Field(..., description="The user location to use for the search")]] = "FR"
130130
search_context_size: Optional[Annotated[str, Field(..., description="The search context size to use for the search", pattern="^(low|medium|high)$")]] = "medium"
131131

132+
class AdvancedSearchSchema(BaseModel):
133+
question: str = Field(..., description="The question to ask Perplexity AI")
134+
user_location: Optional[Annotated[str, Field(..., description="The user location to use for the search")]] = "FR"
135+
132136
return [
133137
StructuredTool(
134138
name="perplexity_quick_search",
135139
description="A lightweight, cost-effective search model optimized for quick, grounded answers with real-time web search.",
136140
func=lambda question, user_location, search_context_size: integration.search_web(question=question, user_location=user_location, search_context_size=search_context_size, model="sonar"),
137-
args_schema=AskQuestionSchema,
141+
args_schema=SearchWebSchema,
138142
return_direct=True
139143
),
140144
StructuredTool(
141145
name="perplexity_search",
142146
description="Advanced search model designed for complex queries, delivering deeper content understanding with enhanced search result accuracy and 2x more search results than standard Sonar.",
143147
func=lambda question, user_location, search_context_size: integration.search_web(question=question, user_location=user_location, search_context_size=search_context_size, model="sonar-pro"),
144-
args_schema=AskQuestionSchema,
148+
args_schema=SearchWebSchema,
145149
return_direct=True
146150
),
147151
StructuredTool(
148152
name="perplexity_advanced_search",
149153
description="Advanced search model designed for complex queries, delivering deeper content understanding with enhanced search result accuracy and 2x more search results than standard Sonar with high context size",
150-
func=lambda question, user_location, search_context_size: integration.search_web(question=question, user_location=user_location, search_context_size=search_context_size, model="sonar-pro-search"),
151-
args_schema=AskQuestionSchema,
154+
func=lambda question, user_location: integration.search_web(question=question, user_location=user_location, search_context_size="high", model="sonar-pro"),
155+
args_schema=AdvancedSearchSchema,
152156
return_direct=True
153157
),
154158
]

src/core/perplexity/integrations/PerplexityIntegration_test.py

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,33 @@ def perplexity_integration() -> PerplexityIntegration:
1010
)
1111
return PerplexityIntegration(configuration)
1212

13-
def test_ask_question(perplexity_integration: PerplexityIntegration):
13+
def test_perplexity_quick_search(perplexity_integration: PerplexityIntegration):
1414
response = perplexity_integration.search_web(
1515
question="What is the capital of France?",
16+
user_location="FR",
17+
search_context_size="medium",
18+
model="sonar",
19+
)
20+
assert response is not None
21+
assert "France" in response
22+
23+
def test_perplexity_search(perplexity_integration: PerplexityIntegration):
24+
response = perplexity_integration.search_web(
25+
question="What is the capital of France?",
26+
user_location="FR",
27+
search_context_size="medium",
28+
model="sonar-pro",
29+
)
30+
assert response is not None
31+
assert "France" in response
32+
33+
34+
def test_perplexity_advanced_search(perplexity_integration: PerplexityIntegration):
35+
response = perplexity_integration.search_web(
36+
question="What is the capital of France?",
37+
user_location="FR",
38+
search_context_size="high",
39+
model="sonar-pro",
1640
)
1741
assert response is not None
1842
assert "France" in response

0 commit comments

Comments
 (0)