@saltcorn/large-language-model 1.0.2 → 1.0.3
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/generate.js +21 -20
- package/index.js +1 -9
- package/package.json +1 -1
- package/tests/configs.js +0 -1
- package/tests/llm.test.js +9 -0
package/generate.js
CHANGED
|
@@ -423,17 +423,20 @@ const getCompletion = async (config, opts) => {
|
|
|
423
423
|
}
|
|
424
424
|
};
|
|
425
425
|
|
|
426
|
-
const getAiSdkModel = (
|
|
427
|
-
provider,
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
anthropic_api_key,
|
|
431
|
-
}) => {
|
|
426
|
+
const getAiSdkModel = (
|
|
427
|
+
{ provider, api_key, model_name, anthropic_api_key },
|
|
428
|
+
isEmbedding,
|
|
429
|
+
) => {
|
|
432
430
|
switch (provider) {
|
|
433
431
|
case "OpenAI":
|
|
434
432
|
const openai = createOpenAI({ apiKey: api_key });
|
|
435
|
-
return
|
|
433
|
+
return isEmbedding
|
|
434
|
+
? openai.textEmbeddingModel(model_name)
|
|
435
|
+
: openai(model_name);
|
|
436
|
+
|
|
436
437
|
case "Anthropic":
|
|
438
|
+
if (isEmbedding)
|
|
439
|
+
throw new Error("Anthropic does not provide embedding models");
|
|
437
440
|
const anthropic = createAnthropic({
|
|
438
441
|
apiKey: anthropic_api_key,
|
|
439
442
|
});
|
|
@@ -949,19 +952,17 @@ const getEmbeddingOpenAICompatible = async (
|
|
|
949
952
|
|
|
950
953
|
const getEmbeddingAISDK = async (config, { prompt, model, debugResult }) => {
|
|
951
954
|
const { provider, apiKey, embed_model } = config;
|
|
952
|
-
let
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
break;
|
|
964
|
-
}
|
|
955
|
+
let providerOptions = {};
|
|
956
|
+
const model_name = model || embed_model || "text-embedding-3-small";
|
|
957
|
+
let model_obj = getAiSdkModel(
|
|
958
|
+
{
|
|
959
|
+
...config,
|
|
960
|
+
model_name,
|
|
961
|
+
api_key: apiKey,
|
|
962
|
+
provider,
|
|
963
|
+
},
|
|
964
|
+
true,
|
|
965
|
+
);
|
|
965
966
|
const body = {
|
|
966
967
|
model: model_obj,
|
|
967
968
|
providerOptions,
|
package/index.js
CHANGED
|
@@ -126,7 +126,7 @@ ${domReady(`
|
|
|
126
126
|
label: "Embedding model", //gpt-3.5-turbo
|
|
127
127
|
type: "String",
|
|
128
128
|
required: true,
|
|
129
|
-
showIf: { backend: "AI SDK" },
|
|
129
|
+
showIf: { backend: "AI SDK", ai_sdk_provider: ["OpenAI"] },
|
|
130
130
|
attributes: {
|
|
131
131
|
calcOptions: [
|
|
132
132
|
"ai_sdk_provider",
|
|
@@ -136,14 +136,6 @@ ${domReady(`
|
|
|
136
136
|
"text-embedding-3-large",
|
|
137
137
|
"text-embedding-ada-002",
|
|
138
138
|
],
|
|
139
|
-
Anthropic: [
|
|
140
|
-
"voyage-3-large",
|
|
141
|
-
"voyage-3",
|
|
142
|
-
"voyage-3-lite",
|
|
143
|
-
"voyage-code-3",
|
|
144
|
-
"voyage-finance-2",
|
|
145
|
-
"voyage-law-2",
|
|
146
|
-
],
|
|
147
139
|
},
|
|
148
140
|
],
|
|
149
141
|
},
|
package/package.json
CHANGED
package/tests/configs.js
CHANGED
package/tests/llm.test.js
CHANGED
|
@@ -165,6 +165,15 @@ for (const nameconfig of require("./configs")) {
|
|
|
165
165
|
|
|
166
166
|
expect(cities1.length).toBe(12);
|
|
167
167
|
});
|
|
168
|
+
if (name !== "AI SDK Anthropic")
|
|
169
|
+
it("gets embedding", async () => {
|
|
170
|
+
const v = await getState().functions.llm_embedding.run(
|
|
171
|
+
"The quick brown fox jumps over the lazy dog",
|
|
172
|
+
);
|
|
173
|
+
expect(Array.isArray(v)).toBe(true);
|
|
174
|
+
expect(v.length).toBeGreaterThan(50);
|
|
175
|
+
expect(typeof v[0]).toBe("number");
|
|
176
|
+
});
|
|
168
177
|
});
|
|
169
178
|
}
|
|
170
179
|
|