modelfusion 0.53.1 → 0.54.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/browser/convertAudioChunksToBase64.cjs +8 -0
- package/browser/convertAudioChunksToBase64.d.ts +4 -0
- package/browser/convertAudioChunksToBase64.js +4 -0
- package/browser/convertBlobToBase64.cjs +23 -0
- package/browser/convertBlobToBase64.d.ts +1 -0
- package/browser/convertBlobToBase64.js +19 -0
- package/{ui → browser}/index.cjs +5 -0
- package/browser/index.d.ts +6 -0
- package/browser/index.js +6 -0
- package/browser/invokeFlow.cjs +23 -0
- package/browser/invokeFlow.d.ts +8 -0
- package/browser/invokeFlow.js +19 -0
- package/{event-source → browser}/readEventSource.cjs +8 -3
- package/{event-source → browser}/readEventSource.d.ts +3 -1
- package/{event-source → browser}/readEventSource.js +8 -3
- package/{event-source → browser}/readEventSourceStream.cjs +1 -1
- package/{event-source → browser}/readEventSourceStream.js +1 -1
- package/core/FunctionOptions.d.ts +4 -3
- package/event-source/createEventSourceStream.cjs +7 -3
- package/event-source/createEventSourceStream.js +7 -3
- package/event-source/index.cjs +0 -2
- package/event-source/index.d.ts +0 -2
- package/event-source/index.js +0 -2
- package/index.cjs +0 -1
- package/index.d.ts +0 -1
- package/index.js +0 -1
- package/model-function/embed/embed.cjs +16 -0
- package/model-function/embed/embed.d.ts +16 -0
- package/model-function/embed/embed.js +16 -0
- package/model-function/generate-image/generateImage.cjs +12 -3
- package/model-function/generate-image/generateImage.d.ts +12 -3
- package/model-function/generate-image/generateImage.js +12 -3
- package/model-function/generate-speech/generateSpeech.cjs +16 -1
- package/model-function/generate-speech/generateSpeech.d.ts +16 -1
- package/model-function/generate-speech/generateSpeech.js +16 -1
- package/model-function/generate-speech/streamSpeech.cjs +22 -1
- package/model-function/generate-speech/streamSpeech.d.ts +22 -1
- package/model-function/generate-speech/streamSpeech.js +22 -1
- package/model-function/generate-structure/generateStructure.cjs +41 -0
- package/model-function/generate-structure/generateStructure.d.ts +41 -0
- package/model-function/generate-structure/generateStructure.js +41 -0
- package/model-function/generate-structure/generateStructureOrText.cjs +62 -0
- package/model-function/generate-structure/generateStructureOrText.d.ts +62 -0
- package/model-function/generate-structure/generateStructureOrText.js +62 -0
- package/model-function/generate-structure/streamStructure.cjs +72 -1
- package/model-function/generate-structure/streamStructure.d.ts +68 -1
- package/model-function/generate-structure/streamStructure.js +72 -1
- package/model-function/generate-text/generateText.cjs +14 -6
- package/model-function/generate-text/generateText.d.ts +14 -6
- package/model-function/generate-text/generateText.js +14 -6
- package/model-function/generate-text/streamText.cjs +25 -0
- package/model-function/generate-text/streamText.d.ts +25 -0
- package/model-function/generate-text/streamText.js +25 -0
- package/model-function/generate-transcription/generateTranscription.cjs +10 -5
- package/model-function/generate-transcription/generateTranscription.d.ts +10 -5
- package/model-function/generate-transcription/generateTranscription.js +10 -5
- package/model-function/tokenize-text/Tokenizer.d.ts +27 -3
- package/package.json +13 -4
- package/server/fastify/AssetStorage.cjs +2 -0
- package/server/fastify/AssetStorage.d.ts +17 -0
- package/server/fastify/AssetStorage.js +1 -0
- package/server/fastify/DefaultFlow.cjs +22 -0
- package/server/fastify/DefaultFlow.d.ts +16 -0
- package/server/fastify/DefaultFlow.js +18 -0
- package/server/fastify/FileSystemAssetStorage.cjs +60 -0
- package/server/fastify/FileSystemAssetStorage.d.ts +19 -0
- package/server/fastify/FileSystemAssetStorage.js +56 -0
- package/server/fastify/FileSystemLogger.cjs +48 -0
- package/server/fastify/FileSystemLogger.d.ts +18 -0
- package/server/fastify/FileSystemLogger.js +44 -0
- package/server/fastify/Flow.cjs +2 -0
- package/server/fastify/Flow.d.ts +9 -0
- package/server/fastify/Flow.js +1 -0
- package/server/fastify/FlowRun.cjs +71 -0
- package/server/fastify/FlowRun.d.ts +28 -0
- package/server/fastify/FlowRun.js +67 -0
- package/server/fastify/FlowSchema.cjs +2 -0
- package/server/fastify/FlowSchema.d.ts +5 -0
- package/server/fastify/FlowSchema.js +1 -0
- package/server/fastify/Logger.cjs +2 -0
- package/server/fastify/Logger.d.ts +13 -0
- package/server/fastify/Logger.js +1 -0
- package/server/fastify/PathProvider.cjs +34 -0
- package/server/fastify/PathProvider.d.ts +12 -0
- package/server/fastify/PathProvider.js +30 -0
- package/server/fastify/index.cjs +24 -0
- package/server/fastify/index.d.ts +8 -0
- package/server/fastify/index.js +8 -0
- package/server/fastify/modelFusionFlowPlugin.cjs +102 -0
- package/server/fastify/modelFusionFlowPlugin.d.ts +12 -0
- package/server/fastify/modelFusionFlowPlugin.js +98 -0
- package/ui/index.d.ts +0 -1
- package/ui/index.js +0 -1
- /package/{ui → browser}/MediaSourceAppender.cjs +0 -0
- /package/{ui → browser}/MediaSourceAppender.d.ts +0 -0
- /package/{ui → browser}/MediaSourceAppender.js +0 -0
- /package/{event-source → browser}/readEventSourceStream.d.ts +0 -0
@@ -0,0 +1,98 @@
|
|
1
|
+
import { withRun } from "../../core/getRun.js";
|
2
|
+
import { FlowRun } from "./FlowRun.js";
|
3
|
+
import { PathProvider } from "./PathProvider.js";
|
4
|
+
export const modelFusionFastifyPlugin = async (fastify, { flow, baseUrl, basePath, assetStorage, logger, }) => {
|
5
|
+
const paths = new PathProvider({
|
6
|
+
baseUrl,
|
7
|
+
basePath,
|
8
|
+
});
|
9
|
+
const runs = {};
|
10
|
+
fastify.post(paths.basePath, async (request) => {
|
11
|
+
const run = new FlowRun({
|
12
|
+
paths,
|
13
|
+
assetStorage,
|
14
|
+
logger,
|
15
|
+
});
|
16
|
+
runs[run.runId] = run;
|
17
|
+
// body the request body is json, parse and validate it:
|
18
|
+
const input = flow.schema.input.parse(request.body);
|
19
|
+
// start longer-running process (no await):
|
20
|
+
withRun(run, async () => {
|
21
|
+
flow
|
22
|
+
.process({
|
23
|
+
input,
|
24
|
+
run,
|
25
|
+
})
|
26
|
+
.catch((error) => {
|
27
|
+
logger.logError({
|
28
|
+
run,
|
29
|
+
message: "Failed to process flow",
|
30
|
+
error,
|
31
|
+
});
|
32
|
+
})
|
33
|
+
.finally(async () => {
|
34
|
+
run.finish();
|
35
|
+
});
|
36
|
+
});
|
37
|
+
return {
|
38
|
+
id: run.runId,
|
39
|
+
url: paths.getEventsUrl(run.runId),
|
40
|
+
};
|
41
|
+
});
|
42
|
+
fastify.get(paths.getAssetPathTemplate(), async (request, reply) => {
|
43
|
+
const runId = request.params.runId; // eslint-disable-line @typescript-eslint/no-explicit-any
|
44
|
+
const assetName = request.params.assetName; // eslint-disable-line @typescript-eslint/no-explicit-any
|
45
|
+
const asset = await assetStorage.readAsset({
|
46
|
+
run: runs[runId],
|
47
|
+
assetName,
|
48
|
+
});
|
49
|
+
if (asset == null) {
|
50
|
+
logger.logError({
|
51
|
+
run: runs[runId],
|
52
|
+
message: `Asset ${assetName} not found`,
|
53
|
+
error: new Error(`Asset ${assetName} not found`),
|
54
|
+
});
|
55
|
+
reply.status(404);
|
56
|
+
return { error: `Asset ${assetName} not found` };
|
57
|
+
}
|
58
|
+
const headers = {
|
59
|
+
"Access-Control-Allow-Origin": "*",
|
60
|
+
"Content-Length": asset.data.length,
|
61
|
+
"Content-Type": asset.contentType,
|
62
|
+
"Cache-Control": "no-cache",
|
63
|
+
};
|
64
|
+
reply.raw.writeHead(200, headers);
|
65
|
+
reply.raw.write(asset.data);
|
66
|
+
reply.raw.end();
|
67
|
+
return;
|
68
|
+
});
|
69
|
+
fastify.get(paths.getEventsPathTemplate(), async (request, reply) => {
|
70
|
+
const runId = request.params.runId; // eslint-disable-line @typescript-eslint/no-explicit-any
|
71
|
+
const eventQueue = runs[runId]?.eventQueue;
|
72
|
+
if (!eventQueue) {
|
73
|
+
return {
|
74
|
+
error: `No event queue found for run ID ${runId}`,
|
75
|
+
};
|
76
|
+
}
|
77
|
+
const headers = {
|
78
|
+
"Access-Control-Allow-Origin": "*",
|
79
|
+
"Content-Type": "text/event-stream",
|
80
|
+
Connection: "keep-alive",
|
81
|
+
"Cache-Control": "no-cache",
|
82
|
+
"Content-Encoding": "none",
|
83
|
+
};
|
84
|
+
reply.raw.writeHead(200, headers);
|
85
|
+
const textEncoder = new TextEncoder();
|
86
|
+
for await (const event of eventQueue) {
|
87
|
+
if (reply.raw.destroyed) {
|
88
|
+
break; // client disconnected
|
89
|
+
}
|
90
|
+
reply.raw.write(textEncoder.encode(`data: ${JSON.stringify(event)}\n\n`));
|
91
|
+
}
|
92
|
+
if (!reply.raw.destroyed) {
|
93
|
+
reply.raw.write(textEncoder.encode(`data: [DONE]\n\n`));
|
94
|
+
}
|
95
|
+
reply.raw.end();
|
96
|
+
return;
|
97
|
+
});
|
98
|
+
};
|
package/ui/index.d.ts
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
export * from "./MediaSourceAppender.js";
|
package/ui/index.js
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
export * from "./MediaSourceAppender.js";
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|