@promptbook/ollama 0.102.0-4 → 0.102.0-6
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/esm/index.es.js +101 -22
- package/esm/index.es.js.map +1 -1
- package/esm/typings/books/index.d.ts +81 -0
- package/esm/typings/src/_packages/components.index.d.ts +2 -0
- package/esm/typings/src/_packages/markdown-utils.index.d.ts +4 -0
- package/esm/typings/src/_packages/types.index.d.ts +8 -6
- package/esm/typings/src/_packages/utils.index.d.ts +12 -14
- package/esm/typings/src/book-2.0/agent-source/createAgentModelRequirements.d.ts +1 -1
- package/esm/typings/src/book-2.0/utils/generateGravatarUrl.d.ts +1 -1
- package/esm/typings/src/book-2.0/utils/generatePlaceholderAgentProfileImageUrl.d.ts +1 -1
- package/esm/typings/src/book-components/BookEditor/BookEditor.d.ts +1 -1
- package/esm/typings/src/book-components/BookEditor/BookEditorInner.d.ts +1 -1
- package/esm/typings/src/book-components/Chat/Chat/Chat.d.ts +1 -5
- package/esm/typings/src/book-components/Chat/Chat/ChatMessageItem.d.ts +27 -0
- package/esm/typings/src/book-components/Chat/Chat/ChatProps.d.ts +13 -6
- package/esm/typings/src/book-components/Chat/Chat/constants.d.ts +7 -0
- package/esm/typings/src/book-components/Chat/LlmChat/LlmChatProps.d.ts +1 -1
- package/esm/typings/src/book-components/Chat/MockedChat/MockedChat.d.ts +1 -1
- package/esm/typings/src/book-components/Chat/MockedChat/constants.d.ts +1 -1
- package/esm/typings/src/book-components/Chat/save/_common/ChatSaveFormatDefinition.d.ts +1 -1
- package/esm/typings/src/book-components/Chat/save/_common/getChatSaveFormatDefinitions.d.ts +2 -2
- package/esm/typings/src/book-components/Chat/save/_common/string_chat_format_name.d.ts +1 -1
- package/esm/typings/src/execution/LlmExecutionToolsConstructor.d.ts +1 -1
- package/esm/typings/src/execution/execution-report/countWorkingDuration.d.ts +1 -1
- package/esm/typings/src/llm-providers/_common/register/$llmToolsMetadataRegister.d.ts +1 -1
- package/esm/typings/src/llm-providers/_common/register/$llmToolsRegister.d.ts +1 -1
- package/esm/typings/src/llm-providers/_common/register/$registeredLlmToolsMessage.d.ts +1 -2
- package/esm/typings/src/llm-providers/_common/register/LlmToolsConfiguration.d.ts +1 -1
- package/esm/typings/src/llm-providers/_common/register/LlmToolsMetadata.d.ts +1 -1
- package/esm/typings/src/llm-providers/_multiple/joinLlmExecutionTools.d.ts +1 -1
- package/esm/typings/src/llm-providers/agent/register-configuration.d.ts +1 -1
- package/esm/typings/src/llm-providers/agent/register-constructor.d.ts +1 -1
- package/esm/typings/src/llm-providers/anthropic-claude/register-configuration.d.ts +1 -1
- package/esm/typings/src/llm-providers/anthropic-claude/register-constructor.d.ts +1 -1
- package/esm/typings/src/llm-providers/azure-openai/register-configuration.d.ts +1 -1
- package/esm/typings/src/llm-providers/azure-openai/register-constructor.d.ts +1 -1
- package/esm/typings/src/llm-providers/deepseek/register-configuration.d.ts +1 -1
- package/esm/typings/src/llm-providers/deepseek/register-constructor.d.ts +1 -1
- package/esm/typings/src/llm-providers/google/register-configuration.d.ts +1 -1
- package/esm/typings/src/llm-providers/google/register-constructor.d.ts +1 -1
- package/esm/typings/src/llm-providers/ollama/register-configuration.d.ts +1 -1
- package/esm/typings/src/llm-providers/ollama/register-constructor.d.ts +1 -1
- package/esm/typings/src/llm-providers/openai/OpenAiAssistantExecutionTools.d.ts +1 -3
- package/esm/typings/src/llm-providers/openai/OpenAiCompatibleExecutionTools.d.ts +5 -1
- package/esm/typings/src/llm-providers/openai/register-configuration.d.ts +1 -1
- package/esm/typings/src/llm-providers/openai/register-constructor.d.ts +1 -1
- package/esm/typings/src/scrapers/_boilerplate/register-constructor.d.ts +1 -1
- package/esm/typings/src/scrapers/_boilerplate/register-metadata.d.ts +1 -1
- package/esm/typings/src/scrapers/_common/register/$scrapersMetadataRegister.d.ts +1 -1
- package/esm/typings/src/scrapers/_common/register/$scrapersRegister.d.ts +1 -1
- package/esm/typings/src/scrapers/_common/register/ScraperAndConverterMetadata.d.ts +2 -4
- package/esm/typings/src/scrapers/_common/register/ScraperConstructor.d.ts +1 -1
- package/esm/typings/src/scrapers/document/register-constructor.d.ts +1 -1
- package/esm/typings/src/scrapers/document/register-metadata.d.ts +1 -1
- package/esm/typings/src/scrapers/document-legacy/register-constructor.d.ts +1 -1
- package/esm/typings/src/scrapers/document-legacy/register-metadata.d.ts +1 -1
- package/esm/typings/src/scrapers/markdown/register-constructor.d.ts +1 -1
- package/esm/typings/src/scrapers/markdown/register-metadata.d.ts +1 -1
- package/esm/typings/src/scrapers/markitdown/register-constructor.d.ts +1 -1
- package/esm/typings/src/scrapers/markitdown/register-metadata.d.ts +1 -1
- package/esm/typings/src/scrapers/pdf/register-constructor.d.ts +1 -1
- package/esm/typings/src/scrapers/pdf/register-metadata.d.ts +1 -1
- package/esm/typings/src/scrapers/website/register-constructor.d.ts +1 -1
- package/esm/typings/src/scrapers/website/register-metadata.d.ts +1 -1
- package/esm/typings/src/scripting/javascript/postprocessing-functions.d.ts +6 -6
- package/esm/typings/src/types/Prompt.d.ts +5 -0
- package/esm/typings/src/utils/markdown/createMarkdownChart.d.ts +1 -1
- package/esm/typings/src/utils/markdown/humanizeAiText.d.ts +1 -1
- package/esm/typings/src/utils/markdown/humanizeAiTextEllipsis.d.ts +1 -1
- package/esm/typings/src/utils/markdown/humanizeAiTextEmdashed.d.ts +1 -1
- package/esm/typings/src/utils/markdown/humanizeAiTextQuotes.d.ts +1 -1
- package/esm/typings/src/utils/markdown/humanizeAiTextWhitespace.d.ts +1 -1
- package/esm/typings/src/utils/markdown/promptbookifyAiText.d.ts +1 -1
- package/esm/typings/src/utils/{trimCodeBlock.d.ts → markdown/trimCodeBlock.d.ts} +1 -1
- package/esm/typings/src/utils/{trimEndOfCodeBlock.d.ts → markdown/trimEndOfCodeBlock.d.ts} +1 -1
- package/esm/typings/src/utils/{$Register.d.ts → misc/$Register.d.ts} +2 -2
- package/esm/typings/src/utils/{$getCurrentDate.d.ts → misc/$getCurrentDate.d.ts} +1 -1
- package/esm/typings/src/utils/{arrayableToArray.d.ts → misc/arrayableToArray.d.ts} +1 -1
- package/esm/typings/src/utils/misc/debounce.d.ts +5 -0
- package/esm/typings/src/utils/{emojis.d.ts → misc/emojis.d.ts} +1 -1
- package/esm/typings/src/utils/misc/injectCssModuleIntoShadowRoot.d.ts +20 -0
- package/esm/typings/src/version.d.ts +1 -1
- package/package.json +2 -2
- package/umd/index.umd.js +101 -22
- package/umd/index.umd.js.map +1 -1
- package/esm/typings/src/book-components/BookEditor/injectCssModuleIntoShadowRoot.d.ts +0 -11
- /package/esm/typings/src/utils/{trimCodeBlock.test.d.ts → markdown/trimCodeBlock.test.d.ts} +0 -0
- /package/esm/typings/src/utils/{trimEndOfCodeBlock.test.d.ts → markdown/trimEndOfCodeBlock.test.d.ts} +0 -0
- /package/esm/typings/src/utils/{FromtoItems.d.ts → misc/FromtoItems.d.ts} +0 -0
- /package/esm/typings/src/utils/{arrayableToArray.test.d.ts → misc/arrayableToArray.test.d.ts} +0 -0
- /package/esm/typings/src/utils/{parseNumber.d.ts → misc/parseNumber.d.ts} +0 -0
- /package/esm/typings/src/utils/{parseNumber.test.d.ts → misc/parseNumber.test.d.ts} +0 -0
- /package/esm/typings/src/utils/{removeEmojis.d.ts → normalization/removeEmojis.d.ts} +0 -0
- /package/esm/typings/src/utils/{removeEmojis.test.d.ts → normalization/removeEmojis.test.d.ts} +0 -0
- /package/esm/typings/src/utils/{removeQuotes.d.ts → normalization/removeQuotes.d.ts} +0 -0
- /package/esm/typings/src/utils/{removeQuotes.test.d.ts → normalization/removeQuotes.test.d.ts} +0 -0
- /package/esm/typings/src/utils/{unwrapResult.d.ts → normalization/unwrapResult.d.ts} +0 -0
- /package/esm/typings/src/utils/{unwrapResult.test.d.ts → normalization/unwrapResult.test.d.ts} +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { $Register } from '../../../utils/$Register';
|
|
1
|
+
import { $Register } from '../../../utils/misc/$Register';
|
|
2
2
|
import type { ScraperAndConverterMetadata } from './ScraperAndConverterMetadata';
|
|
3
3
|
/**
|
|
4
4
|
* Global registry for storing metadata about all available scrapers and converters.
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import type { Executables } from '../../../execution/Executables';
|
|
2
|
-
import type { string_mime_type } from '../../../types/typeAliases';
|
|
3
|
-
import type {
|
|
4
|
-
import type { string_title } from '../../../types/typeAliases';
|
|
5
|
-
import type { Registered } from '../../../utils/$Register';
|
|
2
|
+
import type { string_mime_type, string_promptbook_documentation_url, string_title } from '../../../types/typeAliases';
|
|
3
|
+
import type { Registered } from '../../../utils/misc/$Register';
|
|
6
4
|
/**
|
|
7
5
|
* Metadata interface for scrapers and converters in the system.
|
|
8
6
|
* Contains information about the capabilities and requirements of a scraper or converter.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ExecutionTools } from '../../../execution/ExecutionTools';
|
|
2
2
|
import type { PrepareAndScrapeOptions } from '../../../prepare/PrepareAndScrapeOptions';
|
|
3
|
-
import type { Registered } from '../../../utils/$Register';
|
|
3
|
+
import type { Registered } from '../../../utils/misc/$Register';
|
|
4
4
|
import type { Scraper } from '../Scraper';
|
|
5
5
|
import type { ScraperAndConverterMetadata } from './ScraperAndConverterMetadata';
|
|
6
6
|
/**
|
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
import spaceTrim from 'spacetrim';
|
|
2
2
|
import { extractBlock } from '../../postprocessing/utils/extractBlock';
|
|
3
3
|
import { prettifyMarkdown } from '../../utils/markdown/prettifyMarkdown';
|
|
4
|
+
import { trimCodeBlock } from '../../utils/markdown/trimCodeBlock';
|
|
5
|
+
import { trimEndOfCodeBlock } from '../../utils/markdown/trimEndOfCodeBlock';
|
|
4
6
|
import { capitalize } from '../../utils/normalization/capitalize';
|
|
5
7
|
import { decapitalize } from '../../utils/normalization/decapitalize';
|
|
6
8
|
import { nameToUriPart } from '../../utils/normalization/nameToUriPart';
|
|
7
9
|
import { nameToUriParts } from '../../utils/normalization/nameToUriParts';
|
|
8
10
|
import { normalizeToKebabCase } from '../../utils/normalization/normalize-to-kebab-case';
|
|
11
|
+
import { normalizeTo_camelCase } from '../../utils/normalization/normalizeTo_camelCase';
|
|
9
12
|
import { normalizeTo_PascalCase } from '../../utils/normalization/normalizeTo_PascalCase';
|
|
10
13
|
import { normalizeTo_SCREAMING_CASE } from '../../utils/normalization/normalizeTo_SCREAMING_CASE';
|
|
11
|
-
import { normalizeTo_camelCase } from '../../utils/normalization/normalizeTo_camelCase';
|
|
12
14
|
import { normalizeTo_snake_case } from '../../utils/normalization/normalizeTo_snake_case';
|
|
13
15
|
import { normalizeWhitespaces } from '../../utils/normalization/normalizeWhitespaces';
|
|
14
16
|
import { removeDiacritics } from '../../utils/normalization/removeDiacritics';
|
|
15
|
-
import { removeEmojis } from '../../utils/removeEmojis';
|
|
16
|
-
import { removeQuotes } from '../../utils/removeQuotes';
|
|
17
|
-
import {
|
|
18
|
-
import { trimEndOfCodeBlock } from '../../utils/trimEndOfCodeBlock';
|
|
19
|
-
import { unwrapResult } from '../../utils/unwrapResult';
|
|
17
|
+
import { removeEmojis } from '../../utils/normalization/removeEmojis';
|
|
18
|
+
import { removeQuotes } from '../../utils/normalization/removeQuotes';
|
|
19
|
+
import { unwrapResult } from '../../utils/normalization/unwrapResult';
|
|
20
20
|
/**
|
|
21
21
|
* Collection of utility functions that can be used for post-processing model outputs.
|
|
22
22
|
* These functions help transform, extract, or format the raw model responses.
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { FormatCommand } from '../commands/FORMAT/FormatCommand';
|
|
2
|
+
import type { ChatMessage } from '../book-components/Chat/types/ChatMessage';
|
|
2
3
|
import type { Expectations } from '../pipeline/PipelineJson/Expectations';
|
|
3
4
|
import type { ChatModelRequirements } from './ModelRequirements';
|
|
4
5
|
import type { CompletionModelRequirements } from './ModelRequirements';
|
|
@@ -38,6 +39,10 @@ export type ChatPrompt = CommonPrompt & {
|
|
|
38
39
|
* Requirements for chat model
|
|
39
40
|
*/
|
|
40
41
|
modelRequirements: ChatModelRequirements;
|
|
42
|
+
/**
|
|
43
|
+
* Optional chat thread (history of previous messages)
|
|
44
|
+
*/
|
|
45
|
+
thread?: ChatMessage[];
|
|
41
46
|
};
|
|
42
47
|
/**
|
|
43
48
|
* Embedding prompt
|
|
@@ -5,6 +5,6 @@
|
|
|
5
5
|
* Note: This is useful for post-processing of the result of the chat LLM model
|
|
6
6
|
* when the model wraps the result in the (markdown) code block.
|
|
7
7
|
*
|
|
8
|
-
* @public exported from `@promptbook/utils`
|
|
8
|
+
* @public exported from `@promptbook/markdown-utils`
|
|
9
9
|
*/
|
|
10
10
|
export declare function trimCodeBlock(value: string): string;
|
|
@@ -4,6 +4,6 @@
|
|
|
4
4
|
* Note: This is useful for post-processing of the result of the completion LLM model
|
|
5
5
|
* if you want to start code block in the prompt but you don't want to end it in the result.
|
|
6
6
|
*
|
|
7
|
-
* @public exported from `@promptbook/utils`
|
|
7
|
+
* @public exported from `@promptbook/markdown-utils`
|
|
8
8
|
*/
|
|
9
9
|
export declare function trimEndOfCodeBlock(value: string): string;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type IDestroyable } from 'destroyable';
|
|
2
|
-
import type { string_name } from '
|
|
3
|
-
import type { TODO_string } from '
|
|
2
|
+
import type { string_name } from '../../types/typeAliases';
|
|
3
|
+
import type { TODO_string } from '../organization/TODO_string';
|
|
4
4
|
/**
|
|
5
5
|
* Represents an entity in a global registry.
|
|
6
6
|
* Contains identifying information about the package and class.
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { string_css_class } from '../../types/typeAliases';
|
|
2
|
+
export type InjectCssModuleIntoShadowRootOptions = {
|
|
3
|
+
/**
|
|
4
|
+
* The shadow root where the styles should be injected
|
|
5
|
+
*/
|
|
6
|
+
shadowRoot: ShadowRoot;
|
|
7
|
+
/**
|
|
8
|
+
* The imported CSS module styles object
|
|
9
|
+
*/
|
|
10
|
+
styles: Record<string_css_class, string_css_class>;
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* Inject the CSS module rules (derived from imported `styles`) into the provided shadow root.
|
|
14
|
+
* This allows CSS modules (which are normally emitted into the document head) to be
|
|
15
|
+
* available inside the component's shadow DOM.
|
|
16
|
+
*
|
|
17
|
+
* @public exported from `@promptbook/components`
|
|
18
|
+
* <- TODO: [🧠] Make `@promptbook/components-utils`
|
|
19
|
+
*/
|
|
20
|
+
export declare function injectCssModuleIntoShadowRoot(options: InjectCssModuleIntoShadowRootOptions): void;
|
|
@@ -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.102.0-
|
|
18
|
+
* It follows semantic versioning (e.g., `0.102.0-5`).
|
|
19
19
|
*
|
|
20
20
|
* @generated
|
|
21
21
|
*/
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@promptbook/ollama",
|
|
3
|
-
"version": "0.102.0-
|
|
3
|
+
"version": "0.102.0-6",
|
|
4
4
|
"description": "Promptbook: Run AI apps in plain human language across multiple models and platforms",
|
|
5
5
|
"private": false,
|
|
6
6
|
"sideEffects": false,
|
|
@@ -94,7 +94,7 @@
|
|
|
94
94
|
"module": "./esm/index.es.js",
|
|
95
95
|
"typings": "./esm/typings/src/_packages/ollama.index.d.ts",
|
|
96
96
|
"peerDependencies": {
|
|
97
|
-
"@promptbook/core": "0.102.0-
|
|
97
|
+
"@promptbook/core": "0.102.0-6"
|
|
98
98
|
},
|
|
99
99
|
"dependencies": {
|
|
100
100
|
"bottleneck": "^2.19.5",
|
package/umd/index.umd.js
CHANGED
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
* @generated
|
|
26
26
|
* @see https://github.com/webgptorg/promptbook
|
|
27
27
|
*/
|
|
28
|
-
const PROMPTBOOK_ENGINE_VERSION = '0.102.0-
|
|
28
|
+
const PROMPTBOOK_ENGINE_VERSION = '0.102.0-6';
|
|
29
29
|
/**
|
|
30
30
|
* TODO: string_promptbook_version should be constrained to the all versions of Promptbook engine
|
|
31
31
|
* Note: [💞] Ignore a discrepancy between file name and entity name
|
|
@@ -1996,6 +1996,10 @@
|
|
|
1996
1996
|
* Tracks models and parameters that have already been retried to prevent infinite loops
|
|
1997
1997
|
*/
|
|
1998
1998
|
this.retriedUnsupportedParameters = new Set();
|
|
1999
|
+
/**
|
|
2000
|
+
* Tracks the history of attempts for error reporting
|
|
2001
|
+
*/
|
|
2002
|
+
this.attemptHistory = [];
|
|
1999
2003
|
// TODO: Allow configuring rate limits via options
|
|
2000
2004
|
this.limiter = new Bottleneck__default["default"]({
|
|
2001
2005
|
minTime: 60000 / (this.options.maxRequestsPerMinute || DEFAULT_MAX_REQUESTS_PER_MINUTE),
|
|
@@ -2062,7 +2066,7 @@
|
|
|
2062
2066
|
/**
|
|
2063
2067
|
* Internal method that handles parameter retry for chat model calls
|
|
2064
2068
|
*/
|
|
2065
|
-
async callChatModelWithRetry(prompt, currentModelRequirements) {
|
|
2069
|
+
async callChatModelWithRetry(prompt, currentModelRequirements, attemptStack = []) {
|
|
2066
2070
|
var _a;
|
|
2067
2071
|
if (this.options.isVerbose) {
|
|
2068
2072
|
console.info(`💬 ${this.title} callChatModel call`, { prompt, currentModelRequirements });
|
|
@@ -2089,6 +2093,14 @@
|
|
|
2089
2093
|
// <- TODO: [🚸] Not all models are compatible with JSON mode
|
|
2090
2094
|
// > 'response_format' of type 'json_object' is not supported with this model.
|
|
2091
2095
|
const rawPromptContent = templateParameters(content, { ...parameters, modelName });
|
|
2096
|
+
// Convert thread to OpenAI format if present
|
|
2097
|
+
let threadMessages = [];
|
|
2098
|
+
if ('thread' in prompt && Array.isArray(prompt.thread)) {
|
|
2099
|
+
threadMessages = prompt.thread.map((msg) => ({
|
|
2100
|
+
role: msg.role === 'assistant' ? 'assistant' : 'user',
|
|
2101
|
+
content: msg.content,
|
|
2102
|
+
}));
|
|
2103
|
+
}
|
|
2092
2104
|
const rawRequest = {
|
|
2093
2105
|
...modelSettings,
|
|
2094
2106
|
messages: [
|
|
@@ -2100,6 +2112,7 @@
|
|
|
2100
2112
|
content: currentModelRequirements.systemMessage,
|
|
2101
2113
|
},
|
|
2102
2114
|
]),
|
|
2115
|
+
...threadMessages,
|
|
2103
2116
|
{
|
|
2104
2117
|
role: 'user',
|
|
2105
2118
|
content: rawPromptContent,
|
|
@@ -2160,6 +2173,15 @@
|
|
|
2160
2173
|
assertsError(error);
|
|
2161
2174
|
// Check if this is an unsupported parameter error
|
|
2162
2175
|
if (!isUnsupportedParameterError(error)) {
|
|
2176
|
+
// If we have attemptStack, include it in the error message
|
|
2177
|
+
if (attemptStack.length > 0) {
|
|
2178
|
+
throw new PipelineExecutionError(`All attempts failed. Attempt history:\n` +
|
|
2179
|
+
attemptStack.map((a, i) => ` ${i + 1}. Model: ${a.modelName}` +
|
|
2180
|
+
(a.unsupportedParameter ? `, Stripped: ${a.unsupportedParameter}` : '') +
|
|
2181
|
+
`, Error: ${a.errorMessage}` +
|
|
2182
|
+
(a.stripped ? ' (stripped and retried)' : '')).join('\n') +
|
|
2183
|
+
`\nFinal error: ${error.message}`);
|
|
2184
|
+
}
|
|
2163
2185
|
throw error;
|
|
2164
2186
|
}
|
|
2165
2187
|
// Parse which parameter is unsupported
|
|
@@ -2173,11 +2195,19 @@
|
|
|
2173
2195
|
// Create a unique key for this model + parameter combination to prevent infinite loops
|
|
2174
2196
|
const retryKey = `${modelName}-${unsupportedParameter}`;
|
|
2175
2197
|
if (this.retriedUnsupportedParameters.has(retryKey)) {
|
|
2176
|
-
// Already retried this parameter, throw the error
|
|
2177
|
-
|
|
2178
|
-
|
|
2179
|
-
|
|
2180
|
-
|
|
2198
|
+
// Already retried this parameter, throw the error with attemptStack
|
|
2199
|
+
attemptStack.push({
|
|
2200
|
+
modelName,
|
|
2201
|
+
unsupportedParameter,
|
|
2202
|
+
errorMessage: error.message,
|
|
2203
|
+
stripped: true,
|
|
2204
|
+
});
|
|
2205
|
+
throw new PipelineExecutionError(`All attempts failed. Attempt history:\n` +
|
|
2206
|
+
attemptStack.map((a, i) => ` ${i + 1}. Model: ${a.modelName}` +
|
|
2207
|
+
(a.unsupportedParameter ? `, Stripped: ${a.unsupportedParameter}` : '') +
|
|
2208
|
+
`, Error: ${a.errorMessage}` +
|
|
2209
|
+
(a.stripped ? ' (stripped and retried)' : '')).join('\n') +
|
|
2210
|
+
`\nFinal error: ${error.message}`);
|
|
2181
2211
|
}
|
|
2182
2212
|
// Mark this parameter as retried
|
|
2183
2213
|
this.retriedUnsupportedParameters.add(retryKey);
|
|
@@ -2185,9 +2215,16 @@
|
|
|
2185
2215
|
if (this.options.isVerbose) {
|
|
2186
2216
|
console.warn(colors__default["default"].bgYellow('Warning'), `Removing unsupported parameter '${unsupportedParameter}' for model '${modelName}' and retrying request`);
|
|
2187
2217
|
}
|
|
2218
|
+
// Add to attemptStack
|
|
2219
|
+
attemptStack.push({
|
|
2220
|
+
modelName,
|
|
2221
|
+
unsupportedParameter,
|
|
2222
|
+
errorMessage: error.message,
|
|
2223
|
+
stripped: true,
|
|
2224
|
+
});
|
|
2188
2225
|
// Remove the unsupported parameter and retry
|
|
2189
2226
|
const modifiedModelRequirements = removeUnsupportedModelRequirement(currentModelRequirements, unsupportedParameter);
|
|
2190
|
-
return this.callChatModelWithRetry(prompt, modifiedModelRequirements);
|
|
2227
|
+
return this.callChatModelWithRetry(prompt, modifiedModelRequirements, attemptStack);
|
|
2191
2228
|
}
|
|
2192
2229
|
}
|
|
2193
2230
|
/**
|
|
@@ -2199,7 +2236,7 @@
|
|
|
2199
2236
|
/**
|
|
2200
2237
|
* Internal method that handles parameter retry for completion model calls
|
|
2201
2238
|
*/
|
|
2202
|
-
async callCompletionModelWithRetry(prompt, currentModelRequirements) {
|
|
2239
|
+
async callCompletionModelWithRetry(prompt, currentModelRequirements, attemptStack = []) {
|
|
2203
2240
|
var _a;
|
|
2204
2241
|
if (this.options.isVerbose) {
|
|
2205
2242
|
console.info(`🖋 ${this.title} callCompletionModel call`, { prompt, currentModelRequirements });
|
|
@@ -2274,6 +2311,14 @@
|
|
|
2274
2311
|
assertsError(error);
|
|
2275
2312
|
// Check if this is an unsupported parameter error
|
|
2276
2313
|
if (!isUnsupportedParameterError(error)) {
|
|
2314
|
+
if (attemptStack.length > 0) {
|
|
2315
|
+
throw new PipelineExecutionError(`All attempts failed. Attempt history:\n` +
|
|
2316
|
+
attemptStack.map((a, i) => ` ${i + 1}. Model: ${a.modelName}` +
|
|
2317
|
+
(a.unsupportedParameter ? `, Stripped: ${a.unsupportedParameter}` : '') +
|
|
2318
|
+
`, Error: ${a.errorMessage}` +
|
|
2319
|
+
(a.stripped ? ' (stripped and retried)' : '')).join('\n') +
|
|
2320
|
+
`\nFinal error: ${error.message}`);
|
|
2321
|
+
}
|
|
2277
2322
|
throw error;
|
|
2278
2323
|
}
|
|
2279
2324
|
// Parse which parameter is unsupported
|
|
@@ -2287,11 +2332,18 @@
|
|
|
2287
2332
|
// Create a unique key for this model + parameter combination to prevent infinite loops
|
|
2288
2333
|
const retryKey = `${modelName}-${unsupportedParameter}`;
|
|
2289
2334
|
if (this.retriedUnsupportedParameters.has(retryKey)) {
|
|
2290
|
-
|
|
2291
|
-
|
|
2292
|
-
|
|
2293
|
-
|
|
2294
|
-
|
|
2335
|
+
attemptStack.push({
|
|
2336
|
+
modelName,
|
|
2337
|
+
unsupportedParameter,
|
|
2338
|
+
errorMessage: error.message,
|
|
2339
|
+
stripped: true,
|
|
2340
|
+
});
|
|
2341
|
+
throw new PipelineExecutionError(`All attempts failed. Attempt history:\n` +
|
|
2342
|
+
attemptStack.map((a, i) => ` ${i + 1}. Model: ${a.modelName}` +
|
|
2343
|
+
(a.unsupportedParameter ? `, Stripped: ${a.unsupportedParameter}` : '') +
|
|
2344
|
+
`, Error: ${a.errorMessage}` +
|
|
2345
|
+
(a.stripped ? ' (stripped and retried)' : '')).join('\n') +
|
|
2346
|
+
`\nFinal error: ${error.message}`);
|
|
2295
2347
|
}
|
|
2296
2348
|
// Mark this parameter as retried
|
|
2297
2349
|
this.retriedUnsupportedParameters.add(retryKey);
|
|
@@ -2299,9 +2351,15 @@
|
|
|
2299
2351
|
if (this.options.isVerbose) {
|
|
2300
2352
|
console.warn(colors__default["default"].bgYellow('Warning'), `Removing unsupported parameter '${unsupportedParameter}' for model '${modelName}' and retrying request`);
|
|
2301
2353
|
}
|
|
2354
|
+
attemptStack.push({
|
|
2355
|
+
modelName,
|
|
2356
|
+
unsupportedParameter,
|
|
2357
|
+
errorMessage: error.message,
|
|
2358
|
+
stripped: true,
|
|
2359
|
+
});
|
|
2302
2360
|
// Remove the unsupported parameter and retry
|
|
2303
2361
|
const modifiedModelRequirements = removeUnsupportedModelRequirement(currentModelRequirements, unsupportedParameter);
|
|
2304
|
-
return this.callCompletionModelWithRetry(prompt, modifiedModelRequirements);
|
|
2362
|
+
return this.callCompletionModelWithRetry(prompt, modifiedModelRequirements, attemptStack);
|
|
2305
2363
|
}
|
|
2306
2364
|
}
|
|
2307
2365
|
/**
|
|
@@ -2313,7 +2371,7 @@
|
|
|
2313
2371
|
/**
|
|
2314
2372
|
* Internal method that handles parameter retry for embedding model calls
|
|
2315
2373
|
*/
|
|
2316
|
-
async callEmbeddingModelWithRetry(prompt, currentModelRequirements) {
|
|
2374
|
+
async callEmbeddingModelWithRetry(prompt, currentModelRequirements, attemptStack = []) {
|
|
2317
2375
|
if (this.options.isVerbose) {
|
|
2318
2376
|
console.info(`🖋 ${this.title} embedding call`, { prompt, currentModelRequirements });
|
|
2319
2377
|
}
|
|
@@ -2377,6 +2435,14 @@
|
|
|
2377
2435
|
assertsError(error);
|
|
2378
2436
|
// Check if this is an unsupported parameter error
|
|
2379
2437
|
if (!isUnsupportedParameterError(error)) {
|
|
2438
|
+
if (attemptStack.length > 0) {
|
|
2439
|
+
throw new PipelineExecutionError(`All attempts failed. Attempt history:\n` +
|
|
2440
|
+
attemptStack.map((a, i) => ` ${i + 1}. Model: ${a.modelName}` +
|
|
2441
|
+
(a.unsupportedParameter ? `, Stripped: ${a.unsupportedParameter}` : '') +
|
|
2442
|
+
`, Error: ${a.errorMessage}` +
|
|
2443
|
+
(a.stripped ? ' (stripped and retried)' : '')).join('\n') +
|
|
2444
|
+
`\nFinal error: ${error.message}`);
|
|
2445
|
+
}
|
|
2380
2446
|
throw error;
|
|
2381
2447
|
}
|
|
2382
2448
|
// Parse which parameter is unsupported
|
|
@@ -2390,11 +2456,18 @@
|
|
|
2390
2456
|
// Create a unique key for this model + parameter combination to prevent infinite loops
|
|
2391
2457
|
const retryKey = `${modelName}-${unsupportedParameter}`;
|
|
2392
2458
|
if (this.retriedUnsupportedParameters.has(retryKey)) {
|
|
2393
|
-
|
|
2394
|
-
|
|
2395
|
-
|
|
2396
|
-
|
|
2397
|
-
|
|
2459
|
+
attemptStack.push({
|
|
2460
|
+
modelName,
|
|
2461
|
+
unsupportedParameter,
|
|
2462
|
+
errorMessage: error.message,
|
|
2463
|
+
stripped: true,
|
|
2464
|
+
});
|
|
2465
|
+
throw new PipelineExecutionError(`All attempts failed. Attempt history:\n` +
|
|
2466
|
+
attemptStack.map((a, i) => ` ${i + 1}. Model: ${a.modelName}` +
|
|
2467
|
+
(a.unsupportedParameter ? `, Stripped: ${a.unsupportedParameter}` : '') +
|
|
2468
|
+
`, Error: ${a.errorMessage}` +
|
|
2469
|
+
(a.stripped ? ' (stripped and retried)' : '')).join('\n') +
|
|
2470
|
+
`\nFinal error: ${error.message}`);
|
|
2398
2471
|
}
|
|
2399
2472
|
// Mark this parameter as retried
|
|
2400
2473
|
this.retriedUnsupportedParameters.add(retryKey);
|
|
@@ -2402,9 +2475,15 @@
|
|
|
2402
2475
|
if (this.options.isVerbose) {
|
|
2403
2476
|
console.warn(colors__default["default"].bgYellow('Warning'), `Removing unsupported parameter '${unsupportedParameter}' for model '${modelName}' and retrying request`);
|
|
2404
2477
|
}
|
|
2478
|
+
attemptStack.push({
|
|
2479
|
+
modelName,
|
|
2480
|
+
unsupportedParameter,
|
|
2481
|
+
errorMessage: error.message,
|
|
2482
|
+
stripped: true,
|
|
2483
|
+
});
|
|
2405
2484
|
// Remove the unsupported parameter and retry
|
|
2406
2485
|
const modifiedModelRequirements = removeUnsupportedModelRequirement(currentModelRequirements, unsupportedParameter);
|
|
2407
|
-
return this.callEmbeddingModelWithRetry(prompt, modifiedModelRequirements);
|
|
2486
|
+
return this.callEmbeddingModelWithRetry(prompt, modifiedModelRequirements, attemptStack);
|
|
2408
2487
|
}
|
|
2409
2488
|
}
|
|
2410
2489
|
// <- Note: [🤖] callXxxModel
|