modelfusion 0.107.0 → 0.108.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +44 -0
- package/README.md +11 -10
- package/model-provider/llamacpp/LlamaCppCompletionModel.cjs +17 -3
- package/model-provider/llamacpp/LlamaCppCompletionModel.d.ts +99 -12
- package/model-provider/llamacpp/LlamaCppCompletionModel.js +17 -3
- package/model-provider/openai/AbstractOpenAIChatModel.cjs +2 -10
- package/model-provider/openai/AbstractOpenAIChatModel.d.ts +5 -187
- package/model-provider/openai/AbstractOpenAIChatModel.js +2 -10
- package/model-provider/openai/AbstractOpenAICompletionModel.cjs +167 -0
- package/model-provider/openai/AbstractOpenAICompletionModel.d.ts +199 -0
- package/model-provider/openai/AbstractOpenAICompletionModel.js +163 -0
- package/model-provider/openai/OpenAIChatFunctionCallStructureGenerationModel.d.ts +0 -2
- package/model-provider/openai/OpenAIChatModel.d.ts +3 -6
- package/model-provider/openai/OpenAICompletionModel.cjs +4 -156
- package/model-provider/openai/OpenAICompletionModel.d.ts +4 -191
- package/model-provider/openai/OpenAICompletionModel.js +3 -155
- package/model-provider/openai/index.cjs +1 -0
- package/model-provider/openai/index.d.ts +1 -0
- package/model-provider/openai/index.js +1 -0
- package/model-provider/openai-compatible/OpenAICompatibleChatModel.d.ts +4 -5
- package/model-provider/openai-compatible/OpenAICompatibleCompletionModel.cjs +74 -0
- package/model-provider/openai-compatible/OpenAICompatibleCompletionModel.d.ts +27 -0
- package/model-provider/openai-compatible/OpenAICompatibleCompletionModel.js +70 -0
- package/model-provider/openai-compatible/OpenAICompatibleFacade.cjs +37 -6
- package/model-provider/openai-compatible/OpenAICompatibleFacade.d.ts +33 -5
- package/model-provider/openai-compatible/OpenAICompatibleFacade.js +35 -5
- package/model-provider/openai-compatible/OpenAICompatibleProviderName.cjs +2 -0
- package/model-provider/openai-compatible/OpenAICompatibleProviderName.d.ts +1 -0
- package/model-provider/openai-compatible/OpenAICompatibleProviderName.js +1 -0
- package/model-provider/openai-compatible/TogetherAIApiConfiguration.cjs +29 -0
- package/model-provider/openai-compatible/TogetherAIApiConfiguration.d.ts +18 -0
- package/model-provider/openai-compatible/TogetherAIApiConfiguration.js +25 -0
- package/model-provider/openai-compatible/index.cjs +4 -1
- package/model-provider/openai-compatible/index.d.ts +4 -1
- package/model-provider/openai-compatible/index.js +4 -1
- package/package.json +16 -16
| @@ -7,7 +7,7 @@ import { TextGenerationModelSettings } from "../../model-function/generate-text/ | |
| 7 7 | 
             
            import { TextGenerationFinishReason } from "../../model-function/generate-text/TextGenerationResult.js";
         | 
| 8 8 | 
             
            import { ToolDefinition } from "../../tool/ToolDefinition.js";
         | 
| 9 9 | 
             
            import { OpenAIChatMessage } from "./OpenAIChatMessage.js";
         | 
| 10 | 
            -
            export interface  | 
| 10 | 
            +
            export interface AbstractOpenAIChatSettings extends TextGenerationModelSettings {
         | 
| 11 11 | 
             
                api?: ApiConfiguration;
         | 
| 12 12 | 
             
                model: string;
         | 
| 13 13 | 
             
                functions?: Array<{
         | 
| @@ -72,8 +72,6 @@ export interface AbstractOpenAIChatCallSettings { | |
| 72 72 | 
             
                    type?: "text" | "json_object";
         | 
| 73 73 | 
             
                };
         | 
| 74 74 | 
             
                logitBias?: Record<number, number>;
         | 
| 75 | 
            -
            }
         | 
| 76 | 
            -
            export interface AbstractOpenAIChatSettings extends TextGenerationModelSettings, AbstractOpenAIChatCallSettings {
         | 
| 77 75 | 
             
                isUserIdForwardingEnabled?: boolean;
         | 
| 78 76 | 
             
            }
         | 
| 79 77 | 
             
            export type OpenAIChatPrompt = OpenAIChatMessage[];
         | 
| @@ -87,10 +85,10 @@ export declare abstract class AbstractOpenAIChatModel<SETTINGS extends AbstractO | |
| 87 85 | 
             
                callAPI<RESULT>(messages: OpenAIChatPrompt, options: {
         | 
| 88 86 | 
             
                    responseFormat: OpenAIChatResponseFormatType<RESULT>;
         | 
| 89 87 | 
             
                } & FunctionOptions & {
         | 
| 90 | 
            -
                    functions?:  | 
| 91 | 
            -
                    functionCall?:  | 
| 92 | 
            -
                    tools?:  | 
| 93 | 
            -
                    toolChoice?:  | 
| 88 | 
            +
                    functions?: AbstractOpenAIChatSettings["functions"];
         | 
| 89 | 
            +
                    functionCall?: AbstractOpenAIChatSettings["functionCall"];
         | 
| 90 | 
            +
                    tools?: AbstractOpenAIChatSettings["tools"];
         | 
| 91 | 
            +
                    toolChoice?: AbstractOpenAIChatSettings["toolChoice"];
         | 
| 94 92 | 
             
                }): Promise<RESULT>;
         | 
| 95 93 | 
             
                doGenerateTexts(prompt: OpenAIChatPrompt, options?: FunctionOptions): Promise<{
         | 
| 96 94 | 
             
                    response: {
         | 
| @@ -163,8 +161,6 @@ export declare abstract class AbstractOpenAIChatModel<SETTINGS extends AbstractO | |
| 163 161 | 
             
                        finish_reason?: "length" | "stop" | "function_call" | "tool_calls" | "content_filter" | null | undefined;
         | 
| 164 162 | 
             
                    }[];
         | 
| 165 163 | 
             
                    system_fingerprint?: string | null | undefined;
         | 
| 166 | 
            -
                } | {
         | 
| 167 | 
            -
                    object: string;
         | 
| 168 164 | 
             
                }>>>;
         | 
| 169 165 | 
             
                extractTextDelta(delta: unknown): string | undefined;
         | 
| 170 166 | 
             
                doGenerateToolCall(tool: ToolDefinition<string, unknown>, prompt: OpenAIChatPrompt, options?: FunctionOptions): Promise<{
         | 
| @@ -465,180 +461,6 @@ declare const openAIChatResponseSchema: z.ZodObject<{ | |
| 465 461 | 
             
                system_fingerprint?: string | null | undefined;
         | 
| 466 462 | 
             
            }>;
         | 
| 467 463 | 
             
            export type OpenAIChatResponse = z.infer<typeof openAIChatResponseSchema>;
         | 
| 468 | 
            -
            declare const chatCompletionChunkSchema: z.ZodObject<{
         | 
| 469 | 
            -
                object: z.ZodLiteral<"chat.completion.chunk">;
         | 
| 470 | 
            -
                id: z.ZodString;
         | 
| 471 | 
            -
                choices: z.ZodArray<z.ZodObject<{
         | 
| 472 | 
            -
                    delta: z.ZodObject<{
         | 
| 473 | 
            -
                        role: z.ZodOptional<z.ZodEnum<["assistant", "user"]>>;
         | 
| 474 | 
            -
                        content: z.ZodOptional<z.ZodNullable<z.ZodString>>;
         | 
| 475 | 
            -
                        function_call: z.ZodOptional<z.ZodObject<{
         | 
| 476 | 
            -
                            name: z.ZodOptional<z.ZodString>;
         | 
| 477 | 
            -
                            arguments: z.ZodOptional<z.ZodString>;
         | 
| 478 | 
            -
                        }, "strip", z.ZodTypeAny, {
         | 
| 479 | 
            -
                            name?: string | undefined;
         | 
| 480 | 
            -
                            arguments?: string | undefined;
         | 
| 481 | 
            -
                        }, {
         | 
| 482 | 
            -
                            name?: string | undefined;
         | 
| 483 | 
            -
                            arguments?: string | undefined;
         | 
| 484 | 
            -
                        }>>;
         | 
| 485 | 
            -
                        tool_calls: z.ZodOptional<z.ZodArray<z.ZodObject<{
         | 
| 486 | 
            -
                            id: z.ZodString;
         | 
| 487 | 
            -
                            type: z.ZodLiteral<"function">;
         | 
| 488 | 
            -
                            function: z.ZodObject<{
         | 
| 489 | 
            -
                                name: z.ZodString;
         | 
| 490 | 
            -
                                arguments: z.ZodString;
         | 
| 491 | 
            -
                            }, "strip", z.ZodTypeAny, {
         | 
| 492 | 
            -
                                name: string;
         | 
| 493 | 
            -
                                arguments: string;
         | 
| 494 | 
            -
                            }, {
         | 
| 495 | 
            -
                                name: string;
         | 
| 496 | 
            -
                                arguments: string;
         | 
| 497 | 
            -
                            }>;
         | 
| 498 | 
            -
                        }, "strip", z.ZodTypeAny, {
         | 
| 499 | 
            -
                            function: {
         | 
| 500 | 
            -
                                name: string;
         | 
| 501 | 
            -
                                arguments: string;
         | 
| 502 | 
            -
                            };
         | 
| 503 | 
            -
                            type: "function";
         | 
| 504 | 
            -
                            id: string;
         | 
| 505 | 
            -
                        }, {
         | 
| 506 | 
            -
                            function: {
         | 
| 507 | 
            -
                                name: string;
         | 
| 508 | 
            -
                                arguments: string;
         | 
| 509 | 
            -
                            };
         | 
| 510 | 
            -
                            type: "function";
         | 
| 511 | 
            -
                            id: string;
         | 
| 512 | 
            -
                        }>, "many">>;
         | 
| 513 | 
            -
                    }, "strip", z.ZodTypeAny, {
         | 
| 514 | 
            -
                        role?: "user" | "assistant" | undefined;
         | 
| 515 | 
            -
                        content?: string | null | undefined;
         | 
| 516 | 
            -
                        function_call?: {
         | 
| 517 | 
            -
                            name?: string | undefined;
         | 
| 518 | 
            -
                            arguments?: string | undefined;
         | 
| 519 | 
            -
                        } | undefined;
         | 
| 520 | 
            -
                        tool_calls?: {
         | 
| 521 | 
            -
                            function: {
         | 
| 522 | 
            -
                                name: string;
         | 
| 523 | 
            -
                                arguments: string;
         | 
| 524 | 
            -
                            };
         | 
| 525 | 
            -
                            type: "function";
         | 
| 526 | 
            -
                            id: string;
         | 
| 527 | 
            -
                        }[] | undefined;
         | 
| 528 | 
            -
                    }, {
         | 
| 529 | 
            -
                        role?: "user" | "assistant" | undefined;
         | 
| 530 | 
            -
                        content?: string | null | undefined;
         | 
| 531 | 
            -
                        function_call?: {
         | 
| 532 | 
            -
                            name?: string | undefined;
         | 
| 533 | 
            -
                            arguments?: string | undefined;
         | 
| 534 | 
            -
                        } | undefined;
         | 
| 535 | 
            -
                        tool_calls?: {
         | 
| 536 | 
            -
                            function: {
         | 
| 537 | 
            -
                                name: string;
         | 
| 538 | 
            -
                                arguments: string;
         | 
| 539 | 
            -
                            };
         | 
| 540 | 
            -
                            type: "function";
         | 
| 541 | 
            -
                            id: string;
         | 
| 542 | 
            -
                        }[] | undefined;
         | 
| 543 | 
            -
                    }>;
         | 
| 544 | 
            -
                    finish_reason: z.ZodOptional<z.ZodNullable<z.ZodEnum<["stop", "length", "tool_calls", "content_filter", "function_call"]>>>;
         | 
| 545 | 
            -
                    index: z.ZodNumber;
         | 
| 546 | 
            -
                }, "strip", z.ZodTypeAny, {
         | 
| 547 | 
            -
                    delta: {
         | 
| 548 | 
            -
                        role?: "user" | "assistant" | undefined;
         | 
| 549 | 
            -
                        content?: string | null | undefined;
         | 
| 550 | 
            -
                        function_call?: {
         | 
| 551 | 
            -
                            name?: string | undefined;
         | 
| 552 | 
            -
                            arguments?: string | undefined;
         | 
| 553 | 
            -
                        } | undefined;
         | 
| 554 | 
            -
                        tool_calls?: {
         | 
| 555 | 
            -
                            function: {
         | 
| 556 | 
            -
                                name: string;
         | 
| 557 | 
            -
                                arguments: string;
         | 
| 558 | 
            -
                            };
         | 
| 559 | 
            -
                            type: "function";
         | 
| 560 | 
            -
                            id: string;
         | 
| 561 | 
            -
                        }[] | undefined;
         | 
| 562 | 
            -
                    };
         | 
| 563 | 
            -
                    index: number;
         | 
| 564 | 
            -
                    finish_reason?: "length" | "stop" | "function_call" | "tool_calls" | "content_filter" | null | undefined;
         | 
| 565 | 
            -
                }, {
         | 
| 566 | 
            -
                    delta: {
         | 
| 567 | 
            -
                        role?: "user" | "assistant" | undefined;
         | 
| 568 | 
            -
                        content?: string | null | undefined;
         | 
| 569 | 
            -
                        function_call?: {
         | 
| 570 | 
            -
                            name?: string | undefined;
         | 
| 571 | 
            -
                            arguments?: string | undefined;
         | 
| 572 | 
            -
                        } | undefined;
         | 
| 573 | 
            -
                        tool_calls?: {
         | 
| 574 | 
            -
                            function: {
         | 
| 575 | 
            -
                                name: string;
         | 
| 576 | 
            -
                                arguments: string;
         | 
| 577 | 
            -
                            };
         | 
| 578 | 
            -
                            type: "function";
         | 
| 579 | 
            -
                            id: string;
         | 
| 580 | 
            -
                        }[] | undefined;
         | 
| 581 | 
            -
                    };
         | 
| 582 | 
            -
                    index: number;
         | 
| 583 | 
            -
                    finish_reason?: "length" | "stop" | "function_call" | "tool_calls" | "content_filter" | null | undefined;
         | 
| 584 | 
            -
                }>, "many">;
         | 
| 585 | 
            -
                created: z.ZodNumber;
         | 
| 586 | 
            -
                model: z.ZodString;
         | 
| 587 | 
            -
                system_fingerprint: z.ZodNullable<z.ZodOptional<z.ZodString>>;
         | 
| 588 | 
            -
            }, "strip", z.ZodTypeAny, {
         | 
| 589 | 
            -
                object: "chat.completion.chunk";
         | 
| 590 | 
            -
                model: string;
         | 
| 591 | 
            -
                id: string;
         | 
| 592 | 
            -
                created: number;
         | 
| 593 | 
            -
                choices: {
         | 
| 594 | 
            -
                    delta: {
         | 
| 595 | 
            -
                        role?: "user" | "assistant" | undefined;
         | 
| 596 | 
            -
                        content?: string | null | undefined;
         | 
| 597 | 
            -
                        function_call?: {
         | 
| 598 | 
            -
                            name?: string | undefined;
         | 
| 599 | 
            -
                            arguments?: string | undefined;
         | 
| 600 | 
            -
                        } | undefined;
         | 
| 601 | 
            -
                        tool_calls?: {
         | 
| 602 | 
            -
                            function: {
         | 
| 603 | 
            -
                                name: string;
         | 
| 604 | 
            -
                                arguments: string;
         | 
| 605 | 
            -
                            };
         | 
| 606 | 
            -
                            type: "function";
         | 
| 607 | 
            -
                            id: string;
         | 
| 608 | 
            -
                        }[] | undefined;
         | 
| 609 | 
            -
                    };
         | 
| 610 | 
            -
                    index: number;
         | 
| 611 | 
            -
                    finish_reason?: "length" | "stop" | "function_call" | "tool_calls" | "content_filter" | null | undefined;
         | 
| 612 | 
            -
                }[];
         | 
| 613 | 
            -
                system_fingerprint?: string | null | undefined;
         | 
| 614 | 
            -
            }, {
         | 
| 615 | 
            -
                object: "chat.completion.chunk";
         | 
| 616 | 
            -
                model: string;
         | 
| 617 | 
            -
                id: string;
         | 
| 618 | 
            -
                created: number;
         | 
| 619 | 
            -
                choices: {
         | 
| 620 | 
            -
                    delta: {
         | 
| 621 | 
            -
                        role?: "user" | "assistant" | undefined;
         | 
| 622 | 
            -
                        content?: string | null | undefined;
         | 
| 623 | 
            -
                        function_call?: {
         | 
| 624 | 
            -
                            name?: string | undefined;
         | 
| 625 | 
            -
                            arguments?: string | undefined;
         | 
| 626 | 
            -
                        } | undefined;
         | 
| 627 | 
            -
                        tool_calls?: {
         | 
| 628 | 
            -
                            function: {
         | 
| 629 | 
            -
                                name: string;
         | 
| 630 | 
            -
                                arguments: string;
         | 
| 631 | 
            -
                            };
         | 
| 632 | 
            -
                            type: "function";
         | 
| 633 | 
            -
                            id: string;
         | 
| 634 | 
            -
                        }[] | undefined;
         | 
| 635 | 
            -
                    };
         | 
| 636 | 
            -
                    index: number;
         | 
| 637 | 
            -
                    finish_reason?: "length" | "stop" | "function_call" | "tool_calls" | "content_filter" | null | undefined;
         | 
| 638 | 
            -
                }[];
         | 
| 639 | 
            -
                system_fingerprint?: string | null | undefined;
         | 
| 640 | 
            -
            }>;
         | 
| 641 | 
            -
            export type OpenAIChatCompletionChunk = z.infer<typeof chatCompletionChunkSchema>;
         | 
| 642 464 | 
             
            declare const openaiChatChunkSchema: import("../../core/schema/ZodSchema.js").ZodSchema<{
         | 
| 643 465 | 
             
                object: "chat.completion.chunk";
         | 
| 644 466 | 
             
                model: string;
         | 
| @@ -665,8 +487,6 @@ declare const openaiChatChunkSchema: import("../../core/schema/ZodSchema.js").Zo | |
| 665 487 | 
             
                    finish_reason?: "length" | "stop" | "function_call" | "tool_calls" | "content_filter" | null | undefined;
         | 
| 666 488 | 
             
                }[];
         | 
| 667 489 | 
             
                system_fingerprint?: string | null | undefined;
         | 
| 668 | 
            -
            } | {
         | 
| 669 | 
            -
                object: string;
         | 
| 670 490 | 
             
            }>;
         | 
| 671 491 | 
             
            export type OpenAIChatChunk = (typeof openaiChatChunkSchema)["_type"];
         | 
| 672 492 | 
             
            export type OpenAIChatResponseFormatType<T> = {
         | 
| @@ -746,8 +566,6 @@ export declare const OpenAIChatResponseFormat: { | |
| 746 566 | 
             
                            finish_reason?: "length" | "stop" | "function_call" | "tool_calls" | "content_filter" | null | undefined;
         | 
| 747 567 | 
             
                        }[];
         | 
| 748 568 | 
             
                        system_fingerprint?: string | null | undefined;
         | 
| 749 | 
            -
                    } | {
         | 
| 750 | 
            -
                        object: string;
         | 
| 751 569 | 
             
                    }>>>;
         | 
| 752 570 | 
             
                };
         | 
| 753 571 | 
             
            };
         | 
| @@ -228,7 +228,7 @@ const openAIChatResponseSchema = z.object({ | |
| 228 228 | 
             
                    total_tokens: z.number(),
         | 
| 229 229 | 
             
                }),
         | 
| 230 230 | 
             
            });
         | 
| 231 | 
            -
            const  | 
| 231 | 
            +
            const openaiChatChunkSchema = zodSchema(z.object({
         | 
| 232 232 | 
             
                object: z.literal("chat.completion.chunk"),
         | 
| 233 233 | 
             
                id: z.string(),
         | 
| 234 234 | 
             
                choices: z.array(z.object({
         | 
| @@ -267,15 +267,7 @@ const chatCompletionChunkSchema = z.object({ | |
| 267 267 | 
             
                created: z.number(),
         | 
| 268 268 | 
             
                model: z.string(),
         | 
| 269 269 | 
             
                system_fingerprint: z.string().optional().nullable(),
         | 
| 270 | 
            -
            });
         | 
| 271 | 
            -
            const openaiChatChunkSchema = zodSchema(z.union([
         | 
| 272 | 
            -
                chatCompletionChunkSchema,
         | 
| 273 | 
            -
                z.object({
         | 
| 274 | 
            -
                    object: z.string().refine((obj) => obj !== "chat.completion.chunk", {
         | 
| 275 | 
            -
                        message: "Object must be 'chat.completion.chunk'",
         | 
| 276 | 
            -
                    }),
         | 
| 277 | 
            -
                }),
         | 
| 278 | 
            -
            ]));
         | 
| 270 | 
            +
            }));
         | 
| 279 271 | 
             
            export const OpenAIChatResponseFormat = {
         | 
| 280 272 | 
             
                /**
         | 
| 281 273 | 
             
                 * Returns the response as a JSON object.
         | 
| @@ -0,0 +1,167 @@ | |
| 1 | 
            +
            "use strict";
         | 
| 2 | 
            +
            Object.defineProperty(exports, "__esModule", { value: true });
         | 
| 3 | 
            +
            exports.OpenAITextResponseFormat = exports.AbstractOpenAICompletionModel = void 0;
         | 
| 4 | 
            +
            const zod_1 = require("zod");
         | 
| 5 | 
            +
            const callWithRetryAndThrottle_js_1 = require("../../core/api/callWithRetryAndThrottle.cjs");
         | 
| 6 | 
            +
            const postToApi_js_1 = require("../../core/api/postToApi.cjs");
         | 
| 7 | 
            +
            const ZodSchema_js_1 = require("../../core/schema/ZodSchema.cjs");
         | 
| 8 | 
            +
            const AbstractModel_js_1 = require("../../model-function/AbstractModel.cjs");
         | 
| 9 | 
            +
            const createEventSourceResponseHandler_js_1 = require("../../util/streaming/createEventSourceResponseHandler.cjs");
         | 
| 10 | 
            +
            const OpenAIApiConfiguration_js_1 = require("./OpenAIApiConfiguration.cjs");
         | 
| 11 | 
            +
            const OpenAIError_js_1 = require("./OpenAIError.cjs");
         | 
| 12 | 
            +
            /**
         | 
| 13 | 
            +
             * Abstract completion model that calls an API that is compatible with the OpenAI completions API.
         | 
| 14 | 
            +
             *
         | 
| 15 | 
            +
             * @see https://platform.openai.com/docs/api-reference/completions/create
         | 
| 16 | 
            +
             */
         | 
| 17 | 
            +
            class AbstractOpenAICompletionModel extends AbstractModel_js_1.AbstractModel {
         | 
| 18 | 
            +
                constructor(settings) {
         | 
| 19 | 
            +
                    super({ settings });
         | 
| 20 | 
            +
                }
         | 
| 21 | 
            +
                async callAPI(prompt, options) {
         | 
| 22 | 
            +
                    const api = this.settings.api ?? new OpenAIApiConfiguration_js_1.OpenAIApiConfiguration();
         | 
| 23 | 
            +
                    const user = this.settings.isUserIdForwardingEnabled
         | 
| 24 | 
            +
                        ? options.run?.userId
         | 
| 25 | 
            +
                        : undefined;
         | 
| 26 | 
            +
                    const abortSignal = options.run?.abortSignal;
         | 
| 27 | 
            +
                    const openaiResponseFormat = options.responseFormat;
         | 
| 28 | 
            +
                    // empty arrays are not allowed for stop:
         | 
| 29 | 
            +
                    const stopSequences = this.settings.stopSequences != null &&
         | 
| 30 | 
            +
                        Array.isArray(this.settings.stopSequences) &&
         | 
| 31 | 
            +
                        this.settings.stopSequences.length === 0
         | 
| 32 | 
            +
                        ? undefined
         | 
| 33 | 
            +
                        : this.settings.stopSequences;
         | 
| 34 | 
            +
                    return (0, callWithRetryAndThrottle_js_1.callWithRetryAndThrottle)({
         | 
| 35 | 
            +
                        retry: api.retry,
         | 
| 36 | 
            +
                        throttle: api.throttle,
         | 
| 37 | 
            +
                        call: async () => {
         | 
| 38 | 
            +
                            return (0, postToApi_js_1.postJsonToApi)({
         | 
| 39 | 
            +
                                url: api.assembleUrl("/completions"),
         | 
| 40 | 
            +
                                headers: api.headers,
         | 
| 41 | 
            +
                                body: {
         | 
| 42 | 
            +
                                    stream: openaiResponseFormat.stream,
         | 
| 43 | 
            +
                                    model: this.settings.model,
         | 
| 44 | 
            +
                                    prompt,
         | 
| 45 | 
            +
                                    suffix: this.settings.suffix,
         | 
| 46 | 
            +
                                    max_tokens: this.settings.maxGenerationTokens,
         | 
| 47 | 
            +
                                    temperature: this.settings.temperature,
         | 
| 48 | 
            +
                                    top_p: this.settings.topP,
         | 
| 49 | 
            +
                                    n: this.settings.numberOfGenerations,
         | 
| 50 | 
            +
                                    logprobs: this.settings.logprobs,
         | 
| 51 | 
            +
                                    echo: this.settings.echo,
         | 
| 52 | 
            +
                                    stop: stopSequences,
         | 
| 53 | 
            +
                                    seed: this.settings.seed,
         | 
| 54 | 
            +
                                    presence_penalty: this.settings.presencePenalty,
         | 
| 55 | 
            +
                                    frequency_penalty: this.settings.frequencyPenalty,
         | 
| 56 | 
            +
                                    best_of: this.settings.bestOf,
         | 
| 57 | 
            +
                                    logit_bias: this.settings.logitBias,
         | 
| 58 | 
            +
                                    user,
         | 
| 59 | 
            +
                                },
         | 
| 60 | 
            +
                                failedResponseHandler: OpenAIError_js_1.failedOpenAICallResponseHandler,
         | 
| 61 | 
            +
                                successfulResponseHandler: openaiResponseFormat.handler,
         | 
| 62 | 
            +
                                abortSignal,
         | 
| 63 | 
            +
                            });
         | 
| 64 | 
            +
                        },
         | 
| 65 | 
            +
                    });
         | 
| 66 | 
            +
                }
         | 
| 67 | 
            +
                async doGenerateTexts(prompt, options) {
         | 
| 68 | 
            +
                    const response = await this.callAPI(prompt, {
         | 
| 69 | 
            +
                        ...options,
         | 
| 70 | 
            +
                        responseFormat: exports.OpenAITextResponseFormat.json,
         | 
| 71 | 
            +
                    });
         | 
| 72 | 
            +
                    return {
         | 
| 73 | 
            +
                        response,
         | 
| 74 | 
            +
                        textGenerationResults: response.choices.map((choice) => {
         | 
| 75 | 
            +
                            return {
         | 
| 76 | 
            +
                                finishReason: this.translateFinishReason(choice.finish_reason),
         | 
| 77 | 
            +
                                text: choice.text,
         | 
| 78 | 
            +
                            };
         | 
| 79 | 
            +
                        }),
         | 
| 80 | 
            +
                        usage: {
         | 
| 81 | 
            +
                            promptTokens: response.usage.prompt_tokens,
         | 
| 82 | 
            +
                            completionTokens: response.usage.completion_tokens,
         | 
| 83 | 
            +
                            totalTokens: response.usage.total_tokens,
         | 
| 84 | 
            +
                        },
         | 
| 85 | 
            +
                    };
         | 
| 86 | 
            +
                }
         | 
| 87 | 
            +
                translateFinishReason(finishReason) {
         | 
| 88 | 
            +
                    switch (finishReason) {
         | 
| 89 | 
            +
                        case "stop":
         | 
| 90 | 
            +
                            return "stop";
         | 
| 91 | 
            +
                        case "length":
         | 
| 92 | 
            +
                            return "length";
         | 
| 93 | 
            +
                        case "content_filter":
         | 
| 94 | 
            +
                            return "content-filter";
         | 
| 95 | 
            +
                        default:
         | 
| 96 | 
            +
                            return "unknown";
         | 
| 97 | 
            +
                    }
         | 
| 98 | 
            +
                }
         | 
| 99 | 
            +
                doStreamText(prompt, options) {
         | 
| 100 | 
            +
                    return this.callAPI(prompt, {
         | 
| 101 | 
            +
                        ...options,
         | 
| 102 | 
            +
                        responseFormat: exports.OpenAITextResponseFormat.deltaIterable,
         | 
| 103 | 
            +
                    });
         | 
| 104 | 
            +
                }
         | 
| 105 | 
            +
                extractTextDelta(delta) {
         | 
| 106 | 
            +
                    const chunk = delta;
         | 
| 107 | 
            +
                    const firstChoice = chunk.choices[0];
         | 
| 108 | 
            +
                    if (firstChoice.index > 0) {
         | 
| 109 | 
            +
                        return undefined;
         | 
| 110 | 
            +
                    }
         | 
| 111 | 
            +
                    return chunk.choices[0].text;
         | 
| 112 | 
            +
                }
         | 
| 113 | 
            +
            }
         | 
| 114 | 
            +
            exports.AbstractOpenAICompletionModel = AbstractOpenAICompletionModel;
         | 
| 115 | 
            +
            const OpenAICompletionResponseSchema = zod_1.z.object({
         | 
| 116 | 
            +
                id: zod_1.z.string(),
         | 
| 117 | 
            +
                choices: zod_1.z.array(zod_1.z.object({
         | 
| 118 | 
            +
                    finish_reason: zod_1.z
         | 
| 119 | 
            +
                        .enum(["stop", "length", "content_filter"])
         | 
| 120 | 
            +
                        .optional()
         | 
| 121 | 
            +
                        .nullable(),
         | 
| 122 | 
            +
                    index: zod_1.z.number(),
         | 
| 123 | 
            +
                    logprobs: zod_1.z.nullable(zod_1.z.any()),
         | 
| 124 | 
            +
                    text: zod_1.z.string(),
         | 
| 125 | 
            +
                })),
         | 
| 126 | 
            +
                created: zod_1.z.number(),
         | 
| 127 | 
            +
                model: zod_1.z.string(),
         | 
| 128 | 
            +
                system_fingerprint: zod_1.z.string().optional(),
         | 
| 129 | 
            +
                object: zod_1.z.literal("text_completion"),
         | 
| 130 | 
            +
                usage: zod_1.z.object({
         | 
| 131 | 
            +
                    prompt_tokens: zod_1.z.number(),
         | 
| 132 | 
            +
                    completion_tokens: zod_1.z.number(),
         | 
| 133 | 
            +
                    total_tokens: zod_1.z.number(),
         | 
| 134 | 
            +
                }),
         | 
| 135 | 
            +
            });
         | 
| 136 | 
            +
            const openaiCompletionStreamChunkSchema = (0, ZodSchema_js_1.zodSchema)(zod_1.z.object({
         | 
| 137 | 
            +
                choices: zod_1.z.array(zod_1.z.object({
         | 
| 138 | 
            +
                    text: zod_1.z.string(),
         | 
| 139 | 
            +
                    finish_reason: zod_1.z
         | 
| 140 | 
            +
                        .enum(["stop", "length", "content_filter"])
         | 
| 141 | 
            +
                        .optional()
         | 
| 142 | 
            +
                        .nullable(),
         | 
| 143 | 
            +
                    index: zod_1.z.number(),
         | 
| 144 | 
            +
                })),
         | 
| 145 | 
            +
                created: zod_1.z.number(),
         | 
| 146 | 
            +
                id: zod_1.z.string(),
         | 
| 147 | 
            +
                model: zod_1.z.string(),
         | 
| 148 | 
            +
                system_fingerprint: zod_1.z.string().optional(),
         | 
| 149 | 
            +
                object: zod_1.z.literal("text_completion"),
         | 
| 150 | 
            +
            }));
         | 
| 151 | 
            +
            exports.OpenAITextResponseFormat = {
         | 
| 152 | 
            +
                /**
         | 
| 153 | 
            +
                 * Returns the response as a JSON object.
         | 
| 154 | 
            +
                 */
         | 
| 155 | 
            +
                json: {
         | 
| 156 | 
            +
                    stream: false,
         | 
| 157 | 
            +
                    handler: (0, postToApi_js_1.createJsonResponseHandler)(OpenAICompletionResponseSchema),
         | 
| 158 | 
            +
                },
         | 
| 159 | 
            +
                /**
         | 
| 160 | 
            +
                 * Returns an async iterable over the full deltas (all choices, including full current state at time of event)
         | 
| 161 | 
            +
                 * of the response stream.
         | 
| 162 | 
            +
                 */
         | 
| 163 | 
            +
                deltaIterable: {
         | 
| 164 | 
            +
                    stream: true,
         | 
| 165 | 
            +
                    handler: (0, createEventSourceResponseHandler_js_1.createEventSourceResponseHandler)(openaiCompletionStreamChunkSchema),
         | 
| 166 | 
            +
                },
         | 
| 167 | 
            +
            };
         | 
| @@ -0,0 +1,199 @@ | |
| 1 | 
            +
            import { z } from "zod";
         | 
| 2 | 
            +
            import { FunctionOptions } from "../../core/FunctionOptions.js";
         | 
| 3 | 
            +
            import { ApiConfiguration } from "../../core/api/ApiConfiguration.js";
         | 
| 4 | 
            +
            import { ResponseHandler } from "../../core/api/postToApi.js";
         | 
| 5 | 
            +
            import { AbstractModel } from "../../model-function/AbstractModel.js";
         | 
| 6 | 
            +
            import { TextGenerationModelSettings } from "../../model-function/generate-text/TextGenerationModel.js";
         | 
| 7 | 
            +
            import { TextGenerationFinishReason } from "../../model-function/generate-text/TextGenerationResult.js";
         | 
| 8 | 
            +
            export interface AbstractOpenAICompletionModelSettings extends TextGenerationModelSettings {
         | 
| 9 | 
            +
                api?: ApiConfiguration;
         | 
| 10 | 
            +
                model: string;
         | 
| 11 | 
            +
                suffix?: string;
         | 
| 12 | 
            +
                temperature?: number;
         | 
| 13 | 
            +
                topP?: number;
         | 
| 14 | 
            +
                logprobs?: number;
         | 
| 15 | 
            +
                echo?: boolean;
         | 
| 16 | 
            +
                presencePenalty?: number;
         | 
| 17 | 
            +
                frequencyPenalty?: number;
         | 
| 18 | 
            +
                bestOf?: number;
         | 
| 19 | 
            +
                logitBias?: Record<number, number>;
         | 
| 20 | 
            +
                seed?: number | null;
         | 
| 21 | 
            +
                isUserIdForwardingEnabled?: boolean;
         | 
| 22 | 
            +
            }
         | 
| 23 | 
            +
            /**
         | 
| 24 | 
            +
             * Abstract completion model that calls an API that is compatible with the OpenAI completions API.
         | 
| 25 | 
            +
             *
         | 
| 26 | 
            +
             * @see https://platform.openai.com/docs/api-reference/completions/create
         | 
| 27 | 
            +
             */
         | 
| 28 | 
            +
            export declare abstract class AbstractOpenAICompletionModel<SETTINGS extends AbstractOpenAICompletionModelSettings> extends AbstractModel<SETTINGS> {
         | 
| 29 | 
            +
                constructor(settings: SETTINGS);
         | 
| 30 | 
            +
                callAPI<RESULT>(prompt: string, options: {
         | 
| 31 | 
            +
                    responseFormat: OpenAITextResponseFormatType<RESULT>;
         | 
| 32 | 
            +
                } & FunctionOptions): Promise<RESULT>;
         | 
| 33 | 
            +
                doGenerateTexts(prompt: string, options?: FunctionOptions): Promise<{
         | 
| 34 | 
            +
                    response: {
         | 
| 35 | 
            +
                        object: "text_completion";
         | 
| 36 | 
            +
                        usage: {
         | 
| 37 | 
            +
                            prompt_tokens: number;
         | 
| 38 | 
            +
                            completion_tokens: number;
         | 
| 39 | 
            +
                            total_tokens: number;
         | 
| 40 | 
            +
                        };
         | 
| 41 | 
            +
                        model: string;
         | 
| 42 | 
            +
                        id: string;
         | 
| 43 | 
            +
                        created: number;
         | 
| 44 | 
            +
                        choices: {
         | 
| 45 | 
            +
                            text: string;
         | 
| 46 | 
            +
                            index: number;
         | 
| 47 | 
            +
                            finish_reason?: "length" | "stop" | "content_filter" | null | undefined;
         | 
| 48 | 
            +
                            logprobs?: any;
         | 
| 49 | 
            +
                        }[];
         | 
| 50 | 
            +
                        system_fingerprint?: string | undefined;
         | 
| 51 | 
            +
                    };
         | 
| 52 | 
            +
                    textGenerationResults: {
         | 
| 53 | 
            +
                        finishReason: TextGenerationFinishReason;
         | 
| 54 | 
            +
                        text: string;
         | 
| 55 | 
            +
                    }[];
         | 
| 56 | 
            +
                    usage: {
         | 
| 57 | 
            +
                        promptTokens: number;
         | 
| 58 | 
            +
                        completionTokens: number;
         | 
| 59 | 
            +
                        totalTokens: number;
         | 
| 60 | 
            +
                    };
         | 
| 61 | 
            +
                }>;
         | 
| 62 | 
            +
                private translateFinishReason;
         | 
| 63 | 
            +
                doStreamText(prompt: string, options?: FunctionOptions): Promise<AsyncIterable<import("../../index.js").Delta<{
         | 
| 64 | 
            +
                    object: "text_completion";
         | 
| 65 | 
            +
                    model: string;
         | 
| 66 | 
            +
                    id: string;
         | 
| 67 | 
            +
                    created: number;
         | 
| 68 | 
            +
                    choices: {
         | 
| 69 | 
            +
                        text: string;
         | 
| 70 | 
            +
                        index: number;
         | 
| 71 | 
            +
                        finish_reason?: "length" | "stop" | "content_filter" | null | undefined;
         | 
| 72 | 
            +
                    }[];
         | 
| 73 | 
            +
                    system_fingerprint?: string | undefined;
         | 
| 74 | 
            +
                }>>>;
         | 
| 75 | 
            +
                extractTextDelta(delta: unknown): string | undefined;
         | 
| 76 | 
            +
            }
         | 
| 77 | 
            +
            declare const OpenAICompletionResponseSchema: z.ZodObject<{
         | 
| 78 | 
            +
                id: z.ZodString;
         | 
| 79 | 
            +
                choices: z.ZodArray<z.ZodObject<{
         | 
| 80 | 
            +
                    finish_reason: z.ZodNullable<z.ZodOptional<z.ZodEnum<["stop", "length", "content_filter"]>>>;
         | 
| 81 | 
            +
                    index: z.ZodNumber;
         | 
| 82 | 
            +
                    logprobs: z.ZodNullable<z.ZodAny>;
         | 
| 83 | 
            +
                    text: z.ZodString;
         | 
| 84 | 
            +
                }, "strip", z.ZodTypeAny, {
         | 
| 85 | 
            +
                    text: string;
         | 
| 86 | 
            +
                    index: number;
         | 
| 87 | 
            +
                    finish_reason?: "length" | "stop" | "content_filter" | null | undefined;
         | 
| 88 | 
            +
                    logprobs?: any;
         | 
| 89 | 
            +
                }, {
         | 
| 90 | 
            +
                    text: string;
         | 
| 91 | 
            +
                    index: number;
         | 
| 92 | 
            +
                    finish_reason?: "length" | "stop" | "content_filter" | null | undefined;
         | 
| 93 | 
            +
                    logprobs?: any;
         | 
| 94 | 
            +
                }>, "many">;
         | 
| 95 | 
            +
                created: z.ZodNumber;
         | 
| 96 | 
            +
                model: z.ZodString;
         | 
| 97 | 
            +
                system_fingerprint: z.ZodOptional<z.ZodString>;
         | 
| 98 | 
            +
                object: z.ZodLiteral<"text_completion">;
         | 
| 99 | 
            +
                usage: z.ZodObject<{
         | 
| 100 | 
            +
                    prompt_tokens: z.ZodNumber;
         | 
| 101 | 
            +
                    completion_tokens: z.ZodNumber;
         | 
| 102 | 
            +
                    total_tokens: z.ZodNumber;
         | 
| 103 | 
            +
                }, "strip", z.ZodTypeAny, {
         | 
| 104 | 
            +
                    prompt_tokens: number;
         | 
| 105 | 
            +
                    completion_tokens: number;
         | 
| 106 | 
            +
                    total_tokens: number;
         | 
| 107 | 
            +
                }, {
         | 
| 108 | 
            +
                    prompt_tokens: number;
         | 
| 109 | 
            +
                    completion_tokens: number;
         | 
| 110 | 
            +
                    total_tokens: number;
         | 
| 111 | 
            +
                }>;
         | 
| 112 | 
            +
            }, "strip", z.ZodTypeAny, {
         | 
| 113 | 
            +
                object: "text_completion";
         | 
| 114 | 
            +
                usage: {
         | 
| 115 | 
            +
                    prompt_tokens: number;
         | 
| 116 | 
            +
                    completion_tokens: number;
         | 
| 117 | 
            +
                    total_tokens: number;
         | 
| 118 | 
            +
                };
         | 
| 119 | 
            +
                model: string;
         | 
| 120 | 
            +
                id: string;
         | 
| 121 | 
            +
                created: number;
         | 
| 122 | 
            +
                choices: {
         | 
| 123 | 
            +
                    text: string;
         | 
| 124 | 
            +
                    index: number;
         | 
| 125 | 
            +
                    finish_reason?: "length" | "stop" | "content_filter" | null | undefined;
         | 
| 126 | 
            +
                    logprobs?: any;
         | 
| 127 | 
            +
                }[];
         | 
| 128 | 
            +
                system_fingerprint?: string | undefined;
         | 
| 129 | 
            +
            }, {
         | 
| 130 | 
            +
                object: "text_completion";
         | 
| 131 | 
            +
                usage: {
         | 
| 132 | 
            +
                    prompt_tokens: number;
         | 
| 133 | 
            +
                    completion_tokens: number;
         | 
| 134 | 
            +
                    total_tokens: number;
         | 
| 135 | 
            +
                };
         | 
| 136 | 
            +
                model: string;
         | 
| 137 | 
            +
                id: string;
         | 
| 138 | 
            +
                created: number;
         | 
| 139 | 
            +
                choices: {
         | 
| 140 | 
            +
                    text: string;
         | 
| 141 | 
            +
                    index: number;
         | 
| 142 | 
            +
                    finish_reason?: "length" | "stop" | "content_filter" | null | undefined;
         | 
| 143 | 
            +
                    logprobs?: any;
         | 
| 144 | 
            +
                }[];
         | 
| 145 | 
            +
                system_fingerprint?: string | undefined;
         | 
| 146 | 
            +
            }>;
         | 
| 147 | 
            +
            export type OpenAICompletionResponse = z.infer<typeof OpenAICompletionResponseSchema>;
         | 
| 148 | 
            +
            export type OpenAITextResponseFormatType<T> = {
         | 
| 149 | 
            +
                stream: boolean;
         | 
| 150 | 
            +
                handler: ResponseHandler<T>;
         | 
| 151 | 
            +
            };
         | 
| 152 | 
            +
            export declare const OpenAITextResponseFormat: {
         | 
| 153 | 
            +
                /**
         | 
| 154 | 
            +
                 * Returns the response as a JSON object.
         | 
| 155 | 
            +
                 */
         | 
| 156 | 
            +
                json: {
         | 
| 157 | 
            +
                    stream: boolean;
         | 
| 158 | 
            +
                    handler: ResponseHandler<{
         | 
| 159 | 
            +
                        object: "text_completion";
         | 
| 160 | 
            +
                        usage: {
         | 
| 161 | 
            +
                            prompt_tokens: number;
         | 
| 162 | 
            +
                            completion_tokens: number;
         | 
| 163 | 
            +
                            total_tokens: number;
         | 
| 164 | 
            +
                        };
         | 
| 165 | 
            +
                        model: string;
         | 
| 166 | 
            +
                        id: string;
         | 
| 167 | 
            +
                        created: number;
         | 
| 168 | 
            +
                        choices: {
         | 
| 169 | 
            +
                            text: string;
         | 
| 170 | 
            +
                            index: number;
         | 
| 171 | 
            +
                            finish_reason?: "length" | "stop" | "content_filter" | null | undefined;
         | 
| 172 | 
            +
                            logprobs?: any;
         | 
| 173 | 
            +
                        }[];
         | 
| 174 | 
            +
                        system_fingerprint?: string | undefined;
         | 
| 175 | 
            +
                    }>;
         | 
| 176 | 
            +
                };
         | 
| 177 | 
            +
                /**
         | 
| 178 | 
            +
                 * Returns an async iterable over the full deltas (all choices, including full current state at time of event)
         | 
| 179 | 
            +
                 * of the response stream.
         | 
| 180 | 
            +
                 */
         | 
| 181 | 
            +
                deltaIterable: {
         | 
| 182 | 
            +
                    stream: boolean;
         | 
| 183 | 
            +
                    handler: ({ response }: {
         | 
| 184 | 
            +
                        response: Response;
         | 
| 185 | 
            +
                    }) => Promise<AsyncIterable<import("../../index.js").Delta<{
         | 
| 186 | 
            +
                        object: "text_completion";
         | 
| 187 | 
            +
                        model: string;
         | 
| 188 | 
            +
                        id: string;
         | 
| 189 | 
            +
                        created: number;
         | 
| 190 | 
            +
                        choices: {
         | 
| 191 | 
            +
                            text: string;
         | 
| 192 | 
            +
                            index: number;
         | 
| 193 | 
            +
                            finish_reason?: "length" | "stop" | "content_filter" | null | undefined;
         | 
| 194 | 
            +
                        }[];
         | 
| 195 | 
            +
                        system_fingerprint?: string | undefined;
         | 
| 196 | 
            +
                    }>>>;
         | 
| 197 | 
            +
                };
         | 
| 198 | 
            +
            };
         | 
| 199 | 
            +
            export {};
         |