@workglow/ai-provider 0.0.125 → 0.1.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/dist/common/HfModelSearch.d.ts +1 -0
- package/dist/common/HfModelSearch.d.ts.map +1 -1
- package/dist/common/modelSearchQuery.d.ts +25 -0
- package/dist/common/modelSearchQuery.d.ts.map +1 -0
- package/dist/provider-anthropic/AnthropicProvider.d.ts +1 -1
- package/dist/provider-anthropic/AnthropicProvider.d.ts.map +1 -1
- package/dist/provider-anthropic/AnthropicQueuedProvider.d.ts +4 -4
- package/dist/provider-anthropic/AnthropicQueuedProvider.d.ts.map +1 -1
- package/dist/provider-anthropic/common/Anthropic_Client.d.ts.map +1 -1
- package/dist/provider-anthropic/common/Anthropic_CountTokens.d.ts.map +1 -1
- package/dist/provider-anthropic/common/Anthropic_JobRunFns.d.ts.map +1 -1
- package/dist/provider-anthropic/common/Anthropic_ModelSearch.d.ts.map +1 -1
- package/dist/provider-anthropic/common/Anthropic_TextGeneration.d.ts.map +1 -1
- package/dist/provider-anthropic/common/Anthropic_TextRewriter.d.ts.map +1 -1
- package/dist/provider-anthropic/common/Anthropic_TextSummary.d.ts.map +1 -1
- package/dist/provider-anthropic/index.js +3 -4
- package/dist/provider-anthropic/index.js.map +3 -3
- package/dist/provider-anthropic/runtime.js +39 -292
- package/dist/provider-anthropic/runtime.js.map +13 -13
- package/dist/provider-chrome/common/WebBrowser_ModelSearch.d.ts.map +1 -1
- package/dist/provider-chrome/common/WebBrowser_TextGeneration.d.ts.map +1 -1
- package/dist/provider-chrome/common/WebBrowser_TextLanguageDetection.d.ts.map +1 -1
- package/dist/provider-chrome/common/WebBrowser_TextRewriter.d.ts.map +1 -1
- package/dist/provider-chrome/common/WebBrowser_TextSummary.d.ts.map +1 -1
- package/dist/provider-chrome/common/WebBrowser_TextTranslation.d.ts.map +1 -1
- package/dist/provider-chrome/runtime.js +24 -99
- package/dist/provider-chrome/runtime.js.map +10 -9
- package/dist/provider-gemini/GoogleGeminiProvider.d.ts +1 -1
- package/dist/provider-gemini/GoogleGeminiProvider.d.ts.map +1 -1
- package/dist/provider-gemini/GoogleGeminiQueuedProvider.d.ts +4 -4
- package/dist/provider-gemini/GoogleGeminiQueuedProvider.d.ts.map +1 -1
- package/dist/provider-gemini/common/Gemini_CountTokens.d.ts.map +1 -1
- package/dist/provider-gemini/common/Gemini_JobRunFns.d.ts.map +1 -1
- package/dist/provider-gemini/common/Gemini_ModelSearch.d.ts.map +1 -1
- package/dist/provider-gemini/common/Gemini_TextEmbedding.d.ts.map +1 -1
- package/dist/provider-gemini/common/Gemini_TextGeneration.d.ts.map +1 -1
- package/dist/provider-gemini/common/Gemini_TextRewriter.d.ts.map +1 -1
- package/dist/provider-gemini/common/Gemini_TextSummary.d.ts.map +1 -1
- package/dist/provider-gemini/index.js +3 -4
- package/dist/provider-gemini/index.js.map +3 -3
- package/dist/provider-gemini/runtime.js +33 -259
- package/dist/provider-gemini/runtime.js.map +13 -13
- package/dist/provider-hf-inference/HfInferenceProvider.d.ts +1 -1
- package/dist/provider-hf-inference/HfInferenceProvider.d.ts.map +1 -1
- package/dist/provider-hf-inference/HfInferenceQueuedProvider.d.ts +4 -4
- package/dist/provider-hf-inference/HfInferenceQueuedProvider.d.ts.map +1 -1
- package/dist/provider-hf-inference/common/HFI_Client.d.ts.map +1 -1
- package/dist/provider-hf-inference/common/HFI_JobRunFns.d.ts.map +1 -1
- package/dist/provider-hf-inference/common/HFI_ModelSearch.d.ts.map +1 -1
- package/dist/provider-hf-inference/common/HFI_TextEmbedding.d.ts.map +1 -1
- package/dist/provider-hf-inference/common/HFI_TextGeneration.d.ts.map +1 -1
- package/dist/provider-hf-inference/common/HFI_TextRewriter.d.ts.map +1 -1
- package/dist/provider-hf-inference/common/HFI_TextSummary.d.ts.map +1 -1
- package/dist/provider-hf-inference/index.js +3 -4
- package/dist/provider-hf-inference/index.js.map +3 -3
- package/dist/provider-hf-inference/runtime.js +14 -207
- package/dist/provider-hf-inference/runtime.js.map +13 -14
- package/dist/provider-hf-transformers/HuggingFaceTransformersProvider.d.ts +1 -1
- package/dist/provider-hf-transformers/HuggingFaceTransformersProvider.d.ts.map +1 -1
- package/dist/provider-hf-transformers/HuggingFaceTransformersQueuedProvider.d.ts +13 -3
- package/dist/provider-hf-transformers/HuggingFaceTransformersQueuedProvider.d.ts.map +1 -1
- package/dist/provider-hf-transformers/common/HFT_Constants.d.ts +4 -0
- package/dist/provider-hf-transformers/common/HFT_Constants.d.ts.map +1 -1
- package/dist/provider-hf-transformers/common/HFT_CountTokens.d.ts.map +1 -1
- package/dist/provider-hf-transformers/common/HFT_Download.d.ts.map +1 -1
- package/dist/provider-hf-transformers/common/HFT_ImageEmbedding.d.ts.map +1 -1
- package/dist/provider-hf-transformers/common/HFT_JobRunFns.d.ts +117 -88
- package/dist/provider-hf-transformers/common/HFT_JobRunFns.d.ts.map +1 -1
- package/dist/provider-hf-transformers/common/HFT_ModelInfo.d.ts.map +1 -1
- package/dist/provider-hf-transformers/common/HFT_ModelSchema.d.ts +30 -0
- package/dist/provider-hf-transformers/common/HFT_ModelSchema.d.ts.map +1 -1
- package/dist/provider-hf-transformers/common/HFT_ModelSearch.d.ts.map +1 -1
- package/dist/provider-hf-transformers/common/HFT_OnnxDtypes.d.ts.map +1 -1
- package/dist/provider-hf-transformers/common/HFT_Pipeline.d.ts +9 -2
- package/dist/provider-hf-transformers/common/HFT_Pipeline.d.ts.map +1 -1
- package/dist/provider-hf-transformers/common/HFT_Streaming.d.ts +2 -2
- package/dist/provider-hf-transformers/common/HFT_Streaming.d.ts.map +1 -1
- package/dist/provider-hf-transformers/common/HFT_TextClassification.d.ts.map +1 -1
- package/dist/provider-hf-transformers/common/HFT_TextFillMask.d.ts.map +1 -1
- package/dist/provider-hf-transformers/common/HFT_TextGeneration.d.ts.map +1 -1
- package/dist/provider-hf-transformers/common/HFT_TextLanguageDetection.d.ts.map +1 -1
- package/dist/provider-hf-transformers/common/HFT_TextNamedEntityRecognition.d.ts.map +1 -1
- package/dist/provider-hf-transformers/common/HFT_TextQuestionAnswer.d.ts.map +1 -1
- package/dist/provider-hf-transformers/common/HFT_TextRewriter.d.ts.map +1 -1
- package/dist/provider-hf-transformers/common/HFT_TextSummary.d.ts.map +1 -1
- package/dist/provider-hf-transformers/common/HFT_TextTranslation.d.ts.map +1 -1
- package/dist/provider-hf-transformers/index.d.ts +0 -1
- package/dist/provider-hf-transformers/index.d.ts.map +1 -1
- package/dist/provider-hf-transformers/index.js +49 -177
- package/dist/provider-hf-transformers/index.js.map +8 -9
- package/dist/provider-hf-transformers/registerHuggingFaceTransformersWorker.d.ts.map +1 -1
- package/dist/provider-hf-transformers/runtime.d.ts +0 -1
- package/dist/provider-hf-transformers/runtime.d.ts.map +1 -1
- package/dist/provider-hf-transformers/runtime.js +209 -514
- package/dist/provider-hf-transformers/runtime.js.map +29 -31
- package/dist/provider-llamacpp/LlamaCppProvider.d.ts +1 -1
- package/dist/provider-llamacpp/LlamaCppProvider.d.ts.map +1 -1
- package/dist/provider-llamacpp/LlamaCppQueuedProvider.d.ts +1 -1
- package/dist/provider-llamacpp/LlamaCppQueuedProvider.d.ts.map +1 -1
- package/dist/provider-llamacpp/common/LlamaCpp_CountTokens.d.ts.map +1 -1
- package/dist/provider-llamacpp/common/LlamaCpp_JobRunFns.d.ts.map +1 -1
- package/dist/provider-llamacpp/common/LlamaCpp_ModelSchema.d.ts +15 -0
- package/dist/provider-llamacpp/common/LlamaCpp_ModelSchema.d.ts.map +1 -1
- package/dist/provider-llamacpp/common/LlamaCpp_ModelSearch.d.ts.map +1 -1
- package/dist/provider-llamacpp/common/LlamaCpp_Runtime.d.ts +10 -0
- package/dist/provider-llamacpp/common/LlamaCpp_Runtime.d.ts.map +1 -1
- package/dist/provider-llamacpp/common/LlamaCpp_StructuredGeneration.d.ts.map +1 -1
- package/dist/provider-llamacpp/common/LlamaCpp_TextEmbedding.d.ts.map +1 -1
- package/dist/provider-llamacpp/common/LlamaCpp_TextGeneration.d.ts.map +1 -1
- package/dist/provider-llamacpp/common/LlamaCpp_TextRewriter.d.ts.map +1 -1
- package/dist/provider-llamacpp/common/LlamaCpp_TextSummary.d.ts.map +1 -1
- package/dist/provider-llamacpp/index.js +6 -2
- package/dist/provider-llamacpp/index.js.map +4 -4
- package/dist/provider-llamacpp/runtime.js +83 -231
- package/dist/provider-llamacpp/runtime.js.map +15 -16
- package/dist/provider-ollama/OllamaProvider.d.ts +1 -1
- package/dist/provider-ollama/OllamaProvider.d.ts.map +1 -1
- package/dist/provider-ollama/OllamaQueuedProvider.d.ts +4 -4
- package/dist/provider-ollama/OllamaQueuedProvider.d.ts.map +1 -1
- package/dist/provider-ollama/common/Ollama_JobRunFns.browser.d.ts +14 -72
- package/dist/provider-ollama/common/Ollama_JobRunFns.browser.d.ts.map +1 -1
- package/dist/provider-ollama/common/Ollama_JobRunFns.d.ts +14 -72
- package/dist/provider-ollama/common/Ollama_JobRunFns.d.ts.map +1 -1
- package/dist/provider-ollama/common/Ollama_ModelSearch.d.ts.map +1 -1
- package/dist/provider-ollama/common/Ollama_TextGeneration.d.ts.map +1 -1
- package/dist/provider-ollama/common/Ollama_TextRewriter.d.ts.map +1 -1
- package/dist/provider-ollama/common/Ollama_TextSummary.d.ts.map +1 -1
- package/dist/provider-ollama/index.browser.js +3 -4
- package/dist/provider-ollama/index.browser.js.map +3 -3
- package/dist/provider-ollama/index.js +3 -4
- package/dist/provider-ollama/index.js.map +3 -3
- package/dist/provider-ollama/runtime.browser.js +28 -181
- package/dist/provider-ollama/runtime.browser.js.map +11 -11
- package/dist/provider-ollama/runtime.js +28 -176
- package/dist/provider-ollama/runtime.js.map +11 -11
- package/dist/provider-openai/OpenAiProvider.d.ts +1 -1
- package/dist/provider-openai/OpenAiProvider.d.ts.map +1 -1
- package/dist/provider-openai/OpenAiQueuedProvider.d.ts +4 -4
- package/dist/provider-openai/OpenAiQueuedProvider.d.ts.map +1 -1
- package/dist/provider-openai/common/OpenAI_Client.d.ts.map +1 -1
- package/dist/provider-openai/common/OpenAI_CountTokens.browser.d.ts.map +1 -1
- package/dist/provider-openai/common/OpenAI_CountTokens.d.ts.map +1 -1
- package/dist/provider-openai/common/OpenAI_JobRunFns.browser.d.ts.map +1 -1
- package/dist/provider-openai/common/OpenAI_JobRunFns.d.ts.map +1 -1
- package/dist/provider-openai/common/OpenAI_ModelSearch.d.ts.map +1 -1
- package/dist/provider-openai/common/OpenAI_TextEmbedding.d.ts.map +1 -1
- package/dist/provider-openai/common/OpenAI_TextGeneration.d.ts.map +1 -1
- package/dist/provider-openai/common/OpenAI_TextRewriter.d.ts.map +1 -1
- package/dist/provider-openai/common/OpenAI_TextSummary.d.ts.map +1 -1
- package/dist/provider-openai/index.browser.js +3 -4
- package/dist/provider-openai/index.browser.js.map +3 -3
- package/dist/provider-openai/index.js +3 -4
- package/dist/provider-openai/index.js.map +3 -3
- package/dist/provider-openai/runtime.browser.js +42 -225
- package/dist/provider-openai/runtime.browser.js.map +14 -14
- package/dist/provider-openai/runtime.js +42 -225
- package/dist/provider-openai/runtime.js.map +14 -14
- package/dist/provider-tf-mediapipe/TensorFlowMediaPipeQueuedProvider.d.ts +3 -3
- package/dist/provider-tf-mediapipe/TensorFlowMediaPipeQueuedProvider.d.ts.map +1 -1
- package/dist/provider-tf-mediapipe/common/TFMP_ImageEmbedding.d.ts.map +1 -1
- package/dist/provider-tf-mediapipe/common/TFMP_JobRunFns.d.ts +18 -11
- package/dist/provider-tf-mediapipe/common/TFMP_JobRunFns.d.ts.map +1 -1
- package/dist/provider-tf-mediapipe/common/TFMP_ModelSearch.d.ts.map +1 -1
- package/dist/provider-tf-mediapipe/common/TFMP_Unload.d.ts.map +1 -1
- package/dist/provider-tf-mediapipe/index.js +3 -3
- package/dist/provider-tf-mediapipe/index.js.map +3 -3
- package/dist/provider-tf-mediapipe/runtime.js +37 -7
- package/dist/provider-tf-mediapipe/runtime.js.map +8 -7
- package/package.json +31 -19
- package/dist/provider-anthropic/common/Anthropic_ToolCalling.d.ts +0 -10
- package/dist/provider-anthropic/common/Anthropic_ToolCalling.d.ts.map +0 -1
- package/dist/provider-gemini/common/Gemini_ToolCalling.d.ts +0 -10
- package/dist/provider-gemini/common/Gemini_ToolCalling.d.ts.map +0 -1
- package/dist/provider-hf-inference/common/HFI_ToolCalling.d.ts +0 -10
- package/dist/provider-hf-inference/common/HFI_ToolCalling.d.ts.map +0 -1
- package/dist/provider-hf-transformers/common/HFT_ToolCalling.d.ts +0 -10
- package/dist/provider-hf-transformers/common/HFT_ToolCalling.d.ts.map +0 -1
- package/dist/provider-hf-transformers/common/HFT_ToolMarkup.d.ts +0 -40
- package/dist/provider-hf-transformers/common/HFT_ToolMarkup.d.ts.map +0 -1
- package/dist/provider-llamacpp/common/LlamaCpp_ToolCalling.d.ts +0 -10
- package/dist/provider-llamacpp/common/LlamaCpp_ToolCalling.d.ts.map +0 -1
- package/dist/provider-ollama/common/Ollama_ToolCalling.d.ts +0 -16
- package/dist/provider-ollama/common/Ollama_ToolCalling.d.ts.map +0 -1
- package/dist/provider-openai/common/OpenAI_ToolCalling.d.ts +0 -10
- package/dist/provider-openai/common/OpenAI_ToolCalling.d.ts.map +0 -1
|
@@ -48,6 +48,24 @@ function getModelName(model) {
|
|
|
48
48
|
}
|
|
49
49
|
return name;
|
|
50
50
|
}
|
|
51
|
+
// src/common/modelSearchQuery.ts
|
|
52
|
+
function normalizedModelSearchQuery(query) {
|
|
53
|
+
const t = query?.trim();
|
|
54
|
+
return t ? t.toLowerCase() : undefined;
|
|
55
|
+
}
|
|
56
|
+
function filterLabeledModelsByQuery(models, query) {
|
|
57
|
+
const q = normalizedModelSearchQuery(query);
|
|
58
|
+
if (!q)
|
|
59
|
+
return [...models];
|
|
60
|
+
return models.filter((m) => m.value.toLowerCase().includes(q) || m.label.toLowerCase().includes(q));
|
|
61
|
+
}
|
|
62
|
+
function filterModelSearchResultsByQuery(results, query) {
|
|
63
|
+
const q = normalizedModelSearchQuery(query);
|
|
64
|
+
if (!q)
|
|
65
|
+
return results;
|
|
66
|
+
return results.filter((m) => m.id.toLowerCase().includes(q) || m.label.toLowerCase().includes(q) || m.description.toLowerCase().includes(q));
|
|
67
|
+
}
|
|
68
|
+
|
|
51
69
|
// src/provider-gemini/common/Gemini_Constants.ts
|
|
52
70
|
var GOOGLE_GEMINI = "GOOGLE_GEMINI";
|
|
53
71
|
|
|
@@ -61,8 +79,9 @@ var GEMINI_MODELS = [
|
|
|
61
79
|
{ label: "gemini-1.5-pro", value: "gemini-1.5-pro" },
|
|
62
80
|
{ label: "gemini-1.5-flash", value: "gemini-1.5-flash" }
|
|
63
81
|
];
|
|
64
|
-
var Gemini_ModelSearch = async () => {
|
|
65
|
-
const
|
|
82
|
+
var Gemini_ModelSearch = async (input) => {
|
|
83
|
+
const models = filterLabeledModelsByQuery(GEMINI_MODELS, input.query);
|
|
84
|
+
const results = models.map((m) => ({
|
|
66
85
|
id: m.value,
|
|
67
86
|
label: m.label,
|
|
68
87
|
description: "",
|
|
@@ -96,18 +115,7 @@ function sanitizeSchemaForGemini(schema) {
|
|
|
96
115
|
}
|
|
97
116
|
|
|
98
117
|
// src/provider-gemini/common/Gemini_CountTokens.ts
|
|
99
|
-
import { getLogger } from "@workglow/util/worker";
|
|
100
118
|
var Gemini_CountTokens = async (input, model, onProgress, signal) => {
|
|
101
|
-
if (Array.isArray(input.text)) {
|
|
102
|
-
getLogger().warn("Gemini_CountTokens: array input received; processing sequentially (no native batch support)");
|
|
103
|
-
const texts = input.text;
|
|
104
|
-
const counts = [];
|
|
105
|
-
for (const item of texts) {
|
|
106
|
-
const r = await Gemini_CountTokens({ ...input, text: item }, model, onProgress, signal);
|
|
107
|
-
counts.push(r.count);
|
|
108
|
-
}
|
|
109
|
-
return { count: counts };
|
|
110
|
-
}
|
|
111
119
|
const GoogleGenerativeAI = await loadGeminiSDK();
|
|
112
120
|
const genAI = new GoogleGenerativeAI(getApiKey(model));
|
|
113
121
|
const genModel = genAI.getGenerativeModel({ model: getModelName(model) });
|
|
@@ -115,9 +123,6 @@ var Gemini_CountTokens = async (input, model, onProgress, signal) => {
|
|
|
115
123
|
return { count: result.totalTokens };
|
|
116
124
|
};
|
|
117
125
|
var Gemini_CountTokens_Reactive = async (input, _output, _model) => {
|
|
118
|
-
if (Array.isArray(input.text)) {
|
|
119
|
-
return { count: input.text.map((t) => Math.ceil(t.length / 4)) };
|
|
120
|
-
}
|
|
121
126
|
return { count: Math.ceil(input.text.length / 4) };
|
|
122
127
|
};
|
|
123
128
|
|
|
@@ -195,9 +200,9 @@ var Gemini_StructuredGeneration_Stream = async function* (input, model, signal,
|
|
|
195
200
|
};
|
|
196
201
|
|
|
197
202
|
// src/provider-gemini/common/Gemini_TextEmbedding.ts
|
|
198
|
-
import { getLogger
|
|
203
|
+
import { getLogger } from "@workglow/util/worker";
|
|
199
204
|
var Gemini_TextEmbedding = async (input, model, update_progress, signal) => {
|
|
200
|
-
const logger =
|
|
205
|
+
const logger = getLogger();
|
|
201
206
|
const timerLabel = `gemini:TextEmbedding:${model?.provider_config?.model_name}`;
|
|
202
207
|
logger.time(timerLabel, { model: model?.provider_config?.model_name });
|
|
203
208
|
update_progress(0, "Starting Gemini text embedding");
|
|
@@ -230,19 +235,9 @@ var Gemini_TextEmbedding = async (input, model, update_progress, signal) => {
|
|
|
230
235
|
};
|
|
231
236
|
|
|
232
237
|
// src/provider-gemini/common/Gemini_TextGeneration.ts
|
|
233
|
-
import { getLogger as
|
|
238
|
+
import { getLogger as getLogger2 } from "@workglow/util/worker";
|
|
234
239
|
var Gemini_TextGeneration = async (input, model, update_progress, signal) => {
|
|
235
|
-
|
|
236
|
-
getLogger3().warn("Gemini_TextGeneration: array input received; processing sequentially (no native batch support)");
|
|
237
|
-
const prompts = input.prompt;
|
|
238
|
-
const results = [];
|
|
239
|
-
for (const item of prompts) {
|
|
240
|
-
const r = await Gemini_TextGeneration({ ...input, prompt: item }, model, update_progress, signal);
|
|
241
|
-
results.push(r.text);
|
|
242
|
-
}
|
|
243
|
-
return { text: results };
|
|
244
|
-
}
|
|
245
|
-
const logger = getLogger3();
|
|
240
|
+
const logger = getLogger2();
|
|
246
241
|
const timerLabel = `gemini:TextGeneration:${model?.provider_config?.model_name}`;
|
|
247
242
|
logger.time(timerLabel, { model: model?.provider_config?.model_name });
|
|
248
243
|
update_progress(0, "Starting Gemini text generation");
|
|
@@ -286,18 +281,7 @@ var Gemini_TextGeneration_Stream = async function* (input, model, signal) {
|
|
|
286
281
|
};
|
|
287
282
|
|
|
288
283
|
// src/provider-gemini/common/Gemini_TextRewriter.ts
|
|
289
|
-
import { getLogger as getLogger4 } from "@workglow/util/worker";
|
|
290
284
|
var Gemini_TextRewriter = async (input, model, update_progress, signal) => {
|
|
291
|
-
if (Array.isArray(input.text)) {
|
|
292
|
-
getLogger4().warn("Gemini_TextRewriter: array input received; processing sequentially (no native batch support)");
|
|
293
|
-
const texts = input.text;
|
|
294
|
-
const results = [];
|
|
295
|
-
for (const item of texts) {
|
|
296
|
-
const r = await Gemini_TextRewriter({ ...input, text: item }, model, update_progress, signal);
|
|
297
|
-
results.push(r.text);
|
|
298
|
-
}
|
|
299
|
-
return { text: results };
|
|
300
|
-
}
|
|
301
285
|
update_progress(0, "Starting Gemini text rewriting");
|
|
302
286
|
const GoogleGenerativeAI = await loadGeminiSDK();
|
|
303
287
|
const genAI = new GoogleGenerativeAI(getApiKey(model));
|
|
@@ -330,18 +314,7 @@ var Gemini_TextRewriter_Stream = async function* (input, model, signal) {
|
|
|
330
314
|
};
|
|
331
315
|
|
|
332
316
|
// src/provider-gemini/common/Gemini_TextSummary.ts
|
|
333
|
-
import { getLogger as getLogger5 } from "@workglow/util/worker";
|
|
334
317
|
var Gemini_TextSummary = async (input, model, update_progress, signal) => {
|
|
335
|
-
if (Array.isArray(input.text)) {
|
|
336
|
-
getLogger5().warn("Gemini_TextSummary: array input received; processing sequentially (no native batch support)");
|
|
337
|
-
const texts = input.text;
|
|
338
|
-
const results = [];
|
|
339
|
-
for (const item of texts) {
|
|
340
|
-
const r = await Gemini_TextSummary({ ...input, text: item }, model, update_progress, signal);
|
|
341
|
-
results.push(r.text);
|
|
342
|
-
}
|
|
343
|
-
return { text: results };
|
|
344
|
-
}
|
|
345
318
|
update_progress(0, "Starting Gemini text summarization");
|
|
346
319
|
const GoogleGenerativeAI = await loadGeminiSDK();
|
|
347
320
|
const genAI = new GoogleGenerativeAI(getApiKey(model));
|
|
@@ -373,201 +346,6 @@ var Gemini_TextSummary_Stream = async function* (input, model, signal) {
|
|
|
373
346
|
yield { type: "finish", data: {} };
|
|
374
347
|
};
|
|
375
348
|
|
|
376
|
-
// src/provider-gemini/common/Gemini_ToolCalling.ts
|
|
377
|
-
import { buildToolDescription, filterValidToolCalls } from "@workglow/ai/worker";
|
|
378
|
-
import { getLogger as getLogger6 } from "@workglow/util/worker";
|
|
379
|
-
function buildGeminiContents(input) {
|
|
380
|
-
const inputMessages = input.messages;
|
|
381
|
-
if (!inputMessages || inputMessages.length === 0) {
|
|
382
|
-
return [{ role: "user", parts: [{ text: input.prompt }] }];
|
|
383
|
-
}
|
|
384
|
-
const toolUseNames = new Map;
|
|
385
|
-
for (const msg of inputMessages) {
|
|
386
|
-
if (msg.role === "assistant" && Array.isArray(msg.content)) {
|
|
387
|
-
for (const block of msg.content) {
|
|
388
|
-
if (block.type === "tool_use") {
|
|
389
|
-
toolUseNames.set(block.id, block.name);
|
|
390
|
-
}
|
|
391
|
-
}
|
|
392
|
-
}
|
|
393
|
-
}
|
|
394
|
-
const contents = [];
|
|
395
|
-
for (const msg of inputMessages) {
|
|
396
|
-
if (msg.role === "user") {
|
|
397
|
-
if (typeof msg.content === "string") {
|
|
398
|
-
contents.push({ role: "user", parts: [{ text: msg.content }] });
|
|
399
|
-
} else if (Array.isArray(msg.content)) {
|
|
400
|
-
const parts = [];
|
|
401
|
-
for (const block of msg.content) {
|
|
402
|
-
if (block.type === "text") {
|
|
403
|
-
parts.push({ text: block.text });
|
|
404
|
-
} else if (block.type === "image" || block.type === "audio") {
|
|
405
|
-
parts.push({ inlineData: { mimeType: block.mimeType, data: block.data } });
|
|
406
|
-
}
|
|
407
|
-
}
|
|
408
|
-
contents.push({ role: "user", parts });
|
|
409
|
-
} else {
|
|
410
|
-
contents.push({ role: "user", parts: [{ text: msg.content }] });
|
|
411
|
-
}
|
|
412
|
-
} else if (msg.role === "assistant" && Array.isArray(msg.content)) {
|
|
413
|
-
const parts = [];
|
|
414
|
-
for (const block of msg.content) {
|
|
415
|
-
if (block.type === "text" && block.text) {
|
|
416
|
-
parts.push({ text: block.text });
|
|
417
|
-
} else if (block.type === "tool_use") {
|
|
418
|
-
parts.push({ functionCall: { name: block.name, args: block.input } });
|
|
419
|
-
}
|
|
420
|
-
}
|
|
421
|
-
if (parts.length > 0) {
|
|
422
|
-
contents.push({ role: "model", parts });
|
|
423
|
-
}
|
|
424
|
-
} else if (msg.role === "tool" && Array.isArray(msg.content)) {
|
|
425
|
-
const parts = msg.content.map((block) => {
|
|
426
|
-
const name = toolUseNames.get(block.tool_use_id) ?? "unknown";
|
|
427
|
-
let response;
|
|
428
|
-
if (typeof block.content === "string") {
|
|
429
|
-
try {
|
|
430
|
-
response = JSON.parse(block.content);
|
|
431
|
-
} catch {
|
|
432
|
-
response = { result: block.content };
|
|
433
|
-
}
|
|
434
|
-
} else if (Array.isArray(block.content)) {
|
|
435
|
-
const textParts = block.content.filter((b) => b.type === "text").map((b) => b.text);
|
|
436
|
-
try {
|
|
437
|
-
response = JSON.parse(textParts.join(""));
|
|
438
|
-
} catch {
|
|
439
|
-
response = { result: textParts.join("") };
|
|
440
|
-
}
|
|
441
|
-
} else {
|
|
442
|
-
response = {};
|
|
443
|
-
}
|
|
444
|
-
return { functionResponse: { name, response } };
|
|
445
|
-
});
|
|
446
|
-
contents.push({ role: "user", parts });
|
|
447
|
-
}
|
|
448
|
-
}
|
|
449
|
-
return contents;
|
|
450
|
-
}
|
|
451
|
-
function mapGeminiToolConfig(toolChoice) {
|
|
452
|
-
if (!toolChoice || toolChoice === "auto") {
|
|
453
|
-
return { functionCallingConfig: { mode: "AUTO" } };
|
|
454
|
-
}
|
|
455
|
-
if (toolChoice === "none") {
|
|
456
|
-
return { functionCallingConfig: { mode: "NONE" } };
|
|
457
|
-
}
|
|
458
|
-
if (toolChoice === "required") {
|
|
459
|
-
return { functionCallingConfig: { mode: "ANY" } };
|
|
460
|
-
}
|
|
461
|
-
return {
|
|
462
|
-
functionCallingConfig: {
|
|
463
|
-
mode: "ANY",
|
|
464
|
-
allowedFunctionNames: [toolChoice]
|
|
465
|
-
}
|
|
466
|
-
};
|
|
467
|
-
}
|
|
468
|
-
var Gemini_ToolCalling = async (input, model, update_progress, signal) => {
|
|
469
|
-
if (Array.isArray(input.prompt)) {
|
|
470
|
-
getLogger6().warn("Gemini_ToolCalling: array input received; processing sequentially (no native batch support)");
|
|
471
|
-
const prompts = input.prompt;
|
|
472
|
-
const texts = [];
|
|
473
|
-
const toolCallsList = [];
|
|
474
|
-
for (const item of prompts) {
|
|
475
|
-
const r = await Gemini_ToolCalling({ ...input, prompt: item }, model, update_progress, signal);
|
|
476
|
-
texts.push(r.text);
|
|
477
|
-
toolCallsList.push(r.toolCalls);
|
|
478
|
-
}
|
|
479
|
-
return { text: texts, toolCalls: toolCallsList };
|
|
480
|
-
}
|
|
481
|
-
update_progress(0, "Starting Gemini tool calling");
|
|
482
|
-
const GoogleGenerativeAI = await loadGeminiSDK();
|
|
483
|
-
const genAI = new GoogleGenerativeAI(getApiKey(model));
|
|
484
|
-
const functionDeclarations = input.tools.map((t) => ({
|
|
485
|
-
name: t.name,
|
|
486
|
-
description: buildToolDescription(t),
|
|
487
|
-
parameters: sanitizeSchemaForGemini(t.inputSchema)
|
|
488
|
-
}));
|
|
489
|
-
const toolConfig = mapGeminiToolConfig(input.toolChoice);
|
|
490
|
-
const genModel = genAI.getGenerativeModel({
|
|
491
|
-
model: getModelName(model),
|
|
492
|
-
tools: [{ functionDeclarations }],
|
|
493
|
-
toolConfig,
|
|
494
|
-
systemInstruction: input.systemPrompt || undefined,
|
|
495
|
-
generationConfig: {
|
|
496
|
-
maxOutputTokens: input.maxTokens,
|
|
497
|
-
temperature: input.temperature
|
|
498
|
-
}
|
|
499
|
-
});
|
|
500
|
-
const contents = buildGeminiContents(input);
|
|
501
|
-
const result = await genModel.generateContent({ contents });
|
|
502
|
-
const parts = result.response.candidates?.[0]?.content?.parts ?? [];
|
|
503
|
-
const textParts = [];
|
|
504
|
-
const toolCalls = [];
|
|
505
|
-
let callIndex = 0;
|
|
506
|
-
for (const part of parts) {
|
|
507
|
-
if ("text" in part && part.text) {
|
|
508
|
-
textParts.push(part.text);
|
|
509
|
-
}
|
|
510
|
-
if ("functionCall" in part && part.functionCall) {
|
|
511
|
-
const id = `call_${callIndex++}`;
|
|
512
|
-
toolCalls.push({
|
|
513
|
-
id,
|
|
514
|
-
name: part.functionCall.name,
|
|
515
|
-
input: part.functionCall.args ?? {}
|
|
516
|
-
});
|
|
517
|
-
}
|
|
518
|
-
}
|
|
519
|
-
update_progress(100, "Completed Gemini tool calling");
|
|
520
|
-
return { text: textParts.join(""), toolCalls: filterValidToolCalls(toolCalls, input.tools) };
|
|
521
|
-
};
|
|
522
|
-
var Gemini_ToolCalling_Stream = async function* (input, model, signal) {
|
|
523
|
-
const GoogleGenerativeAI = await loadGeminiSDK();
|
|
524
|
-
const genAI = new GoogleGenerativeAI(getApiKey(model));
|
|
525
|
-
const functionDeclarations = input.tools.map((t) => ({
|
|
526
|
-
name: t.name,
|
|
527
|
-
description: buildToolDescription(t),
|
|
528
|
-
parameters: sanitizeSchemaForGemini(t.inputSchema)
|
|
529
|
-
}));
|
|
530
|
-
const toolConfig = mapGeminiToolConfig(input.toolChoice);
|
|
531
|
-
const genModel = genAI.getGenerativeModel({
|
|
532
|
-
model: getModelName(model),
|
|
533
|
-
tools: [{ functionDeclarations }],
|
|
534
|
-
toolConfig,
|
|
535
|
-
systemInstruction: input.systemPrompt || undefined,
|
|
536
|
-
generationConfig: {
|
|
537
|
-
maxOutputTokens: input.maxTokens,
|
|
538
|
-
temperature: input.temperature
|
|
539
|
-
}
|
|
540
|
-
});
|
|
541
|
-
const contents = buildGeminiContents(input);
|
|
542
|
-
const result = await genModel.generateContentStream({ contents }, { signal });
|
|
543
|
-
let accumulatedText = "";
|
|
544
|
-
const toolCalls = [];
|
|
545
|
-
let callIndex = 0;
|
|
546
|
-
for await (const chunk of result.stream) {
|
|
547
|
-
const parts = chunk.candidates?.[0]?.content?.parts ?? [];
|
|
548
|
-
for (const part of parts) {
|
|
549
|
-
if ("text" in part && part.text) {
|
|
550
|
-
accumulatedText += part.text;
|
|
551
|
-
yield { type: "text-delta", port: "text", textDelta: part.text };
|
|
552
|
-
}
|
|
553
|
-
if ("functionCall" in part && part.functionCall) {
|
|
554
|
-
const id = `call_${callIndex++}`;
|
|
555
|
-
toolCalls.push({
|
|
556
|
-
id,
|
|
557
|
-
name: part.functionCall.name,
|
|
558
|
-
input: part.functionCall.args ?? {}
|
|
559
|
-
});
|
|
560
|
-
yield { type: "object-delta", port: "toolCalls", objectDelta: [...toolCalls] };
|
|
561
|
-
}
|
|
562
|
-
}
|
|
563
|
-
}
|
|
564
|
-
const validToolCalls = filterValidToolCalls(toolCalls, input.tools);
|
|
565
|
-
yield {
|
|
566
|
-
type: "finish",
|
|
567
|
-
data: { text: accumulatedText, toolCalls: validToolCalls }
|
|
568
|
-
};
|
|
569
|
-
};
|
|
570
|
-
|
|
571
349
|
// src/provider-gemini/common/Gemini_JobRunFns.ts
|
|
572
350
|
var GEMINI_TASKS = {
|
|
573
351
|
CountTokensTask: Gemini_CountTokens,
|
|
@@ -577,15 +355,13 @@ var GEMINI_TASKS = {
|
|
|
577
355
|
TextRewriterTask: Gemini_TextRewriter,
|
|
578
356
|
TextSummaryTask: Gemini_TextSummary,
|
|
579
357
|
StructuredGenerationTask: Gemini_StructuredGeneration,
|
|
580
|
-
ToolCallingTask: Gemini_ToolCalling,
|
|
581
358
|
ModelSearchTask: Gemini_ModelSearch
|
|
582
359
|
};
|
|
583
360
|
var GEMINI_STREAM_TASKS = {
|
|
584
361
|
TextGenerationTask: Gemini_TextGeneration_Stream,
|
|
585
362
|
TextRewriterTask: Gemini_TextRewriter_Stream,
|
|
586
363
|
TextSummaryTask: Gemini_TextSummary_Stream,
|
|
587
|
-
StructuredGenerationTask: Gemini_StructuredGeneration_Stream
|
|
588
|
-
ToolCallingTask: Gemini_ToolCalling_Stream
|
|
364
|
+
StructuredGenerationTask: Gemini_StructuredGeneration_Stream
|
|
589
365
|
};
|
|
590
366
|
var GEMINI_REACTIVE_TASKS = {
|
|
591
367
|
CountTokensTask: Gemini_CountTokens_Reactive
|
|
@@ -593,9 +369,9 @@ var GEMINI_REACTIVE_TASKS = {
|
|
|
593
369
|
|
|
594
370
|
// src/provider-gemini/GoogleGeminiQueuedProvider.ts
|
|
595
371
|
import {
|
|
596
|
-
|
|
372
|
+
AiProvider
|
|
597
373
|
} from "@workglow/ai";
|
|
598
|
-
class GoogleGeminiQueuedProvider extends
|
|
374
|
+
class GoogleGeminiQueuedProvider extends AiProvider {
|
|
599
375
|
name = GOOGLE_GEMINI;
|
|
600
376
|
displayName = "Google Gemini";
|
|
601
377
|
isLocal = false;
|
|
@@ -608,7 +384,6 @@ class GoogleGeminiQueuedProvider extends QueuedAiProvider {
|
|
|
608
384
|
"TextRewriterTask",
|
|
609
385
|
"TextSummaryTask",
|
|
610
386
|
"StructuredGenerationTask",
|
|
611
|
-
"ToolCallingTask",
|
|
612
387
|
"ModelSearchTask"
|
|
613
388
|
];
|
|
614
389
|
constructor(tasks, streamTasks, reactiveTasks) {
|
|
@@ -621,13 +396,13 @@ async function registerGeminiInline(options) {
|
|
|
621
396
|
await new GoogleGeminiQueuedProvider(GEMINI_TASKS, GEMINI_STREAM_TASKS, GEMINI_REACTIVE_TASKS).register(options ?? {});
|
|
622
397
|
}
|
|
623
398
|
// src/provider-gemini/registerGeminiWorker.ts
|
|
624
|
-
import { getLogger as
|
|
399
|
+
import { getLogger as getLogger3, globalServiceRegistry, WORKER_SERVER } from "@workglow/util/worker";
|
|
625
400
|
|
|
626
401
|
// src/provider-gemini/GoogleGeminiProvider.ts
|
|
627
402
|
import {
|
|
628
|
-
AiProvider
|
|
403
|
+
AiProvider as AiProvider2
|
|
629
404
|
} from "@workglow/ai/worker";
|
|
630
|
-
class GoogleGeminiProvider extends
|
|
405
|
+
class GoogleGeminiProvider extends AiProvider2 {
|
|
631
406
|
name = GOOGLE_GEMINI;
|
|
632
407
|
displayName = "Google Gemini";
|
|
633
408
|
isLocal = false;
|
|
@@ -640,7 +415,6 @@ class GoogleGeminiProvider extends AiProvider {
|
|
|
640
415
|
"TextRewriterTask",
|
|
641
416
|
"TextSummaryTask",
|
|
642
417
|
"StructuredGenerationTask",
|
|
643
|
-
"ToolCallingTask",
|
|
644
418
|
"ModelSearchTask"
|
|
645
419
|
];
|
|
646
420
|
constructor(tasks, streamTasks, reactiveTasks) {
|
|
@@ -653,7 +427,7 @@ async function registerGeminiWorker() {
|
|
|
653
427
|
const workerServer = globalServiceRegistry.get(WORKER_SERVER);
|
|
654
428
|
new GoogleGeminiProvider(GEMINI_TASKS, GEMINI_STREAM_TASKS, GEMINI_REACTIVE_TASKS).registerOnWorkerServer(workerServer);
|
|
655
429
|
workerServer.sendReady();
|
|
656
|
-
|
|
430
|
+
getLogger3().info("Google Gemini worker job run functions registered");
|
|
657
431
|
}
|
|
658
432
|
export {
|
|
659
433
|
registerGeminiWorker,
|
|
@@ -663,4 +437,4 @@ export {
|
|
|
663
437
|
getApiKey
|
|
664
438
|
};
|
|
665
439
|
|
|
666
|
-
//# debugId=
|
|
440
|
+
//# debugId=265C7048DA37E5B964756E2164756E21
|