|
@@ -1,5 +1,7 @@
|
|
import { ipcRenderer } from 'electron';
|
|
import { ipcRenderer } from 'electron';
|
|
import { writeStream } from '../services/fs';
|
|
import { writeStream } from '../services/fs';
|
|
|
|
+import { isExecError } from '../utils/error';
|
|
|
|
+import { parseExecError } from '../utils/error';
|
|
|
|
|
|
export async function computeImageEmbedding(
|
|
export async function computeImageEmbedding(
|
|
imageData: Uint8Array
|
|
imageData: Uint8Array
|
|
@@ -14,6 +16,13 @@ export async function computeImageEmbedding(
|
|
tempInputFilePath
|
|
tempInputFilePath
|
|
);
|
|
);
|
|
return embedding;
|
|
return embedding;
|
|
|
|
+ } catch (err) {
|
|
|
|
+ if (isExecError(err)) {
|
|
|
|
+ const parsedExecError = parseExecError(err);
|
|
|
|
+ throw Error(parsedExecError);
|
|
|
|
+ } else {
|
|
|
|
+ throw err;
|
|
|
|
+ }
|
|
} finally {
|
|
} finally {
|
|
if (tempInputFilePath) {
|
|
if (tempInputFilePath) {
|
|
await ipcRenderer.invoke('remove-temp-file', tempInputFilePath);
|
|
await ipcRenderer.invoke('remove-temp-file', tempInputFilePath);
|
|
@@ -24,6 +33,18 @@ export async function computeImageEmbedding(
|
|
export async function computeTextEmbedding(
|
|
export async function computeTextEmbedding(
|
|
text: string
|
|
text: string
|
|
): Promise<Float32Array> {
|
|
): Promise<Float32Array> {
|
|
- const embedding = await ipcRenderer.invoke('compute-text-embedding', text);
|
|
|
|
- return embedding;
|
|
|
|
|
|
+ try {
|
|
|
|
+ const embedding = await ipcRenderer.invoke(
|
|
|
|
+ 'compute-text-embedding',
|
|
|
|
+ text
|
|
|
|
+ );
|
|
|
|
+ return embedding;
|
|
|
|
+ } catch (err) {
|
|
|
|
+ if (isExecError(err)) {
|
|
|
|
+ const parsedExecError = parseExecError(err);
|
|
|
|
+ throw Error(parsedExecError);
|
|
|
|
+ } else {
|
|
|
|
+ throw err;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
}
|
|
}
|