search_bot / app /agent /analyzer.py
pavan10504's picture
Upload 24 files
c7968ae verified
from app.agent.gemini_client import get_client, json_generation_config
import json
INTENT_SCHEMA = {
"type": "object",
"properties": {
"domain": { "type": "string" },
"entity": { "type": "string" },
"refined_query": { "type": "string" }
},
"required": ["domain", "entity", "refined_query"]
}
def analyze_query(query: str):
client = get_client()
prompt = f"""
You are a search query optimization assistant.
User query: "{query}"
Your task:
1. Identify the domain (e.g., technology, automotive, science, business, etc.)
2. Extract the main entity being asked about
3. Refine the query for optimal web search results by:
- Making it more specific and searchable
- Adding relevant keywords (like "2024", "2025", "latest", "current" for recent info)
- Removing conversational filler words
- Keeping it concise and search-engine friendly
Examples:
- "what are the new tesla cars" → "latest Tesla car models 2024 2025"
- "tell me about iphone features" → "iPhone 15 Pro features specifications"
- "best laptops" → "best laptops 2024 reviews"
Return the refined query that will get the best search results.
"""
response = client.models.generate_content(
model="gemini-flash-latest",
contents=prompt,
config=json_generation_config(schema=INTENT_SCHEMA)
)
# Gemini now guarantees valid JSON
return json.loads(response.text)