Add utilities to clean and resolve multiple web search queries from input samples
This commit is contained in:
@@ -84,6 +84,42 @@ def _extract_remember_content(message: str) -> Optional[str]:
|
|||||||
return None
|
return None
|
||||||
|
|
||||||
|
|
||||||
|
def _clean_search_queries(raw: Any, fallback: str) -> list[str]:
|
||||||
|
values = raw if isinstance(raw, list) else [raw]
|
||||||
|
cleaned: list[str] = []
|
||||||
|
seen = set()
|
||||||
|
for item in values:
|
||||||
|
text = " ".join(str(item or "").split()).strip()
|
||||||
|
if not text:
|
||||||
|
continue
|
||||||
|
key = text.casefold()
|
||||||
|
if key in seen:
|
||||||
|
continue
|
||||||
|
seen.add(key)
|
||||||
|
cleaned.append(text[:300])
|
||||||
|
if len(cleaned) >= 5:
|
||||||
|
break
|
||||||
|
fallback_text = " ".join(str(fallback or "").split()).strip()
|
||||||
|
if fallback_text and not cleaned:
|
||||||
|
cleaned.append(fallback_text[:300])
|
||||||
|
return cleaned
|
||||||
|
|
||||||
|
|
||||||
|
def _resolve_web_search_inputs(sample_inputs: Dict[str, Any], message: str) -> tuple[str, list[str]]:
|
||||||
|
raw_queries = sample_inputs.get("web_search_queries")
|
||||||
|
if raw_queries is None:
|
||||||
|
raw_queries = sample_inputs.get("search_queries")
|
||||||
|
raw_query = sample_inputs.get("web_search_query") or sample_inputs.get("search_query")
|
||||||
|
queries = _clean_search_queries(raw_queries if raw_queries is not None else raw_query, message)
|
||||||
|
if raw_query:
|
||||||
|
raw_query_text = " ".join(str(raw_query).split()).strip()
|
||||||
|
if raw_query_text and raw_query_text.casefold() not in {item.casefold() for item in queries}:
|
||||||
|
queries.insert(0, raw_query_text[:300])
|
||||||
|
queries = queries[:5]
|
||||||
|
query = queries[0] if queries else str(message or "")[:300]
|
||||||
|
return query, queries or [query]
|
||||||
|
|
||||||
|
|
||||||
def initialize_agent_system() -> None:
|
def initialize_agent_system() -> None:
|
||||||
Base.metadata.create_all(bind=engine)
|
Base.metadata.create_all(bind=engine)
|
||||||
db = SessionLocal()
|
db = SessionLocal()
|
||||||
|
|||||||
Reference in New Issue
Block a user