Spaces:
Paused
Paused
| import json | |
| from pathlib import Path | |
| from unittest.mock import patch | |
| from openai.types.create_embedding_response import CreateEmbeddingResponse | |
| from kotaemon.agents.tools import ComponentTool, GoogleSearchTool, WikipediaTool | |
| from kotaemon.base import Document | |
| from kotaemon.embeddings import AzureOpenAIEmbeddings | |
| from kotaemon.indices.vectorindex import VectorIndexing, VectorRetrieval | |
| from kotaemon.storages import ChromaVectorStore, InMemoryDocumentStore | |
| with open(Path(__file__).parent / "resources" / "embedding_openai.json") as f: | |
| openai_embedding = CreateEmbeddingResponse.model_validate(json.load(f)) | |
| def test_google_tool(mock_google_search): | |
| tool = GoogleSearchTool() | |
| assert tool.name | |
| assert tool.description | |
| output = tool("What is Cinnamon AI") | |
| assert output | |
| def test_wikipedia_tool(): | |
| tool = WikipediaTool() | |
| assert tool.name | |
| assert tool.description | |
| output = tool("Cinnamon") | |
| assert output | |
| def test_pipeline_tool(tmp_path): | |
| db = ChromaVectorStore(path=str(tmp_path)) | |
| doc_store = InMemoryDocumentStore() | |
| embedding = AzureOpenAIEmbeddings( | |
| azure_deployment="embedding-deployment", | |
| azure_endpoint="https://test.openai.azure.com/", | |
| api_key="some-key", | |
| api_version="version", | |
| ) | |
| index_pipeline = VectorIndexing( | |
| vector_store=db, embedding=embedding, doc_store=doc_store | |
| ) | |
| retrieval_pipeline = VectorRetrieval( | |
| vector_store=db, doc_store=doc_store, embedding=embedding | |
| ) | |
| index_tool = ComponentTool( | |
| name="index_document", | |
| description="A tool to use to index a document to be searched later", | |
| component=index_pipeline, | |
| ) | |
| output = index_tool({"text": Document(text="Cinnamon AI")}) | |
| retrieval_tool = ComponentTool( | |
| name="search_document", | |
| description="A tool to use to search a document in a vectorstore", | |
| component=retrieval_pipeline, | |
| ) | |
| output = retrieval_tool("Cinnamon AI") | |
| assert output | |