AnyLlmDocumentsUpdate
When an action is requested in the documents grid field, executes the requested action (Embed or Delete) on a document in the LLM. "Delete" removes the document from the LLM's document catalog, and "Embed" adds the vector embedding of the document to the current workspace.
- Type
- python
- Pack
- AnythingLLM
Source
import demistomock as demisto # noqa: F401
from CommonServerPython import * # noqa: F401
def UpdateEmbeddings(workspace: str):
# Had to duplicate automation since unable to execute_command with it
wrk = execute_command("anyllm-workspace-get", {"workspace": workspace})
embedds = []
for embed in wrk["workspace"][0]["documents"]:
gridrow = {"action": "", "title": json.loads(embed["metadata"])["title"], "pinned": embed["pinned"]}
embedds.append(gridrow)
grid = json.dumps({"anythingllmembeddings": embedds})
execute_command("setIncident", {"customFields": grid, "version": -1})
def main():
try:
args = demisto.args()
oldgrid = json.loads(args.get("old", ""))
newgrid = json.loads(args.get("new", ""))
if len(oldgrid) == 0 or len(newgrid) == 0:
return
folder = "custom-documents"
workspace = demisto.incident()["CustomFields"].get("anythingllmworkspace", "")
if workspace == "":
raise Exception("Workspace not defined")
index = 0
embeds = False
for old, new in zip(oldgrid, newgrid):
if old != new:
if new["action"] == "Embed":
new["action"] = ""
newgrid[index] = new
execute_command(
"anyllm-workspace-add-embedding", {"workspace": workspace, "folder": folder, "document": new["title"]}
)
embeds = True
elif new["action"] == "Delete":
newgrid.remove(new)
execute_command("anyllm-document-delete", {"folder": folder, "document": new["title"]})
index += 1
if embeds:
UpdateEmbeddings(workspace)
grid = json.dumps({"anythingllmdocuments": newgrid})
execute_command("setIncident", {"customFields": grid, "version": -1})
except Exception as ex:
demisto.error(traceback.format_exc())
return_error(f"AnyLlmDocumentsUpdate: error is - {ex}")
if __name__ in ("__main__", "__builtin__", "builtins"):
main()
README
When an action is requested in the documents grid field, executes the requested action (Embed or Delete) on a document in the LLM. “Delete” removes the document from the LLM’s document catalog, and “Embed” adds the vector embedding of the document to the current workspace
Script Data
| Name | Description |
|---|---|
| Script Type | python3 |
| Tags | field-change-triggered |
Inputs
| Argument Name | Description |
|---|---|
| new | |
| old |
Outputs
There are no outputs for this script.