mirror of
https://github.com/crewAIInc/crewAI.git
synced 2026-01-28 01:28:14 +00:00
* feat: add crewai-tools workspace structure * Squashed 'temp-crewai-tools/' content from commit 9bae5633 git-subtree-dir: temp-crewai-tools git-subtree-split: 9bae56339096cb70f03873e600192bd2cd207ac9 * feat: configure crewai-tools workspace package with dependencies * fix: apply ruff auto-formatting to crewai-tools code * chore: update lockfile * fix: don't allow tool tests yet * fix: comment out extra pytest flags for now * fix: remove conflicting conftest.py from crewai-tools tests * fix: resolve dependency conflicts and test issues - Pin vcrpy to 7.0.0 to fix pytest-recording compatibility - Comment out types-requests to resolve urllib3 conflict - Update requests requirement in crewai-tools to >=2.32.0
39 lines
1.0 KiB
Python
39 lines
1.0 KiB
Python
from typing import Any, Optional
|
|
|
|
from crewai_tools.rag.core import RAG
|
|
from crewai_tools.tools.rag.rag_tool import Adapter
|
|
|
|
|
|
class RAGAdapter(Adapter):
|
|
def __init__(
|
|
self,
|
|
collection_name: str = "crewai_knowledge_base",
|
|
persist_directory: Optional[str] = None,
|
|
embedding_model: str = "text-embedding-3-small",
|
|
top_k: int = 5,
|
|
embedding_api_key: Optional[str] = None,
|
|
**embedding_kwargs,
|
|
):
|
|
super().__init__()
|
|
|
|
# Prepare embedding configuration
|
|
embedding_config = {"api_key": embedding_api_key, **embedding_kwargs}
|
|
|
|
self._adapter = RAG(
|
|
collection_name=collection_name,
|
|
persist_directory=persist_directory,
|
|
embedding_model=embedding_model,
|
|
top_k=top_k,
|
|
embedding_config=embedding_config,
|
|
)
|
|
|
|
def query(self, question: str) -> str:
|
|
return self._adapter.query(question)
|
|
|
|
def add(
|
|
self,
|
|
*args: Any,
|
|
**kwargs: Any,
|
|
) -> None:
|
|
self._adapter.add(*args, **kwargs)
|