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
46 changes: 14 additions & 32 deletions changai/changai/api/v2/auto_gen_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -197,11 +197,11 @@ def _extract_existing_keys(data: List[Any]) -> Set[tuple]:
return keys


def _build_master_data_row(entity_type: str, entity_id: str) -> Dict[str, Any]:
def _build_master_data_row(entity_type: str, entity_id: str,title_field:str) -> Dict[str, Any]:
return {
"entity_type": entity_type,
"entity_id": entity_id,
"filters": {"field": "name", "value": entity_id},
"filters": {"field": title_field if title_field else "name", "value": entity_id},
}


Expand All @@ -211,30 +211,6 @@ def _get_master_data_filters(last_sync: Optional[str]) -> Dict[str, Any]:
return {"creation": [">", last_sync]}


def _sync_module_master_data(
mod: str,
data: List[Dict[str, Any]],
existing_keys: Set[tuple],
base_filters: Dict[str, Any],
) -> tuple[int, int]:
entity_type = f"tab{mod}"
records = frappe.get_all(mod, filters=base_filters, fields=["name"])

added_count = 0
fetched_count = len(records)

for rec in records:
key = (entity_type, rec.name)
if key in existing_keys:
continue

data.append(_build_master_data_row(entity_type, rec.name))
existing_keys.add(key)
added_count += 1

return fetched_count, added_count


@frappe.whitelist(allow_guest=False)
def update_masterdata():
frappe.enqueue(
Expand All @@ -252,7 +228,7 @@ def update_masterdata():
"message":"Master Data update running in RQ Job"
}


@frappe.whitelist(allow_guest=False)
def sync_master_data_smart() -> Dict[str, Any]:
file_name = "master_data.yaml"
payload = _read_filedoctype(file_name, RAG_FOLDER)
Expand All @@ -279,9 +255,13 @@ def sync_master_data_smart() -> Dict[str, Any]:
for row in existing_rows
if row.get("entity_id")
}

live_records = frappe.get_all(mod, fields=["name"])
live_ids = {rec.name for rec in live_records if rec.get("name")}
meta_doc = frappe.get_meta(mod)
title_field = meta_doc.title_field or "name"
fields =["name"]
if title_field !="name":
fields.append(title_field)
live_records = frappe.get_all(mod, fields=fields,limit_page_length=0)
live_ids = {rec.get("name") for rec in live_records if rec.get("name")}

fetched_by_module[mod] = len(live_ids)

Expand All @@ -294,8 +274,10 @@ def sync_master_data_smart() -> Dict[str, Any]:
added_total += len(added_ids)
removed_total += len(removed_ids)

for entity_id in sorted(live_ids):
rebuilt_rows.append(_build_master_data_row(entity_type, entity_id))
for rec in live_records:
entity_id = rec.get(title_field) if title_field in rec else rec.get("name")
rebuilt_rows.append(_build_master_data_row(entity_type, entity_id,title_field))
return rebuilt_rows

final_data = rebuilt_rows

Expand Down
15 changes: 12 additions & 3 deletions changai/changai/api/v2/text2sql_pipeline_v2.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,9 @@
import yaml
import re
import os
import pickle
import numpy as np
import os
import time
import base64
import sqlglot
Expand Down Expand Up @@ -324,9 +327,6 @@ def download_model_from_ui():
frappe.log_error(frappe.get_traceback(), "Embedding Model Download Failed")
frappe.throw(_("Model download failed: {0}\n Check Quick Start Guide Here 👇:\n{1}").format(str(e),CHANGAI_GUIDE_LINK))

import os
import pickle
import numpy as np

_FIELD_DOCS_CACHE = None
_FIELD_EMBS_CACHE = None
Expand Down Expand Up @@ -2621,3 +2621,12 @@ def _word_is_erp(word: str) -> tuple[bool, str]:

return False, ""

@frappe.whitelist(allow_guest=False)
def test():
test_docs=["Customer","Employee","Item","Sales Order"]
result = []
for doc in test_docs:
meta = frappe.get_meta(doc)
title_field = meta.title_field
result.append((doc, title_field))
return result
Loading