@promptbook/node 0.94.0-0 → 0.94.0-12
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 +1 -8
- package/esm/index.es.js +9 -7
- package/esm/index.es.js.map +1 -1
- package/esm/typings/src/_packages/cli.index.d.ts +4 -0
- package/esm/typings/src/_packages/core.index.d.ts +2 -0
- package/esm/typings/src/_packages/ollama.index.d.ts +14 -0
- package/esm/typings/src/_packages/openai.index.d.ts +2 -0
- package/esm/typings/src/_packages/types.index.d.ts +2 -0
- package/esm/typings/src/_packages/wizzard.index.d.ts +4 -0
- package/esm/typings/src/execution/AvailableModel.d.ts +9 -1
- package/esm/typings/src/execution/ExecutionTask.d.ts +3 -1
- package/esm/typings/src/llm-providers/_common/filterModels.d.ts +2 -2
- package/esm/typings/src/llm-providers/{openai/computeUsage.d.ts → _common/utils/pricing.d.ts} +2 -2
- package/esm/typings/src/llm-providers/anthropic-claude/AnthropicClaudeExecutionToolsOptions.d.ts +1 -1
- package/esm/typings/src/llm-providers/azure-openai/AzureOpenAiExecutionToolsOptions.d.ts +1 -1
- package/esm/typings/src/llm-providers/deepseek/DeepseekExecutionToolsOptions.d.ts +1 -1
- package/esm/typings/src/llm-providers/google/GoogleExecutionToolsOptions.d.ts +1 -1
- package/esm/typings/src/llm-providers/ollama/OllamaExecutionTools.d.ts +44 -0
- package/esm/typings/src/llm-providers/ollama/OllamaExecutionToolsOptions.d.ts +23 -0
- package/esm/typings/src/llm-providers/ollama/createOllamaExecutionTools.d.ts +11 -0
- package/esm/typings/src/llm-providers/ollama/ollama-models.d.ts +14 -0
- package/esm/typings/src/llm-providers/ollama/playground/playground.d.ts +6 -0
- package/esm/typings/src/llm-providers/ollama/register-configuration.d.ts +14 -0
- package/esm/typings/src/llm-providers/ollama/register-constructor.d.ts +15 -0
- package/esm/typings/src/llm-providers/openai/OpenAiAssistantExecutionToolsOptions.d.ts +1 -1
- package/esm/typings/src/llm-providers/openai/OpenAiCompatibleExecutionTools.d.ts +91 -0
- package/esm/typings/src/llm-providers/openai/OpenAiExecutionTools.d.ts +12 -53
- package/esm/typings/src/llm-providers/openai/OpenAiExecutionToolsOptions.d.ts +1 -1
- package/esm/typings/src/llm-providers/openai/createOpenAiExecutionTools.d.ts +2 -0
- package/esm/typings/src/llm-providers/openai/openai-models.d.ts +1 -7
- package/esm/typings/src/version.d.ts +1 -1
- package/package.json +25 -2
- package/umd/index.umd.js +9 -7
- package/umd/index.umd.js.map +1 -1
- /package/esm/typings/src/llm-providers/{openai/computeUsage.test.d.ts → _common/utils/pricing.test.d.ts} +0 -0
|
@@ -8,6 +8,8 @@ import { _DeepseekMetadataRegistration } from '../llm-providers/deepseek/registe
|
|
|
8
8
|
import { _DeepseekRegistration } from '../llm-providers/deepseek/register-constructor';
|
|
9
9
|
import { _GoogleMetadataRegistration } from '../llm-providers/google/register-configuration';
|
|
10
10
|
import { _GoogleRegistration } from '../llm-providers/google/register-constructor';
|
|
11
|
+
import { _OllamaMetadataRegistration } from '../llm-providers/ollama/register-configuration';
|
|
12
|
+
import { _OllamaRegistration } from '../llm-providers/ollama/register-constructor';
|
|
11
13
|
import { _OpenAiMetadataRegistration } from '../llm-providers/openai/register-configuration';
|
|
12
14
|
import { _OpenAiAssistantMetadataRegistration } from '../llm-providers/openai/register-configuration';
|
|
13
15
|
import { _OpenAiRegistration } from '../llm-providers/openai/register-constructor';
|
|
@@ -36,6 +38,8 @@ export { _DeepseekMetadataRegistration };
|
|
|
36
38
|
export { _DeepseekRegistration };
|
|
37
39
|
export { _GoogleMetadataRegistration };
|
|
38
40
|
export { _GoogleRegistration };
|
|
41
|
+
export { _OllamaMetadataRegistration };
|
|
42
|
+
export { _OllamaRegistration };
|
|
39
43
|
export { _OpenAiMetadataRegistration };
|
|
40
44
|
export { _OpenAiAssistantMetadataRegistration };
|
|
41
45
|
export { _OpenAiRegistration };
|
|
@@ -108,6 +108,7 @@ import { _AnthropicClaudeMetadataRegistration } from '../llm-providers/anthropic
|
|
|
108
108
|
import { _AzureOpenAiMetadataRegistration } from '../llm-providers/azure-openai/register-configuration';
|
|
109
109
|
import { _DeepseekMetadataRegistration } from '../llm-providers/deepseek/register-configuration';
|
|
110
110
|
import { _GoogleMetadataRegistration } from '../llm-providers/google/register-configuration';
|
|
111
|
+
import { _OllamaMetadataRegistration } from '../llm-providers/ollama/register-configuration';
|
|
111
112
|
import { _OpenAiMetadataRegistration } from '../llm-providers/openai/register-configuration';
|
|
112
113
|
import { _OpenAiAssistantMetadataRegistration } from '../llm-providers/openai/register-configuration';
|
|
113
114
|
import { migratePipeline } from '../migrations/migratePipeline';
|
|
@@ -255,6 +256,7 @@ export { _AnthropicClaudeMetadataRegistration };
|
|
|
255
256
|
export { _AzureOpenAiMetadataRegistration };
|
|
256
257
|
export { _DeepseekMetadataRegistration };
|
|
257
258
|
export { _GoogleMetadataRegistration };
|
|
259
|
+
export { _OllamaMetadataRegistration };
|
|
258
260
|
export { _OpenAiMetadataRegistration };
|
|
259
261
|
export { _OpenAiAssistantMetadataRegistration };
|
|
260
262
|
export { migratePipeline };
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { BOOK_LANGUAGE_VERSION, PROMPTBOOK_ENGINE_VERSION } from '../version';
|
|
2
|
+
import { createOllamaExecutionTools } from '../llm-providers/ollama/createOllamaExecutionTools';
|
|
3
|
+
import { OLLAMA_MODELS } from '../llm-providers/ollama/ollama-models';
|
|
4
|
+
import { OllamaExecutionTools } from '../llm-providers/ollama/OllamaExecutionTools';
|
|
5
|
+
import { DEFAULT_OLLAMA_BASE_URL } from '../llm-providers/ollama/OllamaExecutionToolsOptions';
|
|
6
|
+
import type { OllamaExecutionToolsOptions } from '../llm-providers/ollama/OllamaExecutionToolsOptions';
|
|
7
|
+
import { _OllamaRegistration } from '../llm-providers/ollama/register-constructor';
|
|
8
|
+
export { BOOK_LANGUAGE_VERSION, PROMPTBOOK_ENGINE_VERSION };
|
|
9
|
+
export { createOllamaExecutionTools };
|
|
10
|
+
export { OLLAMA_MODELS };
|
|
11
|
+
export { OllamaExecutionTools };
|
|
12
|
+
export { DEFAULT_OLLAMA_BASE_URL };
|
|
13
|
+
export type { OllamaExecutionToolsOptions };
|
|
14
|
+
export { _OllamaRegistration };
|
|
@@ -4,6 +4,7 @@ import { createOpenAiExecutionTools } from '../llm-providers/openai/createOpenAi
|
|
|
4
4
|
import { OPENAI_MODELS } from '../llm-providers/openai/openai-models';
|
|
5
5
|
import { OpenAiAssistantExecutionTools } from '../llm-providers/openai/OpenAiAssistantExecutionTools';
|
|
6
6
|
import type { OpenAiAssistantExecutionToolsOptions } from '../llm-providers/openai/OpenAiAssistantExecutionToolsOptions';
|
|
7
|
+
import { OpenAiCompatibleExecutionTools } from '../llm-providers/openai/OpenAiCompatibleExecutionTools';
|
|
7
8
|
import { OpenAiExecutionTools } from '../llm-providers/openai/OpenAiExecutionTools';
|
|
8
9
|
import type { OpenAiExecutionToolsOptions } from '../llm-providers/openai/OpenAiExecutionToolsOptions';
|
|
9
10
|
import { _OpenAiRegistration } from '../llm-providers/openai/register-constructor';
|
|
@@ -14,6 +15,7 @@ export { createOpenAiExecutionTools };
|
|
|
14
15
|
export { OPENAI_MODELS };
|
|
15
16
|
export { OpenAiAssistantExecutionTools };
|
|
16
17
|
export type { OpenAiAssistantExecutionToolsOptions };
|
|
18
|
+
export { OpenAiCompatibleExecutionTools };
|
|
17
19
|
export { OpenAiExecutionTools };
|
|
18
20
|
export type { OpenAiExecutionToolsOptions };
|
|
19
21
|
export { _OpenAiRegistration };
|
|
@@ -79,6 +79,7 @@ import type { AnthropicClaudeExecutionToolsProxiedOptions } from '../llm-provide
|
|
|
79
79
|
import type { AzureOpenAiExecutionToolsOptions } from '../llm-providers/azure-openai/AzureOpenAiExecutionToolsOptions';
|
|
80
80
|
import type { DeepseekExecutionToolsOptions } from '../llm-providers/deepseek/DeepseekExecutionToolsOptions';
|
|
81
81
|
import type { GoogleExecutionToolsOptions } from '../llm-providers/google/GoogleExecutionToolsOptions';
|
|
82
|
+
import type { OllamaExecutionToolsOptions } from '../llm-providers/ollama/OllamaExecutionToolsOptions';
|
|
82
83
|
import type { OpenAiAssistantExecutionToolsOptions } from '../llm-providers/openai/OpenAiAssistantExecutionToolsOptions';
|
|
83
84
|
import type { OpenAiExecutionToolsOptions } from '../llm-providers/openai/OpenAiExecutionToolsOptions';
|
|
84
85
|
import type { VercelExecutionToolsOptions } from '../llm-providers/vercel/VercelExecutionToolsOptions';
|
|
@@ -377,6 +378,7 @@ export type { AnthropicClaudeExecutionToolsProxiedOptions };
|
|
|
377
378
|
export type { AzureOpenAiExecutionToolsOptions };
|
|
378
379
|
export type { DeepseekExecutionToolsOptions };
|
|
379
380
|
export type { GoogleExecutionToolsOptions };
|
|
381
|
+
export type { OllamaExecutionToolsOptions };
|
|
380
382
|
export type { OpenAiAssistantExecutionToolsOptions };
|
|
381
383
|
export type { OpenAiExecutionToolsOptions };
|
|
382
384
|
export type { VercelExecutionToolsOptions };
|
|
@@ -7,6 +7,8 @@ import { _DeepseekMetadataRegistration } from '../llm-providers/deepseek/registe
|
|
|
7
7
|
import { _DeepseekRegistration } from '../llm-providers/deepseek/register-constructor';
|
|
8
8
|
import { _GoogleMetadataRegistration } from '../llm-providers/google/register-configuration';
|
|
9
9
|
import { _GoogleRegistration } from '../llm-providers/google/register-constructor';
|
|
10
|
+
import { _OllamaMetadataRegistration } from '../llm-providers/ollama/register-configuration';
|
|
11
|
+
import { _OllamaRegistration } from '../llm-providers/ollama/register-constructor';
|
|
10
12
|
import { _OpenAiMetadataRegistration } from '../llm-providers/openai/register-configuration';
|
|
11
13
|
import { _OpenAiAssistantMetadataRegistration } from '../llm-providers/openai/register-configuration';
|
|
12
14
|
import { _OpenAiRegistration } from '../llm-providers/openai/register-constructor';
|
|
@@ -35,6 +37,8 @@ export { _DeepseekMetadataRegistration };
|
|
|
35
37
|
export { _DeepseekRegistration };
|
|
36
38
|
export { _GoogleMetadataRegistration };
|
|
37
39
|
export { _GoogleRegistration };
|
|
40
|
+
export { _OllamaMetadataRegistration };
|
|
41
|
+
export { _OllamaRegistration };
|
|
38
42
|
export { _OpenAiMetadataRegistration };
|
|
39
43
|
export { _OpenAiAssistantMetadataRegistration };
|
|
40
44
|
export { _OpenAiRegistration };
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { ModelVariant } from '../types/ModelVariant';
|
|
2
|
+
import type { number_usd } from '../types/typeAliases';
|
|
2
3
|
import type { string_model_description } from '../types/typeAliases';
|
|
3
4
|
import type { string_model_name } from '../types/typeAliases';
|
|
4
5
|
import type { string_title } from '../types/typeAliases';
|
|
@@ -32,7 +33,14 @@ export type AvailableModel = {
|
|
|
32
33
|
* @example "Model with 1 billion parameters and advanced reasoning capabilities"
|
|
33
34
|
*/
|
|
34
35
|
readonly modelDescription?: string_model_description;
|
|
36
|
+
/**
|
|
37
|
+
* Pricing information for the model
|
|
38
|
+
*/
|
|
39
|
+
readonly pricing?: {
|
|
40
|
+
readonly prompt: number_usd;
|
|
41
|
+
readonly output: number_usd;
|
|
42
|
+
};
|
|
35
43
|
};
|
|
36
44
|
/**
|
|
37
|
-
* TODO:
|
|
45
|
+
* TODO: [🧠] Maybe rename to something else - like `ModelInformation` or `ModelMetadata`
|
|
38
46
|
*/
|
|
@@ -72,6 +72,8 @@ export type AbstractTask<TTaskResult extends AbstractTaskResult> = {
|
|
|
72
72
|
readonly taskId: task_id;
|
|
73
73
|
/**
|
|
74
74
|
* Human-readable title of the task - used for displaying in the UI
|
|
75
|
+
*
|
|
76
|
+
* For example name of the book which is being executed
|
|
75
77
|
*/
|
|
76
78
|
readonly title: string;
|
|
77
79
|
/**
|
|
@@ -99,7 +101,7 @@ export type AbstractTask<TTaskResult extends AbstractTaskResult> = {
|
|
|
99
101
|
/**
|
|
100
102
|
* Gets just the current value which is mutated during the task processing
|
|
101
103
|
*/
|
|
102
|
-
currentValue: PartialDeep<TTaskResult>;
|
|
104
|
+
readonly currentValue: PartialDeep<TTaskResult>;
|
|
103
105
|
/**
|
|
104
106
|
* List of errors that occurred during the task processing
|
|
105
107
|
*/
|
|
@@ -4,12 +4,12 @@ import type { LlmExecutionTools } from '../../execution/LlmExecutionTools';
|
|
|
4
4
|
* Creates a wrapper around LlmExecutionTools that only exposes models matching the filter function
|
|
5
5
|
*
|
|
6
6
|
* @param llmTools The original LLM execution tools to wrap
|
|
7
|
-
* @param
|
|
7
|
+
* @param predicate Function that determines whether a model should be included
|
|
8
8
|
* @returns A new LlmExecutionTools instance with filtered models
|
|
9
9
|
*
|
|
10
10
|
* @public exported from `@promptbook/core`
|
|
11
11
|
*/
|
|
12
|
-
export declare function filterModels<TLlmTools extends LlmExecutionTools>(llmTools: TLlmTools,
|
|
12
|
+
export declare function filterModels<TLlmTools extends LlmExecutionTools>(llmTools: TLlmTools, predicate: (model: AvailableModel) => boolean): TLlmTools;
|
|
13
13
|
/**
|
|
14
14
|
* TODO: !!! [models] Test that this is working
|
|
15
15
|
*/
|
package/esm/typings/src/llm-providers/{openai/computeUsage.d.ts → _common/utils/pricing.d.ts}
RENAMED
|
@@ -8,9 +8,9 @@
|
|
|
8
8
|
*/
|
|
9
9
|
type string_model_price = `$${number}.${number} / ${number}M tokens`;
|
|
10
10
|
/**
|
|
11
|
-
*
|
|
11
|
+
* Create price per one token based on the string value found on openai page
|
|
12
12
|
*
|
|
13
13
|
* @private within the repository, used only as internal helper for `OPENAI_MODELS`
|
|
14
14
|
*/
|
|
15
|
-
export declare function
|
|
15
|
+
export declare function pricing(value: string_model_price): number;
|
|
16
16
|
export {};
|
package/esm/typings/src/llm-providers/anthropic-claude/AnthropicClaudeExecutionToolsOptions.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import type { ClientOptions } from '@anthropic-ai/sdk';
|
|
|
2
2
|
import type { CommonToolsOptions } from '../../execution/CommonToolsOptions';
|
|
3
3
|
import type { RemoteClientOptions } from '../../remote-server/types/RemoteClientOptions';
|
|
4
4
|
/**
|
|
5
|
-
* Options for `AnthropicClaudeExecutionTools`
|
|
5
|
+
* Options for `createAnthropicClaudeExecutionTools` and `AnthropicClaudeExecutionTools`
|
|
6
6
|
*
|
|
7
7
|
* This extends Anthropic's `ClientOptions` with are directly passed to the Anthropic client.
|
|
8
8
|
* @public exported from `@promptbook/anthropic-claude`
|
|
@@ -3,7 +3,7 @@ import type { string_name } from '../../types/typeAliases';
|
|
|
3
3
|
import type { string_token } from '../../types/typeAliases';
|
|
4
4
|
import type { string_user_id } from '../../types/typeAliases';
|
|
5
5
|
/**
|
|
6
|
-
* Options for `AzureOpenAiExecutionTools`
|
|
6
|
+
* Options for `createAzureOpenAiExecutionTools` and `AzureOpenAiExecutionTools`
|
|
7
7
|
*
|
|
8
8
|
* @see https://oai.azure.com/portal/
|
|
9
9
|
* @public exported from `@promptbook/azure-openai`
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { createDeepSeek } from '@ai-sdk/deepseek';
|
|
2
2
|
import type { VercelExecutionToolsOptions } from '../vercel/VercelExecutionToolsOptions';
|
|
3
3
|
/**
|
|
4
|
-
* Options for `
|
|
4
|
+
* Options for `createDeepseekExecutionTools`
|
|
5
5
|
*
|
|
6
6
|
* This combines options for Promptbook, Deepseek and Vercel together
|
|
7
7
|
* @public exported from `@promptbook/deepseek`
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { createGoogleGenerativeAI } from '@ai-sdk/google';
|
|
2
2
|
import type { VercelExecutionToolsOptions } from '../vercel/VercelExecutionToolsOptions';
|
|
3
3
|
/**
|
|
4
|
-
* Options for `
|
|
4
|
+
* Options for `createGoogleExecutionTools`
|
|
5
5
|
*
|
|
6
6
|
* This combines options for Promptbook, Google and Vercel together
|
|
7
7
|
* @public exported from `@promptbook/google`
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { AvailableModel } from '../../execution/AvailableModel';
|
|
2
|
+
import type { LlmExecutionTools } from '../../execution/LlmExecutionTools';
|
|
3
|
+
import type { Usage } from '../../execution/Usage';
|
|
4
|
+
import type { string_markdown } from '../../types/typeAliases';
|
|
5
|
+
import type { string_markdown_text } from '../../types/typeAliases';
|
|
6
|
+
import type { string_title } from '../../types/typeAliases';
|
|
7
|
+
import { computeOpenAiUsage } from '../openai/computeOpenAiUsage';
|
|
8
|
+
import { OpenAiCompatibleExecutionTools } from '../openai/OpenAiCompatibleExecutionTools';
|
|
9
|
+
import type { OllamaExecutionToolsOptions } from './OllamaExecutionToolsOptions';
|
|
10
|
+
/**
|
|
11
|
+
* Execution Tools for calling Ollama API
|
|
12
|
+
*
|
|
13
|
+
* @public exported from `@promptbook/ollama`
|
|
14
|
+
*/
|
|
15
|
+
export declare class OllamaExecutionTools extends OpenAiCompatibleExecutionTools implements LlmExecutionTools {
|
|
16
|
+
constructor(ollamaOptions: OllamaExecutionToolsOptions);
|
|
17
|
+
get title(): string_title & string_markdown_text;
|
|
18
|
+
get description(): string_markdown;
|
|
19
|
+
/**
|
|
20
|
+
* List all available models (non dynamically)
|
|
21
|
+
*
|
|
22
|
+
* Note: Purpose of this is to provide more information about models than standard listing from API
|
|
23
|
+
*/
|
|
24
|
+
protected get HARDCODED_MODELS(): ReadonlyArray<AvailableModel>;
|
|
25
|
+
/**
|
|
26
|
+
* Computes the usage of the Ollama API based on the response from Ollama
|
|
27
|
+
*/
|
|
28
|
+
protected computeUsage(...args: Parameters<typeof computeOpenAiUsage>): Usage;
|
|
29
|
+
/**
|
|
30
|
+
* Default model for chat variant.
|
|
31
|
+
*/
|
|
32
|
+
protected getDefaultChatModel(): AvailableModel;
|
|
33
|
+
/**
|
|
34
|
+
* Default model for completion variant.
|
|
35
|
+
*/
|
|
36
|
+
protected getDefaultCompletionModel(): AvailableModel;
|
|
37
|
+
/**
|
|
38
|
+
* Default model for completion variant.
|
|
39
|
+
*/
|
|
40
|
+
protected getDefaultEmbeddingModel(): AvailableModel;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* TODO: [🛄] Some way how to re-wrap the errors from `OpenAiCompatibleExecutionTools`
|
|
44
|
+
*/
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { OpenAiExecutionToolsOptions } from '../openai/OpenAiExecutionToolsOptions';
|
|
2
|
+
/**
|
|
3
|
+
* Default base URL for Ollama API
|
|
4
|
+
*
|
|
5
|
+
* @public exported from `@promptbook/ollama`
|
|
6
|
+
*/
|
|
7
|
+
export declare const DEFAULT_OLLAMA_BASE_URL = "http://localhost:11434/v1";
|
|
8
|
+
/**
|
|
9
|
+
* Options for `createOllamaExecutionTools`
|
|
10
|
+
*
|
|
11
|
+
* This combines options for Promptbook, Google and Vercel together
|
|
12
|
+
* @public exported from `@promptbook/ollama`
|
|
13
|
+
*/
|
|
14
|
+
export type OllamaExecutionToolsOptions = {
|
|
15
|
+
/**
|
|
16
|
+
* Base URL of Ollama API
|
|
17
|
+
*
|
|
18
|
+
* Note: Naming this `baseURL` not `baseUrl` to be consistent with OpenAI API
|
|
19
|
+
*
|
|
20
|
+
* @default `DEFAULT_OLLAMA_BASE_URL`
|
|
21
|
+
*/
|
|
22
|
+
baseURL?: string;
|
|
23
|
+
} & Omit<OpenAiExecutionToolsOptions, 'baseURL' | 'userId'>;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { LlmExecutionTools } from '../../execution/LlmExecutionTools';
|
|
2
|
+
import type { OllamaExecutionToolsOptions } from './OllamaExecutionToolsOptions';
|
|
3
|
+
/**
|
|
4
|
+
* Execution Tools for calling Ollama API
|
|
5
|
+
*
|
|
6
|
+
* @public exported from `@promptbook/ollama`
|
|
7
|
+
*/
|
|
8
|
+
export declare const createOllamaExecutionTools: ((options: OllamaExecutionToolsOptions) => LlmExecutionTools) & {
|
|
9
|
+
packageName: string;
|
|
10
|
+
className: string;
|
|
11
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { AvailableModel } from '../../execution/AvailableModel';
|
|
2
|
+
/**
|
|
3
|
+
* List of available models in Ollama library
|
|
4
|
+
*
|
|
5
|
+
* Note: Done at 2025-05-19
|
|
6
|
+
*
|
|
7
|
+
* @see https://ollama.com/library
|
|
8
|
+
* @public exported from `@promptbook/ollama`
|
|
9
|
+
*/
|
|
10
|
+
export declare const OLLAMA_MODELS: ReadonlyArray<AvailableModel>;
|
|
11
|
+
/**
|
|
12
|
+
* TODO: [🚸] Not all models are compatible with JSON mode, add this information here and use it
|
|
13
|
+
* Note: [💞] Ignore a discrepancy between file name and entity name
|
|
14
|
+
*/
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { Registration } from '../../utils/$Register';
|
|
2
|
+
/**
|
|
3
|
+
* Registration of LLM provider metadata
|
|
4
|
+
*
|
|
5
|
+
* Warning: This is not useful for the end user, it is just a side effect of the mechanism that handles all available LLM tools
|
|
6
|
+
*
|
|
7
|
+
* @public exported from `@promptbook/core`
|
|
8
|
+
* @public exported from `@promptbook/wizzard`
|
|
9
|
+
* @public exported from `@promptbook/cli`
|
|
10
|
+
*/
|
|
11
|
+
export declare const _OllamaMetadataRegistration: Registration;
|
|
12
|
+
/**
|
|
13
|
+
* Note: [💞] Ignore a discrepancy between file name and entity name
|
|
14
|
+
*/
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { Registration } from '../../utils/$Register';
|
|
2
|
+
/**
|
|
3
|
+
* Registration of LLM provider
|
|
4
|
+
*
|
|
5
|
+
* Warning: This is not useful for the end user, it is just a side effect of the mechanism that handles all available LLM tools
|
|
6
|
+
*
|
|
7
|
+
* @public exported from `@promptbook/ollama`
|
|
8
|
+
* @public exported from `@promptbook/wizzard`
|
|
9
|
+
* @public exported from `@promptbook/cli`
|
|
10
|
+
*/
|
|
11
|
+
export declare const _OllamaRegistration: Registration;
|
|
12
|
+
/**
|
|
13
|
+
* TODO: [🎶] Naming "constructor" vs "creator" vs "factory"
|
|
14
|
+
* Note: [💞] Ignore a discrepancy between file name and entity name
|
|
15
|
+
*/
|
|
@@ -2,7 +2,7 @@ import type { ClientOptions } from 'openai';
|
|
|
2
2
|
import type { string_token } from '../../types/typeAliases';
|
|
3
3
|
import type { OpenAiExecutionToolsOptions } from './OpenAiExecutionToolsOptions';
|
|
4
4
|
/**
|
|
5
|
-
* Options for `OpenAiAssistantExecutionTools`
|
|
5
|
+
* Options for `createOpenAiAssistantExecutionTools` and `OpenAiAssistantExecutionTools`
|
|
6
6
|
*
|
|
7
7
|
* @public exported from `@promptbook/openai`
|
|
8
8
|
*/
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import OpenAI from 'openai';
|
|
2
|
+
import type { AvailableModel } from '../../execution/AvailableModel';
|
|
3
|
+
import type { LlmExecutionTools } from '../../execution/LlmExecutionTools';
|
|
4
|
+
import type { ChatPromptResult } from '../../execution/PromptResult';
|
|
5
|
+
import type { CompletionPromptResult } from '../../execution/PromptResult';
|
|
6
|
+
import type { EmbeddingPromptResult } from '../../execution/PromptResult';
|
|
7
|
+
import type { Usage } from '../../execution/Usage';
|
|
8
|
+
import type { Prompt } from '../../types/Prompt';
|
|
9
|
+
import type { string_markdown } from '../../types/typeAliases';
|
|
10
|
+
import type { string_markdown_text } from '../../types/typeAliases';
|
|
11
|
+
import type { string_model_name } from '../../types/typeAliases';
|
|
12
|
+
import type { string_title } from '../../types/typeAliases';
|
|
13
|
+
import { computeOpenAiUsage } from './computeOpenAiUsage';
|
|
14
|
+
import type { OpenAiExecutionToolsOptions } from './OpenAiExecutionToolsOptions';
|
|
15
|
+
/**
|
|
16
|
+
* Execution Tools for calling OpenAI API or other OpeenAI compatible provider
|
|
17
|
+
*
|
|
18
|
+
* @public exported from `@promptbook/openai`
|
|
19
|
+
*/
|
|
20
|
+
export declare abstract class OpenAiCompatibleExecutionTools implements LlmExecutionTools {
|
|
21
|
+
protected readonly options: OpenAiExecutionToolsOptions;
|
|
22
|
+
/**
|
|
23
|
+
* OpenAI API client.
|
|
24
|
+
*/
|
|
25
|
+
private client;
|
|
26
|
+
/**
|
|
27
|
+
* Rate limiter instance
|
|
28
|
+
*/
|
|
29
|
+
private limiter;
|
|
30
|
+
/**
|
|
31
|
+
* Creates OpenAI compatible Execution Tools.
|
|
32
|
+
*
|
|
33
|
+
* @param options which are relevant are directly passed to the OpenAI compatible client
|
|
34
|
+
*/
|
|
35
|
+
constructor(options: OpenAiExecutionToolsOptions);
|
|
36
|
+
abstract get title(): string_title & string_markdown_text;
|
|
37
|
+
abstract get description(): string_markdown;
|
|
38
|
+
getClient(): Promise<OpenAI>;
|
|
39
|
+
/**
|
|
40
|
+
* Check the `options` passed to `constructor`
|
|
41
|
+
*/
|
|
42
|
+
checkConfiguration(): Promise<void>;
|
|
43
|
+
/**
|
|
44
|
+
* List all available OpenAI compatible models that can be used
|
|
45
|
+
*/
|
|
46
|
+
listModels(): Promise<ReadonlyArray<AvailableModel>>;
|
|
47
|
+
/**
|
|
48
|
+
* Calls OpenAI compatible API to use a chat model.
|
|
49
|
+
*/
|
|
50
|
+
callChatModel(prompt: Pick<Prompt, 'content' | 'parameters' | 'modelRequirements' | 'format'>): Promise<ChatPromptResult>;
|
|
51
|
+
/**
|
|
52
|
+
* Calls OpenAI API to use a complete model.
|
|
53
|
+
*/
|
|
54
|
+
callCompletionModel(prompt: Pick<Prompt, 'content' | 'parameters' | 'modelRequirements'>): Promise<CompletionPromptResult>;
|
|
55
|
+
/**
|
|
56
|
+
* Calls OpenAI compatible API to use a embedding model
|
|
57
|
+
*/
|
|
58
|
+
callEmbeddingModel(prompt: Pick<Prompt, 'content' | 'parameters' | 'modelRequirements'>): Promise<EmbeddingPromptResult>;
|
|
59
|
+
/**
|
|
60
|
+
* Get the model that should be used as default
|
|
61
|
+
*/
|
|
62
|
+
protected getDefaultModel(defaultModelName: string_model_name): AvailableModel;
|
|
63
|
+
/**
|
|
64
|
+
* List all available models (non dynamically)
|
|
65
|
+
*
|
|
66
|
+
* Note: Purpose of this is to provide more information about models than standard listing from API
|
|
67
|
+
*/
|
|
68
|
+
protected abstract get HARDCODED_MODELS(): ReadonlyArray<AvailableModel>;
|
|
69
|
+
/**
|
|
70
|
+
* Computes the usage of the OpenAI API based on the response from OpenAI Compatible API
|
|
71
|
+
*/
|
|
72
|
+
protected abstract computeUsage(...args: Parameters<typeof computeOpenAiUsage>): Usage;
|
|
73
|
+
/**
|
|
74
|
+
* Default model for chat variant.
|
|
75
|
+
*/
|
|
76
|
+
protected abstract getDefaultChatModel(): AvailableModel;
|
|
77
|
+
/**
|
|
78
|
+
* Default model for completion variant.
|
|
79
|
+
*/
|
|
80
|
+
protected abstract getDefaultCompletionModel(): AvailableModel;
|
|
81
|
+
/**
|
|
82
|
+
* Default model for completion variant.
|
|
83
|
+
*/
|
|
84
|
+
protected abstract getDefaultEmbeddingModel(): AvailableModel;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* TODO: [🛄] Some way how to re-wrap the errors from `OpenAiCompatibleExecutionTools`
|
|
88
|
+
* TODO: [🛄] Maybe make custom `OpenAiCompatibleError`
|
|
89
|
+
* TODO: [🧠][🈁] Maybe use `isDeterministic` from options
|
|
90
|
+
* TODO: [🧠][🌰] Allow to pass `title` for tracking purposes
|
|
91
|
+
*/
|
|
@@ -1,79 +1,38 @@
|
|
|
1
|
-
import OpenAI from 'openai';
|
|
2
1
|
import type { AvailableModel } from '../../execution/AvailableModel';
|
|
3
2
|
import type { LlmExecutionTools } from '../../execution/LlmExecutionTools';
|
|
4
|
-
import type { ChatPromptResult } from '../../execution/PromptResult';
|
|
5
|
-
import type { CompletionPromptResult } from '../../execution/PromptResult';
|
|
6
|
-
import type { EmbeddingPromptResult } from '../../execution/PromptResult';
|
|
7
|
-
import type { Prompt } from '../../types/Prompt';
|
|
8
3
|
import type { string_markdown } from '../../types/typeAliases';
|
|
9
4
|
import type { string_markdown_text } from '../../types/typeAliases';
|
|
10
5
|
import type { string_title } from '../../types/typeAliases';
|
|
11
|
-
import
|
|
6
|
+
import { computeOpenAiUsage } from './computeOpenAiUsage';
|
|
7
|
+
import { OpenAiCompatibleExecutionTools } from './OpenAiCompatibleExecutionTools';
|
|
12
8
|
/**
|
|
13
9
|
* Execution Tools for calling OpenAI API
|
|
14
10
|
*
|
|
15
11
|
* @public exported from `@promptbook/openai`
|
|
16
12
|
*/
|
|
17
|
-
export declare class OpenAiExecutionTools implements LlmExecutionTools {
|
|
18
|
-
protected readonly options: OpenAiExecutionToolsOptions;
|
|
19
|
-
/**
|
|
20
|
-
* OpenAI API client.
|
|
21
|
-
*/
|
|
22
|
-
private client;
|
|
23
|
-
/**
|
|
24
|
-
* Rate limiter instance
|
|
25
|
-
*/
|
|
26
|
-
private limiter;
|
|
27
|
-
/**
|
|
28
|
-
* Creates OpenAI Execution Tools.
|
|
29
|
-
*
|
|
30
|
-
* @param options which are relevant are directly passed to the OpenAI client
|
|
31
|
-
*/
|
|
32
|
-
constructor(options: OpenAiExecutionToolsOptions);
|
|
13
|
+
export declare class OpenAiExecutionTools extends OpenAiCompatibleExecutionTools implements LlmExecutionTools {
|
|
33
14
|
get title(): string_title & string_markdown_text;
|
|
34
15
|
get description(): string_markdown;
|
|
35
|
-
getClient(): Promise<OpenAI>;
|
|
36
|
-
/**
|
|
37
|
-
* Check the `options` passed to `constructor`
|
|
38
|
-
*/
|
|
39
|
-
checkConfiguration(): Promise<void>;
|
|
40
16
|
/**
|
|
41
|
-
* List all available
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
/**
|
|
45
|
-
* Calls OpenAI API to use a chat model.
|
|
46
|
-
*/
|
|
47
|
-
callChatModel(prompt: Pick<Prompt, 'content' | 'parameters' | 'modelRequirements' | 'format'>): Promise<ChatPromptResult>;
|
|
48
|
-
/**
|
|
49
|
-
* Calls OpenAI API to use a complete model.
|
|
50
|
-
*/
|
|
51
|
-
callCompletionModel(prompt: Pick<Prompt, 'content' | 'parameters' | 'modelRequirements'>): Promise<CompletionPromptResult>;
|
|
52
|
-
/**
|
|
53
|
-
* Calls OpenAI API to use a embedding model
|
|
17
|
+
* List all available models (non dynamically)
|
|
18
|
+
*
|
|
19
|
+
* Note: Purpose of this is to provide more information about models than standard listing from API
|
|
54
20
|
*/
|
|
55
|
-
|
|
21
|
+
protected get HARDCODED_MODELS(): ReadonlyArray<AvailableModel>;
|
|
56
22
|
/**
|
|
57
|
-
*
|
|
23
|
+
* Computes the usage of the OpenAI API based on the response from OpenAI
|
|
58
24
|
*/
|
|
59
|
-
|
|
25
|
+
protected computeUsage: typeof computeOpenAiUsage;
|
|
60
26
|
/**
|
|
61
27
|
* Default model for chat variant.
|
|
62
28
|
*/
|
|
63
|
-
|
|
29
|
+
protected getDefaultChatModel(): AvailableModel;
|
|
64
30
|
/**
|
|
65
31
|
* Default model for completion variant.
|
|
66
32
|
*/
|
|
67
|
-
|
|
33
|
+
protected getDefaultCompletionModel(): AvailableModel;
|
|
68
34
|
/**
|
|
69
35
|
* Default model for completion variant.
|
|
70
36
|
*/
|
|
71
|
-
|
|
37
|
+
protected getDefaultEmbeddingModel(): AvailableModel;
|
|
72
38
|
}
|
|
73
|
-
/**
|
|
74
|
-
* TODO: [🧠][🧙♂️] Maybe there can be some wizzard for thoose who want to use just OpenAI
|
|
75
|
-
* TODO: Maybe Create some common util for callChatModel and callCompletionModel
|
|
76
|
-
* TODO: Maybe make custom OpenAiError
|
|
77
|
-
* TODO: [🧠][🈁] Maybe use `isDeterministic` from options
|
|
78
|
-
* TODO: [🧠][🌰] Allow to pass `title` for tracking purposes
|
|
79
|
-
*/
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { ClientOptions } from 'openai';
|
|
2
2
|
import type { CommonToolsOptions } from '../../execution/CommonToolsOptions';
|
|
3
3
|
/**
|
|
4
|
-
* Options for `OpenAiExecutionTools`
|
|
4
|
+
* Options for `createOpenAiExecutionTools` and `OpenAiExecutionTools`
|
|
5
5
|
*
|
|
6
6
|
* This extends OpenAI's `ClientOptions` with are directly passed to the OpenAI client.
|
|
7
7
|
* Rest is used by the `OpenAiExecutionTools`.
|
|
@@ -3,6 +3,8 @@ import type { OpenAiExecutionToolsOptions } from './OpenAiExecutionToolsOptions'
|
|
|
3
3
|
/**
|
|
4
4
|
* Execution Tools for calling OpenAI API
|
|
5
5
|
*
|
|
6
|
+
* Note: This can be also used for other OpenAI compatible APIs, like Ollama
|
|
7
|
+
*
|
|
6
8
|
* @public exported from `@promptbook/openai`
|
|
7
9
|
*/
|
|
8
10
|
export declare const createOpenAiExecutionTools: ((options: OpenAiExecutionToolsOptions) => OpenAiExecutionTools) & {
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import type { AvailableModel } from '../../execution/AvailableModel';
|
|
2
|
-
import type { number_usd } from '../../types/typeAliases';
|
|
3
2
|
/**
|
|
4
3
|
* List of available OpenAI models with pricing
|
|
5
4
|
*
|
|
@@ -9,12 +8,7 @@ import type { number_usd } from '../../types/typeAliases';
|
|
|
9
8
|
* @see https://openai.com/api/pricing/
|
|
10
9
|
* @public exported from `@promptbook/openai`
|
|
11
10
|
*/
|
|
12
|
-
export declare const OPENAI_MODELS: ReadonlyArray<AvailableModel
|
|
13
|
-
pricing?: {
|
|
14
|
-
readonly prompt: number_usd;
|
|
15
|
-
readonly output: number_usd;
|
|
16
|
-
};
|
|
17
|
-
}>;
|
|
11
|
+
export declare const OPENAI_MODELS: ReadonlyArray<AvailableModel>;
|
|
18
12
|
/**
|
|
19
13
|
* Note: [🤖] Add models of new variant
|
|
20
14
|
* TODO: [🧠] Some mechanism to propagate unsureness
|
|
@@ -15,7 +15,7 @@ export declare const BOOK_LANGUAGE_VERSION: string_semantic_version;
|
|
|
15
15
|
export declare const PROMPTBOOK_ENGINE_VERSION: string_promptbook_version;
|
|
16
16
|
/**
|
|
17
17
|
* Represents the version string of the Promptbook engine.
|
|
18
|
-
* It follows semantic versioning (e.g., `0.
|
|
18
|
+
* It follows semantic versioning (e.g., `0.94.0-7`).
|
|
19
19
|
*
|
|
20
20
|
* @generated
|
|
21
21
|
*/
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@promptbook/node",
|
|
3
|
-
"version": "0.94.0-
|
|
3
|
+
"version": "0.94.0-12",
|
|
4
4
|
"description": "Promptbook: Run AI apps in plain human language across multiple models and platforms",
|
|
5
5
|
"private": false,
|
|
6
6
|
"sideEffects": false,
|
|
@@ -36,6 +36,29 @@
|
|
|
36
36
|
"o1-mini",
|
|
37
37
|
"o1-preview",
|
|
38
38
|
"anthropic",
|
|
39
|
+
"claude",
|
|
40
|
+
"claude-3",
|
|
41
|
+
"claude-3-opus",
|
|
42
|
+
"claude-3-sonnet",
|
|
43
|
+
"claude-3-haiku",
|
|
44
|
+
"gemini",
|
|
45
|
+
"gemini-pro",
|
|
46
|
+
"gemini-flash",
|
|
47
|
+
"mixtral",
|
|
48
|
+
"mistral",
|
|
49
|
+
"ollama",
|
|
50
|
+
"ai-orchestration",
|
|
51
|
+
"prompt-engineering",
|
|
52
|
+
"llmops",
|
|
53
|
+
"multimodal",
|
|
54
|
+
"reasoning",
|
|
55
|
+
"rag",
|
|
56
|
+
"embeddings",
|
|
57
|
+
"function-calling",
|
|
58
|
+
"large-language-models",
|
|
59
|
+
"ai-application-framework",
|
|
60
|
+
"text-generation",
|
|
61
|
+
"ai-agents",
|
|
39
62
|
"LLMOps"
|
|
40
63
|
],
|
|
41
64
|
"license": "BUSL-1.1",
|
|
@@ -63,7 +86,7 @@
|
|
|
63
86
|
"module": "./esm/index.es.js",
|
|
64
87
|
"typings": "./esm/typings/src/_packages/node.index.d.ts",
|
|
65
88
|
"peerDependencies": {
|
|
66
|
-
"@promptbook/core": "0.94.0-
|
|
89
|
+
"@promptbook/core": "0.94.0-12"
|
|
67
90
|
},
|
|
68
91
|
"dependencies": {
|
|
69
92
|
"colors": "1.4.0",
|