Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 4 additions & 6 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -157,17 +157,15 @@ select = [
fixable = ["ALL"]
ignore = [
"D100", # Missing docstring in public module
"D101", # Missing docstring in public class
"D102", # Missing docstring in public method
"D104", # Missing docstring in public package
"D103", # Missing docstring in public function
"D106", # Missing docstring in public nested class
"ANN101", # Missing type annotation for self
"ANN102", # Missing type annotation for cls
]

[tool.ruff.lint.per-file-ignores]
"test_*.py" = [
"ANN201", # Missing return type annotation for public function
"D103", # Missing docstring in public function
]

[tool.ruff.format]
quote-style = "double"
indent-style = "space"
Expand Down
8 changes: 3 additions & 5 deletions src/unstract/sdk/adapter.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
import json
from typing import Any, Optional
from typing import Any

import requests
from requests.exceptions import ConnectionError, HTTPError

from unstract.sdk.adapters.utils import AdapterUtils
from unstract.sdk.constants import AdapterKeys, LogLevel, ToolEnv
from unstract.sdk.exceptions import SdkError
Expand All @@ -25,8 +24,7 @@ def __init__(
platform_host: str,
platform_port: str,
) -> None:
"""
Args:
"""Args:
tool (AbstractTool): Instance of AbstractTool
platform_host (str): Host of platform service
platform_port (str): Port of platform service
Expand Down Expand Up @@ -89,7 +87,7 @@ def _get_adapter_configuration(
@staticmethod
def get_adapter_config(
tool: BaseTool, adapter_instance_id: str
) -> Optional[dict[str, Any]]:
) -> dict[str, Any] | None:
"""Get adapter spec by the help of unstract DB tool.

This method first checks if the adapter_instance_id matches
Expand Down
19 changes: 6 additions & 13 deletions src/unstract/sdk/adapters/adapterkit.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
from typing import Any

from singleton_decorator import singleton

from unstract.sdk.adapters import AdapterDict
from unstract.sdk.adapters.base import Adapter
from unstract.sdk.adapters.constants import Common
Expand Down Expand Up @@ -34,16 +33,14 @@ def adapters(self) -> AdapterDict:

def get_adapter_class_by_adapter_id(self, adapter_id: str) -> Adapter:
if adapter_id in self._adapters:
adapter_class: Adapter = self._adapters[adapter_id][
Common.METADATA
][Common.ADAPTER]
adapter_class: Adapter = self._adapters[adapter_id][Common.METADATA][
Common.ADAPTER
]
return adapter_class
else:
raise RuntimeError(f"Couldn't obtain adapter for {adapter_id}")

def get_adapter_by_id(
self, adapter_id: str, *args: Any, **kwargs: Any
) -> Adapter:
def get_adapter_by_id(self, adapter_id: str, *args: Any, **kwargs: Any) -> Adapter:
"""Instantiates and returns a adapter.

Args:
Expand All @@ -55,17 +52,13 @@ def get_adapter_by_id(
Returns:
Adapter: Concrete impl of the `Adapter` base
"""
adapter_class: Adapter = self.get_adapter_class_by_adapter_id(
adapter_id
)
adapter_class: Adapter = self.get_adapter_class_by_adapter_id(adapter_id)
return adapter_class(*args, **kwargs)

def get_adapters_list(self) -> list[dict[str, Any]]:
adapters = []
for adapter_id, adapter_registry_metadata in self._adapters.items():
m: Adapter = adapter_registry_metadata[Common.METADATA][
Common.ADAPTER
]
m: Adapter = adapter_registry_metadata[Common.METADATA][Common.ADAPTER]
_id = m.get_id()
name = m.get_name()
adapter_type = m.get_adapter_type().name
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
import httpx
from llama_index.core.embeddings import BaseEmbedding
from llama_index.embeddings.azure_openai import AzureOpenAIEmbedding

from unstract.sdk.adapters.embedding.embedding_adapter import EmbeddingAdapter
from unstract.sdk.adapters.embedding.helper import EmbeddingHelper
from unstract.sdk.adapters.exceptions import AdapterError
Expand Down Expand Up @@ -71,5 +70,3 @@ def get_embedding_instance(self) -> BaseEmbedding:
return embedding
except Exception as e:
raise AdapterError(str(e))


5 changes: 2 additions & 3 deletions src/unstract/sdk/adapters/embedding/bedrock/src/bedrock.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@

from llama_index.core.embeddings import BaseEmbedding
from llama_index.embeddings.bedrock import BedrockEmbedding

from unstract.sdk.adapters.embedding.embedding_adapter import EmbeddingAdapter
from unstract.sdk.adapters.embedding.helper import EmbeddingHelper
from unstract.sdk.adapters.exceptions import AdapterError


class Constants:
MODEL = "model"
TIMEOUT = "timeout"
Expand All @@ -18,6 +18,7 @@ class Constants:
DEFAULT_TIMEOUT = 240
DEFAULT_MAX_RETRIES = 3


class Bedrock(EmbeddingAdapter):
def __init__(self, settings: dict[str, Any]):
super().__init__("Bedrock")
Expand Down Expand Up @@ -66,5 +67,3 @@ def get_embedding_instance(self) -> BaseEmbedding:
return embedding
except Exception as e:
raise AdapterError(str(e))


7 changes: 3 additions & 4 deletions src/unstract/sdk/adapters/embedding/embedding_adapter.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,10 @@

from llama_index.core import MockEmbedding
from llama_index.core.embeddings import BaseEmbedding

from unstract.sdk.adapters.base import Adapter
from unstract.sdk.adapters.embedding.helper import EmbeddingHelper
from unstract.sdk.adapters.enums import AdapterTypes

from unstract.sdk.adapters.embedding.helper import EmbeddingHelper

class EmbeddingAdapter(Adapter, ABC):
def __init__(self, name: str):
Expand Down Expand Up @@ -47,8 +46,8 @@ def get_embedding_instance(self, embed_config: dict[str, Any]) -> BaseEmbedding:
Raises exceptions for any error
"""
return MockEmbedding(embed_dim=1)

def test_connection(self) -> bool:
embedding = self.get_embedding_instance()
test_result: bool = EmbeddingHelper.test_embedding_instance(embedding)
return test_result
return test_result
5 changes: 2 additions & 3 deletions src/unstract/sdk/adapters/embedding/helper.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
import logging
from typing import Any, Optional
from typing import Any

from llama_index.core.embeddings import BaseEmbedding

from unstract.sdk.adapters.exceptions import AdapterError

logger = logging.getLogger(__name__)
Expand All @@ -28,7 +27,7 @@ def get_embedding_batch_size(config: dict[str, Any]) -> int:
return embedding_batch_size

@staticmethod
def test_embedding_instance(embedding: Optional[BaseEmbedding]) -> bool:
def test_embedding_instance(embedding: BaseEmbedding | None) -> bool:
try:
if embedding is None:
return False
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
import os
from typing import Any, Optional
from typing import Any

from llama_index.core.embeddings import BaseEmbedding
from llama_index.embeddings.huggingface import HuggingFaceEmbedding

from unstract.sdk.adapters.embedding.embedding_adapter import EmbeddingAdapter
from unstract.sdk.adapters.embedding.helper import EmbeddingHelper
from unstract.sdk.adapters.exceptions import AdapterError
Expand Down Expand Up @@ -45,7 +44,7 @@ def get_embedding_instance(self) -> BaseEmbedding:
embedding_batch_size = EmbeddingHelper.get_embedding_batch_size(
config=self.config
)
max_length: Optional[int] = (
max_length: int | None = (
int(self.config.get(Constants.MAX_LENGTH, 0))
if self.config.get(Constants.MAX_LENGTH)
else None
Expand All @@ -61,5 +60,3 @@ def get_embedding_instance(self) -> BaseEmbedding:
return embedding
except Exception as e:
raise AdapterError(str(e))


3 changes: 0 additions & 3 deletions src/unstract/sdk/adapters/embedding/ollama/src/ollama.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@

from llama_index.core.embeddings import BaseEmbedding
from llama_index.embeddings.ollama import OllamaEmbedding

from unstract.sdk.adapters.embedding.embedding_adapter import EmbeddingAdapter
from unstract.sdk.adapters.embedding.helper import EmbeddingHelper
from unstract.sdk.adapters.exceptions import AdapterError
Expand Down Expand Up @@ -55,5 +54,3 @@ def get_embedding_instance(self) -> BaseEmbedding:
return embedding
except Exception as e:
raise AdapterError(str(e))


3 changes: 0 additions & 3 deletions src/unstract/sdk/adapters/embedding/open_ai/src/open_ai.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
import httpx
from llama_index.core.embeddings import BaseEmbedding
from llama_index.embeddings.openai import OpenAIEmbedding

from unstract.sdk.adapters.embedding.embedding_adapter import EmbeddingAdapter
from unstract.sdk.adapters.exceptions import AdapterError

Expand Down Expand Up @@ -66,5 +65,3 @@ def get_embedding_instance(self) -> BaseEmbedding:
return embedding
except Exception as e:
raise AdapterError(str(e))


3 changes: 0 additions & 3 deletions src/unstract/sdk/adapters/embedding/palm/src/palm.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@

from llama_index.core.embeddings import BaseEmbedding
from llama_index.embeddings.google import GooglePaLMEmbedding

from unstract.sdk.adapters.embedding.embedding_adapter import EmbeddingAdapter
from unstract.sdk.adapters.embedding.helper import EmbeddingHelper
from unstract.sdk.adapters.exceptions import AdapterError
Expand Down Expand Up @@ -55,5 +54,3 @@ def get_embedding_instance(self) -> BaseEmbedding:
return embedding
except Exception as e:
raise AdapterError(str(e))


Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@

from llama_index.core.embeddings import BaseEmbedding
from llama_index.embeddings.fastembed import FastEmbedEmbedding

from unstract.sdk.adapters.embedding.embedding_adapter import EmbeddingAdapter
from unstract.sdk.adapters.exceptions import AdapterError

Expand Down Expand Up @@ -44,5 +43,3 @@ def get_embedding_instance(self) -> BaseEmbedding:
return embedding
except Exception as e:
raise AdapterError(str(e))


16 changes: 7 additions & 9 deletions src/unstract/sdk/adapters/embedding/vertex_ai/src/vertex_ai.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,21 +4,21 @@

from google.auth.transport import requests as google_requests
from google.oauth2.service_account import Credentials

from llama_index.core.embeddings import BaseEmbedding
from llama_index.embeddings.vertex import VertexTextEmbedding

from unstract.sdk.adapters.embedding.embedding_adapter import EmbeddingAdapter
from unstract.sdk.adapters.embedding.helper import EmbeddingHelper
from unstract.sdk.adapters.exceptions import AdapterError
from unstract.sdk.exceptions import EmbeddingError


class Constants:
MODEL = "model"
PROJECT = "project"
JSON_CREDENTIALS = "json_credentials"
EMBED_MODE = "embed_mode"


class VertexAIEmbedding(EmbeddingAdapter):
def __init__(self, settings: dict[str, Any]):
super().__init__("Bedrock")
Expand All @@ -45,7 +45,7 @@ def get_provider() -> str:
@staticmethod
def get_icon() -> str:
return "/icons/adapter-icons/VertexAI.png"

def get_embedding_instance(self) -> BaseEmbedding:
try:
embedding_batch_size = EmbeddingHelper.get_embedding_batch_size(
Expand All @@ -69,11 +69,9 @@ def get_embedding_instance(self) -> BaseEmbedding:
)
return embedding
except json.JSONDecodeError:
raise EmbeddingError(
"Credentials is not a valid service account JSON, "
"please provide a valid JSON."
)
raise EmbeddingError(
"Credentials is not a valid service account JSON, "
"please provide a valid JSON."
)
except Exception as e:
raise AdapterError(str(e))


6 changes: 3 additions & 3 deletions src/unstract/sdk/adapters/llm/anthropic/src/anthropic.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
from llama_index.core.llms import LLM
from llama_index.llms.anthropic import Anthropic
from llama_index.llms.anthropic.base import DEFAULT_ANTHROPIC_MAX_TOKENS

from unstract.sdk.adapters.exceptions import AdapterError
from unstract.sdk.adapters.llm.constants import LLMKeys
from unstract.sdk.adapters.llm.llm_adapter import LLMAdapter
Expand All @@ -23,6 +22,7 @@ class Constants:
ENABLE_THINKING = "enable_thinking"
BUDGET_TOKENS = "budget_tokens"


class AnthropicLLM(LLMAdapter):
def __init__(self, settings: dict[str, Any]):
super().__init__("Anthropic")
Expand Down Expand Up @@ -63,7 +63,7 @@ def get_llm_instance(self) -> LLM:
budget_tokens = self.config.get(Constants.BUDGET_TOKENS)
thinking_dict = {"type": "enabled", "budget_tokens": budget_tokens}
temperature = 1

try:
llm: LLM = Anthropic(
model=str(self.config.get(Constants.MODEL)),
Expand All @@ -76,7 +76,7 @@ def get_llm_instance(self) -> LLM:
),
temperature=temperature,
max_tokens=max_tokens,
thinking_dict=thinking_dict
thinking_dict=thinking_dict,
)
return llm
except Exception as e:
Expand Down
9 changes: 4 additions & 5 deletions src/unstract/sdk/adapters/llm/bedrock/src/bedrock.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
import os
from typing import Any, Optional
from typing import Any

from llama_index.core.llms import LLM
from llama_index.llms.bedrock import Bedrock

from unstract.sdk.adapters.exceptions import AdapterError
from unstract.sdk.adapters.llm.constants import LLMKeys
from unstract.sdk.adapters.llm.llm_adapter import LLMAdapter
Expand Down Expand Up @@ -47,11 +46,11 @@ def get_provider() -> str:

@staticmethod
def get_icon() -> str:
return "/icons/adapter-icons/Bedrock.png"
return "/icons/adapter-icons/Bedrock.png"

def get_llm_instance(self) -> LLM:
try:
context_size: Optional[int] = (
context_size: int | None = (
int(self.config.get(Constants.CONTEXT_SIZE, 0))
if self.config.get(Constants.CONTEXT_SIZE)
else None
Expand All @@ -76,4 +75,4 @@ def get_llm_instance(self) -> LLM:
)
return llm
except Exception as e:
raise AdapterError(str(e))
raise AdapterError(str(e))
Loading