Spaces:
Runtime error
Runtime error
from smolagents import Tool | |
from typing import Any, Optional | |
class SimpleTool(Tool): | |
name = "search_helios_documentation" | |
description = "Recherche dans la documentation Helios - fonction simplifi\u00e9e." | |
inputs = {'query': {'type': 'string', 'description': 'requête de recherche'}, 'max_results': {'type': 'integer', 'nullable': True, 'description': 'Nombre maximum de résultats'}} | |
output_type = "string" | |
def forward(self, query: str, max_results: int = 5) -> str: | |
""" | |
Recherche dans la documentation Helios - fonction simplifiée. | |
Args: | |
query: requête de recherche | |
max_results: Nombre maximum de résultats | |
Returns: | |
Liste des documents trouvés | |
""" | |
from langchain_chroma import Chroma | |
from langchain_openai import OpenAIEmbeddings, ChatOpenAI | |
embedding_function=OpenAIEmbeddings() | |
persist_directory = "chroma_db" | |
vectorstore = Chroma(persist_directory=persist_directory, embedding_function=embedding_function) | |
retriever = vectorstore.as_retriever(search_kwargs={"k": max_results}) | |
# Récupérer les documents pertinents | |
relevant_docs = retriever.get_relevant_documents(query, filter={"source": "bugs"}) | |
unique_docs = [] | |
seen = set() | |
for doc in relevant_docs: | |
if doc.page_content not in seen: | |
unique_docs.append({'source':doc.metadata.get('source', 'Non spécifiée'), 'content':doc.page_content}) | |
seen.add(doc.page_content) | |
return unique_docs |