Source code for steamship.agents.tools.question_answering.vector_search_tool

"""Answers questions with the assistance of a VectorSearch plugin."""
from abc import ABC
from typing import Optional, cast

from steamship import Steamship
from steamship.agents.schema import Tool
from steamship.data.plugin.index_plugin_instance import EmbeddingIndexPluginInstance


[docs] class VectorSearchTool(Tool, ABC): """Abstract Base Class that provides helper data for a tool that uses Vector Search.""" embedding_index_handle: Optional[str] = "embedding-index" embedding_index_version: Optional[str] = None embedding_index_config: Optional[dict] = { "embedder": { "plugin_handle": "openai-embedder", "plugin_instance_handle": "text-embedding-ada-002", "fetch_if_exists": True, "config": {"model": "text-embedding-ada-002", "dimensionality": 1536}, } } embedding_index_instance_handle: str = "default-embedding-index"
[docs] def get_embedding_index(self, client: Steamship) -> EmbeddingIndexPluginInstance: index = client.use_plugin( plugin_handle=self.embedding_index_handle, instance_handle=self.embedding_index_instance_handle, config=self.embedding_index_config, fetch_if_exists=True, ) return cast(EmbeddingIndexPluginInstance, index)