@langchain/openai 1.6.1 → 1.6.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +18 -0
- package/dist/azure/chat_models/common.d.cts +1 -2
- package/dist/azure/chat_models/common.d.cts.map +1 -1
- package/dist/azure/chat_models/common.d.ts +1 -2
- package/dist/azure/chat_models/common.d.ts.map +1 -1
- package/dist/azure/chat_models/completions.d.cts +1 -2
- package/dist/azure/chat_models/completions.d.cts.map +1 -1
- package/dist/azure/chat_models/completions.d.ts +1 -2
- package/dist/azure/chat_models/completions.d.ts.map +1 -1
- package/dist/azure/chat_models/index.cjs +5 -0
- package/dist/azure/chat_models/index.cjs.map +1 -1
- package/dist/azure/chat_models/index.d.cts +3 -2
- package/dist/azure/chat_models/index.d.cts.map +1 -1
- package/dist/azure/chat_models/index.d.ts +3 -2
- package/dist/azure/chat_models/index.d.ts.map +1 -1
- package/dist/azure/chat_models/index.js +5 -0
- package/dist/azure/chat_models/index.js.map +1 -1
- package/dist/azure/chat_models/responses.cjs +5 -0
- package/dist/azure/chat_models/responses.cjs.map +1 -1
- package/dist/azure/chat_models/responses.d.cts +3 -2
- package/dist/azure/chat_models/responses.d.cts.map +1 -1
- package/dist/azure/chat_models/responses.d.ts +3 -2
- package/dist/azure/chat_models/responses.d.ts.map +1 -1
- package/dist/azure/chat_models/responses.js +5 -0
- package/dist/azure/chat_models/responses.js.map +1 -1
- package/dist/azure/embeddings.d.cts +1 -2
- package/dist/azure/embeddings.d.cts.map +1 -1
- package/dist/azure/embeddings.d.ts +1 -2
- package/dist/azure/embeddings.d.ts.map +1 -1
- package/dist/azure/llms.d.cts +1 -2
- package/dist/azure/llms.d.cts.map +1 -1
- package/dist/azure/llms.d.ts.map +1 -1
- package/dist/chat_models/base.cjs +1 -1
- package/dist/chat_models/base.d.cts +4 -4
- package/dist/chat_models/base.d.cts.map +1 -1
- package/dist/chat_models/base.d.ts +4 -4
- package/dist/chat_models/base.d.ts.map +1 -1
- package/dist/chat_models/base.js +1 -1
- package/dist/chat_models/completions.cjs +2 -2
- package/dist/chat_models/completions.cjs.map +1 -1
- package/dist/chat_models/completions.d.cts +2 -3
- package/dist/chat_models/completions.d.cts.map +1 -1
- package/dist/chat_models/completions.d.ts +2 -3
- package/dist/chat_models/completions.d.ts.map +1 -1
- package/dist/chat_models/completions.js +2 -2
- package/dist/chat_models/completions.js.map +1 -1
- package/dist/chat_models/index.cjs +2 -2
- package/dist/chat_models/index.cjs.map +1 -1
- package/dist/chat_models/index.d.cts +4 -4
- package/dist/chat_models/index.d.cts.map +1 -1
- package/dist/chat_models/index.d.ts +4 -4
- package/dist/chat_models/index.d.ts.map +1 -1
- package/dist/chat_models/index.js +2 -2
- package/dist/chat_models/index.js.map +1 -1
- package/dist/chat_models/profiles.cjs +350 -193
- package/dist/chat_models/profiles.cjs.map +1 -1
- package/dist/chat_models/profiles.js +350 -193
- package/dist/chat_models/profiles.js.map +1 -1
- package/dist/chat_models/responses.cjs +2 -2
- package/dist/chat_models/responses.cjs.map +1 -1
- package/dist/chat_models/responses.d.cts +3 -4
- package/dist/chat_models/responses.d.cts.map +1 -1
- package/dist/chat_models/responses.d.ts +3 -4
- package/dist/chat_models/responses.d.ts.map +1 -1
- package/dist/chat_models/responses.js +2 -2
- package/dist/chat_models/responses.js.map +1 -1
- package/dist/converters/completions.cjs +4 -1
- package/dist/converters/completions.cjs.map +1 -1
- package/dist/converters/completions.d.cts +6 -7
- package/dist/converters/completions.d.cts.map +1 -1
- package/dist/converters/completions.d.ts +6 -7
- package/dist/converters/completions.d.ts.map +1 -1
- package/dist/converters/completions.js +5 -2
- package/dist/converters/completions.js.map +1 -1
- package/dist/converters/responses.cjs +41 -11
- package/dist/converters/responses.cjs.map +1 -1
- package/dist/converters/responses.d.cts +11 -12
- package/dist/converters/responses.d.cts.map +1 -1
- package/dist/converters/responses.d.ts +11 -12
- package/dist/converters/responses.d.ts.map +1 -1
- package/dist/converters/responses.js +42 -12
- package/dist/converters/responses.js.map +1 -1
- package/dist/embeddings.d.cts +3 -4
- package/dist/embeddings.d.cts.map +1 -1
- package/dist/embeddings.d.ts +3 -4
- package/dist/embeddings.d.ts.map +1 -1
- package/dist/llms.cjs +1 -1
- package/dist/llms.d.cts.map +1 -1
- package/dist/llms.d.ts.map +1 -1
- package/dist/llms.js +1 -1
- package/dist/tools/applyPatch.d.cts +8 -9
- package/dist/tools/applyPatch.d.cts.map +1 -1
- package/dist/tools/applyPatch.d.ts +8 -9
- package/dist/tools/applyPatch.d.ts.map +1 -1
- package/dist/tools/codeInterpreter.d.cts +5 -6
- package/dist/tools/codeInterpreter.d.cts.map +1 -1
- package/dist/tools/codeInterpreter.d.ts +5 -6
- package/dist/tools/codeInterpreter.d.ts.map +1 -1
- package/dist/tools/computerUse.d.cts +17 -18
- package/dist/tools/computerUse.d.cts.map +1 -1
- package/dist/tools/computerUse.d.ts +17 -18
- package/dist/tools/computerUse.d.ts.map +1 -1
- package/dist/tools/custom.d.cts +2 -3
- package/dist/tools/custom.d.cts.map +1 -1
- package/dist/tools/custom.d.ts +2 -3
- package/dist/tools/custom.d.ts.map +1 -1
- package/dist/tools/dalle.d.cts +3 -4
- package/dist/tools/dalle.d.cts.map +1 -1
- package/dist/tools/dalle.d.ts +3 -4
- package/dist/tools/dalle.d.ts.map +1 -1
- package/dist/tools/fileSearch.d.cts +9 -10
- package/dist/tools/fileSearch.d.cts.map +1 -1
- package/dist/tools/fileSearch.d.ts +9 -10
- package/dist/tools/fileSearch.d.ts.map +1 -1
- package/dist/tools/imageGeneration.d.cts +4 -5
- package/dist/tools/imageGeneration.d.cts.map +1 -1
- package/dist/tools/imageGeneration.d.ts +4 -5
- package/dist/tools/imageGeneration.d.ts.map +1 -1
- package/dist/tools/index.d.cts +2 -2
- package/dist/tools/index.d.cts.map +1 -1
- package/dist/tools/index.d.ts +2 -2
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/localShell.d.cts +5 -6
- package/dist/tools/localShell.d.cts.map +1 -1
- package/dist/tools/localShell.d.ts +5 -6
- package/dist/tools/localShell.d.ts.map +1 -1
- package/dist/tools/mcp.d.cts +8 -9
- package/dist/tools/mcp.d.cts.map +1 -1
- package/dist/tools/mcp.d.ts +8 -9
- package/dist/tools/mcp.d.ts.map +1 -1
- package/dist/tools/shell.d.cts +8 -9
- package/dist/tools/shell.d.cts.map +1 -1
- package/dist/tools/shell.d.ts +8 -9
- package/dist/tools/shell.d.ts.map +1 -1
- package/dist/tools/toolSearch.d.cts +3 -4
- package/dist/tools/toolSearch.d.cts.map +1 -1
- package/dist/tools/toolSearch.d.ts +3 -4
- package/dist/tools/toolSearch.d.ts.map +1 -1
- package/dist/tools/webSearch.d.cts +5 -6
- package/dist/tools/webSearch.d.cts.map +1 -1
- package/dist/tools/webSearch.d.ts +5 -6
- package/dist/tools/webSearch.d.ts.map +1 -1
- package/dist/types.d.cts +16 -16
- package/dist/types.d.cts.map +1 -1
- package/dist/types.d.ts +16 -16
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/azure.d.cts +7 -8
- package/dist/utils/azure.d.cts.map +1 -1
- package/dist/utils/azure.d.ts +7 -8
- package/dist/utils/azure.d.ts.map +1 -1
- package/dist/utils/client.d.cts +1 -2
- package/dist/utils/client.d.cts.map +1 -1
- package/dist/utils/client.d.ts +1 -2
- package/dist/utils/client.d.ts.map +1 -1
- package/dist/utils/misc.cjs +26 -0
- package/dist/utils/misc.cjs.map +1 -1
- package/dist/utils/misc.d.cts +1 -2
- package/dist/utils/misc.d.cts.map +1 -1
- package/dist/utils/misc.d.ts +1 -2
- package/dist/utils/misc.d.ts.map +1 -1
- package/dist/utils/misc.js +26 -2
- package/dist/utils/misc.js.map +1 -1
- package/dist/utils/profile.cjs +27 -0
- package/dist/utils/profile.cjs.map +1 -0
- package/dist/utils/profile.js +27 -0
- package/dist/utils/profile.js.map +1 -0
- package/dist/utils/prompts.d.cts +1 -2
- package/dist/utils/prompts.d.cts.map +1 -1
- package/dist/utils/prompts.d.ts +1 -2
- package/dist/utils/prompts.d.ts.map +1 -1
- package/dist/utils/responses_stream_events.d.cts +2 -3
- package/dist/utils/responses_stream_events.d.cts.map +1 -1
- package/dist/utils/responses_stream_events.d.ts +2 -3
- package/dist/utils/responses_stream_events.d.ts.map +1 -1
- package/dist/utils/tools.d.cts +4 -5
- package/dist/utils/tools.d.cts.map +1 -1
- package/dist/utils/tools.d.ts +4 -5
- package/dist/utils/tools.d.ts.map +1 -1
- package/package.json +8 -8
- package/dist/utils/file_mime_types.cjs +0 -15
- package/dist/utils/file_mime_types.cjs.map +0 -1
- package/dist/utils/file_mime_types.js +0 -15
- package/dist/utils/file_mime_types.js.map +0 -1
package/dist/utils/misc.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"misc.js","names":["iife"],"sources":["../../src/utils/misc.ts"],"sourcesContent":["import type { OpenAI as OpenAIClient } from \"openai\";\nimport type { OpenAICacheRetentionParam } from \"../types.js\";\nimport {\n BaseMessage,\n ChatMessage,\n ContentBlock,\n Data,\n} from \"@langchain/core/messages\";\n\nexport const iife = <T>(fn: () => T) => fn();\n\nexport function normalizePromptCacheRetention(\n retention: OpenAICacheRetentionParam | undefined\n): Exclude<OpenAICacheRetentionParam, \"in-memory\"> | undefined {\n return retention === \"in-memory\" ? \"in_memory\" : retention;\n}\n\nexport function applyPromptCacheBreakpoint<T extends object>(\n source: Record<string, unknown>,\n target: T\n): T {\n if (\"prompt_cache_breakpoint\" in source) {\n return {\n ...target,\n prompt_cache_breakpoint: source.prompt_cache_breakpoint,\n };\n }\n if (hasExtrasPromptCacheBreakpoint(source)) {\n return {\n ...target,\n prompt_cache_breakpoint: source.extras.prompt_cache_breakpoint,\n };\n }\n return target;\n}\n\nexport function hasExtrasPromptCacheBreakpoint(\n block: Record<string, unknown>\n): block is { extras: { prompt_cache_breakpoint: unknown } } {\n const { extras } = block;\n return (\n typeof extras === \"object\" &&\n extras !== null &&\n \"prompt_cache_breakpoint\" in extras\n );\n}\n\nexport function liftExtrasPromptCacheBreakpoint<T extends object>(block: T): T {\n const source = block as Record<string, unknown>;\n if (!hasExtrasPromptCacheBreakpoint(source)) {\n return block;\n }\n const { extras: _extras, ...rest } = source;\n return applyPromptCacheBreakpoint(source, rest) as T;\n}\n\nexport function isReasoningModel(model?: string) {\n if (!model) return false;\n if (/^o\\d/.test(model ?? \"\")) return true;\n if (model.startsWith(\"gpt-5\") && !model.startsWith(\"gpt-5-chat\")) return true;\n if (model.startsWith(\"gpt-6\") && !model.startsWith(\"gpt-6-chat\")) return true;\n return false;\n}\n\nexport function extractGenericMessageCustomRole(message: ChatMessage) {\n if (\n message.role !== \"system\" &&\n message.role !== \"developer\" &&\n message.role !== \"assistant\" &&\n message.role !== \"user\" &&\n message.role !== \"function\" &&\n message.role !== \"tool\"\n ) {\n console.warn(`Unknown message role: ${message.role}`);\n }\n\n return message.role as OpenAIClient.ChatCompletionRole;\n}\n\nexport function getFilenameFromMetadata(\n block:\n | ContentBlock.Multimodal.File\n | ContentBlock.Multimodal.Video\n | Data.StandardFileBlock\n): string | undefined {\n return (block.metadata?.filename ??\n block.metadata?.name ??\n block.metadata?.title) as string;\n}\n\nexport const LC_AUTOGENERATED_FILENAME = \"LC_AUTOGENERATED\";\n\nexport function getRequiredFilenameFromMetadata(\n block:\n | ContentBlock.Multimodal.File\n | ContentBlock.Multimodal.Video\n | Data.StandardFileBlock\n): string {\n const filename = (block.metadata?.filename ??\n block.metadata?.name ??\n block.metadata?.title) as string;\n\n if (!filename) {\n console.warn(\n \"OpenAI may require a filename for file uploads. Specify a filename \" +\n \"in the content block metadata, e.g.: { type: 'file', mimeType: \" +\n \"'...', data: '...', metadata: { filename: 'my-file.pdf' } }. \" +\n \"Using placeholder filename 'LC_AUTOGENERATED'.\"\n );\n return LC_AUTOGENERATED_FILENAME;\n }\n\n return filename;\n}\nexport function messageToOpenAIRole(\n message: BaseMessage\n): OpenAIClient.ChatCompletionRole {\n const type = message._getType();\n switch (type) {\n case \"system\":\n return \"system\";\n case \"ai\":\n return \"assistant\";\n case \"human\":\n return \"user\";\n case \"function\":\n return \"function\";\n case \"tool\":\n return \"tool\";\n case \"generic\": {\n if (!ChatMessage.isInstance(message))\n throw new Error(\"Invalid generic chat message\");\n return extractGenericMessageCustomRole(message);\n }\n default:\n throw new Error(`Unknown message type: ${type}`);\n }\n}\n\nexport function _modelPrefersResponsesAPI(model: string): boolean {\n if (model.includes(\"gpt-5.2-pro\")) return true;\n if (model.includes(\"gpt-5.4-pro\")) return true;\n if (model.includes(\"gpt-5.5-pro\")) return true;\n if (model.includes(\"gpt-5.6\")) return true;\n // Codex models are Responses API only\n if (model.includes(\"codex\")) return true;\n return false;\n}\n"],"mappings":";;
|
|
1
|
+
{"version":3,"file":"misc.js","names":["iife"],"sources":["../../src/utils/misc.ts"],"sourcesContent":["import type { OpenAI as OpenAIClient } from \"openai\";\nimport type { OpenAICacheRetentionParam } from \"../types.js\";\nimport {\n AIMessage,\n BaseMessage,\n ChatMessage,\n ContentBlock,\n Data,\n SystemMessage,\n} from \"@langchain/core/messages\";\n\nexport const iife = <T>(fn: () => T) => fn();\n\n/**\n * Returns the provider payload a content block carries: the `value` of a\n * `non_standard` wrapper, or the block itself.\n */\nexport function unwrapNonStandard(block: ContentBlock): ContentBlock {\n if (\n block.type === \"non_standard\" &&\n typeof block.value === \"object\" &&\n block.value !== null\n ) {\n return block.value as ContentBlock;\n }\n return block;\n}\n\nconst ADDITIONAL_TOOLS_PLACEMENT_ERROR =\n \"`additional_tools` must be carried on a `SystemMessage`. OpenAI restricts \" +\n 'the input item to `role: \"developer\"`, so it cannot be sent on any other ' +\n \"message.\";\n\nconst ADDITIONAL_TOOLS_TRANSPORT_ERROR =\n \"`additional_tools` requires the Responses API and cannot be sent via Chat \" +\n \"Completions. Set `useResponsesApi: true`.\";\n\n/**\n * Throws if `message` carries an `additional_tools` block, in either spelling,\n * that cannot reach the wire.\n *\n * OpenAI takes `additional_tools` only as a Responses API input item with\n * `role: \"developer\"`, so only a `SystemMessage` sent via the Responses API\n * can carry it. Assistant messages are exempt: their content is replayed model\n * output, not an instruction from the caller.\n */\nexport function assertAdditionalToolsPlacement(\n message: BaseMessage,\n api: \"responses\" | \"chat/completions\"\n): void {\n if (\n AIMessage.isInstance(message) ||\n !Array.isArray(message.content) ||\n !message.content.some(\n (block) => unwrapNonStandard(block).type === \"additional_tools\"\n )\n ) {\n return;\n }\n if (!SystemMessage.isInstance(message)) {\n throw new Error(ADDITIONAL_TOOLS_PLACEMENT_ERROR);\n }\n if (api === \"chat/completions\") {\n throw new Error(ADDITIONAL_TOOLS_TRANSPORT_ERROR);\n }\n}\n\nexport function normalizePromptCacheRetention(\n retention: OpenAICacheRetentionParam | undefined\n): Exclude<OpenAICacheRetentionParam, \"in-memory\"> | undefined {\n return retention === \"in-memory\" ? \"in_memory\" : retention;\n}\n\nexport function applyPromptCacheBreakpoint<T extends object>(\n source: Record<string, unknown>,\n target: T\n): T {\n if (\"prompt_cache_breakpoint\" in source) {\n return {\n ...target,\n prompt_cache_breakpoint: source.prompt_cache_breakpoint,\n };\n }\n if (hasExtrasPromptCacheBreakpoint(source)) {\n return {\n ...target,\n prompt_cache_breakpoint: source.extras.prompt_cache_breakpoint,\n };\n }\n return target;\n}\n\nexport function hasExtrasPromptCacheBreakpoint(\n block: Record<string, unknown>\n): block is { extras: { prompt_cache_breakpoint: unknown } } {\n const { extras } = block;\n return (\n typeof extras === \"object\" &&\n extras !== null &&\n \"prompt_cache_breakpoint\" in extras\n );\n}\n\nexport function liftExtrasPromptCacheBreakpoint<T extends object>(block: T): T {\n const source = block as Record<string, unknown>;\n if (!hasExtrasPromptCacheBreakpoint(source)) {\n return block;\n }\n const { extras: _extras, ...rest } = source;\n return applyPromptCacheBreakpoint(source, rest) as T;\n}\n\nexport function isReasoningModel(model?: string) {\n if (!model) return false;\n if (/^o\\d/.test(model ?? \"\")) return true;\n if (model.startsWith(\"gpt-5\") && !model.startsWith(\"gpt-5-chat\")) return true;\n if (model.startsWith(\"gpt-6\") && !model.startsWith(\"gpt-6-chat\")) return true;\n return false;\n}\n\nexport function extractGenericMessageCustomRole(message: ChatMessage) {\n if (\n message.role !== \"system\" &&\n message.role !== \"developer\" &&\n message.role !== \"assistant\" &&\n message.role !== \"user\" &&\n message.role !== \"function\" &&\n message.role !== \"tool\"\n ) {\n console.warn(`Unknown message role: ${message.role}`);\n }\n\n return message.role as OpenAIClient.ChatCompletionRole;\n}\n\nexport function getFilenameFromMetadata(\n block:\n | ContentBlock.Multimodal.File\n | ContentBlock.Multimodal.Video\n | Data.StandardFileBlock\n): string | undefined {\n return (block.metadata?.filename ??\n block.metadata?.name ??\n block.metadata?.title) as string;\n}\n\nexport const LC_AUTOGENERATED_FILENAME = \"LC_AUTOGENERATED\";\n\nexport function getRequiredFilenameFromMetadata(\n block:\n | ContentBlock.Multimodal.File\n | ContentBlock.Multimodal.Video\n | Data.StandardFileBlock\n): string {\n const filename = (block.metadata?.filename ??\n block.metadata?.name ??\n block.metadata?.title) as string;\n\n if (!filename) {\n console.warn(\n \"OpenAI may require a filename for file uploads. Specify a filename \" +\n \"in the content block metadata, e.g.: { type: 'file', mimeType: \" +\n \"'...', data: '...', metadata: { filename: 'my-file.pdf' } }. \" +\n \"Using placeholder filename 'LC_AUTOGENERATED'.\"\n );\n return LC_AUTOGENERATED_FILENAME;\n }\n\n return filename;\n}\nexport function messageToOpenAIRole(\n message: BaseMessage\n): OpenAIClient.ChatCompletionRole {\n const type = message._getType();\n switch (type) {\n case \"system\":\n return \"system\";\n case \"ai\":\n return \"assistant\";\n case \"human\":\n return \"user\";\n case \"function\":\n return \"function\";\n case \"tool\":\n return \"tool\";\n case \"generic\": {\n if (!ChatMessage.isInstance(message))\n throw new Error(\"Invalid generic chat message\");\n return extractGenericMessageCustomRole(message);\n }\n default:\n throw new Error(`Unknown message type: ${type}`);\n }\n}\n\nexport function _modelPrefersResponsesAPI(model: string): boolean {\n if (model.includes(\"gpt-5.2-pro\")) return true;\n if (model.includes(\"gpt-5.4-pro\")) return true;\n if (model.includes(\"gpt-5.5-pro\")) return true;\n if (model.includes(\"gpt-5.6\")) return true;\n // Codex models are Responses API only\n if (model.includes(\"codex\")) return true;\n return false;\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
//#region src/utils/profile.ts
|
|
2
|
+
/**
|
|
3
|
+
* Narrows the static profile, which describes the Responses API, to what the
|
|
4
|
+
* API a model calls can send.
|
|
5
|
+
*
|
|
6
|
+
* - `fileMimeTypes` is reported for every model by default, so it is stripped
|
|
7
|
+
* back out when not applicable. `pdfInputs` stands in for `input_file`
|
|
8
|
+
* support, since PDFs go through the same input.
|
|
9
|
+
* - `midConversationTools` is turned off on Chat Completions, since only the
|
|
10
|
+
* Responses API carries an `additional_tools` input item.
|
|
11
|
+
*/
|
|
12
|
+
function profileForApi(profile, usesResponsesApi) {
|
|
13
|
+
let result = profile;
|
|
14
|
+
if (!usesResponsesApi || !profile.pdfInputs) {
|
|
15
|
+
const { fileMimeTypes: _fileMimeTypes, ...rest } = result;
|
|
16
|
+
result = rest;
|
|
17
|
+
}
|
|
18
|
+
if (!usesResponsesApi && result.midConversationTools) result = {
|
|
19
|
+
...result,
|
|
20
|
+
midConversationTools: false
|
|
21
|
+
};
|
|
22
|
+
return result;
|
|
23
|
+
}
|
|
24
|
+
//#endregion
|
|
25
|
+
exports.profileForApi = profileForApi;
|
|
26
|
+
|
|
27
|
+
//# sourceMappingURL=profile.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profile.cjs","names":[],"sources":["../../src/utils/profile.ts"],"sourcesContent":["import type { ModelProfile } from \"@langchain/core/language_models/profile\";\n\n/**\n * Narrows the static profile, which describes the Responses API, to what the\n * API a model calls can send.\n *\n * - `fileMimeTypes` is reported for every model by default, so it is stripped\n * back out when not applicable. `pdfInputs` stands in for `input_file`\n * support, since PDFs go through the same input.\n * - `midConversationTools` is turned off on Chat Completions, since only the\n * Responses API carries an `additional_tools` input item.\n */\nexport function profileForApi(\n profile: ModelProfile,\n usesResponsesApi: boolean\n): ModelProfile {\n let result = profile;\n if (!usesResponsesApi || !profile.pdfInputs) {\n const { fileMimeTypes: _fileMimeTypes, ...rest } = result;\n result = rest;\n }\n if (!usesResponsesApi && result.midConversationTools) {\n result = { ...result, midConversationTools: false };\n }\n return result;\n}\n"],"mappings":";;;;;;;;;;;AAYA,SAAgB,cACd,SACA,kBACc;CACd,IAAI,SAAS;CACb,IAAI,CAAC,oBAAoB,CAAC,QAAQ,WAAW;EAC3C,MAAM,EAAE,eAAe,gBAAgB,GAAG,SAAS;EACnD,SAAS;CACX;CACA,IAAI,CAAC,oBAAoB,OAAO,sBAC9B,SAAS;EAAE,GAAG;EAAQ,sBAAsB;CAAM;CAEpD,OAAO;AACT"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
//#region src/utils/profile.ts
|
|
2
|
+
/**
|
|
3
|
+
* Narrows the static profile, which describes the Responses API, to what the
|
|
4
|
+
* API a model calls can send.
|
|
5
|
+
*
|
|
6
|
+
* - `fileMimeTypes` is reported for every model by default, so it is stripped
|
|
7
|
+
* back out when not applicable. `pdfInputs` stands in for `input_file`
|
|
8
|
+
* support, since PDFs go through the same input.
|
|
9
|
+
* - `midConversationTools` is turned off on Chat Completions, since only the
|
|
10
|
+
* Responses API carries an `additional_tools` input item.
|
|
11
|
+
*/
|
|
12
|
+
function profileForApi(profile, usesResponsesApi) {
|
|
13
|
+
let result = profile;
|
|
14
|
+
if (!usesResponsesApi || !profile.pdfInputs) {
|
|
15
|
+
const { fileMimeTypes: _fileMimeTypes, ...rest } = result;
|
|
16
|
+
result = rest;
|
|
17
|
+
}
|
|
18
|
+
if (!usesResponsesApi && result.midConversationTools) result = {
|
|
19
|
+
...result,
|
|
20
|
+
midConversationTools: false
|
|
21
|
+
};
|
|
22
|
+
return result;
|
|
23
|
+
}
|
|
24
|
+
//#endregion
|
|
25
|
+
export { profileForApi };
|
|
26
|
+
|
|
27
|
+
//# sourceMappingURL=profile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profile.js","names":[],"sources":["../../src/utils/profile.ts"],"sourcesContent":["import type { ModelProfile } from \"@langchain/core/language_models/profile\";\n\n/**\n * Narrows the static profile, which describes the Responses API, to what the\n * API a model calls can send.\n *\n * - `fileMimeTypes` is reported for every model by default, so it is stripped\n * back out when not applicable. `pdfInputs` stands in for `input_file`\n * support, since PDFs go through the same input.\n * - `midConversationTools` is turned off on Chat Completions, since only the\n * Responses API carries an `additional_tools` input item.\n */\nexport function profileForApi(\n profile: ModelProfile,\n usesResponsesApi: boolean\n): ModelProfile {\n let result = profile;\n if (!usesResponsesApi || !profile.pdfInputs) {\n const { fileMimeTypes: _fileMimeTypes, ...rest } = result;\n result = rest;\n }\n if (!usesResponsesApi && result.midConversationTools) {\n result = { ...result, midConversationTools: false };\n }\n return result;\n}\n"],"mappings":";;;;;;;;;;;AAYA,SAAgB,cACd,SACA,kBACc;CACd,IAAI,SAAS;CACb,IAAI,CAAC,oBAAoB,CAAC,QAAQ,WAAW;EAC3C,MAAM,EAAE,eAAe,gBAAgB,GAAG,SAAS;EACnD,SAAS;CACX;CACA,IAAI,CAAC,oBAAoB,OAAO,sBAC9B,SAAS;EAAE,GAAG;EAAQ,sBAAsB;CAAM;CAEpD,OAAO;AACT"}
|
package/dist/utils/prompts.d.cts
CHANGED
|
@@ -32,9 +32,8 @@ import { BasePromptValue } from "@langchain/core/prompt_values";
|
|
|
32
32
|
* @param formattedPrompt
|
|
33
33
|
* @returns A partial OpenAI payload.
|
|
34
34
|
*/
|
|
35
|
-
declare function convertPromptToOpenAI(formattedPrompt: BasePromptValue): {
|
|
35
|
+
export declare function convertPromptToOpenAI(formattedPrompt: BasePromptValue): {
|
|
36
36
|
messages: OpenAI.Chat.ChatCompletionMessageParam[];
|
|
37
37
|
};
|
|
38
38
|
//#endregion
|
|
39
|
-
export { convertPromptToOpenAI };
|
|
40
39
|
//# sourceMappingURL=prompts.d.cts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompts.d.cts","names":[],"sources":["../../src/utils/prompts.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"prompts.d.cts","names":[],"sources":["../../src/utils/prompts.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBAoCgB,sBAAsB,iBAAiB;EACrD,UAAU,OAAO,KAAK"}
|
package/dist/utils/prompts.d.ts
CHANGED
|
@@ -32,9 +32,8 @@ import { BasePromptValue } from "@langchain/core/prompt_values";
|
|
|
32
32
|
* @param formattedPrompt
|
|
33
33
|
* @returns A partial OpenAI payload.
|
|
34
34
|
*/
|
|
35
|
-
declare function convertPromptToOpenAI(formattedPrompt: BasePromptValue): {
|
|
35
|
+
export declare function convertPromptToOpenAI(formattedPrompt: BasePromptValue): {
|
|
36
36
|
messages: OpenAI.Chat.ChatCompletionMessageParam[];
|
|
37
37
|
};
|
|
38
38
|
//#endregion
|
|
39
|
-
export { convertPromptToOpenAI };
|
|
40
39
|
//# sourceMappingURL=prompts.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompts.d.ts","names":[],"sources":["../../src/utils/prompts.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"prompts.d.ts","names":[],"sources":["../../src/utils/prompts.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBAoCgB,sBAAsB,iBAAiB;EACrD,UAAU,OAAO,KAAK"}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import { OpenAI } from "openai";
|
|
2
2
|
import { ChatModelStreamEvent } from "@langchain/core/language_models/event";
|
|
3
3
|
//#region src/utils/responses_stream_events.d.ts
|
|
4
|
-
interface ConvertOpenAIResponsesStreamOptions {
|
|
4
|
+
export interface ConvertOpenAIResponsesStreamOptions {
|
|
5
5
|
streamUsage?: boolean;
|
|
6
6
|
provider?: string;
|
|
7
7
|
}
|
|
8
8
|
type RawEvent = OpenAI.Responses.ResponseStreamEvent;
|
|
9
|
-
declare function convertOpenAIResponsesStream(source: AsyncIterable<RawEvent>, options?: ConvertOpenAIResponsesStreamOptions): AsyncGenerator<ChatModelStreamEvent>;
|
|
9
|
+
export declare function convertOpenAIResponsesStream(source: AsyncIterable<RawEvent>, options?: ConvertOpenAIResponsesStreamOptions): AsyncGenerator<ChatModelStreamEvent>;
|
|
10
10
|
//#endregion
|
|
11
|
-
export { ConvertOpenAIResponsesStreamOptions, convertOpenAIResponsesStream };
|
|
12
11
|
//# sourceMappingURL=responses_stream_events.d.cts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"responses_stream_events.d.cts","names":[],"sources":["../../src/utils/responses_stream_events.ts"],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"responses_stream_events.d.cts","names":["OpenAIClient"],"sources":["../../src/utils/responses_stream_events.ts"],"mappings":";;;iBAeiB;EACf;EACA;;KAGG,WAAWA,OAAa,UAAU;wBAMhB,6BACrB,QAAQ,cAAc,WACtB,UAAS,sCACR,eAAe"}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import { OpenAI } from "openai";
|
|
2
2
|
import { ChatModelStreamEvent } from "@langchain/core/language_models/event";
|
|
3
3
|
//#region src/utils/responses_stream_events.d.ts
|
|
4
|
-
interface ConvertOpenAIResponsesStreamOptions {
|
|
4
|
+
export interface ConvertOpenAIResponsesStreamOptions {
|
|
5
5
|
streamUsage?: boolean;
|
|
6
6
|
provider?: string;
|
|
7
7
|
}
|
|
8
8
|
type RawEvent = OpenAI.Responses.ResponseStreamEvent;
|
|
9
|
-
declare function convertOpenAIResponsesStream(source: AsyncIterable<RawEvent>, options?: ConvertOpenAIResponsesStreamOptions): AsyncGenerator<ChatModelStreamEvent>;
|
|
9
|
+
export declare function convertOpenAIResponsesStream(source: AsyncIterable<RawEvent>, options?: ConvertOpenAIResponsesStreamOptions): AsyncGenerator<ChatModelStreamEvent>;
|
|
10
10
|
//#endregion
|
|
11
|
-
export { ConvertOpenAIResponsesStreamOptions, convertOpenAIResponsesStream };
|
|
12
11
|
//# sourceMappingURL=responses_stream_events.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"responses_stream_events.d.ts","names":[],"sources":["../../src/utils/responses_stream_events.ts"],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"responses_stream_events.d.ts","names":["OpenAIClient"],"sources":["../../src/utils/responses_stream_events.ts"],"mappings":";;;iBAeiB;EACf;EACA;;KAGG,WAAWA,OAAa,UAAU;wBAMhB,6BACrB,QAAQ,cAAc,WACtB,UAAS,sCACR,eAAe"}
|
package/dist/utils/tools.d.cts
CHANGED
|
@@ -4,10 +4,9 @@ import { BindToolsInput } from "@langchain/core/language_models/chat_models";
|
|
|
4
4
|
import { DynamicTool } from "@langchain/core/tools";
|
|
5
5
|
import "@langchain/core/messages/tool";
|
|
6
6
|
//#region src/utils/tools.d.ts
|
|
7
|
-
type OpenAIToolChoice = OpenAI.ChatCompletionToolChoiceOption | "any" | string;
|
|
8
|
-
type ResponsesToolChoice = NonNullable<OpenAI.Responses.ResponseCreateParams["tool_choice"]>;
|
|
9
|
-
type ChatOpenAIToolType = BindToolsInput | OpenAI.Chat.ChatCompletionTool | ResponsesTool;
|
|
10
|
-
type ResponsesTool = NonNullable<OpenAI.Responses.ResponseCreateParams["tools"]>[number];
|
|
7
|
+
export type OpenAIToolChoice = OpenAI.ChatCompletionToolChoiceOption | "any" | string;
|
|
8
|
+
export type ResponsesToolChoice = NonNullable<OpenAI.Responses.ResponseCreateParams["tool_choice"]>;
|
|
9
|
+
export type ChatOpenAIToolType = BindToolsInput | OpenAI.Chat.ChatCompletionTool | ResponsesTool;
|
|
10
|
+
export type ResponsesTool = NonNullable<OpenAI.Responses.ResponseCreateParams["tools"]>[number];
|
|
11
11
|
//#endregion
|
|
12
|
-
export { ChatOpenAIToolType, OpenAIToolChoice, ResponsesTool, ResponsesToolChoice };
|
|
13
12
|
//# sourceMappingURL=tools.d.cts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.d.cts","names":[],"sources":["../../src/utils/tools.ts"],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"tools.d.cts","names":["OpenAIClient"],"sources":["../../src/utils/tools.ts"],"mappings":";;;;;;YAiMY,mBACRA,OAAa;YAIL,sBAAsB,YAChCA,OAAa,UAAU;YAGb,qBACR,iBACAA,OAAa,KAAK,qBAClB;YAEQ,gBAAgB,YAC1BA,OAAa,UAAU"}
|
package/dist/utils/tools.d.ts
CHANGED
|
@@ -4,10 +4,9 @@ import "@langchain/core/language_models/base";
|
|
|
4
4
|
import { DynamicTool } from "@langchain/core/tools";
|
|
5
5
|
import "@langchain/core/messages/tool";
|
|
6
6
|
//#region src/utils/tools.d.ts
|
|
7
|
-
type OpenAIToolChoice = OpenAI.ChatCompletionToolChoiceOption | "any" | string;
|
|
8
|
-
type ResponsesToolChoice = NonNullable<OpenAI.Responses.ResponseCreateParams["tool_choice"]>;
|
|
9
|
-
type ChatOpenAIToolType = BindToolsInput | OpenAI.Chat.ChatCompletionTool | ResponsesTool;
|
|
10
|
-
type ResponsesTool = NonNullable<OpenAI.Responses.ResponseCreateParams["tools"]>[number];
|
|
7
|
+
export type OpenAIToolChoice = OpenAI.ChatCompletionToolChoiceOption | "any" | string;
|
|
8
|
+
export type ResponsesToolChoice = NonNullable<OpenAI.Responses.ResponseCreateParams["tool_choice"]>;
|
|
9
|
+
export type ChatOpenAIToolType = BindToolsInput | OpenAI.Chat.ChatCompletionTool | ResponsesTool;
|
|
10
|
+
export type ResponsesTool = NonNullable<OpenAI.Responses.ResponseCreateParams["tools"]>[number];
|
|
11
11
|
//#endregion
|
|
12
|
-
export { ChatOpenAIToolType, OpenAIToolChoice, ResponsesTool, ResponsesToolChoice };
|
|
13
12
|
//# sourceMappingURL=tools.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.d.ts","names":[],"sources":["../../src/utils/tools.ts"],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"tools.d.ts","names":["OpenAIClient"],"sources":["../../src/utils/tools.ts"],"mappings":";;;;;;YAiMY,mBACRA,OAAa;YAIL,sBAAsB,YAChCA,OAAa,UAAU;YAGb,qBACR,iBACAA,OAAa,KAAK,qBAClB;YAEQ,gBAAgB,YAC1BA,OAAa,UAAU"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@langchain/openai",
|
|
3
|
-
"version": "1.6.
|
|
3
|
+
"version": "1.6.3",
|
|
4
4
|
"description": "OpenAI integrations for LangChain.js",
|
|
5
5
|
"author": "LangChain",
|
|
6
6
|
"license": "MIT",
|
|
@@ -15,25 +15,25 @@
|
|
|
15
15
|
"homepage": "https://github.com/langchain-ai/langchainjs/tree/main/libs/providers/langchain-openai/",
|
|
16
16
|
"dependencies": {
|
|
17
17
|
"js-tiktoken": "^1.0.12",
|
|
18
|
-
"openai": "^7.
|
|
18
|
+
"openai": "^7.23.0",
|
|
19
19
|
"zod": "^3.25.76 || ^4"
|
|
20
20
|
},
|
|
21
21
|
"peerDependencies": {
|
|
22
|
-
"@langchain/core": "^1.2.
|
|
22
|
+
"@langchain/core": "^1.2.20"
|
|
23
23
|
},
|
|
24
24
|
"devDependencies": {
|
|
25
|
-
"@azure/identity": "^4.13.
|
|
25
|
+
"@azure/identity": "^4.13.3",
|
|
26
26
|
"@cfworker/json-schema": "^4.1.1",
|
|
27
27
|
"@tsconfig/recommended": "^1.0.10",
|
|
28
|
-
"@types/node": "^26.
|
|
29
|
-
"@vitest/coverage-v8": "^
|
|
28
|
+
"@types/node": "^26.6.3",
|
|
29
|
+
"@vitest/coverage-v8": "^5.0.2",
|
|
30
30
|
"dotenv": "^17.4.2",
|
|
31
31
|
"dpdm": "^4.3.0",
|
|
32
32
|
"rimraf": "^6.1.3",
|
|
33
33
|
"typescript": "~7.0.2",
|
|
34
|
-
"vitest": "^
|
|
34
|
+
"vitest": "^5.0.2",
|
|
35
35
|
"zod-to-json-schema": "^3.25.2",
|
|
36
|
-
"@langchain/core": "^1.2.
|
|
36
|
+
"@langchain/core": "^1.2.20",
|
|
37
37
|
"@langchain/standard-tests": "0.0.23",
|
|
38
38
|
"@langchain/tsconfig": "0.0.1"
|
|
39
39
|
},
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
//#region src/utils/file_mime_types.ts
|
|
2
|
-
/**
|
|
3
|
-
* The static profile now reports `fileMimeTypes` for every model by default,
|
|
4
|
-
* so this strips it back out when not applicable. `pdfInputs` stands in for
|
|
5
|
-
* `input_file` support, since PDFs go through the same input.
|
|
6
|
-
*/
|
|
7
|
-
function withoutFileMimeTypesUnlessSupported(profile, usesResponsesApi) {
|
|
8
|
-
if (usesResponsesApi && profile.pdfInputs) return profile;
|
|
9
|
-
const { fileMimeTypes: _fileMimeTypes, ...rest } = profile;
|
|
10
|
-
return rest;
|
|
11
|
-
}
|
|
12
|
-
//#endregion
|
|
13
|
-
exports.withoutFileMimeTypesUnlessSupported = withoutFileMimeTypesUnlessSupported;
|
|
14
|
-
|
|
15
|
-
//# sourceMappingURL=file_mime_types.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"file_mime_types.cjs","names":[],"sources":["../../src/utils/file_mime_types.ts"],"sourcesContent":["import type { ModelProfile } from \"@langchain/core/language_models/profile\";\n\n/**\n * The static profile now reports `fileMimeTypes` for every model by default,\n * so this strips it back out when not applicable. `pdfInputs` stands in for\n * `input_file` support, since PDFs go through the same input.\n */\nexport function withoutFileMimeTypesUnlessSupported(\n profile: ModelProfile,\n usesResponsesApi: boolean\n): ModelProfile {\n if (usesResponsesApi && profile.pdfInputs) return profile;\n const { fileMimeTypes: _fileMimeTypes, ...rest } = profile;\n return rest;\n}\n"],"mappings":";;;;;;AAOA,SAAgB,oCACd,SACA,kBACc;CACd,IAAI,oBAAoB,QAAQ,WAAW,OAAO;CAClD,MAAM,EAAE,eAAe,gBAAgB,GAAG,SAAS;CACnD,OAAO;AACT"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
//#region src/utils/file_mime_types.ts
|
|
2
|
-
/**
|
|
3
|
-
* The static profile now reports `fileMimeTypes` for every model by default,
|
|
4
|
-
* so this strips it back out when not applicable. `pdfInputs` stands in for
|
|
5
|
-
* `input_file` support, since PDFs go through the same input.
|
|
6
|
-
*/
|
|
7
|
-
function withoutFileMimeTypesUnlessSupported(profile, usesResponsesApi) {
|
|
8
|
-
if (usesResponsesApi && profile.pdfInputs) return profile;
|
|
9
|
-
const { fileMimeTypes: _fileMimeTypes, ...rest } = profile;
|
|
10
|
-
return rest;
|
|
11
|
-
}
|
|
12
|
-
//#endregion
|
|
13
|
-
export { withoutFileMimeTypesUnlessSupported };
|
|
14
|
-
|
|
15
|
-
//# sourceMappingURL=file_mime_types.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"file_mime_types.js","names":[],"sources":["../../src/utils/file_mime_types.ts"],"sourcesContent":["import type { ModelProfile } from \"@langchain/core/language_models/profile\";\n\n/**\n * The static profile now reports `fileMimeTypes` for every model by default,\n * so this strips it back out when not applicable. `pdfInputs` stands in for\n * `input_file` support, since PDFs go through the same input.\n */\nexport function withoutFileMimeTypesUnlessSupported(\n profile: ModelProfile,\n usesResponsesApi: boolean\n): ModelProfile {\n if (usesResponsesApi && profile.pdfInputs) return profile;\n const { fileMimeTypes: _fileMimeTypes, ...rest } = profile;\n return rest;\n}\n"],"mappings":";;;;;;AAOA,SAAgB,oCACd,SACA,kBACc;CACd,IAAI,oBAAoB,QAAQ,WAAW,OAAO;CAClD,MAAM,EAAE,eAAe,gBAAgB,GAAG,SAAS;CACnD,OAAO;AACT"}
|