YouTwo / src /yt_agent /tools.py
Tanuj
Move files to src folder
180024b
from smolagents import tool
from src.schemas import VectaraDocuments
from src.yt_rag.rag import fetch_documents_from_corpus, retrieve_chunks
@tool
def retrieve_tool(query: str, limit: int = 5, filter_by_id: str = None) -> dict[str, list[str] | str]:
"""
Retrieve chunks by relevance to a query
Args:
query: The query to retrieve chunks for
limit: The maximum number of chunks to retrieve (default: 5)
filter_by_id: A document ID to filter by
Returns:
A list of chunks, and a grounded summary
"""
chunks, vectara_summary = retrieve_chunks(query, limit, filter_by_id)
return {
"chunks": chunks,
"summary": vectara_summary
}
@tool
def inspect_database_tool() -> str:
"""
Inspect the vector database
Returns:
A list of documents
"""
results = fetch_documents_from_corpus(limit = 50)
documents = VectaraDocuments(documents = results["documents"])
id_list = [document["id"] for document in documents["documents"]]
final_string = "The following documents IDs are in the vector database:\n"
for i, id in enumerate(id_list):
final_string += f"{i+1}. {id}\n"
return final_string