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
1 change: 1 addition & 0 deletions backend/adapter_processor/constants.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ class AdapterKeys:
IS_DEFAULT = "is_default"
LLM = "LLM"
X2TEXT = "X2TEXT"
OCR = "OCR"
VECTOR_DB = "VECTOR_DB"
EMBEDDING = "EMBEDDING"
NAME = "name"
Expand Down
1 change: 1 addition & 0 deletions backend/adapter_processor/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@ def list(
or adapter_type == AdapterKeys.EMBEDDING
or adapter_type == AdapterKeys.VECTOR_DB
or adapter_type == AdapterKeys.X2TEXT
or adapter_type == AdapterKeys.OCR
):
json_schema = AdapterProcessor.get_all_supported_adapters(
type=adapter_type
Expand Down
103 changes: 53 additions & 50 deletions backend/pdm.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions backend/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,8 @@ dependencies = [
"python-socketio==5.9.0", # For log_events
"social-auth-app-django==5.3.0", # For OAuth
"social-auth-core==4.4.2", # For OAuth
"unstract-sdk~=0.11.1",
"unstract-adapters~=0.2.1",
"unstract-sdk~=0.11.2",
"unstract-adapters~=0.2.2",
# ! IMPORTANT!
# Indirect local dependencies usually need to be added in their own projects
# as: https://pdm-project.org/latest/usage/dependency/#local-dependencies.
Expand Down
10 changes: 10 additions & 0 deletions backend/tool_instance/tool_instance_helper.py
Original file line number Diff line number Diff line change
Expand Up @@ -140,6 +140,7 @@ def update_metadata_with_adapter_instances(
embedding_properties = schema.get_embedding_adapter_properties()
vector_db_properties = schema.get_vector_db_adapter_properties()
x2text_properties = schema.get_text_extractor_adapter_properties()
ocr_properties = schema.get_ocr_adapter_properties()

for adapter_key, adapter_property in llm_properties.items():
ToolInstanceHelper.update_metadata_with_adapter_properties(
Expand Down Expand Up @@ -173,6 +174,13 @@ def update_metadata_with_adapter_instances(
adapter_type=AdapterTypes.X2TEXT,
)

for adapter_key, adapter_property in ocr_properties.items():
ToolInstanceHelper.update_metadata_with_adapter_properties(
metadata=metadata,
adapter_key=adapter_key,
adapter_property=adapter_property,
adapter_type=AdapterTypes.OCR,
)
@staticmethod
def get_altered_metadata(
tool_instance: ToolInstance,
Expand Down Expand Up @@ -257,6 +265,8 @@ def update_metadata_with_default_adapter(
properties = schema_spec.get_vector_db_adapter_properties()
if adapter_type == AdapterTypes.X2TEXT:
properties = schema_spec.get_text_extractor_adapter_properties()
if adapter_type == AdapterTypes.OCR:
properties = schema_spec.get_ocr_adapter_properties()
for adapter_key, adapter_property in properties.items():
metadata_key_for_id = adapter_property.get(
AdapterPropertyKey.ADAPTER_ID_KEY, AdapterPropertyKey.ADAPTER_ID
Expand Down
11 changes: 11 additions & 0 deletions backend/tool_instance/tool_processor.py
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@ def update_schema_with_adapter_configurations(
embedding_keys = schema.get_embedding_adapter_properties_keys()
vector_db_keys = schema.get_vector_db_adapter_properties_keys()
x2text_keys = schema.get_text_extractor_adapter_properties_keys()
ocr_keys = schema.get_ocr_adapter_properties_keys()

if llm_keys:
adapters = AdapterProcessor.get_adapters_by_type(
Expand Down Expand Up @@ -119,6 +120,16 @@ def update_schema_with_adapter_configurations(
)
schema.properties[key]["enum"] = list(adapter_names)

if ocr_keys:
adapters = AdapterProcessor.get_adapters_by_type(
AdapterTypes.OCR, user=user
)
for key in ocr_keys:
adapter_names = map(
lambda adapter: str(adapter.adapter_name), adapters
)
schema.properties[key]["enum"] = list(adapter_names)

@staticmethod
def get_tool_list() -> list[dict[str, Any]]:
"""Function to get a list of tools."""
Expand Down
10 changes: 10 additions & 0 deletions frontend/src/components/navigations/side-nav-bar/SideNavBar.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,16 @@ const SideNavBar = ({ collapsed }) => {
},
{
id: 3.5,
title: "OCR",
description: "Setup platform wide access to OCR services",
image: EmbeddingIcon,
path: `/${orgName}/settings/ocr`,
active: window.location.pathname.startsWith(
`/${orgName}/settings/ocr`
),
},
{
id: 3.6,
title: "Platform",
description: "Settings for the platform",
image: PlatformSettingsIcon,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,13 +21,15 @@ const titles = {
vector_db: "Vector DBs",
embedding: "Embeddings",
x2text: "Text Extractor",
ocr: "OCR",
};

const btnText = {
llm: "New LLM Profile",
vector_db: "New Vector DB Profile",
embedding: "New Embedding Profile",
x2text: "New Text Extractor",
ocr: "New OCR",
};

function ToolSettings({ type }) {
Expand Down
4 changes: 4 additions & 0 deletions frontend/src/routes/Router.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,10 @@ function Router() {
path="settings/textExtractor"
element={<ToolsSettingsPage type="x2text" />}
/>
<Route
path="settings/ocr"
element={<ToolsSettingsPage type="ocr" />}
/>
<Route path="settings" element={<SettingsPage />} />
<Route path="settings/platform" element={<PlatformSettings />} />
<Route path="settings/triad" element={<DefaultTriad />} />
Expand Down
Loading