AnyLlmWorkspaceEmbeddingsUpdate

Executes the actions taken on an embedded document in the grid field. "Pin" adds the entire document to the LLM's conversation context. Care should be taken not to pin very large documents that may impact the conversation's context negatively. "Unpin" removes the pinning of the document to the workspace. "Remove" removes the document's embedding from the workspace.

python · Anything LLM

Source

import demistomock as demisto  # noqa: F401
from CommonServerPython import *  # noqa: F401


def main():
    try:
        args = demisto.args()
        oldgrid = json.loads(args.get("old", ""))
        if len(oldgrid) == 0:
            return
        newgrid = json.loads(args.get("new", ""))
        folder = "custom-documents"
        workspace = demisto.incident()["CustomFields"].get("anythingllmworkspace", "")
        if workspace == "":
            raise Exception("Workspace not defined")

        index = 0
        updated = False
        for old, new in zip(oldgrid, newgrid):
            if old != new:
                if new["action"] in ["Pin", "Unpin"]:
                    if new["action"] == "Pin":
                        status = "true"
                    else:
                        status = "false"
                    new["pinned"] = status
                    new["action"] = ""
                    newgrid[index] = new
                    execute_command(
                        "anyllm-workspace-pin",
                        {"workspace": workspace, "folder": folder, "document": new["title"], "status": status},
                    )
                elif new["action"] == "Remove":
                    newgrid.remove(new)
                    execute_command(
                        "anyllm-workspace-delete-embedding", {"workspace": workspace, "folder": folder, "document": new["title"]}
                    )
                updated = True
            index += 1

        if updated:
            grid = json.dumps({"anythingllmembeddings": newgrid})
            execute_command("setIncident", {"customFields": grid, "version": -1})
    except Exception as ex:
        demisto.error(traceback.format_exc())
        return_error(f"AnyLlmWorkspaceEmbeddingsUpdate: error is - {ex}")


if __name__ in ("__main__", "__builtin__", "builtins"):
    main()

README

Executes the actions taken on an embedded document in the grid field. “Pin” adds the entire document to the LLM’s conversation context. Care should be taken not to pin very large documents that may impact the conversation’s context negatively. “Unpin” removes the pinning of the document to the workspace. “Remove” removes the document’s embedding from the workspace

Script Data


Name Description
Script Type python3
Tags field-change-triggered

Inputs


Argument Name Description
new field new value
old field old value

Outputs


There are no outputs for this script.