@promptbook/openai 0.102.0-5 → 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 +92 -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 +4 -0
- 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/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 +92 -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/book-components/BookEditor/utils.d.ts +0 -8
- /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.
|
|
@@ -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/openai",
|
|
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,
|
|
@@ -102,7 +102,7 @@
|
|
|
102
102
|
"module": "./esm/index.es.js",
|
|
103
103
|
"typings": "./esm/typings/src/_packages/openai.index.d.ts",
|
|
104
104
|
"peerDependencies": {
|
|
105
|
-
"@promptbook/core": "0.102.0-
|
|
105
|
+
"@promptbook/core": "0.102.0-6"
|
|
106
106
|
},
|
|
107
107
|
"dependencies": {
|
|
108
108
|
"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
|
|
@@ -2025,6 +2025,10 @@
|
|
|
2025
2025
|
* Tracks models and parameters that have already been retried to prevent infinite loops
|
|
2026
2026
|
*/
|
|
2027
2027
|
this.retriedUnsupportedParameters = new Set();
|
|
2028
|
+
/**
|
|
2029
|
+
* Tracks the history of attempts for error reporting
|
|
2030
|
+
*/
|
|
2031
|
+
this.attemptHistory = [];
|
|
2028
2032
|
// TODO: Allow configuring rate limits via options
|
|
2029
2033
|
this.limiter = new Bottleneck__default["default"]({
|
|
2030
2034
|
minTime: 60000 / (this.options.maxRequestsPerMinute || DEFAULT_MAX_REQUESTS_PER_MINUTE),
|
|
@@ -2091,7 +2095,7 @@
|
|
|
2091
2095
|
/**
|
|
2092
2096
|
* Internal method that handles parameter retry for chat model calls
|
|
2093
2097
|
*/
|
|
2094
|
-
async callChatModelWithRetry(prompt, currentModelRequirements) {
|
|
2098
|
+
async callChatModelWithRetry(prompt, currentModelRequirements, attemptStack = []) {
|
|
2095
2099
|
var _a;
|
|
2096
2100
|
if (this.options.isVerbose) {
|
|
2097
2101
|
console.info(`💬 ${this.title} callChatModel call`, { prompt, currentModelRequirements });
|
|
@@ -2198,6 +2202,15 @@
|
|
|
2198
2202
|
assertsError(error);
|
|
2199
2203
|
// Check if this is an unsupported parameter error
|
|
2200
2204
|
if (!isUnsupportedParameterError(error)) {
|
|
2205
|
+
// If we have attemptStack, include it in the error message
|
|
2206
|
+
if (attemptStack.length > 0) {
|
|
2207
|
+
throw new PipelineExecutionError(`All attempts failed. Attempt history:\n` +
|
|
2208
|
+
attemptStack.map((a, i) => ` ${i + 1}. Model: ${a.modelName}` +
|
|
2209
|
+
(a.unsupportedParameter ? `, Stripped: ${a.unsupportedParameter}` : '') +
|
|
2210
|
+
`, Error: ${a.errorMessage}` +
|
|
2211
|
+
(a.stripped ? ' (stripped and retried)' : '')).join('\n') +
|
|
2212
|
+
`\nFinal error: ${error.message}`);
|
|
2213
|
+
}
|
|
2201
2214
|
throw error;
|
|
2202
2215
|
}
|
|
2203
2216
|
// Parse which parameter is unsupported
|
|
@@ -2211,11 +2224,19 @@
|
|
|
2211
2224
|
// Create a unique key for this model + parameter combination to prevent infinite loops
|
|
2212
2225
|
const retryKey = `${modelName}-${unsupportedParameter}`;
|
|
2213
2226
|
if (this.retriedUnsupportedParameters.has(retryKey)) {
|
|
2214
|
-
// Already retried this parameter, throw the error
|
|
2215
|
-
|
|
2216
|
-
|
|
2217
|
-
|
|
2218
|
-
|
|
2227
|
+
// Already retried this parameter, throw the error with attemptStack
|
|
2228
|
+
attemptStack.push({
|
|
2229
|
+
modelName,
|
|
2230
|
+
unsupportedParameter,
|
|
2231
|
+
errorMessage: error.message,
|
|
2232
|
+
stripped: true,
|
|
2233
|
+
});
|
|
2234
|
+
throw new PipelineExecutionError(`All attempts failed. Attempt history:\n` +
|
|
2235
|
+
attemptStack.map((a, i) => ` ${i + 1}. Model: ${a.modelName}` +
|
|
2236
|
+
(a.unsupportedParameter ? `, Stripped: ${a.unsupportedParameter}` : '') +
|
|
2237
|
+
`, Error: ${a.errorMessage}` +
|
|
2238
|
+
(a.stripped ? ' (stripped and retried)' : '')).join('\n') +
|
|
2239
|
+
`\nFinal error: ${error.message}`);
|
|
2219
2240
|
}
|
|
2220
2241
|
// Mark this parameter as retried
|
|
2221
2242
|
this.retriedUnsupportedParameters.add(retryKey);
|
|
@@ -2223,9 +2244,16 @@
|
|
|
2223
2244
|
if (this.options.isVerbose) {
|
|
2224
2245
|
console.warn(colors__default["default"].bgYellow('Warning'), `Removing unsupported parameter '${unsupportedParameter}' for model '${modelName}' and retrying request`);
|
|
2225
2246
|
}
|
|
2247
|
+
// Add to attemptStack
|
|
2248
|
+
attemptStack.push({
|
|
2249
|
+
modelName,
|
|
2250
|
+
unsupportedParameter,
|
|
2251
|
+
errorMessage: error.message,
|
|
2252
|
+
stripped: true,
|
|
2253
|
+
});
|
|
2226
2254
|
// Remove the unsupported parameter and retry
|
|
2227
2255
|
const modifiedModelRequirements = removeUnsupportedModelRequirement(currentModelRequirements, unsupportedParameter);
|
|
2228
|
-
return this.callChatModelWithRetry(prompt, modifiedModelRequirements);
|
|
2256
|
+
return this.callChatModelWithRetry(prompt, modifiedModelRequirements, attemptStack);
|
|
2229
2257
|
}
|
|
2230
2258
|
}
|
|
2231
2259
|
/**
|
|
@@ -2237,7 +2265,7 @@
|
|
|
2237
2265
|
/**
|
|
2238
2266
|
* Internal method that handles parameter retry for completion model calls
|
|
2239
2267
|
*/
|
|
2240
|
-
async callCompletionModelWithRetry(prompt, currentModelRequirements) {
|
|
2268
|
+
async callCompletionModelWithRetry(prompt, currentModelRequirements, attemptStack = []) {
|
|
2241
2269
|
var _a;
|
|
2242
2270
|
if (this.options.isVerbose) {
|
|
2243
2271
|
console.info(`🖋 ${this.title} callCompletionModel call`, { prompt, currentModelRequirements });
|
|
@@ -2312,6 +2340,14 @@
|
|
|
2312
2340
|
assertsError(error);
|
|
2313
2341
|
// Check if this is an unsupported parameter error
|
|
2314
2342
|
if (!isUnsupportedParameterError(error)) {
|
|
2343
|
+
if (attemptStack.length > 0) {
|
|
2344
|
+
throw new PipelineExecutionError(`All attempts failed. Attempt history:\n` +
|
|
2345
|
+
attemptStack.map((a, i) => ` ${i + 1}. Model: ${a.modelName}` +
|
|
2346
|
+
(a.unsupportedParameter ? `, Stripped: ${a.unsupportedParameter}` : '') +
|
|
2347
|
+
`, Error: ${a.errorMessage}` +
|
|
2348
|
+
(a.stripped ? ' (stripped and retried)' : '')).join('\n') +
|
|
2349
|
+
`\nFinal error: ${error.message}`);
|
|
2350
|
+
}
|
|
2315
2351
|
throw error;
|
|
2316
2352
|
}
|
|
2317
2353
|
// Parse which parameter is unsupported
|
|
@@ -2325,11 +2361,18 @@
|
|
|
2325
2361
|
// Create a unique key for this model + parameter combination to prevent infinite loops
|
|
2326
2362
|
const retryKey = `${modelName}-${unsupportedParameter}`;
|
|
2327
2363
|
if (this.retriedUnsupportedParameters.has(retryKey)) {
|
|
2328
|
-
|
|
2329
|
-
|
|
2330
|
-
|
|
2331
|
-
|
|
2332
|
-
|
|
2364
|
+
attemptStack.push({
|
|
2365
|
+
modelName,
|
|
2366
|
+
unsupportedParameter,
|
|
2367
|
+
errorMessage: error.message,
|
|
2368
|
+
stripped: true,
|
|
2369
|
+
});
|
|
2370
|
+
throw new PipelineExecutionError(`All attempts failed. Attempt history:\n` +
|
|
2371
|
+
attemptStack.map((a, i) => ` ${i + 1}. Model: ${a.modelName}` +
|
|
2372
|
+
(a.unsupportedParameter ? `, Stripped: ${a.unsupportedParameter}` : '') +
|
|
2373
|
+
`, Error: ${a.errorMessage}` +
|
|
2374
|
+
(a.stripped ? ' (stripped and retried)' : '')).join('\n') +
|
|
2375
|
+
`\nFinal error: ${error.message}`);
|
|
2333
2376
|
}
|
|
2334
2377
|
// Mark this parameter as retried
|
|
2335
2378
|
this.retriedUnsupportedParameters.add(retryKey);
|
|
@@ -2337,9 +2380,15 @@
|
|
|
2337
2380
|
if (this.options.isVerbose) {
|
|
2338
2381
|
console.warn(colors__default["default"].bgYellow('Warning'), `Removing unsupported parameter '${unsupportedParameter}' for model '${modelName}' and retrying request`);
|
|
2339
2382
|
}
|
|
2383
|
+
attemptStack.push({
|
|
2384
|
+
modelName,
|
|
2385
|
+
unsupportedParameter,
|
|
2386
|
+
errorMessage: error.message,
|
|
2387
|
+
stripped: true,
|
|
2388
|
+
});
|
|
2340
2389
|
// Remove the unsupported parameter and retry
|
|
2341
2390
|
const modifiedModelRequirements = removeUnsupportedModelRequirement(currentModelRequirements, unsupportedParameter);
|
|
2342
|
-
return this.callCompletionModelWithRetry(prompt, modifiedModelRequirements);
|
|
2391
|
+
return this.callCompletionModelWithRetry(prompt, modifiedModelRequirements, attemptStack);
|
|
2343
2392
|
}
|
|
2344
2393
|
}
|
|
2345
2394
|
/**
|
|
@@ -2351,7 +2400,7 @@
|
|
|
2351
2400
|
/**
|
|
2352
2401
|
* Internal method that handles parameter retry for embedding model calls
|
|
2353
2402
|
*/
|
|
2354
|
-
async callEmbeddingModelWithRetry(prompt, currentModelRequirements) {
|
|
2403
|
+
async callEmbeddingModelWithRetry(prompt, currentModelRequirements, attemptStack = []) {
|
|
2355
2404
|
if (this.options.isVerbose) {
|
|
2356
2405
|
console.info(`🖋 ${this.title} embedding call`, { prompt, currentModelRequirements });
|
|
2357
2406
|
}
|
|
@@ -2415,6 +2464,14 @@
|
|
|
2415
2464
|
assertsError(error);
|
|
2416
2465
|
// Check if this is an unsupported parameter error
|
|
2417
2466
|
if (!isUnsupportedParameterError(error)) {
|
|
2467
|
+
if (attemptStack.length > 0) {
|
|
2468
|
+
throw new PipelineExecutionError(`All attempts failed. Attempt history:\n` +
|
|
2469
|
+
attemptStack.map((a, i) => ` ${i + 1}. Model: ${a.modelName}` +
|
|
2470
|
+
(a.unsupportedParameter ? `, Stripped: ${a.unsupportedParameter}` : '') +
|
|
2471
|
+
`, Error: ${a.errorMessage}` +
|
|
2472
|
+
(a.stripped ? ' (stripped and retried)' : '')).join('\n') +
|
|
2473
|
+
`\nFinal error: ${error.message}`);
|
|
2474
|
+
}
|
|
2418
2475
|
throw error;
|
|
2419
2476
|
}
|
|
2420
2477
|
// Parse which parameter is unsupported
|
|
@@ -2428,11 +2485,18 @@
|
|
|
2428
2485
|
// Create a unique key for this model + parameter combination to prevent infinite loops
|
|
2429
2486
|
const retryKey = `${modelName}-${unsupportedParameter}`;
|
|
2430
2487
|
if (this.retriedUnsupportedParameters.has(retryKey)) {
|
|
2431
|
-
|
|
2432
|
-
|
|
2433
|
-
|
|
2434
|
-
|
|
2435
|
-
|
|
2488
|
+
attemptStack.push({
|
|
2489
|
+
modelName,
|
|
2490
|
+
unsupportedParameter,
|
|
2491
|
+
errorMessage: error.message,
|
|
2492
|
+
stripped: true,
|
|
2493
|
+
});
|
|
2494
|
+
throw new PipelineExecutionError(`All attempts failed. Attempt history:\n` +
|
|
2495
|
+
attemptStack.map((a, i) => ` ${i + 1}. Model: ${a.modelName}` +
|
|
2496
|
+
(a.unsupportedParameter ? `, Stripped: ${a.unsupportedParameter}` : '') +
|
|
2497
|
+
`, Error: ${a.errorMessage}` +
|
|
2498
|
+
(a.stripped ? ' (stripped and retried)' : '')).join('\n') +
|
|
2499
|
+
`\nFinal error: ${error.message}`);
|
|
2436
2500
|
}
|
|
2437
2501
|
// Mark this parameter as retried
|
|
2438
2502
|
this.retriedUnsupportedParameters.add(retryKey);
|
|
@@ -2440,9 +2504,15 @@
|
|
|
2440
2504
|
if (this.options.isVerbose) {
|
|
2441
2505
|
console.warn(colors__default["default"].bgYellow('Warning'), `Removing unsupported parameter '${unsupportedParameter}' for model '${modelName}' and retrying request`);
|
|
2442
2506
|
}
|
|
2507
|
+
attemptStack.push({
|
|
2508
|
+
modelName,
|
|
2509
|
+
unsupportedParameter,
|
|
2510
|
+
errorMessage: error.message,
|
|
2511
|
+
stripped: true,
|
|
2512
|
+
});
|
|
2443
2513
|
// Remove the unsupported parameter and retry
|
|
2444
2514
|
const modifiedModelRequirements = removeUnsupportedModelRequirement(currentModelRequirements, unsupportedParameter);
|
|
2445
|
-
return this.callEmbeddingModelWithRetry(prompt, modifiedModelRequirements);
|
|
2515
|
+
return this.callEmbeddingModelWithRetry(prompt, modifiedModelRequirements, attemptStack);
|
|
2446
2516
|
}
|
|
2447
2517
|
}
|
|
2448
2518
|
// <- Note: [🤖] callXxxModel
|