QueryEnhancer.predict:v0
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
import weave
from ftlangdetect.detect import detectas detect_language
from typing import Dict
from typing import Any
@weave.op()
async def predict(self, query: str, model: str = "gpt-4o-mini") -> Dict[str, Any]:
"""
Predict the language, generate search queries, and get intent predictions for a given query.
Args:
query (str): The input query to process.
model (str, optional): The model to use. Defaults to "gpt-4o-mini".
Returns:
Dict[str, Any]: A dictionary containing the original query, detected language, generated search queries, and intent predictions.
"""
language = detect_language(query.replace("\n", " "))["lang"]
search_queries = await self.generate_litellm_queries(query, model)
intents = await self.get_intent_prediction(query, model=model)
return {
"query": query,
"language": language,
"search_queries": search_queries,
"intents": intents["intents"],
}