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 |