Spaces:
Sleeping
Sleeping
File size: 866 Bytes
f6662f9 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
from langchain_community.retrievers import BM25Retriever
from smolagents import Tool
class RetrieverTool(Tool):
name = "retriever"
description = "Retrieves relevant chunks from the PlantUML reference guide."
inputs = {
"query": {
"type": "string",
"description": "The information to search for in the PlantUML documentation.",
}
}
output_type = "string"
def __init__(self, docs, **kwargs):
super().__init__(**kwargs)
self.retriever = BM25Retriever.from_documents(docs, k=10)
def forward(self, query: str) -> str:
assert isinstance(query, str), "Query must be a string"
docs = self.retriever.invoke(query)
return "\nRetrieved documents:\n" + "".join(
[f"\n\n===== Document {i} =====\n{doc.page_content}" for i, doc in enumerate(docs)]
) |