@adaline/openai 0.5.0 → 0.6.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.
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/configs/language-model/common.config.language-model.openai.ts","../src/configs/language-model/base.config.language-model.openai.ts","../src/configs/language-model/response-schema.language-model.openai.ts","../src/configs/word-embedding/common.config.word-embedding.openai.ts","../src/configs/word-embedding/base.config.word-embedding.openai.ts","../src/configs/configs.openai.ts","../src/models/chat-models/types/roles.chat-model.openai.ts","../src/models/chat-models/types/modalities.chat-model.openai.ts","../src/models/chat-models/types/response.chat-model.openai.ts","../src/models/chat-models/base-language-model.openai.ts","../src/models/chat-models/gpt-4o.openai.ts","../src/models/embedding-models/types/modalitites.embedding-model.openai.ts","../src/models/embedding-models/types/response.embedding-model.openai.ts","../src/models/embedding-models/base-embedding-model.openai.ts","../src/models/embedding-models/text-embedding-ada-002.openai.ts","../src/provider/provider.openai.ts"],"names":["temperature","RangeConfigItem","CONFIG","maxTokens","maxOutputTokens","stop","maxSequences","MultiStringConfigItem","topP","frequencyPenalty","presencePenalty","seed","responseFormat","SelectStringConfigItem","toolChoice","BaseConfigSchema","z","value","BaseConfigDef","ResponseSchemaTypes","ResponseSchemaTypesLiteral","ResponseSchemaProperty","ResponseSchemaStructure","ResponseSchema","responseSchema","ObjectSchemaConfigItem","ResponseSchemaConfigDef","__spreadProps","__spreadValues","ResponseSchemaConfigSchema","encodingFormat","dimensions","BaseWordEmbeddingConfigSchema","BaseWordEmbeddingConfigDef","OpenAIConfigs","OpenAIWordEmbeddingConfigs","OpenAIChatModelRoles","SystemRoleLiteral","UserRoleLiteral","AssistantRoleLiteral","ToolRoleLiteral","OpenAIChatModelRolesMap","OpenAIChatModelModalities","TextModalityLiteral","ImageModalityLiteral","ToolCallModalityLiteral","ToolResponseModalityLiteral","OpenAIChatModelModalitiesEnum","OpenAIToolCallsCompleteChatResponse","OpenAICompleteChatResponse","OpenAIToolCallsStreamChatResponse","OpenAIStreamChatResponse","BaseChatModelOptions","BaseChatModel","modelSchema","options","messages","acc","message","content","config","tools","_toolChoice","_parsedConfig","InvalidConfigError","parsedConfig","key","transformedConfig","def","paramKey","paramValue","configToolChoice","tool","parsedMessages","parsedMessage","Message","InvalidMessagesError","textContent","toolCalls","imageContent","combinedContent","toolResponse","parsedTool","Tool","InvalidToolsError","transformedMessages","transformedTools","response","safe","ApiResponseError","createTextMessage","toolCall","index","createToolCallMessage","ApiRequestError","chunk","buffer","__asyncGenerator","_a","_b","lines","line","structuredLine","error","partialMessages","createPartialTextMessage","createPartialToolCallMessage","urlWithoutTrailingSlash","GPT4oLiteral","GPT4oDescription","GPT4oSchema","ChatModelSchema","GPT4oOptions","GPT4o","OpenAIEmbeddingModelModalities","EmbeddingTextModalityLiteral","EmbeddingTokenModalityLiteral","OpenAIEmbeddingModelModalitiesEnum","OpenAIGetEmbeddingsResponse","BaseEmbeddingModelOptions","BaseEmbeddingModel","requests","parsedRequests","EmbeddingRequests","InvalidEmbeddingRequestsError","request","validatedConfig","parsedResponse","Base64EmbeddingLiteral","FloatEmbeddingLiteral","embeddings","item","TextEmbeddingAda002Literal","TextEmbeddingAda002Description","TextEmbeddingAda002Schema","EmbeddingModelSchema","TextEmbeddingAda002Options","TextEmbeddingAda002","ProviderLiteral","OpenAI","name","model","modelOptions"],"mappings":"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","file":"index.mjs","sourcesContent":["import { CONFIG, MultiStringConfigItem, RangeConfigItem, SelectStringConfigItem } from \"@adaline/provider\";\n\nconst temperature = RangeConfigItem({\n param: \"temperature\",\n title: CONFIG.TEMPERATURE.title,\n description: CONFIG.TEMPERATURE.description,\n min: 0,\n max: 2,\n step: 0.01,\n default: 1,\n});\n\nconst maxTokens = (maxOutputTokens: number) =>\n RangeConfigItem({\n param: \"max_tokens\",\n title: CONFIG.MAX_TOKENS.title,\n description: CONFIG.MAX_TOKENS.description,\n min: 0,\n max: maxOutputTokens,\n step: 1,\n default: 0,\n });\n\nconst stop = (maxSequences: number) =>\n MultiStringConfigItem({\n param: \"stop\",\n title: CONFIG.STOP(maxSequences).title,\n description: CONFIG.STOP(maxSequences).description,\n max: maxSequences,\n });\n\nconst topP = RangeConfigItem({\n param: \"top_p\",\n title: CONFIG.TOP_P.title,\n description: CONFIG.TOP_P.description,\n min: 0,\n max: 1,\n step: 0.01,\n default: 1,\n});\n\nconst frequencyPenalty = RangeConfigItem({\n param: \"frequency_penalty\",\n title: CONFIG.FREQUENCY_PENALTY.title,\n description: CONFIG.FREQUENCY_PENALTY.description,\n min: -2,\n max: 2,\n step: 0.01,\n default: 0,\n});\n\nconst presencePenalty = RangeConfigItem({\n param: \"presence_penalty\",\n title: CONFIG.PRESENCE_PENALTY.title,\n description: CONFIG.PRESENCE_PENALTY.description,\n min: -2,\n max: 2,\n step: 0.01,\n default: 0,\n});\n\nconst seed = RangeConfigItem({\n param: \"seed\",\n title: \"Seed\",\n description: \"This is in BETA. Set a seed to get reproducible results. Determinism is not guaranteed. Set to 0 to disable.\",\n min: 0,\n max: 1000000,\n step: 1,\n default: 0,\n});\n\nconst responseFormat = SelectStringConfigItem({\n param: \"response_format\",\n title: \"Response format\",\n description:\n \"Choose the response format of your model. For JSON, you must include the string 'JSON' in some form within your system / user prompt.\",\n default: \"text\",\n choices: [\"text\", \"json_object\"],\n});\n\nconst toolChoice = SelectStringConfigItem({\n param: \"tool_choice\",\n title: \"Tool choice\",\n description:\n \"Controls which (if any) tool is called by the model. 'none' means the model will not call a function. 'auto' means the model can pick between generating a message or calling a tool.\",\n default: \"auto\",\n choices: [\"auto\", \"required\", \"none\"],\n});\n\nexport { frequencyPenalty, maxTokens, presencePenalty, responseFormat, seed, stop, temperature, toolChoice, topP };\n","import { z } from \"zod\";\n\nimport {\n frequencyPenalty,\n maxTokens,\n presencePenalty,\n responseFormat,\n seed,\n stop,\n temperature,\n toolChoice,\n topP,\n} from \"./common.config.language-model.openai\";\n\nconst BaseConfigSchema = (maxOutputTokens: number, maxSequences: number) =>\n z.object({\n temperature: temperature.schema,\n maxTokens: maxTokens(maxOutputTokens).schema,\n stop: stop(maxSequences).schema,\n topP: topP.schema,\n frequencyPenalty: frequencyPenalty.schema,\n presencePenalty: presencePenalty.schema,\n seed: seed.schema.transform((value) => (value === 0 ? undefined : value)),\n responseFormat: responseFormat.schema,\n toolChoice: toolChoice.schema,\n });\n\nconst BaseConfigDef = (maxOutputTokens: number, maxSequences: number) =>\n ({\n temperature: temperature.def,\n maxTokens: maxTokens(maxOutputTokens).def,\n stop: stop(maxSequences).def,\n topP: topP.def,\n frequencyPenalty: frequencyPenalty.def,\n presencePenalty: presencePenalty.def,\n seed: seed.def,\n responseFormat: responseFormat.def,\n toolChoice: toolChoice.def,\n }) as const;\n\nexport { BaseConfigDef, BaseConfigSchema };\n","import { z } from \"zod\";\n\nimport { SelectStringConfigItem, ObjectSchemaConfigItem } from \"@adaline/provider\";\n\nimport { BaseConfigDef, BaseConfigSchema } from \"./base.config.language-model.openai\";\n\n// TODO: move to json schema 7 type and validator when implemented for tool types\nconst ResponseSchemaTypes = [\"object\", \"array\", \"number\", \"string\", \"boolean\", \"enum\"] as const;\nconst ResponseSchemaTypesLiteral = z.enum(ResponseSchemaTypes);\n// type ResponseSchemaTypesType = z.infer<typeof ResponseSchemaTypesLiteral>;\n\nconst ResponseSchemaProperty = z.object({\n anyOf: z.array(z.any()).optional(),\n type: z.union([\n ResponseSchemaTypesLiteral, \n z.array(z.union([ResponseSchemaTypesLiteral, z.literal(\"null\")]))\n ]).optional(),\n default: z.any().optional(),\n title: z.string().optional(),\n description: z.string().max(4096).optional(),\n properties: z.record(z.any()).optional(),\n required: z.array(z.string()).optional(),\n minItems: z.number().int().min(0).optional(),\n maxItems: z.number().int().optional(),\n items: z.record(z.any()).optional(), // Recursive structure to handle nested arrays and objects\n enum: z.array(z.union([z.string(), z.number(), z.boolean(), z.null()])).optional(), // Enum for allowed values\n minimum: z.number().optional(), // Minimum value for number\n maximum: z.number().optional(), // Maximum value for number\n minLength: z.number().int().min(0).optional(), // Minimum length for string\n maxLength: z.number().int().optional(), // Maximum length for string\n $ref: z.string().optional(), // Reference to another schema\n});\n// type ResponseSchemaPropertyType = z.infer<typeof ResponseSchemaProperty>;\n\nconst ResponseSchemaStructure = z.object({\n type: z.enum([\"object\"]),\n required: z.array(z.string()),\n $defs: z.record(z.any()).optional(),\n properties: z.record(ResponseSchemaProperty),\n additionalProperties: z.literal(false),\n});\n// type ResponseSchemaStructureType = z.infer<typeof ResponseSchemaStructure>;\n\nconst ResponseSchema = z.object({\n name: z\n .string()\n .regex(/^[a-zA-Z0-9_]{1,64}$/)\n .max(64),\n description: z.string().max(4096),\n strict: z.boolean().optional(),\n schema: ResponseSchemaStructure,\n}).optional();\n// type ResponseSchemaType = z.infer<typeof ResponseSchema>;\n\nconst responseSchema = ObjectSchemaConfigItem({\n param: \"response_schema\",\n title: \"Response schema\",\n description: \"When response format is set to 'json_schema', the model will return a JSON object of the specified schema.\",\n objectSchema: ResponseSchema,\n});\n\nconst responseFormat = SelectStringConfigItem({\n param: \"response_format\",\n title: \"Response format\",\n description:\n \"Choose the response format of your model. 'json_object' colloquially known as JSON mode, instructs the model to respond with a valid \\\n JSON (must include the term 'json' in prompt). 'json_schema' colloquially known as structured outputs, allows you to specify a strict \\\n response schema that the model will adhere to.\",\n default: \"text\",\n choices: [\"text\", \"json_object\", \"json_schema\"],\n});\n\nconst ResponseSchemaConfigDef = (maxOutputTokens: number, maxSequences: number) => ({\n ...BaseConfigDef(maxOutputTokens, maxSequences),\n responseFormat: responseFormat.def,\n responseSchema: responseSchema.def,\n});\n\nconst ResponseSchemaConfigSchema = (maxOutputTokens: number, maxSequences: number) =>\n BaseConfigSchema(maxOutputTokens, maxSequences).extend({\n responseFormat: responseFormat.schema,\n responseSchema: responseSchema.schema,\n });\n\nexport { ResponseSchemaConfigDef, ResponseSchemaConfigSchema };","import { RangeConfigItem, SelectStringConfigItem } from \"@adaline/provider\";\n\nconst encodingFormat = SelectStringConfigItem({\n param: \"encoding_format\",\n title: \"Encoding format\",\n description:\n \"Select the encoding format for the word embedding.\",\n default: \"float\",\n choices: [\"float\", \"base64\"],\n});\n\nconst dimensions = RangeConfigItem({\n param: \"dimensions\",\n title: \"Dimensions\",\n description: \"Select the number of dimensions for the word embedding.\",\n min: 1,\n max: 1024, // TODO: check if this is the base max\n step: 1,\n default: 1024, // TODO: check if this is the base default\n});\n\nexport { \n encodingFormat, \n dimensions \n};\n","import { z } from \"zod\";\n\nimport {\n encodingFormat,\n dimensions,\n} from \"./common.config.word-embedding.openai\";\n\nconst BaseWordEmbeddingConfigSchema = () =>\n z.object({\n encodingFormat: encodingFormat.schema,\n dimensions: dimensions.schema, // TODO: only supported for text-embedding-3 and later models\n });\n\nconst BaseWordEmbeddingConfigDef = () =>\n ({\n encodingFormat: encodingFormat.def,\n dimensions: dimensions.def,\n }) as const;\n\nexport { \n BaseWordEmbeddingConfigDef, \n BaseWordEmbeddingConfigSchema \n};\n","import { BaseConfigDef, BaseConfigSchema, ResponseSchemaConfigDef, ResponseSchemaConfigSchema } from \"./language-model\";\nimport { BaseWordEmbeddingConfigDef, BaseWordEmbeddingConfigSchema } from \"./word-embedding\";\n\nconst OpenAIConfigs = {\n base: (maxOutputTokens: number, maxSequences: number) => ({\n def: BaseConfigDef(maxOutputTokens, maxSequences),\n schema: BaseConfigSchema(maxOutputTokens, maxSequences),\n }),\n responseSchema: (maxOutputTokens: number, maxSequences: number) => ({\n def: ResponseSchemaConfigDef(maxOutputTokens, maxSequences),\n schema: ResponseSchemaConfigSchema(maxOutputTokens, maxSequences),\n }),\n} as const;\n\nconst OpenAIWordEmbeddingConfigs = {\n base: () => ({\n def: BaseWordEmbeddingConfigDef(),\n schema: BaseWordEmbeddingConfigSchema(),\n }),\n} as const;\n\nexport { \n OpenAIConfigs, \n OpenAIWordEmbeddingConfigs \n};\n","import { z } from \"zod\";\n\nimport { AssistantRoleLiteral, SystemRoleLiteral, ToolRoleLiteral, UserRoleLiteral } from \"@adaline/types\";\n\nconst OpenAIChatModelRoles = z.enum([SystemRoleLiteral, UserRoleLiteral, AssistantRoleLiteral, ToolRoleLiteral]);\n\nconst OpenAIChatModelRolesMap = {\n system: SystemRoleLiteral,\n user: UserRoleLiteral,\n assistant: AssistantRoleLiteral,\n tool: ToolRoleLiteral,\n} as const;\n\nexport { OpenAIChatModelRoles, OpenAIChatModelRolesMap };\n","import { z } from \"zod\";\n\nimport { ChatModelSchemaType } from \"@adaline/provider\";\nimport { ImageModalityLiteral, TextModalityLiteral, ToolCallModalityLiteral, ToolResponseModalityLiteral } from \"@adaline/types\";\n\nconst OpenAIChatModelModalities: ChatModelSchemaType[\"modalities\"] = [\n TextModalityLiteral,\n ImageModalityLiteral,\n ToolCallModalityLiteral,\n ToolResponseModalityLiteral,\n];\n\nconst OpenAIChatModelModalitiesEnum = z.enum([\n TextModalityLiteral,\n ImageModalityLiteral,\n ToolCallModalityLiteral,\n ToolResponseModalityLiteral,\n]);\n\nexport { OpenAIChatModelModalitiesEnum, OpenAIChatModelModalities };\n","import { z } from \"zod\";\n\nconst OpenAIToolCallsCompleteChatResponse = z.array(\n z.object({\n id: z.string().min(1),\n type: z.enum([\"function\"]),\n function: z.object({\n name: z.string(),\n arguments: z.string(),\n }),\n })\n);\n\nconst OpenAICompleteChatResponse = z.object({\n id: z.string(),\n object: z.literal(\"chat.completion\"),\n created: z.number(),\n model: z.string(),\n system_fingerprint: z.any(),\n choices: z.array(\n z.object({\n index: z.number(),\n message: z.object({\n role: z.string(),\n content: z.string().nullable().optional(),\n tool_calls: OpenAIToolCallsCompleteChatResponse.optional(),\n refusal: z.string().nullable().optional(),\n }),\n logprobs: z.any(),\n finish_reason: z.any(),\n })\n ),\n usage: z.object({\n prompt_tokens: z.number(),\n completion_tokens: z.number(),\n total_tokens: z.number(),\n }),\n});\n\nconst OpenAIToolCallsStreamChatResponse = z.array(\n z.object({\n index: z.number().int(),\n id: z.string().min(1).optional(),\n type: z.enum([\"function\"]).optional(),\n function: z\n .object({\n name: z.string().min(1).optional(),\n arguments: z.string().optional(),\n })\n .optional(),\n })\n);\n\nconst OpenAIStreamChatResponse = z.object({\n id: z.string(),\n object: z.string(),\n created: z.number(),\n model: z.string(),\n system_fingerprint: z.any().nullable(),\n choices: z.array(\n z.object({\n index: z.number(),\n delta: z\n .object({\n content: z.string().nullable().optional(),\n tool_calls: OpenAIToolCallsStreamChatResponse.optional(),\n refusal: z.string().nullable().optional(),\n })\n .or(z.object({})),\n finish_reason: z.any().nullable(),\n logprobs: z.any().nullable(),\n })\n ),\n});\n\nexport {\n OpenAIStreamChatResponse,\n OpenAICompleteChatResponse,\n OpenAIToolCallsStreamChatResponse,\n OpenAIToolCallsCompleteChatResponse,\n}","import { z } from \"zod\";\n\nimport {\n HeadersType,\n ParamsType,\n UrlType,\n urlWithoutTrailingSlash,\n ChatModelV1,\n ChatModelSchemaType,\n SelectStringConfigItemDefType,\n ApiRequestError,\n ApiResponseError,\n InvalidConfigError,\n InvalidMessagesError,\n InvalidToolsError,\n} from \"@adaline/provider\";\n\nimport {\n SystemRoleLiteral,\n UserRoleLiteral,\n AssistantRoleLiteral,\n ToolRoleLiteral,\n TextModalityLiteral,\n ToolCallModalityLiteral,\n ToolResponseModalityLiteral,\n ImageModalityLiteral,\n Message,\n Tool,\n ConfigType,\n MessageType,\n PartialMessageType,\n ToolType,\n ToolResponseContentType,\n createTextMessage,\n createToolCallMessage,\n createPartialTextMessage,\n createPartialToolCallMessage,\n} from \"@adaline/types\";\n\nimport { OpenAICompleteChatResponse, OpenAIStreamChatResponse } from \"./types/response.chat-model.openai\";\n\nconst BaseChatModelOptions = z.object({\n apiKey: z.string(), // TODO: add min and max length ?\n proxyUrl: z.string().optional(), // TODO: use strict url type\n});\ntype BaseChatModelOptionsType = z.infer<typeof BaseChatModelOptions>;\n\nclass BaseChatModel implements ChatModelV1<ChatModelSchemaType> {\n readonly version = \"v1\" as const;\n modelSchema: ChatModelSchemaType;\n\n private readonly apiKey: string;\n private readonly baseUrl: string = \"https://api.openai.com/v1\"; // TODO: move to options coming from Provider\n\n constructor(modelSchema: ChatModelSchemaType, options: BaseChatModelOptionsType) {\n this.modelSchema = modelSchema;\n this.apiKey = options.apiKey;\n if (options.proxyUrl) this.baseUrl = urlWithoutTrailingSlash(options.proxyUrl);\n };\n\n // TODO: add support for non-text modalities\n // TODO: add support for tools if tools are counted as tokens\n // TODO: should validate messages and tools before counting tokens?\n getTokenCount = (messages: MessageType[]): number => {\n return messages.reduce((acc, message) => {\n return acc + message.content.map((content) => (content.modality === \"text\" ? content.value : \"\")).join(\" \").length;\n }, 0);\n };\n\n getDefaultBaseUrl = (): UrlType => {\n return this.baseUrl;\n };\n\n getDefaultHeaders = (): HeadersType => {\n return {\n Authorization: `Bearer ${this.apiKey}`,\n \"Content-Type\": \"application/json\",\n };\n };\n\n getDefaultParams = (): ParamsType => {\n return {\n model: this.modelSchema.name,\n };\n };\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n transformConfig = (config: ConfigType, messages?: MessageType[], tools?: ToolType[]): ParamsType => {\n const _toolChoice = config.toolChoice;\n delete config.toolChoice; // can have a specific tool name that is not in the model schema, validated at transformation \n\n // TODO: why is safeParse coercing Record to modelSchema.config.schema type rather than returning error?\n const _parsedConfig = this.modelSchema.config.schema.safeParse(config);\n if (!_parsedConfig.success) {\n throw new InvalidConfigError({ info: this.modelSchema.name, error: _parsedConfig.error })\n }\n\n const parsedConfig = _parsedConfig.data as ConfigType;\n if (_toolChoice !== undefined) {\n parsedConfig.toolChoice = _toolChoice;\n }\n\n Object.keys(parsedConfig).forEach((key) => {\n if (!(key in this.modelSchema.config.def)) {\n throw new InvalidConfigError({ \n info: this.modelSchema.name, \n error: new Error(`Invalid config key: '${key}'`) \n });\n }\n });\n\n const transformedConfig = Object.keys(parsedConfig).reduce(\n (acc, key) => {\n const def = this.modelSchema.config.def[key];\n const paramKey = def.param;\n const paramValue = (parsedConfig as ConfigType)[key];\n\n if (paramKey === \"max_tokens\" && def.type === \"range\" && paramValue === 0) {\n acc[paramKey] = def.max;\n } else {\n acc[paramKey] = paramValue;\n }\n\n return acc;\n },\n {} as ParamsType\n );\n\n if (\"tool_choice\" in transformedConfig && transformedConfig.tool_choice !== undefined) {\n const toolChoice = transformedConfig.tool_choice as string;\n if (!tools || (tools && tools.length === 0)) {\n throw new InvalidConfigError({ \n info: this.modelSchema.name, \n error: new Error(\"'tools' are required when 'toolChoice' is specified\") \n });\n } else if (tools && tools.length > 0) {\n const configToolChoice = this.modelSchema.config.def.toolChoice as SelectStringConfigItemDefType;\n if (!configToolChoice.choices.includes(toolChoice)) {\n if (tools.map((tool) => tool.definition.schema.name).includes(toolChoice)) {\n transformedConfig.tool_choice = { type: \"function\", function: { name: toolChoice } };\n } else {\n throw new InvalidConfigError({ \n info: this.modelSchema.name, \n error: new Error(`Invalid 'toolChoice': '${toolChoice}' is not part of provided tools or \n one of '${configToolChoice.choices.join(\", \")}'`) \n });\n }\n }\n }\n }\n\n if (\"response_format\" in transformedConfig && transformedConfig.response_format !== undefined) {\n const responseFormat = transformedConfig.response_format as string;\n if (responseFormat === \"json_schema\") {\n if (!(\"response_schema\" in transformedConfig)) {\n throw new InvalidConfigError({ \n info: this.modelSchema.name, \n error: new Error(\"'responseSchema' is required in config when 'responseFormat' is 'json_schema'\") \n });\n } else {\n transformedConfig.response_format = { \n type: \"json_schema\",\n json_schema: transformedConfig.response_schema,\n };\n delete transformedConfig.response_schema;\n }\n } else {\n transformedConfig.response_format = { type: responseFormat };\n }\n }\n\n return transformedConfig;\n };\n\n transformMessages = (messages: MessageType[]): ParamsType => {\n if (!messages || (messages && messages.length === 0)) {\n return { messages: [] };\n }\n\n const parsedMessages = messages.map((message) => {\n const parsedMessage = Message().safeParse(message);\n if (!parsedMessage.success) {\n throw new InvalidMessagesError({ info: this.modelSchema.name, error: parsedMessage.error });\n }\n return parsedMessage.data;\n });\n\n parsedMessages.forEach((message) => {\n message.content.forEach((content) => {\n if (!this.modelSchema.modalities.includes(content.modality)) {\n throw new InvalidMessagesError({ \n info: this.modelSchema.name, \n error: new Error(`model: '${this.modelSchema.name}' does not support modality: '${content.modality}'`) \n });\n }\n });\n });\n\n const transformedMessages = parsedMessages.map((message) => {\n switch (message.role) {\n case SystemRoleLiteral: {\n const textContent: string[] = [];\n message.content.forEach((content) => {\n if (content.modality === TextModalityLiteral) {\n textContent.push(content.value);\n } else {\n throw new InvalidMessagesError({ \n info: this.modelSchema.name, \n error: new Error(`role: '${SystemRoleLiteral}' cannot have content with modality '${content.modality}'`) \n });\n }\n });\n\n return {\n role: this.modelSchema.roles[message.role],\n content: textContent,\n };\n }\n\n case AssistantRoleLiteral: {\n const textContent: string[] = [];\n const toolCalls: { id: string, type: \"function\", function: { name: string, arguments: string } }[] = [];\n message.content.forEach((content) => {\n if (content.modality === TextModalityLiteral) {\n textContent.push(content.value);\n } else if (content.modality === ToolCallModalityLiteral) {\n toolCalls.push({\n id: content.id,\n type: \"function\",\n function: { name: content.name, arguments: content.arguments }\n });\n } else {\n throw new InvalidMessagesError({ \n info: this.modelSchema.name, \n error: new Error(`role: '${AssistantRoleLiteral}' cannot have content with modality '${content.modality}'`) \n });\n }\n });\n \n return {\n role: this.modelSchema.roles[message.role],\n content: textContent,\n ...(toolCalls.length > 0 ? { tool_calls: toolCalls } : {}),\n };\n }\n\n case UserRoleLiteral: {\n const textContent: { type: \"text\", text: string }[] = [];\n const imageContent: { type: \"image_url\", image_url: { url: string, detail: string } }[] = [];\n message.content.forEach((content) => {\n if (content.modality === TextModalityLiteral) {\n textContent.push({ type: \"text\", text: content.value });\n } else if (content.modality === ImageModalityLiteral) {\n imageContent.push({ \n type: \"image_url\", \n image_url: { \n url: content.value.type === \"url\" ? content.value.url : content.value.base64, \n detail: content.detail,\n } \n });\n } else {\n throw new InvalidMessagesError({ \n info: this.modelSchema.name, \n error: new Error(`role: '${UserRoleLiteral}' cannot have content with modality '${content.modality}'`) \n });\n }\n });\n\n const combinedContent = [...textContent, ...imageContent];\n\n return {\n role: this.modelSchema.roles[message.role],\n content: combinedContent,\n }; \n }\n\n case ToolRoleLiteral: {\n if (message.content.length !== 1) {\n throw new InvalidMessagesError({ \n info: this.modelSchema.name, \n error: new Error(`role: '${ToolRoleLiteral}' must have exactly one content item`) \n });\n }\n\n if (message.content[0].modality !== ToolResponseModalityLiteral) {\n throw new InvalidMessagesError({ \n info: this.modelSchema.name, \n error: new Error(`role: '${ToolRoleLiteral}' must have content with modality '${ToolResponseModalityLiteral}'`) \n });\n }\n\n const toolResponse = message.content[0] as ToolResponseContentType;\n return {\n role: this.modelSchema.roles[message.role],\n tool_call_id: toolResponse.id,\n content: toolResponse.data,\n };\n }\n\n default: {\n throw new InvalidMessagesError({ \n info: this.modelSchema.name, \n error: new Error(`Invalid role: '${message.role}'`) \n });\n }\n }\n });\n\n return { messages: transformedMessages };\n };\n\n transformTools = (tools: ToolType[]): ParamsType => {\n if (!tools || (tools && tools.length === 0)) {\n return { tools: [] as ToolType[] };\n }\n\n const parsedTools = tools.map((tool) => {\n const parsedTool = Tool().safeParse(tool);\n if (!parsedTool.success) {\n throw new InvalidToolsError({ info: this.modelSchema.name, error: parsedTool.error });\n }\n return parsedTool.data;\n });\n\n const transformedTools = parsedTools.map((tool) => ({\n type: \"function\",\n function: tool.definition.schema,\n }));\n\n return { tools: transformedTools };\n };\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n getCompleteChatUrl = (config: ConfigType, messages: MessageType[], tools?: ToolType[]): UrlType => {\n return `${this.baseUrl}/chat/completions`;\n };\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n getCompleteChatHeaders = (config: ConfigType, messages: MessageType[], tools?: ToolType[]): HeadersType => {\n return this.getDefaultHeaders();\n };\n\n getCompleteChatData = (config: ConfigType, messages: MessageType[], tools?: ToolType[]): ParamsType => {\n const transformedConfig = this.transformConfig(config, messages, tools);\n const transformedMessages = this.transformMessages(messages);\n if (transformedMessages.messages && (transformedMessages.messages as MessageType[]).length === 0) {\n throw new InvalidMessagesError({ \n info: this.modelSchema.name, \n error: new Error(\"Messages are required\") \n });\n }\n\n const transformedTools = tools ? this.transformTools(tools) : {};\n\n return {\n model: this.modelSchema.name,\n ...transformedConfig,\n ...transformedMessages,\n ...transformedTools,\n };\n };\n\n transformCompleteChatResponse = (response: any): MessageType[] => {\n const safe = OpenAICompleteChatResponse.safeParse(response);\n if (safe.success) {\n if (safe.data.choices.length === 0) {\n throw new ApiResponseError({ \n info: this.modelSchema.name, \n error: new Error(\"No choices in response\") \n });\n }\n\n const messages: MessageType[] = [];\n const message = safe.data.choices[0].message;\n if (message.content) {\n messages.push(createTextMessage(AssistantRoleLiteral, message.content));\n } \n \n if (message.refusal) {\n messages.push(createTextMessage(AssistantRoleLiteral, message.refusal));\n } \n \n if (message.tool_calls) {\n message.tool_calls.forEach((toolCall, index) => {\n messages.push(createToolCallMessage(\n AssistantRoleLiteral, \n index, \n toolCall.id, \n toolCall.function.name, \n toolCall.function.arguments\n ));\n });\n }\n return messages;\n } \n\n throw new ApiRequestError({ info: this.modelSchema.name, error: safe.error });\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n getStreamChatUrl = (config: ConfigType, messages: MessageType[], tools?: ToolType[]): UrlType => {\n return `${this.baseUrl}/chat/completions`;\n };\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n getStreamChatHeaders = (config: ConfigType, messages: MessageType[], tools?: ToolType[]): HeadersType => {\n return this.getDefaultHeaders();\n };\n\n getStreamChatData = (config: ConfigType, messages: MessageType[], tools?: ToolType[]): ParamsType => {\n const transformedConfig = this.transformConfig(config, messages, tools);\n const transformedMessages = this.transformMessages(messages);\n if (transformedMessages.messages && (transformedMessages.messages as MessageType[]).length === 0) {\n throw new InvalidMessagesError({ \n info: this.modelSchema.name, \n error: new Error(\"Messages are required\") \n });\n }\n\n const transformedTools = tools ? this.transformTools(tools) : {};\n\n return {\n stream: true,\n model: this.modelSchema.name,\n ...transformedConfig,\n ...transformedMessages,\n ...transformedTools,\n };\n };\n\n // TODO: OpenAI streaming is ideally always a proper JSON, shouldn't need a buffer and rather throw an error when a non-JSON line is encountered\n transformStreamChatResponseChunk = async function* (\n chunk: string, \n buffer: string\n ): AsyncGenerator<{ partialMessages: PartialMessageType[]; buffer: string }> {\n // merge last buffer message and split into lines\n const lines = (buffer + chunk).split(\"\\n\").filter((line) => line.trim() !== \"\");\n for (const line of lines) {\n let structuredLine: any;\n if (line === \"data: [DONE]\") {\n // end of stream\n return;\n } else if (line.startsWith(\"data: {\")) {\n // line contains message\n try {\n // remove the 'data :' prefix from string JSON\n structuredLine = JSON.parse(line.substring(\"data: \".length));\n } catch (error) {\n // malformed JSON error, must be the end of loop\n if (error instanceof SyntaxError) {\n // append to buffer\n buffer += line;\n continue;\n } else {\n // non JSON parse error, re-raise\n throw error;\n }\n }\n\n buffer = \"\"; // reset buffer\n const partialMessages: PartialMessageType[] = [];\n const safe = OpenAIStreamChatResponse.safeParse(structuredLine);\n if (safe.success) {\n // TODO: figure out how to access 'this' object in async function*\n // if (safe.data.choices.length === 0) {\n // throw new ApiResponseError({ \n // info: this.modelSchema.name, \n // error: new Error(\"No choices in response\") \n // });\n // }\n \n const message = safe.data.choices[0].delta;\n if (message !== undefined && Object.keys(message).length !== 0) {\n if (\"content\" in message && message.content !== null) {\n partialMessages.push(createPartialTextMessage(AssistantRoleLiteral, message.content as string));\n } else if (\"refusal\" in message && message.refusal !== null) {\n partialMessages.push(createPartialTextMessage(AssistantRoleLiteral, message.refusal as string));\n } else if (\"tool_calls\" in message && message.tool_calls !== undefined) {\n // only 1 tool call per chunk in streaming\n const toolCall = message.tool_calls.at(0)!;\n partialMessages.push(createPartialToolCallMessage(\n AssistantRoleLiteral,\n toolCall.index,\n toolCall.id,\n toolCall.function?.name,\n toolCall.function?.arguments\n ));\n }\n }\n } \n yield { partialMessages: partialMessages, buffer: buffer };\n } else {\n // buffer doesn't start with 'data: {'\n // TODO: should throw an error when 'this' object access is implemented\n }\n }\n\n yield { partialMessages: [], buffer: buffer };\n };\n}\n\nexport { \n BaseChatModel, \n BaseChatModelOptions, \n type BaseChatModelOptionsType \n};\n","import { z } from \"zod\";\n\nimport { ChatModelSchema } from \"@adaline/provider\";\n\nimport { OpenAIConfigs } from \"../../configs\";\nimport { BaseChatModel, BaseChatModelOptions } from \"./base-language-model.openai\";\nimport { OpenAIChatModelRoles, OpenAIChatModelRolesMap, OpenAIChatModelModalities, OpenAIChatModelModalitiesEnum } from \"./types\";\n\nconst GPT4oLiteral = \"gpt-4o\";\nconst GPT4oDescription = \"GPT-4o is a large-scale multimodal model trained by OpenAI. \\\nIt is the successor to GPT-4 and is designed to be more powerful and capable than its predecessor.\";\n\nconst GPT4oSchema = ChatModelSchema(OpenAIChatModelRoles, OpenAIChatModelModalitiesEnum).parse({\n name: GPT4oLiteral,\n description: GPT4oDescription,\n maxInputTokens: 128000,\n maxOutputTokens: 128000,\n roles: OpenAIChatModelRolesMap,\n modalities: OpenAIChatModelModalities,\n config: {\n def: OpenAIConfigs.base(128000, 4).def,\n schema: OpenAIConfigs.base(128000, 4).schema,\n },\n});\n\nconst GPT4oOptions = BaseChatModelOptions;\ntype GPT4oOptionsType = z.infer<typeof GPT4oOptions>;\n\nclass GPT4o extends BaseChatModel {\n constructor(options: GPT4oOptionsType) {\n super(GPT4oSchema, options);\n }\n}\n\nexport { GPT4o, GPT4oOptions, GPT4oSchema, type GPT4oOptionsType };\n","import { z } from \"zod\";\n\nimport { EmbeddingModelSchemaType } from \"@adaline/provider\";\nimport { EmbeddingTextModalityLiteral, EmbeddingTokenModalityLiteral } from \"@adaline/types\";\n\nconst OpenAIEmbeddingModelModalities: EmbeddingModelSchemaType[\"modalities\"] = [\n EmbeddingTextModalityLiteral,\n EmbeddingTokenModalityLiteral,\n];\n\nconst OpenAIEmbeddingModelModalitiesEnum = z.enum([\n EmbeddingTextModalityLiteral,\n EmbeddingTokenModalityLiteral,\n]);\n\nexport { OpenAIEmbeddingModelModalitiesEnum, OpenAIEmbeddingModelModalities };\n","import { z } from \"zod\";\n\nconst OpenAIGetEmbeddingsResponse = z.object({\n object: z.literal(\"list\"),\n model: z.string(),\n data: z.array(\n z.object({\n index: z.number(),\n object: z.literal(\"embedding\"),\n embedding: z.array(z.number()).or(z.string().base64()),\n })\n ),\n usage: z.object({\n prompt_tokens: z.number(),\n total_tokens: z.number(),\n }),\n});\n\nexport { OpenAIGetEmbeddingsResponse };","import { z } from \"zod\";\n\nimport { \n ConfigType, \n EmbeddingsType,\n FloatEmbeddingType,\n Base64EmbeddingType,\n EmbeddingRequests,\n EmbeddingRequestsType,\n FloatEmbeddingLiteral,\n Base64EmbeddingLiteral,\n EmbeddingTextModalityLiteral,\n EmbeddingTokenModalityLiteral,\n} from \"@adaline/types\";\n\nimport { \n EmbeddingModelV1,\n EmbeddingModelSchemaType,\n HeadersType, \n ParamsType, \n UrlType, \n urlWithoutTrailingSlash,\n ApiRequestError,\n InvalidConfigError,\n InvalidEmbeddingRequestsError, \n} from \"@adaline/provider\";\n\nimport { OpenAIGetEmbeddingsResponse } from \"./types\";\n\nconst BaseEmbeddingModelOptions = z.object({\n apiKey: z.string(), // TODO: add min and max length ?\n proxyUrl: z.string().optional(), // TODO: use strict url type\n});\ntype BaseEmbeddingModelOptionsType = z.infer<typeof BaseEmbeddingModelOptions>;\n\nclass BaseEmbeddingModel implements EmbeddingModelV1<EmbeddingModelSchemaType> {\n readonly version = \"v1\" as const;\n modelSchema: EmbeddingModelSchemaType;\n\n private readonly apiKey: string;\n private readonly baseUrl: string = \"https://api.openai.com/v1\"; // TODO: move to options coming from Provider\n\n constructor(modelSchema: EmbeddingModelSchemaType, options: BaseEmbeddingModelOptionsType) {\n this.modelSchema = modelSchema;\n this.apiKey = options.apiKey;\n if (options.proxyUrl) this.baseUrl = urlWithoutTrailingSlash(options.proxyUrl);\n };\n\n private validateConfig = (config: ConfigType): ConfigType => {\n const parsedConfig = this.modelSchema.config.schema.safeParse(config);\n if (!parsedConfig.success) {\n throw new InvalidConfigError({ info: this.modelSchema.name, error: parsedConfig.error })\n }\n\n // TODO: check if this is still needed if safeParse already checks for that?\n Object.keys(parsedConfig.data as ConfigType).forEach((key) => {\n if (!this.modelSchema.config.def[key]) {\n throw new InvalidConfigError({ info: this.modelSchema.name, error: new Error(`Invalid config key: '${key}'`) });\n }\n });\n\n return parsedConfig.data as ConfigType;\n };\n\n private validateEmbeddingRequests = (requests: EmbeddingRequestsType): EmbeddingRequestsType => {\n const parsedRequests = EmbeddingRequests().safeParse(requests);\n if (!parsedRequests.success) {\n throw new InvalidEmbeddingRequestsError({ info: this.modelSchema.name, error: parsedRequests.error })\n }\n\n // Note from OpenAI API Reference: \n // The input must not exceed the max input tokens for the model (8192 tokens for text-embedding-ada-002), \n // cannot be an empty string, and any array must be 2048 dimensions or less.\n // TODO: add max tokens check in requests based on model schema when token calculation is accurate\n\n return parsedRequests.data as EmbeddingRequestsType;\n };\n\n getDefaultBaseUrl = (): UrlType => {\n return this.baseUrl;\n };\n\n getDefaultHeaders = (): HeadersType => {\n return {\n Authorization: `Bearer ${this.apiKey}`,\n \"Content-Type\": \"application/json\",\n };\n };\n\n getDefaultParams = (): ParamsType => {\n return {\n model: this.modelSchema.name,\n };\n };\n\n getTokenCount = (requests: EmbeddingRequestsType): number => {\n const validatedRequests = this.validateEmbeddingRequests(requests);\n return validatedRequests.requests.reduce((acc, request) => acc + request.length, 0);\n };\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n transformConfig = (config: ConfigType, requests?: EmbeddingRequestsType): ParamsType => {\n const validatedConfig = this.validateConfig(config);\n const transformedConfig = Object.keys(validatedConfig).reduce(\n (acc, key) => {\n const def = this.modelSchema.config.def[key];\n const paramKey = def.param;\n const paramValue = validatedConfig[key];\n acc[paramKey] = paramValue;\n return acc;\n },\n {} as ParamsType\n );\n\n return transformedConfig;\n };\n\n transformEmbeddingRequests = (requests: EmbeddingRequestsType): ParamsType => {\n return {\n input: requests.requests\n }\n };\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n getGetEmbeddingsUrl = (config: ConfigType, requests: EmbeddingRequestsType): UrlType => {\n return `${this.baseUrl}/embeddings`;\n };\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n getGetEmbeddingsHeaders = (config: ConfigType, requests: EmbeddingRequestsType): HeadersType => {\n return this.getDefaultHeaders();\n };\n\n getGetEmbeddingsData = (config: ConfigType, requests: EmbeddingRequestsType): ParamsType => {\n return {\n model: this.modelSchema.name,\n ...this.transformConfig(config, requests),\n ...this.transformEmbeddingRequests(requests),\n };\n };\n\n transformGetEmbeddingsResponse = (response: any): EmbeddingsType => {\n let encodingFormat: typeof Base64EmbeddingLiteral | typeof FloatEmbeddingLiteral;\n const parsedResponse = OpenAIGetEmbeddingsResponse.safeParse(response);\n if (parsedResponse.success) {\n encodingFormat = typeof parsedResponse.data.data[0].embedding === \"string\" ? Base64EmbeddingLiteral : FloatEmbeddingLiteral;\n const embeddings = parsedResponse.data.data.map((item) => {\n if (typeof item.embedding === \"string\") {\n return {\n index: item.index,\n embedding: item.embedding,\n } as Base64EmbeddingType;\n } else {\n return {\n index: item.index,\n embedding: item.embedding,\n } as FloatEmbeddingType;\n }\n });\n return {\n encodingFormat,\n embeddings,\n } as EmbeddingsType;\n }\n\n throw new ApiRequestError({ info: this.modelSchema.name, error: parsedResponse.error });\n };\n}\n\nexport { \n BaseEmbeddingModel, \n BaseEmbeddingModelOptions,\n type BaseEmbeddingModelOptionsType \n};","import { z } from \"zod\";\n\nimport { EmbeddingModelSchema } from \"@adaline/provider\";\n\nimport { OpenAIWordEmbeddingConfigs } from \"../../configs\";\nimport { BaseEmbeddingModel, BaseEmbeddingModelOptions } from \"./base-embedding-model.openai\";\nimport { OpenAIEmbeddingModelModalities, OpenAIEmbeddingModelModalitiesEnum } from \"./types\";\n\nconst TextEmbeddingAda002Literal = \"text-embedding-ada-002\";\nconst TextEmbeddingAda002Description = \"some description\"; // TODO: add proper description\n\nconst TextEmbeddingAda002Schema = EmbeddingModelSchema(OpenAIEmbeddingModelModalitiesEnum).parse({\n name: TextEmbeddingAda002Literal,\n description: TextEmbeddingAda002Description,\n modalities: OpenAIEmbeddingModelModalities,\n maxInputTokens: 8192,\n maxOutputTokens: 8192,\n config: {\n def: OpenAIWordEmbeddingConfigs.base().def,\n schema: OpenAIWordEmbeddingConfigs.base().schema,\n },\n});\n\nconst TextEmbeddingAda002Options = BaseEmbeddingModelOptions;\ntype TextEmbeddingAda002OptionsType = z.infer<typeof TextEmbeddingAda002Options>;\n\nclass TextEmbeddingAda002 extends BaseEmbeddingModel {\n constructor(options: TextEmbeddingAda002OptionsType) {\n super(TextEmbeddingAda002Schema, options);\n }\n}\n\nexport { TextEmbeddingAda002, TextEmbeddingAda002Options, TextEmbeddingAda002Schema, type TextEmbeddingAda002OptionsType };\n","import { z } from \"zod\";\n\nimport { ChatModelV1, ChatModelSchemaType, EmbeddingModelV1, EmbeddingModelSchemaType, ProviderV1 } from \"@adaline/provider\";\n\nimport { GPT4o, GPT4oOptions, GPT4oSchema } from \"../models/chat-models/gpt-4o.openai\";\nimport { TextEmbeddingAda002, TextEmbeddingAda002Options, TextEmbeddingAda002Schema } from \"../models/embedding-models/text-embedding-ada-002.openai\";\n\nconst ProviderLiteral = \"openai\";\n\nclass OpenAI<O extends Record<string, any> = Record<string, any>> implements ProviderV1<O> {\n readonly version = \"v1\" as const;\n readonly name = ProviderLiteral;\n\n private readonly chatModelFactories: \n Record<string, { \n model: { new (options: any): ChatModelV1 },\n modelOptions: z.ZodType<any>,\n modelSchema: ChatModelSchemaType\n }> = {\n \"gpt-4o\": { model: GPT4o, modelOptions: GPT4oOptions, modelSchema: GPT4oSchema },\n };\n\n private readonly embeddingModelFactories: \n Record<string, { \n model: { new (options: any): EmbeddingModelV1 },\n modelOptions: z.ZodType<any>,\n modelSchema: EmbeddingModelSchemaType\n }> = {\n \"text-embedding-ada-002\": { model: TextEmbeddingAda002, modelOptions: TextEmbeddingAda002Options, modelSchema: TextEmbeddingAda002Schema },\n };\n\n chatModelLiterals(): string[] {\n return Object.keys(this.chatModelFactories);\n }\n\n chatModel(name: string, options: O): ChatModelV1 {\n if (!(name in this.chatModelFactories)) {\n throw new Error(`Model ${name} not found`); // TODO: move to custom error type\n }\n\n const model = this.chatModelFactories[name].model;\n const modelOptions = this.chatModelFactories[name].modelOptions.parse(options);\n return new model(modelOptions);\n }\n\n chatModelSchema(name: string): ChatModelSchemaType {\n if (!(name in this.chatModelFactories)) {\n throw new Error(`Model ${name} not found`); // TODO: move to custom error type\n }\n return this.chatModelFactories[name].modelSchema;\n }\n\n chatModelSchemas(): Record<string, ChatModelSchemaType> {\n return Object.keys(this.chatModelFactories).reduce((acc, key) => {\n acc[key] = this.chatModelFactories[key].modelSchema;\n return acc;\n }, {} as Record<string, ChatModelSchemaType>);\n }\n\n embeddingModelLiterals(): string[] {\n return Object.keys(this.embeddingModelFactories);\n }\n\n embeddingModel(name: string, options: O): EmbeddingModelV1 {\n if (!(name in this.embeddingModelFactories)) {\n throw new Error(`Model ${name} not found`); // TODO: move to custom error type\n }\n\n const model = this.embeddingModelFactories[name].model;\n const modelOptions = this.embeddingModelFactories[name].modelOptions.parse(options);\n return new model(modelOptions);\n }\n\n embeddingModelSchema(name: string): EmbeddingModelSchemaType {\n if (!(name in this.embeddingModelFactories)) {\n throw new Error(`Model ${name} not found`); // TODO: move to custom error type\n }\n return this.embeddingModelFactories[name].modelSchema;\n }\n\n embeddingModelSchemas(): Record<string, EmbeddingModelSchemaType> {\n return Object.keys(this.embeddingModelFactories).reduce((acc, key) => {\n acc[key] = this.embeddingModelFactories[key].modelSchema;\n return acc;\n }, {} as Record<string, EmbeddingModelSchemaType>);\n }\n}\n\nexport { OpenAI, ProviderLiteral };\n"]}
1
+ {"version":3,"sources":["../src/configs/language-model/common.config.language-model.openai.ts","../src/configs/language-model/base.config.language-model.openai.ts","../src/configs/language-model/response-schema.language-model.openai.ts","../src/configs/word-embedding/common.config.word-embedding.openai.ts","../src/configs/word-embedding/base.config.word-embedding.openai.ts","../src/configs/configs.openai.ts","../src/models/chat-models/types/roles.chat-model.openai.ts","../src/models/chat-models/types/modalities.chat-model.openai.ts","../src/models/chat-models/types/response.chat-model.openai.ts","../src/models/chat-models/base-language-model.openai.ts","../src/models/chat-models/gpt-4o.openai.ts","../src/models/embedding-models/types/modalitites.embedding-model.openai.ts","../src/models/embedding-models/types/response.embedding-model.openai.ts","../src/models/embedding-models/base-embedding-model.openai.ts","../src/models/embedding-models/text-embedding-ada-002.openai.ts","../src/provider/provider.openai.ts"],"names":["temperature","RangeConfigItem","CONFIG","maxTokens","maxOutputTokens","stop","maxSequences","MultiStringConfigItem","topP","frequencyPenalty","presencePenalty","seed","logProbs","SelectBooleanConfigItem","topLogProbs","responseFormat","SelectStringConfigItem","toolChoice","BaseConfigSchema","z","value","BaseConfigDef","ResponseSchemaTypes","ResponseSchemaTypesLiteral","ResponseSchemaProperty","ResponseSchemaStructure","ResponseSchema","responseSchema","ObjectSchemaConfigItem","ResponseSchemaConfigDef","__spreadProps","__spreadValues","ResponseSchemaConfigSchema","encodingFormat","dimensions","BaseWordEmbeddingConfigSchema","BaseWordEmbeddingConfigDef","OpenAIConfigs","OpenAIWordEmbeddingConfigs","OpenAIChatModelRoles","SystemRoleLiteral","UserRoleLiteral","AssistantRoleLiteral","ToolRoleLiteral","OpenAIChatModelRolesMap","OpenAIChatModelModalities","TextModalityLiteral","ImageModalityLiteral","ToolCallModalityLiteral","ToolResponseModalityLiteral","OpenAIChatModelModalitiesEnum","OpenAIBaseLogProb","OpenAILogProb","OpenAIToolCallsCompleteChatResponse","OpenAICompleteChatResponse","OpenAIToolCallsStreamChatResponse","OpenAIStreamChatResponse","BaseChatModelOptions","BaseChatModel","modelSchema","options","urlWithoutTrailingSlash","messages","acc","message","content","config","tools","_toolChoice","_parsedConfig","InvalidConfigError","parsedConfig","key","transformedConfig","def","paramKey","paramValue","configToolChoice","tool","parsedMessages","parsedMessage","Message","InvalidMessagesError","textContent","toolCalls","imageContent","combinedContent","toolResponse","parsedTool","Tool","InvalidToolsError","__async","resolve","transformedMessages","transformedTools","response","safe","ApiResponseError","parsedResponse","createTextMessage","toolCall","index","createToolCallMessage","usage","_logProbs","logProb","topLogProb","ApiRequestError","chunk","buffer","__asyncGenerator","_a","_b","lines","line","structuredLine","error","partialResponse","createPartialTextMessage","createPartialToolCallMessage","GPT4oLiteral","GPT4oDescription","GPT4oSchema","ChatModelSchema","GPT4oOptions","GPT4o","OpenAIEmbeddingModelModalities","EmbeddingTextModalityLiteral","EmbeddingTokenModalityLiteral","OpenAIEmbeddingModelModalitiesEnum","OpenAIGetEmbeddingsResponse","BaseEmbeddingModelOptions","BaseEmbeddingModel","requests","request","_parsedRequests","EmbeddingRequests","InvalidEmbeddingRequestsError","Base64EmbeddingLiteral","FloatEmbeddingLiteral","embeddings","item","TextEmbeddingAda002Literal","TextEmbeddingAda002Description","TextEmbeddingAda002Schema","EmbeddingModelSchema","TextEmbeddingAda002Options","TextEmbeddingAda002","ProviderLiteral","OpenAI","name","model","modelOptions","parsedOptions"],"mappings":"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","file":"index.mjs","sourcesContent":["import { CONFIG, MultiStringConfigItem, RangeConfigItem, SelectStringConfigItem, SelectBooleanConfigItem } from \"@adaline/provider\";\n\nconst temperature = RangeConfigItem({\n param: \"temperature\",\n title: CONFIG.TEMPERATURE.title,\n description: CONFIG.TEMPERATURE.description,\n min: 0,\n max: 2,\n step: 0.01,\n default: 1,\n});\n\nconst maxTokens = (maxOutputTokens: number) =>\n RangeConfigItem({\n param: \"max_tokens\",\n title: CONFIG.MAX_TOKENS.title,\n description: CONFIG.MAX_TOKENS.description,\n min: 0,\n max: maxOutputTokens,\n step: 1,\n default: 0,\n });\n\nconst stop = (maxSequences: number) =>\n MultiStringConfigItem({\n param: \"stop\",\n title: CONFIG.STOP(maxSequences).title,\n description: CONFIG.STOP(maxSequences).description,\n max: maxSequences,\n });\n\nconst topP = RangeConfigItem({\n param: \"top_p\",\n title: CONFIG.TOP_P.title,\n description: CONFIG.TOP_P.description,\n min: 0,\n max: 1,\n step: 0.01,\n default: 1,\n});\n\nconst frequencyPenalty = RangeConfigItem({\n param: \"frequency_penalty\",\n title: CONFIG.FREQUENCY_PENALTY.title,\n description: CONFIG.FREQUENCY_PENALTY.description,\n min: -2,\n max: 2,\n step: 0.01,\n default: 0,\n});\n\nconst presencePenalty = RangeConfigItem({\n param: \"presence_penalty\",\n title: CONFIG.PRESENCE_PENALTY.title,\n description: CONFIG.PRESENCE_PENALTY.description,\n min: -2,\n max: 2,\n step: 0.01,\n default: 0,\n});\n\nconst seed = RangeConfigItem({\n param: \"seed\",\n title: \"Seed\",\n description: \"This is in BETA. Set a seed to get reproducible results. Determinism is not guaranteed. Set to 0 to disable.\",\n min: 0,\n max: 1000000,\n step: 1,\n default: 0,\n});\n\nconst logProbs = SelectBooleanConfigItem({\n param: \"logprobs\",\n title: \"LogProbs\",\n description:\n \"Whether to return log probabilities of the output tokens or not. If true, returns the log probabilities of each output token returned.\",\n default: false,\n});\n\nconst topLogProbs = RangeConfigItem({\n param: \"top_logprobs\",\n title: \"Top logprobs\",\n description:\n \"The number of most likely tokens to return at each token position, each with an associated log probability. 'logprobs' must be set to true if this parameter is used.\",\n min: 0,\n max: 20,\n step: 1,\n default: 0,\n});\n\nconst responseFormat = SelectStringConfigItem({\n param: \"response_format\",\n title: \"Response format\",\n description:\n \"Choose the response format of your model. For JSON, you must include the string 'JSON' in some form within your system / user prompt.\",\n default: \"text\",\n choices: [\"text\", \"json_object\"],\n});\n\nconst toolChoice = SelectStringConfigItem({\n param: \"tool_choice\",\n title: \"Tool choice\",\n description:\n \"Controls which (if any) tool is called by the model. 'none' means the model will not call a function. 'auto' means the model can pick between generating a message or calling a tool.\",\n default: \"auto\",\n choices: [\"auto\", \"required\", \"none\"],\n});\n\nexport { frequencyPenalty, logProbs, maxTokens, presencePenalty, responseFormat, seed, stop, temperature, toolChoice, topLogProbs, topP };\n","import { z } from \"zod\";\n\nimport {\n frequencyPenalty,\n logProbs,\n maxTokens,\n presencePenalty,\n responseFormat,\n seed,\n stop,\n temperature,\n toolChoice,\n topLogProbs,\n topP,\n} from \"./common.config.language-model.openai\";\n\nconst BaseConfigSchema = (maxOutputTokens: number, maxSequences: number) =>\n z.object({\n temperature: temperature.schema,\n maxTokens: maxTokens(maxOutputTokens).schema,\n stop: stop(maxSequences).schema,\n topP: topP.schema,\n frequencyPenalty: frequencyPenalty.schema,\n presencePenalty: presencePenalty.schema,\n seed: seed.schema.transform((value) => (value === 0 ? undefined : value)),\n logProbs: logProbs.schema,\n topLogProbs: topLogProbs.schema,\n responseFormat: responseFormat.schema,\n toolChoice: toolChoice.schema,\n });\n\nconst BaseConfigDef = (maxOutputTokens: number, maxSequences: number) =>\n ({\n temperature: temperature.def,\n maxTokens: maxTokens(maxOutputTokens).def,\n stop: stop(maxSequences).def,\n topP: topP.def,\n frequencyPenalty: frequencyPenalty.def,\n presencePenalty: presencePenalty.def,\n seed: seed.def,\n responseFormat: responseFormat.def,\n logProbs: logProbs.def,\n topLogProbs: topLogProbs.def,\n toolChoice: toolChoice.def,\n }) as const;\n\nexport { BaseConfigDef, BaseConfigSchema };\n","import { z } from \"zod\";\n\nimport { SelectStringConfigItem, ObjectSchemaConfigItem } from \"@adaline/provider\";\n\nimport { BaseConfigDef, BaseConfigSchema } from \"./base.config.language-model.openai\";\n\n// TODO: move to json schema 7 type and validator when implemented for tool types\nconst ResponseSchemaTypes = [\"object\", \"array\", \"number\", \"string\", \"boolean\", \"enum\"] as const;\nconst ResponseSchemaTypesLiteral = z.enum(ResponseSchemaTypes);\n// type ResponseSchemaTypesType = z.infer<typeof ResponseSchemaTypesLiteral>;\n\nconst ResponseSchemaProperty = z.object({\n anyOf: z.array(z.any()).optional(),\n type: z.union([\n ResponseSchemaTypesLiteral, \n z.array(z.union([ResponseSchemaTypesLiteral, z.literal(\"null\")]))\n ]).optional(),\n default: z.any().optional(),\n title: z.string().optional(),\n description: z.string().max(4096).optional(),\n properties: z.record(z.any()).optional(),\n required: z.array(z.string()).optional(),\n minItems: z.number().int().min(0).optional(),\n maxItems: z.number().int().optional(),\n items: z.record(z.any()).optional(), // Recursive structure to handle nested arrays and objects\n enum: z.array(z.union([z.string(), z.number(), z.boolean(), z.null()])).optional(), // Enum for allowed values\n minimum: z.number().optional(), // Minimum value for number\n maximum: z.number().optional(), // Maximum value for number\n minLength: z.number().int().min(0).optional(), // Minimum length for string\n maxLength: z.number().int().optional(), // Maximum length for string\n $ref: z.string().optional(), // Reference to another schema\n});\n// type ResponseSchemaPropertyType = z.infer<typeof ResponseSchemaProperty>;\n\nconst ResponseSchemaStructure = z.object({\n type: z.enum([\"object\"]),\n required: z.array(z.string()),\n $defs: z.record(z.any()).optional(),\n properties: z.record(ResponseSchemaProperty),\n additionalProperties: z.literal(false),\n});\n// type ResponseSchemaStructureType = z.infer<typeof ResponseSchemaStructure>;\n\nconst ResponseSchema = z.object({\n name: z\n .string()\n .regex(/^[a-zA-Z0-9_]{1,64}$/)\n .max(64),\n description: z.string().max(4096),\n strict: z.boolean().optional(),\n schema: ResponseSchemaStructure,\n}).optional();\n// type ResponseSchemaType = z.infer<typeof ResponseSchema>;\n\nconst responseSchema = ObjectSchemaConfigItem({\n param: \"response_schema\",\n title: \"Response schema\",\n description: \"When response format is set to 'json_schema', the model will return a JSON object of the specified schema.\",\n objectSchema: ResponseSchema,\n});\n\nconst responseFormat = SelectStringConfigItem({\n param: \"response_format\",\n title: \"Response format\",\n description:\n \"Choose the response format of your model. 'json_object' colloquially known as JSON mode, instructs the model to respond with a valid \\\n JSON (must include the term 'json' in prompt). 'json_schema' colloquially known as structured outputs, allows you to specify a strict \\\n response schema that the model will adhere to.\",\n default: \"text\",\n choices: [\"text\", \"json_object\", \"json_schema\"],\n});\n\nconst ResponseSchemaConfigDef = (maxOutputTokens: number, maxSequences: number) => ({\n ...BaseConfigDef(maxOutputTokens, maxSequences),\n responseFormat: responseFormat.def,\n responseSchema: responseSchema.def,\n});\n\nconst ResponseSchemaConfigSchema = (maxOutputTokens: number, maxSequences: number) =>\n BaseConfigSchema(maxOutputTokens, maxSequences).extend({\n responseFormat: responseFormat.schema,\n responseSchema: responseSchema.schema,\n });\n\nexport { ResponseSchemaConfigDef, ResponseSchemaConfigSchema };","import { RangeConfigItem, SelectStringConfigItem } from \"@adaline/provider\";\n\nconst encodingFormat = SelectStringConfigItem({\n param: \"encoding_format\",\n title: \"Encoding format\",\n description:\n \"Select the encoding format for the word embedding.\",\n default: \"float\",\n choices: [\"float\", \"base64\"],\n});\n\nconst dimensions = RangeConfigItem({\n param: \"dimensions\",\n title: \"Dimensions\",\n description: \"Select the number of dimensions for the word embedding.\",\n min: 1,\n max: 1024, // TODO: check if this is the base max\n step: 1,\n default: 1024, // TODO: check if this is the base default\n});\n\nexport { \n encodingFormat, \n dimensions \n};\n","import { z } from \"zod\";\n\nimport {\n encodingFormat,\n dimensions,\n} from \"./common.config.word-embedding.openai\";\n\nconst BaseWordEmbeddingConfigSchema = () =>\n z.object({\n encodingFormat: encodingFormat.schema,\n dimensions: dimensions.schema, // TODO: only supported for text-embedding-3 and later models\n });\n\nconst BaseWordEmbeddingConfigDef = () =>\n ({\n encodingFormat: encodingFormat.def,\n dimensions: dimensions.def,\n }) as const;\n\nexport { \n BaseWordEmbeddingConfigDef, \n BaseWordEmbeddingConfigSchema \n};\n","import { BaseConfigDef, BaseConfigSchema, ResponseSchemaConfigDef, ResponseSchemaConfigSchema } from \"./language-model\";\nimport { BaseWordEmbeddingConfigDef, BaseWordEmbeddingConfigSchema } from \"./word-embedding\";\n\nconst OpenAIConfigs = {\n base: (maxOutputTokens: number, maxSequences: number) => ({\n def: BaseConfigDef(maxOutputTokens, maxSequences),\n schema: BaseConfigSchema(maxOutputTokens, maxSequences),\n }),\n responseSchema: (maxOutputTokens: number, maxSequences: number) => ({\n def: ResponseSchemaConfigDef(maxOutputTokens, maxSequences),\n schema: ResponseSchemaConfigSchema(maxOutputTokens, maxSequences),\n }),\n} as const;\n\nconst OpenAIWordEmbeddingConfigs = {\n base: () => ({\n def: BaseWordEmbeddingConfigDef(),\n schema: BaseWordEmbeddingConfigSchema(),\n }),\n} as const;\n\nexport { \n OpenAIConfigs, \n OpenAIWordEmbeddingConfigs \n};\n","import { z } from \"zod\";\n\nimport { AssistantRoleLiteral, SystemRoleLiteral, ToolRoleLiteral, UserRoleLiteral } from \"@adaline/types\";\n\nconst OpenAIChatModelRoles = z.enum([SystemRoleLiteral, UserRoleLiteral, AssistantRoleLiteral, ToolRoleLiteral]);\n\nconst OpenAIChatModelRolesMap = {\n system: SystemRoleLiteral,\n user: UserRoleLiteral,\n assistant: AssistantRoleLiteral,\n tool: ToolRoleLiteral,\n} as const;\n\nexport { OpenAIChatModelRoles, OpenAIChatModelRolesMap };\n","import { z } from \"zod\";\n\nimport { ChatModelSchemaType } from \"@adaline/provider\";\nimport { ImageModalityLiteral, TextModalityLiteral, ToolCallModalityLiteral, ToolResponseModalityLiteral } from \"@adaline/types\";\n\nconst OpenAIChatModelModalities: ChatModelSchemaType[\"modalities\"] = [\n TextModalityLiteral,\n ImageModalityLiteral,\n ToolCallModalityLiteral,\n ToolResponseModalityLiteral,\n];\n\nconst OpenAIChatModelModalitiesEnum = z.enum([\n TextModalityLiteral,\n ImageModalityLiteral,\n ToolCallModalityLiteral,\n ToolResponseModalityLiteral,\n]);\n\nexport { OpenAIChatModelModalitiesEnum, OpenAIChatModelModalities };\n","import { z } from \"zod\";\n\nconst OpenAIBaseLogProb = z.object({\n token: z.string(),\n logprob: z.number(),\n bytes: z.array(z.number()).nullable(),\n});\n\nconst OpenAILogProb = z.object({\n content: z.array(OpenAIBaseLogProb.extend({\n top_logprobs: z.array(OpenAIBaseLogProb),\n })).nullable(),\n refusal: z.array(OpenAIBaseLogProb.extend({\n top_logprobs: z.array(OpenAIBaseLogProb),\n })).nullable(),\n}).nullable();\n\nconst OpenAIToolCallsCompleteChatResponse = z.array(\n z.object({\n id: z.string().min(1),\n type: z.enum([\"function\"]),\n function: z.object({\n name: z.string(),\n arguments: z.string(),\n }),\n })\n);\n\nconst OpenAICompleteChatResponse = z.object({\n id: z.string(),\n object: z.literal(\"chat.completion\"),\n created: z.number(),\n model: z.string(),\n system_fingerprint: z.string(),\n choices: z.array(\n z.object({\n index: z.number(),\n message: z.object({\n role: z.string(),\n content: z.string().nullable().optional(),\n tool_calls: OpenAIToolCallsCompleteChatResponse.optional(),\n refusal: z.string().nullable().optional(),\n }),\n logprobs: OpenAILogProb,\n finish_reason: z.string(),\n })\n ),\n usage: z.object({\n prompt_tokens: z.number(),\n completion_tokens: z.number(),\n total_tokens: z.number(),\n }),\n});\ntype OpenAICompleteChatResponseType = z.infer<typeof OpenAICompleteChatResponse>;\n\nconst OpenAIToolCallsStreamChatResponse = z.array(\n z.object({\n index: z.number().int(),\n id: z.string().min(1).optional(),\n type: z.enum([\"function\"]).optional(),\n function: z\n .object({\n name: z.string().min(1).optional(),\n arguments: z.string().optional(),\n })\n .optional(),\n })\n);\n\nconst OpenAIStreamChatResponse = z.object({\n id: z.string(),\n object: z.string(),\n created: z.number(),\n model: z.string(),\n system_fingerprint: z.string().nullable(),\n choices: z.array(\n z.object({\n index: z.number(),\n delta: z\n .object({\n content: z.string().nullable().optional(),\n tool_calls: OpenAIToolCallsStreamChatResponse.optional(),\n refusal: z.string().nullable().optional(),\n })\n .or(z.object({})),\n logprobs: OpenAILogProb,\n finish_reason: z.string().nullable(),\n })\n ),\n usage: z.object({\n prompt_tokens: z.number(),\n completion_tokens: z.number(),\n total_tokens: z.number(),\n }).nullable().optional(),\n});\ntype OpenAIStreamChatResponseType = z.infer<typeof OpenAIStreamChatResponse>;\n\nexport {\n OpenAIStreamChatResponse,\n OpenAICompleteChatResponse,\n OpenAIToolCallsStreamChatResponse,\n OpenAIToolCallsCompleteChatResponse,\n type OpenAIStreamChatResponseType,\n type OpenAICompleteChatResponseType,\n}","import { z } from \"zod\";\n\nimport {\n HeadersType,\n ParamsType,\n UrlType,\n ChatModelV1,\n ChatModelSchemaType,\n SelectStringConfigItemDefType,\n ApiRequestError,\n ApiResponseError,\n InvalidConfigError,\n InvalidMessagesError,\n InvalidToolsError,\n urlWithoutTrailingSlash,\n} from \"@adaline/provider\";\n\nimport {\n SystemRoleLiteral,\n UserRoleLiteral,\n AssistantRoleLiteral,\n ToolRoleLiteral,\n TextModalityLiteral,\n ToolCallModalityLiteral,\n ToolResponseModalityLiteral,\n ImageModalityLiteral,\n Message,\n Tool,\n ConfigType,\n MessageType,\n PartialMessageType,\n ToolType,\n ToolResponseContentType,\n ChatUsageType,\n ChatLogProbsType,\n ChatResponseType,\n PartialChatResponseType,\n createTextMessage,\n createToolCallMessage,\n createPartialTextMessage,\n createPartialToolCallMessage,\n} from \"@adaline/types\";\n\nimport { \n OpenAICompleteChatResponse, \n OpenAIStreamChatResponse, \n OpenAICompleteChatResponseType,\n OpenAIStreamChatResponseType,\n} from \"./types/response.chat-model.openai\";\n\nconst BaseChatModelOptions = z.object({\n apiKey: z.string(),\n baseUrl: z.string().url(),\n completeChatUrl: z.string().url().optional(),\n streamChatUrl: z.string().url().optional(),\n organization: z.string().optional(),\n});\ntype BaseChatModelOptionsType = z.infer<typeof BaseChatModelOptions>;\n\nclass BaseChatModel implements ChatModelV1<ChatModelSchemaType> {\n readonly version = \"v1\" as const;\n modelSchema: ChatModelSchemaType;\n\n private readonly apiKey: string;\n private readonly baseUrl: string;\n private readonly streamChatUrl: string;\n private readonly completeChatUrl: string;\n private readonly organization: string | undefined;\n\n constructor(modelSchema: ChatModelSchemaType, options: BaseChatModelOptionsType) {\n this.modelSchema = modelSchema;\n this.apiKey = options.apiKey;\n this.baseUrl = urlWithoutTrailingSlash(options.baseUrl);\n this.streamChatUrl = urlWithoutTrailingSlash(options.streamChatUrl || `${this.baseUrl}/chat/completions`);\n this.completeChatUrl = urlWithoutTrailingSlash(options.completeChatUrl || `${this.baseUrl}/chat/completions`);\n this.organization = options.organization;\n };\n\n // TODO: add support for non-text modalities\n // TODO: add support for tools if tools are counted as tokens\n // TODO: should validate messages and tools before counting tokens?\n getTokenCount(messages: MessageType[]): number {\n return messages.reduce((acc, message) => {\n return acc + message.content.map((content) => (content.modality === \"text\" ? content.value : \"\")).join(\" \").length;\n }, 0);\n };\n\n getDefaultBaseUrl(): UrlType {\n return this.baseUrl;\n };\n\n getDefaultHeaders(): HeadersType {\n return {\n Authorization: `Bearer ${this.apiKey}`,\n \"Content-Type\": \"application/json\",\n ...(this.organization ? { \"OpenAI-Organization\": this.organization } : {}),\n };\n };\n\n getDefaultParams(): ParamsType {\n return {\n model: this.modelSchema.name,\n };\n };\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n transformConfig(config: ConfigType, messages?: MessageType[], tools?: ToolType[]): ParamsType {\n const _toolChoice = config.toolChoice;\n delete config.toolChoice; // can have a specific tool name that is not in the model schema, validated at transformation \n\n // TODO: why is safeParse coercing Record to modelSchema.config.schema type rather than returning error?\n const _parsedConfig = this.modelSchema.config.schema.safeParse(config);\n if (!_parsedConfig.success) {\n throw new InvalidConfigError({ info: this.modelSchema.name, error: _parsedConfig.error })\n }\n\n const parsedConfig = _parsedConfig.data as ConfigType;\n if (_toolChoice !== undefined) {\n parsedConfig.toolChoice = _toolChoice;\n }\n\n Object.keys(parsedConfig).forEach((key) => {\n if (!(key in this.modelSchema.config.def)) {\n throw new InvalidConfigError({ \n info: this.modelSchema.name, \n error: new Error(`Invalid config key: '${key}'`) \n });\n }\n });\n\n const transformedConfig = Object.keys(parsedConfig).reduce(\n (acc, key) => {\n const def = this.modelSchema.config.def[key];\n const paramKey = def.param;\n const paramValue = (parsedConfig as ConfigType)[key];\n\n if (paramKey === \"max_tokens\" && def.type === \"range\" && paramValue === 0) {\n acc[paramKey] = def.max;\n } else {\n acc[paramKey] = paramValue;\n }\n\n return acc;\n },\n {} as ParamsType\n );\n\n // TODO: check if logProbs is set to true for topLogProbs to be set\n\n if (\"tool_choice\" in transformedConfig && transformedConfig.tool_choice !== undefined) {\n const toolChoice = transformedConfig.tool_choice as string;\n if (!tools || (tools && tools.length === 0)) {\n throw new InvalidConfigError({ \n info: this.modelSchema.name, \n error: new Error(\"'tools' are required when 'toolChoice' is specified\") \n });\n } else if (tools && tools.length > 0) {\n const configToolChoice = this.modelSchema.config.def.toolChoice as SelectStringConfigItemDefType;\n if (!configToolChoice.choices.includes(toolChoice)) {\n if (tools.map((tool) => tool.definition.schema.name).includes(toolChoice)) {\n transformedConfig.tool_choice = { type: \"function\", function: { name: toolChoice } };\n } else {\n throw new InvalidConfigError({ \n info: this.modelSchema.name, \n error: new Error(`Invalid 'toolChoice': '${toolChoice}' is not part of provided tools or \n one of '${configToolChoice.choices.join(\", \")}'`) \n });\n }\n }\n }\n }\n\n if (\"response_format\" in transformedConfig && transformedConfig.response_format !== undefined) {\n const responseFormat = transformedConfig.response_format as string;\n if (responseFormat === \"json_schema\") {\n if (!(\"response_schema\" in transformedConfig)) {\n throw new InvalidConfigError({ \n info: this.modelSchema.name, \n error: new Error(\"'responseSchema' is required in config when 'responseFormat' is 'json_schema'\") \n });\n } else {\n transformedConfig.response_format = { \n type: \"json_schema\",\n json_schema: transformedConfig.response_schema,\n };\n delete transformedConfig.response_schema;\n }\n } else {\n transformedConfig.response_format = { type: responseFormat };\n }\n }\n\n return transformedConfig;\n };\n\n transformMessages(messages: MessageType[]): ParamsType {\n if (!messages || (messages && messages.length === 0)) {\n return { messages: [] };\n }\n\n const parsedMessages = messages.map((message) => {\n const parsedMessage = Message().safeParse(message);\n if (!parsedMessage.success) {\n throw new InvalidMessagesError({ info: this.modelSchema.name, error: parsedMessage.error });\n }\n return parsedMessage.data;\n });\n\n parsedMessages.forEach((message) => {\n message.content.forEach((content) => {\n if (!this.modelSchema.modalities.includes(content.modality)) {\n throw new InvalidMessagesError({ \n info: this.modelSchema.name, \n error: new Error(`model: '${this.modelSchema.name}' does not support modality: '${content.modality}'`) \n });\n }\n });\n });\n\n // TODO: add role not supported by model error\n\n const transformedMessages = parsedMessages.map((message) => {\n switch (message.role) {\n case SystemRoleLiteral: {\n const textContent: { type: \"text\", text: string }[] = [];\n message.content.forEach((content) => {\n if (content.modality === TextModalityLiteral) {\n textContent.push({ type: \"text\", text: content.value });\n } else {\n throw new InvalidMessagesError({ \n info: this.modelSchema.name, \n error: new Error(`role: '${SystemRoleLiteral}' cannot have content with modality '${content.modality}'`) \n });\n }\n });\n\n return {\n role: this.modelSchema.roles[message.role],\n content: textContent,\n };\n }\n\n case AssistantRoleLiteral: {\n const textContent: { type: \"text\", text: string }[] = [];\n const toolCalls: { id: string, type: \"function\", function: { name: string, arguments: string } }[] = [];\n message.content.forEach((content) => {\n if (content.modality === TextModalityLiteral) {\n textContent.push({ type: \"text\", text: content.value });\n } else if (content.modality === ToolCallModalityLiteral) {\n toolCalls.push({\n id: content.id,\n type: \"function\",\n function: { name: content.name, arguments: content.arguments }\n });\n } else {\n throw new InvalidMessagesError({ \n info: this.modelSchema.name, \n error: new Error(`role: '${AssistantRoleLiteral}' cannot have content with modality '${content.modality}'`) \n });\n }\n });\n \n return {\n role: this.modelSchema.roles[message.role],\n content: textContent,\n ...(toolCalls.length > 0 ? { tool_calls: toolCalls } : {}),\n };\n }\n\n case UserRoleLiteral: {\n const textContent: { type: \"text\", text: string }[] = [];\n const imageContent: { type: \"image_url\", image_url: { url: string, detail: string } }[] = [];\n message.content.forEach((content) => {\n if (content.modality === TextModalityLiteral) {\n textContent.push({ type: \"text\", text: content.value });\n } else if (content.modality === ImageModalityLiteral) {\n imageContent.push({ \n type: \"image_url\", \n image_url: { \n url: content.value.type === \"url\" ? content.value.url : content.value.base64, \n detail: content.detail,\n } \n });\n } else {\n throw new InvalidMessagesError({ \n info: this.modelSchema.name, \n error: new Error(`role: '${UserRoleLiteral}' cannot have content with modality '${content.modality}'`) \n });\n }\n });\n\n const combinedContent = [...textContent, ...imageContent];\n\n return {\n role: this.modelSchema.roles[message.role],\n content: combinedContent,\n }; \n }\n\n case ToolRoleLiteral: {\n if (message.content.length !== 1) {\n throw new InvalidMessagesError({ \n info: this.modelSchema.name, \n error: new Error(`role: '${ToolRoleLiteral}' must have exactly one content item`) \n });\n }\n\n if (message.content[0].modality !== ToolResponseModalityLiteral) {\n throw new InvalidMessagesError({ \n info: this.modelSchema.name, \n error: new Error(`role: '${ToolRoleLiteral}' must have content with modality '${ToolResponseModalityLiteral}'`) \n });\n }\n\n const toolResponse = message.content[0] as ToolResponseContentType;\n return {\n role: this.modelSchema.roles[message.role],\n tool_call_id: toolResponse.id,\n content: toolResponse.data,\n };\n }\n\n default: {\n throw new InvalidMessagesError({ \n info: this.modelSchema.name, \n error: new Error(`Invalid role: '${message.role}'`) \n });\n }\n }\n });\n\n return { messages: transformedMessages };\n };\n\n transformTools(tools: ToolType[]): ParamsType {\n if (!tools || (tools && tools.length === 0)) {\n return { tools: [] as ToolType[] };\n }\n\n const parsedTools = tools.map((tool) => {\n const parsedTool = Tool().safeParse(tool);\n if (!parsedTool.success) {\n throw new InvalidToolsError({ info: this.modelSchema.name, error: parsedTool.error });\n }\n return parsedTool.data;\n });\n\n const transformedTools = parsedTools.map((tool) => ({\n type: \"function\",\n function: tool.definition.schema,\n }));\n\n return { tools: transformedTools };\n };\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n getCompleteChatUrl(config?: ConfigType, messages?: MessageType[], tools?: ToolType[]): UrlType {\n return this.completeChatUrl;\n };\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n async getCompleteChatHeaders(config?: ConfigType, messages?: MessageType[], tools?: ToolType[]): Promise<HeadersType> {\n return new Promise((resolve) => {\n resolve(this.getDefaultHeaders());\n });\n };\n\n getCompleteChatData(config: ConfigType, messages: MessageType[], tools?: ToolType[]): ParamsType {\n const transformedConfig = this.transformConfig(config, messages, tools);\n const transformedMessages = this.transformMessages(messages);\n if (transformedMessages.messages && (transformedMessages.messages as MessageType[]).length === 0) {\n throw new InvalidMessagesError({ \n info: this.modelSchema.name, \n error: new Error(\"Messages are required\") \n });\n }\n\n const transformedTools = tools ? this.transformTools(tools) : {};\n\n return {\n ...this.getDefaultParams(),\n ...transformedConfig,\n ...transformedMessages,\n ...transformedTools,\n };\n };\n\n transformCompleteChatResponse(response: any): ChatResponseType {\n const safe = OpenAICompleteChatResponse.safeParse(response);\n if (safe.success) {\n if (safe.data.choices.length === 0) {\n throw new ApiResponseError({ \n info: this.modelSchema.name, \n error: new Error(\"No choices in response\") \n });\n }\n\n const parsedResponse: OpenAICompleteChatResponseType = safe.data;\n const messages: MessageType[] = [];\n const message = parsedResponse.choices[0].message;\n if (message.content) {\n messages.push(createTextMessage(AssistantRoleLiteral, message.content));\n } \n \n if (message.refusal) {\n messages.push(createTextMessage(AssistantRoleLiteral, message.refusal));\n } \n \n if (message.tool_calls) {\n message.tool_calls.forEach((toolCall, index) => {\n messages.push(createToolCallMessage(\n AssistantRoleLiteral, \n index, \n toolCall.id, \n toolCall.function.name, \n toolCall.function.arguments\n ));\n });\n }\n\n const usage: ChatUsageType = {\n promptTokens: parsedResponse.usage.prompt_tokens,\n completionTokens: parsedResponse.usage.completion_tokens,\n totalTokens: parsedResponse.usage.total_tokens,\n };\n\n const logProbs: ChatLogProbsType = [];\n const _logProbs = parsedResponse.choices[0].logprobs;\n if (_logProbs) {\n if (_logProbs.content) {\n logProbs.push(..._logProbs.content.map((logProb) => ({\n token: logProb.token,\n logProb: logProb.logprob,\n bytes: logProb.bytes,\n topLogProbs: logProb.top_logprobs.map((topLogProb) => ({\n token: topLogProb.token,\n logProb: topLogProb.logprob,\n bytes: topLogProb.bytes,\n })),\n })));\n }\n if (_logProbs.refusal) {\n // TODO: duplicate logic, can be a helper function\n // TODO: should content and refusal be merged?\n logProbs.push(..._logProbs.refusal.map((logProb) => ({\n token: logProb.token,\n logProb: logProb.logprob,\n bytes: logProb.bytes,\n topLogProbs: logProb.top_logprobs.map((topLogProb) => ({\n token: topLogProb.token,\n logProb: topLogProb.logprob,\n bytes: topLogProb.bytes,\n })),\n })));\n }\n }\n\n return { \n messages: messages,\n usage: usage,\n logProbs: logProbs,\n };\n } \n\n throw new ApiRequestError({ info: this.modelSchema.name, error: safe.error });\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n getStreamChatUrl(config?: ConfigType, messages?: MessageType[], tools?: ToolType[]): UrlType {\n return this.streamChatUrl;\n };\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n async getStreamChatHeaders(config?: ConfigType, messages?: MessageType[], tools?: ToolType[]): Promise<HeadersType> {\n return new Promise((resolve) => {\n resolve(this.getDefaultHeaders());\n });\n };\n\n getStreamChatData(config: ConfigType, messages: MessageType[], tools?: ToolType[]): ParamsType {\n const transformedConfig = this.transformConfig(config, messages, tools);\n const transformedMessages = this.transformMessages(messages);\n if (transformedMessages.messages && (transformedMessages.messages as MessageType[]).length === 0) {\n throw new InvalidMessagesError({ \n info: this.modelSchema.name, \n error: new Error(\"Messages are required\") \n });\n }\n\n const transformedTools = tools ? this.transformTools(tools) : {};\n\n return {\n stream: true,\n stream_options: { include_usage: true },\n ...this.getDefaultParams(),\n ...transformedConfig,\n ...transformedMessages,\n ...transformedTools,\n };\n };\n\n async *transformStreamChatResponseChunk(\n chunk: string, \n buffer: string\n ): AsyncGenerator<{ partialResponse: PartialChatResponseType; buffer: string }> {\n // merge last buffer message and split into lines\n const lines = (buffer + chunk).split(\"\\n\").filter((line) => line.trim() !== \"\");\n for (const line of lines) {\n if (line === \"data: [DONE]\") {\n // end of stream\n return;\n } else if (line.startsWith(\"data: {\") && line.endsWith(\"}\")) {\n // line contains message\n let structuredLine: any;\n try {\n // remove the 'data :' prefix from string JSON\n structuredLine = JSON.parse(line.substring(\"data: \".length));\n } catch (error) {\n // malformed JSON error\n throw new ApiResponseError({ \n info: this.modelSchema.name, \n error: new Error(`malformed JSON received in stream : ${line}`) \n });\n }\n\n const safe = OpenAIStreamChatResponse.safeParse(structuredLine);\n if (safe.success) {\n const partialResponse: PartialChatResponseType = { partialMessages: [] };\n const parsedResponse: OpenAIStreamChatResponseType = safe.data;\n if (parsedResponse.choices.length > 0) {\n const message = parsedResponse.choices[0].delta;\n if (message !== undefined && Object.keys(message).length !== 0) {\n if (\"content\" in message && message.content !== null) {\n partialResponse.partialMessages.push(createPartialTextMessage(AssistantRoleLiteral, message.content as string));\n } else if (\"refusal\" in message && message.refusal !== null) {\n partialResponse.partialMessages.push(createPartialTextMessage(AssistantRoleLiteral, message.refusal as string));\n } else if (\"tool_calls\" in message && message.tool_calls !== undefined) {\n const toolCall = message.tool_calls.at(0)!;\n partialResponse.partialMessages.push(createPartialToolCallMessage(\n AssistantRoleLiteral,\n toolCall.index,\n toolCall.id,\n toolCall.function?.name,\n toolCall.function?.arguments\n ));\n }\n }\n }\n\n if (parsedResponse.usage) {\n partialResponse.usage = {\n promptTokens: parsedResponse.usage.prompt_tokens,\n completionTokens: parsedResponse.usage.completion_tokens,\n totalTokens: parsedResponse.usage.total_tokens,\n };\n }\n\n yield { partialResponse: partialResponse, buffer: buffer };\n } else {\n throw new ApiResponseError({ info: this.modelSchema.name, error: safe.error });\n }\n } else {\n // line starts with unknown event\n // TODO: should throw an error or ignore ?\n }\n }\n };\n}\n\nexport { \n BaseChatModel, \n BaseChatModelOptions, \n type BaseChatModelOptionsType \n};\n","import { z } from \"zod\";\n\nimport { ChatModelSchema } from \"@adaline/provider\";\n\nimport { OpenAIConfigs } from \"../../configs\";\nimport { BaseChatModel, BaseChatModelOptions } from \"./base-language-model.openai\";\nimport { OpenAIChatModelRoles, OpenAIChatModelRolesMap, OpenAIChatModelModalities, OpenAIChatModelModalitiesEnum } from \"./types\";\n\nconst GPT4oLiteral = \"gpt-4o\";\n// TODO: recheck description\nconst GPT4oDescription = \"GPT-4o is a large-scale multimodal model trained by OpenAI. \\\nIt is the successor to GPT-4 and is designed to be more powerful and capable than its predecessor.\";\n\nconst GPT4oSchema = ChatModelSchema(OpenAIChatModelRoles, OpenAIChatModelModalitiesEnum).parse({\n name: GPT4oLiteral,\n description: GPT4oDescription,\n maxInputTokens: 128000,\n maxOutputTokens: 128000,\n roles: OpenAIChatModelRolesMap,\n modalities: OpenAIChatModelModalities,\n config: {\n def: OpenAIConfigs.base(128000, 4).def,\n schema: OpenAIConfigs.base(128000, 4).schema,\n },\n});\n\nconst GPT4oOptions = BaseChatModelOptions;\ntype GPT4oOptionsType = z.infer<typeof GPT4oOptions>;\n\nclass GPT4o extends BaseChatModel {\n constructor(options: GPT4oOptionsType) {\n super(GPT4oSchema, options);\n }\n}\n\nexport { GPT4o, GPT4oOptions, GPT4oSchema, type GPT4oOptionsType };\n","import { z } from \"zod\";\n\nimport { EmbeddingModelSchemaType } from \"@adaline/provider\";\nimport { EmbeddingTextModalityLiteral, EmbeddingTokenModalityLiteral } from \"@adaline/types\";\n\nconst OpenAIEmbeddingModelModalities: EmbeddingModelSchemaType[\"modalities\"] = [\n EmbeddingTextModalityLiteral,\n EmbeddingTokenModalityLiteral,\n];\n\nconst OpenAIEmbeddingModelModalitiesEnum = z.enum([\n EmbeddingTextModalityLiteral,\n EmbeddingTokenModalityLiteral,\n]);\n\nexport { OpenAIEmbeddingModelModalitiesEnum, OpenAIEmbeddingModelModalities };\n","import { z } from \"zod\";\n\nconst OpenAIGetEmbeddingsResponse = z.object({\n object: z.literal(\"list\"),\n model: z.string(),\n data: z.array(\n z.object({\n index: z.number(),\n object: z.literal(\"embedding\"),\n embedding: z.array(z.number()).or(z.string().base64()),\n })\n ),\n usage: z.object({\n prompt_tokens: z.number().nonnegative(),\n total_tokens: z.number().nonnegative(),\n }),\n});\n\nexport { OpenAIGetEmbeddingsResponse };","import { z } from \"zod\";\n\nimport { \n ConfigType, \n FloatEmbeddingType,\n Base64EmbeddingType,\n EmbeddingRequests,\n EmbeddingsUsageType,\n EmbeddingRequestsType,\n EmbeddingResponseType,\n FloatEmbeddingLiteral,\n Base64EmbeddingLiteral,\n} from \"@adaline/types\";\n\nimport { \n EmbeddingModelV1,\n EmbeddingModelSchemaType,\n HeadersType, \n ParamsType, \n UrlType, \n urlWithoutTrailingSlash,\n ApiRequestError,\n InvalidConfigError,\n InvalidEmbeddingRequestsError, \n} from \"@adaline/provider\";\n\nimport { OpenAIGetEmbeddingsResponse } from \"./types\";\n\nconst BaseEmbeddingModelOptions = z.object({\n apiKey: z.string(),\n baseUrl: z.string().url(),\n getEmbeddingsUrl: z.string().url().optional(),\n});\ntype BaseEmbeddingModelOptionsType = z.infer<typeof BaseEmbeddingModelOptions>;\n\nclass BaseEmbeddingModel implements EmbeddingModelV1<EmbeddingModelSchemaType> {\n readonly version = \"v1\" as const;\n modelSchema: EmbeddingModelSchemaType;\n\n private readonly apiKey: string;\n private readonly baseUrl: string;\n private readonly getEmbeddingsUrl: string;\n\n constructor(modelSchema: EmbeddingModelSchemaType, options: BaseEmbeddingModelOptionsType) {\n this.modelSchema = modelSchema;\n this.apiKey = options.apiKey;\n this.baseUrl = urlWithoutTrailingSlash(options.baseUrl);\n this.getEmbeddingsUrl = urlWithoutTrailingSlash(options.getEmbeddingsUrl || `${this.baseUrl}/embeddings`);\n };\n\n getDefaultBaseUrl = (): UrlType => {\n return this.baseUrl;\n };\n\n getDefaultHeaders = (): HeadersType => {\n return {\n Authorization: `Bearer ${this.apiKey}`,\n \"Content-Type\": \"application/json\",\n };\n };\n\n getDefaultParams = (): ParamsType => {\n return {\n model: this.modelSchema.name,\n };\n };\n\n // TODO: should validate requests before counting tokens?\n getTokenCount = (requests: EmbeddingRequestsType): number => {\n return requests.requests.reduce((acc, request) => acc + request.length, 0);\n };\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n transformConfig = (config: ConfigType, requests?: EmbeddingRequestsType): ParamsType => {\n const _parsedConfig = this.modelSchema.config.schema.safeParse(config);\n if (!_parsedConfig.success) {\n throw new InvalidConfigError({ info: this.modelSchema.name, error: _parsedConfig.error })\n }\n\n const parsedConfig = _parsedConfig.data as ConfigType;\n // TODO: check if this is still needed if safeParse already checks for that?\n Object.keys(parsedConfig as ConfigType).forEach((key) => {\n if (!this.modelSchema.config.def[key]) {\n throw new InvalidConfigError({ \n info: this.modelSchema.name, \n error: new Error(`Invalid config key: '${key}'`) \n });\n }\n });\n\n const transformedConfig = Object.keys(parsedConfig).reduce(\n (acc, key) => {\n const def = this.modelSchema.config.def[key];\n const paramKey = def.param;\n const paramValue = parsedConfig[key];\n acc[paramKey] = paramValue;\n return acc;\n },\n {} as ParamsType\n );\n\n return transformedConfig;\n };\n\n transformEmbeddingRequests = (requests: EmbeddingRequestsType): ParamsType => {\n const _parsedRequests = EmbeddingRequests().safeParse(requests);\n if (!_parsedRequests.success) {\n throw new InvalidEmbeddingRequestsError({ info: this.modelSchema.name, error: _parsedRequests.error })\n }\n\n // Note from OpenAI API Reference: \n // The input must not exceed the max input tokens for the model (8192 tokens for text-embedding-ada-002), \n // cannot be an empty string, and any array must be 2048 dimensions or less.\n // TODO: add max tokens check in requests based on model schema when token calculation is accurate\n\n const parsedRequests = _parsedRequests.data as EmbeddingRequestsType;\n return {\n input: parsedRequests.requests\n }\n };\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n getGetEmbeddingsUrl = (config?: ConfigType, requests?: EmbeddingRequestsType): UrlType => {\n return this.getEmbeddingsUrl;\n };\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n getGetEmbeddingsHeaders = (config?: ConfigType, requests?: EmbeddingRequestsType): HeadersType => {\n return this.getDefaultHeaders();\n };\n\n getGetEmbeddingsData = (config: ConfigType, requests: EmbeddingRequestsType): ParamsType => {\n return {\n ...this.getDefaultParams(),\n ...this.transformConfig(config, requests),\n ...this.transformEmbeddingRequests(requests),\n };\n };\n\n transformGetEmbeddingsResponse = (response: any): EmbeddingResponseType => {\n let encodingFormat: typeof Base64EmbeddingLiteral | typeof FloatEmbeddingLiteral;\n const safe = OpenAIGetEmbeddingsResponse.safeParse(response);\n if (safe.success) {\n const parsedResponse = safe.data;\n encodingFormat = typeof parsedResponse.data[0].embedding === \"string\" ? Base64EmbeddingLiteral : FloatEmbeddingLiteral;\n const embeddings = parsedResponse.data.map((item) => {\n if (typeof item.embedding === \"string\") {\n return {\n index: item.index,\n embedding: item.embedding,\n } as Base64EmbeddingType;\n } else {\n return {\n index: item.index,\n embedding: item.embedding,\n } as FloatEmbeddingType;\n }\n });\n\n return {\n encodingFormat:encodingFormat,\n embeddings: embeddings,\n usage: {\n totalTokens: parsedResponse.usage.total_tokens,\n }\n } as EmbeddingResponseType;\n }\n\n throw new ApiRequestError({ info: this.modelSchema.name, error: safe.error });\n };\n}\n\nexport { \n BaseEmbeddingModel, \n BaseEmbeddingModelOptions,\n type BaseEmbeddingModelOptionsType \n};","import { z } from \"zod\";\n\nimport { EmbeddingModelSchema } from \"@adaline/provider\";\n\nimport { OpenAIWordEmbeddingConfigs } from \"../../configs\";\nimport { BaseEmbeddingModel, BaseEmbeddingModelOptions } from \"./base-embedding-model.openai\";\nimport { OpenAIEmbeddingModelModalities, OpenAIEmbeddingModelModalitiesEnum } from \"./types\";\n\nconst TextEmbeddingAda002Literal = \"text-embedding-ada-002\";\nconst TextEmbeddingAda002Description = \"some description\"; // TODO: add proper description\n\nconst TextEmbeddingAda002Schema = EmbeddingModelSchema(OpenAIEmbeddingModelModalitiesEnum).parse({\n name: TextEmbeddingAda002Literal,\n description: TextEmbeddingAda002Description,\n modalities: OpenAIEmbeddingModelModalities,\n maxInputTokens: 8192,\n maxOutputTokens: 8192,\n config: {\n def: OpenAIWordEmbeddingConfigs.base().def,\n schema: OpenAIWordEmbeddingConfigs.base().schema,\n },\n});\n\nconst TextEmbeddingAda002Options = BaseEmbeddingModelOptions;\ntype TextEmbeddingAda002OptionsType = z.infer<typeof TextEmbeddingAda002Options>;\n\nclass TextEmbeddingAda002 extends BaseEmbeddingModel {\n constructor(options: TextEmbeddingAda002OptionsType) {\n super(TextEmbeddingAda002Schema, options);\n }\n}\n\nexport { TextEmbeddingAda002, TextEmbeddingAda002Options, TextEmbeddingAda002Schema, type TextEmbeddingAda002OptionsType };\n","import { z } from \"zod\";\n\nimport { ChatModelV1, ChatModelSchemaType, EmbeddingModelV1, EmbeddingModelSchemaType, ProviderV1 } from \"@adaline/provider\";\n\nimport { GPT4o, GPT4oOptions, GPT4oSchema } from \"../models/chat-models/gpt-4o.openai\";\nimport { TextEmbeddingAda002, TextEmbeddingAda002Options, TextEmbeddingAda002Schema } from \"../models/embedding-models/text-embedding-ada-002.openai\";\n\nconst ProviderLiteral = \"openai\";\n\nclass OpenAI<O extends Record<string, any> = Record<string, any>> implements ProviderV1<O> {\n readonly version = \"v1\" as const;\n readonly name = ProviderLiteral;\n private readonly baseUrl: string = \"https://api.openai.com/v1\";\n\n private readonly chatModelFactories: \n Record<string, { \n model: { new (options: any): ChatModelV1 },\n modelOptions: z.ZodType<any>,\n modelSchema: ChatModelSchemaType\n }> = {\n \"gpt-4o\": { model: GPT4o, modelOptions: GPT4oOptions, modelSchema: GPT4oSchema },\n };\n\n private readonly embeddingModelFactories: \n Record<string, { \n model: { new (options: any): EmbeddingModelV1 },\n modelOptions: z.ZodType<any>,\n modelSchema: EmbeddingModelSchemaType\n }> = {\n \"text-embedding-ada-002\": { model: TextEmbeddingAda002, modelOptions: TextEmbeddingAda002Options, modelSchema: TextEmbeddingAda002Schema },\n };\n\n chatModelLiterals(): string[] {\n return Object.keys(this.chatModelFactories);\n }\n\n chatModel(name: string, options: O): ChatModelV1 {\n if (!(name in this.chatModelFactories)) {\n throw new Error(`Model ${name} not found`); // TODO: move to custom error type\n }\n\n const model = this.chatModelFactories[name].model;\n const modelOptions = {\n ...options,\n baseUrl: options.baseUrl ?? this.baseUrl\n };\n const parsedOptions = this.chatModelFactories[name].modelOptions.parse(modelOptions);\n return new model(parsedOptions);\n }\n\n chatModelSchema(name: string): ChatModelSchemaType {\n if (!(name in this.chatModelFactories)) {\n throw new Error(`Model ${name} not found`); // TODO: move to custom error type\n }\n return this.chatModelFactories[name].modelSchema;\n }\n\n chatModelSchemas(): Record<string, ChatModelSchemaType> {\n return Object.keys(this.chatModelFactories).reduce((acc, key) => {\n acc[key] = this.chatModelFactories[key].modelSchema;\n return acc;\n }, {} as Record<string, ChatModelSchemaType>);\n }\n\n embeddingModelLiterals(): string[] {\n return Object.keys(this.embeddingModelFactories);\n }\n\n embeddingModel(name: string, options: O): EmbeddingModelV1 {\n if (!(name in this.embeddingModelFactories)) {\n throw new Error(`Model ${name} not found`); // TODO: move to custom error type\n }\n\n const model = this.embeddingModelFactories[name].model;\n const modelOptions = { \n ...options,\n baseUrl: options.baseUrl ?? this.baseUrl\n };\n const parsedOptions = this.embeddingModelFactories[name].modelOptions.parse(modelOptions);\n return new model(parsedOptions);\n }\n\n embeddingModelSchema(name: string): EmbeddingModelSchemaType {\n if (!(name in this.embeddingModelFactories)) {\n throw new Error(`Model ${name} not found`); // TODO: move to custom error type\n }\n return this.embeddingModelFactories[name].modelSchema;\n }\n\n embeddingModelSchemas(): Record<string, EmbeddingModelSchemaType> {\n return Object.keys(this.embeddingModelFactories).reduce((acc, key) => {\n acc[key] = this.embeddingModelFactories[key].modelSchema;\n return acc;\n }, {} as Record<string, EmbeddingModelSchemaType>);\n }\n}\n\nexport { OpenAI, ProviderLiteral };\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adaline/openai",
3
- "version": "0.5.0",
3
+ "version": "0.6.0",
4
4
  "license": "MIT",
5
5
  "sideEffects": false,
6
6
  "private": false,
@@ -47,8 +47,8 @@
47
47
  ],
48
48
  "dependencies": {
49
49
  "zod": "^3.23.8",
50
- "@adaline/types": "0.5.0",
51
- "@adaline/provider": "0.6.0"
50
+ "@adaline/types": "0.6.0",
51
+ "@adaline/provider": "0.7.0"
52
52
  },
53
53
  "devDependencies": {
54
54
  "tsup": "^8.2.2",