@sudobility/shapeshyft_engine 1.0.3 → 1.0.4
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/dist/services/llm/cohere-schema.d.ts +26 -0
- package/dist/services/llm/cohere-schema.d.ts.map +1 -0
- package/dist/services/llm/cohere-schema.js +103 -0
- package/dist/services/llm/cohere-schema.js.map +1 -0
- package/dist/services/llm/index.d.ts +1 -1
- package/dist/services/llm/index.d.ts.map +1 -1
- package/dist/services/llm/index.js +13 -6
- package/dist/services/llm/index.js.map +1 -1
- package/dist/services/llm/openai.d.ts +18 -2
- package/dist/services/llm/openai.d.ts.map +1 -1
- package/dist/services/llm/openai.js +48 -38
- package/dist/services/llm/openai.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Structured output for Cohere's OpenAI-compatible API.
|
|
3
|
+
* @description Cohere's Compatibility API accepts `tools` but not
|
|
4
|
+
* `tool_choice`, so the forced `structured_response` call every other
|
|
5
|
+
* compatible provider uses cannot be made. Its structured output is
|
|
6
|
+
* `response_format: { type: "json_object", schema }` instead, which Cohere
|
|
7
|
+
* guarantees the reply follows -- but only for a subset of JSON Schema.
|
|
8
|
+
*
|
|
9
|
+
* @see https://docs.cohere.com/docs/compatibility-api
|
|
10
|
+
* @see https://docs.cohere.com/docs/structured-outputs
|
|
11
|
+
*/
|
|
12
|
+
type Schema = Record<string, unknown>;
|
|
13
|
+
/**
|
|
14
|
+
* The `response_format` to send Cohere for an endpoint's output schema.
|
|
15
|
+
*
|
|
16
|
+
* JSON Schema mode when the schema fits Cohere's constraints. Otherwise JSON
|
|
17
|
+
* mode, which still guarantees a JSON object: the schema's shape then comes
|
|
18
|
+
* from the system prompt, which always describes it and asks for JSON --
|
|
19
|
+
* Cohere warns JSON mode can run away without that instruction.
|
|
20
|
+
*/
|
|
21
|
+
export declare function cohereResponseFormat(outputSchema: unknown): {
|
|
22
|
+
type: "json_object";
|
|
23
|
+
schema?: Schema;
|
|
24
|
+
};
|
|
25
|
+
export {};
|
|
26
|
+
//# sourceMappingURL=cohere-schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cohere-schema.d.ts","sourceRoot":"","sources":["../../../src/services/llm/cohere-schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AA0BH,KAAK,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAiEtC;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,OAAO,GAAG;IAC3D,IAAI,EAAE,aAAa,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAKA"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Structured output for Cohere's OpenAI-compatible API.
|
|
3
|
+
* @description Cohere's Compatibility API accepts `tools` but not
|
|
4
|
+
* `tool_choice`, so the forced `structured_response` call every other
|
|
5
|
+
* compatible provider uses cannot be made. Its structured output is
|
|
6
|
+
* `response_format: { type: "json_object", schema }` instead, which Cohere
|
|
7
|
+
* guarantees the reply follows -- but only for a subset of JSON Schema.
|
|
8
|
+
*
|
|
9
|
+
* @see https://docs.cohere.com/docs/compatibility-api
|
|
10
|
+
* @see https://docs.cohere.com/docs/structured-outputs
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* Keywords Cohere rejects. Dropping them loosens validation, not the answer:
|
|
14
|
+
* the system prompt still describes the full schema, bounds included.
|
|
15
|
+
*/
|
|
16
|
+
const UNSUPPORTED_KEYWORDS = new Set([
|
|
17
|
+
"allOf",
|
|
18
|
+
"oneOf",
|
|
19
|
+
"not",
|
|
20
|
+
"minimum",
|
|
21
|
+
"maximum",
|
|
22
|
+
"exclusiveMinimum",
|
|
23
|
+
"exclusiveMaximum",
|
|
24
|
+
"minItems",
|
|
25
|
+
"maxItems",
|
|
26
|
+
"minLength",
|
|
27
|
+
"maxLength",
|
|
28
|
+
"uniqueItems",
|
|
29
|
+
"$schema",
|
|
30
|
+
"$id",
|
|
31
|
+
]);
|
|
32
|
+
/** The only string formats Cohere supports. */
|
|
33
|
+
const SUPPORTED_FORMATS = new Set(["date-time", "uuid", "date", "time"]);
|
|
34
|
+
function isSchema(value) {
|
|
35
|
+
return value !== null && typeof value === "object" && !Array.isArray(value);
|
|
36
|
+
}
|
|
37
|
+
/** Copy `schema` without the keywords Cohere rejects. */
|
|
38
|
+
function stripUnsupported(schema) {
|
|
39
|
+
if (Array.isArray(schema))
|
|
40
|
+
return schema.map(stripUnsupported);
|
|
41
|
+
if (!isSchema(schema))
|
|
42
|
+
return schema;
|
|
43
|
+
const out = {};
|
|
44
|
+
for (const [key, value] of Object.entries(schema)) {
|
|
45
|
+
if (UNSUPPORTED_KEYWORDS.has(key))
|
|
46
|
+
continue;
|
|
47
|
+
if (key === "format" && !SUPPORTED_FORMATS.has(String(value)))
|
|
48
|
+
continue;
|
|
49
|
+
// A pattern using anchors or lookaheads is rejected; the prompt keeps it.
|
|
50
|
+
if (key === "pattern" && /\^|\$|\?=|\?!/.test(String(value)))
|
|
51
|
+
continue;
|
|
52
|
+
// `properties`, `$defs` and `definitions` map names to schemas; every
|
|
53
|
+
// other object-valued keyword is a schema itself.
|
|
54
|
+
if ((key === "properties" || key === "$defs" || key === "definitions") &&
|
|
55
|
+
isSchema(value)) {
|
|
56
|
+
out[key] = Object.fromEntries(Object.entries(value).map(([name, child]) => [
|
|
57
|
+
name,
|
|
58
|
+
stripUnsupported(child),
|
|
59
|
+
]));
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
out[key] = stripUnsupported(value);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
return out;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Whether Cohere will accept `schema` in JSON Schema mode: the top level must
|
|
69
|
+
* be an object, and every object must list at least one `required` field.
|
|
70
|
+
*/
|
|
71
|
+
function meetsCohereConstraints(schema, topLevel = true) {
|
|
72
|
+
if (Array.isArray(schema)) {
|
|
73
|
+
return schema.every(s => meetsCohereConstraints(s, false));
|
|
74
|
+
}
|
|
75
|
+
if (!isSchema(schema))
|
|
76
|
+
return true;
|
|
77
|
+
const isObject = schema.type === "object" || isSchema(schema.properties);
|
|
78
|
+
if (topLevel && !isObject)
|
|
79
|
+
return false;
|
|
80
|
+
if (isObject &&
|
|
81
|
+
!(Array.isArray(schema.required) && schema.required.length > 0)) {
|
|
82
|
+
return false;
|
|
83
|
+
}
|
|
84
|
+
return Object.entries(schema).every(([key, value]) => (key === "properties" || key === "$defs" || key === "definitions") &&
|
|
85
|
+
isSchema(value)
|
|
86
|
+
? Object.values(value).every(child => meetsCohereConstraints(child, false))
|
|
87
|
+
: meetsCohereConstraints(value, false));
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* The `response_format` to send Cohere for an endpoint's output schema.
|
|
91
|
+
*
|
|
92
|
+
* JSON Schema mode when the schema fits Cohere's constraints. Otherwise JSON
|
|
93
|
+
* mode, which still guarantees a JSON object: the schema's shape then comes
|
|
94
|
+
* from the system prompt, which always describes it and asks for JSON --
|
|
95
|
+
* Cohere warns JSON mode can run away without that instruction.
|
|
96
|
+
*/
|
|
97
|
+
export function cohereResponseFormat(outputSchema) {
|
|
98
|
+
const stripped = stripUnsupported(outputSchema);
|
|
99
|
+
return meetsCohereConstraints(stripped)
|
|
100
|
+
? { type: "json_object", schema: stripped }
|
|
101
|
+
: { type: "json_object" };
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=cohere-schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cohere-schema.js","sourceRoot":"","sources":["../../../src/services/llm/cohere-schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* @fileoverview LLM provider factory and exports
|
|
3
3
|
* @description Creates the appropriate LLM provider instance based on provider type.
|
|
4
4
|
* OpenAI-compatible providers (Mistral, xAI, DeepSeek, Perplexity, Cohere) reuse
|
|
5
|
-
* the OpenAIProvider class. Groq has a dedicated provider for Whisper transcription.
|
|
5
|
+
* the OpenAIProvider class, each with its own base URL. Groq has a dedicated provider for Whisper transcription.
|
|
6
6
|
*/
|
|
7
7
|
import type { LlmProvider } from "../../types/index.js";
|
|
8
8
|
import type { ILLMProvider, ProviderConfig } from "./types.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/llm/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAO/D,YAAY,EACV,YAAY,EACZ,UAAU,EACV,WAAW,EACX,QAAQ,EACR,cAAc,GACf,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE3D;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,YAAY,EAAE,WAAW,EACzB,MAAM,EAAE,cAAc,GACrB,YAAY,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/llm/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAO/D,YAAY,EACV,YAAY,EACZ,UAAU,EACV,WAAW,EACX,QAAQ,EACR,cAAc,GACf,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE3D;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,YAAY,EAAE,WAAW,EACzB,MAAM,EAAE,cAAc,GACrB,YAAY,CA4Dd;AAeD;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAY1D,CAAC"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* @fileoverview LLM provider factory and exports
|
|
3
3
|
* @description Creates the appropriate LLM provider instance based on provider type.
|
|
4
4
|
* OpenAI-compatible providers (Mistral, xAI, DeepSeek, Perplexity, Cohere) reuse
|
|
5
|
-
* the OpenAIProvider class. Groq has a dedicated provider for Whisper transcription.
|
|
5
|
+
* the OpenAIProvider class, each with its own base URL. Groq has a dedicated provider for Whisper transcription.
|
|
6
6
|
*/
|
|
7
7
|
import { OpenAIProvider } from "./openai.js";
|
|
8
8
|
import { AnthropicProvider } from "./anthropic.js";
|
|
@@ -48,11 +48,17 @@ export function createLLMProvider(providerType, config) {
|
|
|
48
48
|
...config,
|
|
49
49
|
endpointUrl: config.endpointUrl ?? OPENAI_COMPATIBLE_BASE_URLS[providerType],
|
|
50
50
|
}, { disableThinking: true });
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
51
|
+
/*
|
|
52
|
+
Cohere's native Chat API has its own request and response shape, but its
|
|
53
|
+
Compatibility API speaks OpenAI's -- except that it takes no
|
|
54
|
+
`tool_choice`, so structured output goes through `response_format`.
|
|
55
|
+
https://docs.cohere.com/docs/compatibility-api
|
|
56
|
+
*/
|
|
54
57
|
case "cohere":
|
|
55
|
-
return new OpenAIProvider(
|
|
58
|
+
return new OpenAIProvider({
|
|
59
|
+
...config,
|
|
60
|
+
endpointUrl: config.endpointUrl ?? OPENAI_COMPATIBLE_BASE_URLS[providerType],
|
|
61
|
+
}, { structuredOutput: "response_format" });
|
|
56
62
|
case "lm_studio":
|
|
57
63
|
return new CustomLLMProvider(config);
|
|
58
64
|
default:
|
|
@@ -69,6 +75,7 @@ const OPENAI_COMPATIBLE_BASE_URLS = {
|
|
|
69
75
|
xai: "https://api.x.ai/v1",
|
|
70
76
|
deepseek: "https://api.deepseek.com/v1",
|
|
71
77
|
perplexity: "https://api.perplexity.ai",
|
|
78
|
+
cohere: "https://api.cohere.ai/compatibility/v1",
|
|
72
79
|
};
|
|
73
80
|
/**
|
|
74
81
|
* Provider endpoint hints for Type 3/4 endpoints
|
|
@@ -78,7 +85,7 @@ export const PROVIDER_ENDPOINTS = {
|
|
|
78
85
|
anthropic: "https://api.anthropic.com/v1/messages",
|
|
79
86
|
gemini: "https://generativelanguage.googleapis.com/v1beta/models/{model}:generateContent",
|
|
80
87
|
mistral: "https://api.mistral.ai/v1/chat/completions",
|
|
81
|
-
cohere: "https://api.cohere.ai/v1/chat",
|
|
88
|
+
cohere: "https://api.cohere.ai/compatibility/v1/chat/completions",
|
|
82
89
|
groq: "https://api.groq.com/openai/v1/chat/completions",
|
|
83
90
|
xai: "https://api.x.ai/v1/chat/completions",
|
|
84
91
|
deepseek: "https://api.deepseek.com/v1/chat/completions",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/llm/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAShD,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE3D;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAC/B,YAAyB,EACzB,MAAsB;IAEtB,QAAQ,YAAY,EAAE,CAAC;QACrB,KAAK,QAAQ;YACX,0EAA0E;YAC1E,2EAA2E;YAC3E,OAAO,IAAI,cAAc,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QACxD,KAAK,WAAW;YACd,OAAO,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAAC;QACvC,KAAK,QAAQ;YACX,OAAO,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC;QACpC,KAAK,MAAM;YACT,OAAO,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,0CAA0C;QAC7E,yEAAyE;QACzE,6DAA6D;QAC7D,KAAK,SAAS,CAAC;QACf,KAAK,KAAK,CAAC;QACX,KAAK,YAAY;YACf,OAAO,IAAI,cAAc,CAAC;gBACxB,GAAG,MAAM;gBACT,WAAW,EACT,MAAM,CAAC,WAAW,IAAI,2BAA2B,CAAC,YAAY,CAAC;aAClE,CAAC,CAAC;QACL;;;;;;;;UAQE;QACF,KAAK,UAAU;YACb,OAAO,IAAI,cAAc,CACvB;gBACE,GAAG,MAAM;gBACT,WAAW,EACT,MAAM,CAAC,WAAW,IAAI,2BAA2B,CAAC,YAAY,CAAC;aAClE,EACD,EAAE,eAAe,EAAE,IAAI,EAAE,CAC1B,CAAC;QACJ
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/llm/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAShD,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE3D;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAC/B,YAAyB,EACzB,MAAsB;IAEtB,QAAQ,YAAY,EAAE,CAAC;QACrB,KAAK,QAAQ;YACX,0EAA0E;YAC1E,2EAA2E;YAC3E,OAAO,IAAI,cAAc,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QACxD,KAAK,WAAW;YACd,OAAO,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAAC;QACvC,KAAK,QAAQ;YACX,OAAO,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC;QACpC,KAAK,MAAM;YACT,OAAO,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,0CAA0C;QAC7E,yEAAyE;QACzE,6DAA6D;QAC7D,KAAK,SAAS,CAAC;QACf,KAAK,KAAK,CAAC;QACX,KAAK,YAAY;YACf,OAAO,IAAI,cAAc,CAAC;gBACxB,GAAG,MAAM;gBACT,WAAW,EACT,MAAM,CAAC,WAAW,IAAI,2BAA2B,CAAC,YAAY,CAAC;aAClE,CAAC,CAAC;QACL;;;;;;;;UAQE;QACF,KAAK,UAAU;YACb,OAAO,IAAI,cAAc,CACvB;gBACE,GAAG,MAAM;gBACT,WAAW,EACT,MAAM,CAAC,WAAW,IAAI,2BAA2B,CAAC,YAAY,CAAC;aAClE,EACD,EAAE,eAAe,EAAE,IAAI,EAAE,CAC1B,CAAC;QACJ;;;;;UAKE;QACF,KAAK,QAAQ;YACX,OAAO,IAAI,cAAc,CACvB;gBACE,GAAG,MAAM;gBACT,WAAW,EACT,MAAM,CAAC,WAAW,IAAI,2BAA2B,CAAC,YAAY,CAAC;aAClE,EACD,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,CACxC,CAAC;QACJ,KAAK,WAAW;YACd,OAAO,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAAC;QACvC;YACE,MAAM,IAAI,KAAK,CAAC,0BAA0B,YAAY,EAAE,CAAC,CAAC;IAC9D,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,2BAA2B,GAAyC;IACxE,OAAO,EAAE,2BAA2B;IACpC,GAAG,EAAE,qBAAqB;IAC1B,QAAQ,EAAE,6BAA6B;IACvC,UAAU,EAAE,2BAA2B;IACvC,MAAM,EAAE,wCAAwC;CACjD,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAgC;IAC7D,MAAM,EAAE,4CAA4C;IACpD,SAAS,EAAE,uCAAuC;IAClD,MAAM,EACJ,iFAAiF;IACnF,OAAO,EAAE,4CAA4C;IACrD,MAAM,EAAE,yDAAyD;IACjE,IAAI,EAAE,iDAAiD;IACvD,GAAG,EAAE,sCAAsC;IAC3C,QAAQ,EAAE,8CAA8C;IACxD,UAAU,EAAE,4CAA4C;IACxD,SAAS,EAAE,mBAAmB;CAC/B,CAAC"}
|
|
@@ -2,10 +2,21 @@
|
|
|
2
2
|
* @fileoverview OpenAI LLM provider
|
|
3
3
|
* @description Implements the ILLMProvider interface for OpenAI models.
|
|
4
4
|
* Also used by Mistral, xAI, DeepSeek, Perplexity, and Cohere
|
|
5
|
-
* (OpenAI-compatible APIs).
|
|
6
|
-
*
|
|
5
|
+
* (OpenAI-compatible APIs). Structured output is a forced function call,
|
|
6
|
+
* except for Cohere, whose compatibility API has no `tool_choice` and uses
|
|
7
|
+
* `response_format` instead. Supports multimodal input (images, audio) and
|
|
8
|
+
* audio output generation.
|
|
7
9
|
*/
|
|
8
10
|
import { type ILLMProvider, type LLMRequest, type LLMResponse, type ProviderConfig } from "./types.js";
|
|
11
|
+
/**
|
|
12
|
+
* How a provider is made to return the endpoint's schema.
|
|
13
|
+
*
|
|
14
|
+
* - `tool_call`: a `structured_response` function with a forced `tool_choice`.
|
|
15
|
+
* - `response_format`: Cohere's `{ type: "json_object", schema }`, read from
|
|
16
|
+
* the message content. Cohere's compatibility API does not accept
|
|
17
|
+
* `tool_choice`, so a tool call there could not be forced.
|
|
18
|
+
*/
|
|
19
|
+
export type StructuredOutputMode = "tool_call" | "response_format";
|
|
9
20
|
/**
|
|
10
21
|
* What a provider calls its cap on generated tokens.
|
|
11
22
|
*
|
|
@@ -31,6 +42,9 @@ export declare class OpenAIProvider implements ILLMProvider {
|
|
|
31
42
|
private disableThinking;
|
|
32
43
|
/** Whether this client talks to OpenAI itself, or an OpenAI-compatible third party. */
|
|
33
44
|
private isOpenAi;
|
|
45
|
+
private structuredOutput;
|
|
46
|
+
/** Request fields that ask for structured output, in this provider's dialect. */
|
|
47
|
+
private structuredOutputParams;
|
|
34
48
|
constructor(config: ProviderConfig,
|
|
35
49
|
/**
|
|
36
50
|
* Per-provider quirks. Defaults keep every provider that works today
|
|
@@ -58,6 +72,8 @@ export declare class OpenAIProvider implements ILLMProvider {
|
|
|
58
72
|
* only know `max_tokens`.
|
|
59
73
|
*/
|
|
60
74
|
isOpenAi?: boolean;
|
|
75
|
+
/** How to request structured output. Default: `tool_call`. */
|
|
76
|
+
structuredOutput?: StructuredOutputMode;
|
|
61
77
|
});
|
|
62
78
|
generate(request: LLMRequest): Promise<LLMResponse>;
|
|
63
79
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../../src/services/llm/openai.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../../src/services/llm/openai.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAQH,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,WAAW,EAEhB,KAAK,cAAc,EACpB,MAAM,YAAY,CAAC;AA6CpB;;;;;;;GAOG;AACH,MAAM,MAAM,oBAAoB,GAAG,WAAW,GAAG,iBAAiB,CAAC;AAYnE;;;;;;;;GAQG;AACH,MAAM,MAAM,eAAe,GAAG,YAAY,GAAG,uBAAuB,CAAC;AAgBrE;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,OAAO,EACjB,KAAK,EAAE,MAAM,GACZ,eAAe,CAIjB;AAED,qBAAa,cAAe,YAAW,YAAY;IACjD,QAAQ,CAAC,YAAY,EAAG,QAAQ,CAAU;IAC1C,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,YAAY,CAAS;IAE7B,OAAO,CAAC,eAAe,CAAU;IAEjC,uFAAuF;IACvF,OAAO,CAAC,QAAQ,CAAU;IAE1B,OAAO,CAAC,gBAAgB,CAAuB;IAE/C,iFAAiF;IACjF,OAAO,CAAC,sBAAsB;gBAyB5B,MAAM,EAAE,cAAc;IACtB;;;OAGG;IACH,OAAO,GAAE;QACP;;;;;;;;;;;;;WAaG;QACH,eAAe,CAAC,EAAE,OAAO,CAAC;QAC1B;;;;WAIG;QACH,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,8DAA8D;QAC9D,gBAAgB,CAAC,EAAE,oBAAoB,CAAC;KACpC;IAiBF,QAAQ,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC;IA8LzD;;;OAGG;IAKH,OAAO,CAAC,MAAM,CAAC,aAAa,CAUzB;IAEH,0EAA0E;IAC1E,OAAO,CAAC,qBAAqB;IAa7B;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAsBzB;;;OAGG;IAEH;;;OAGG;YACW,uBAAuB;IAiFrC;;OAEG;YACW,SAAS;IAiCvB,qDAAqD;IACrD,OAAO,CAAC,mBAAmB;IAgC3B;;;;;;;OAOG;YACW,kBAAkB;YA8BlB,cAAc;IA8I5B,eAAe,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CA+D9D"}
|
|
@@ -2,8 +2,10 @@
|
|
|
2
2
|
* @fileoverview OpenAI LLM provider
|
|
3
3
|
* @description Implements the ILLMProvider interface for OpenAI models.
|
|
4
4
|
* Also used by Mistral, xAI, DeepSeek, Perplexity, and Cohere
|
|
5
|
-
* (OpenAI-compatible APIs).
|
|
6
|
-
*
|
|
5
|
+
* (OpenAI-compatible APIs). Structured output is a forced function call,
|
|
6
|
+
* except for Cohere, whose compatibility API has no `tool_choice` and uses
|
|
7
|
+
* `response_format` instead. Supports multimodal input (images, audio) and
|
|
8
|
+
* audio output generation.
|
|
7
9
|
*/
|
|
8
10
|
import OpenAI from "openai";
|
|
9
11
|
import { requiresEntityId, } from "./types.js";
|
|
@@ -13,6 +15,7 @@ import { buildOutputStructureSection, buildResponseFormatSection, buildWebSearch
|
|
|
13
15
|
import { normalizeFinishReason } from "./finish-reason.js";
|
|
14
16
|
import { addUsage, compatibleUsage } from "./compatible-usage.js";
|
|
15
17
|
import { attachUsage, getFailedInvocationUsage } from "./usage-error.js";
|
|
18
|
+
import { cohereResponseFormat } from "./cohere-schema.js";
|
|
16
19
|
/** Usage from a Responses API response, which names its fields differently. */
|
|
17
20
|
function responsesUsage(response) {
|
|
18
21
|
const inputTokens = response.usage?.input_tokens ?? 0;
|
|
@@ -78,6 +81,29 @@ export class OpenAIProvider {
|
|
|
78
81
|
disableThinking;
|
|
79
82
|
/** Whether this client talks to OpenAI itself, or an OpenAI-compatible third party. */
|
|
80
83
|
isOpenAi;
|
|
84
|
+
structuredOutput;
|
|
85
|
+
/** Request fields that ask for structured output, in this provider's dialect. */
|
|
86
|
+
structuredOutputParams(outputSchema) {
|
|
87
|
+
if (this.structuredOutput === "response_format") {
|
|
88
|
+
return { response_format: cohereResponseFormat(outputSchema) };
|
|
89
|
+
}
|
|
90
|
+
return {
|
|
91
|
+
tools: [
|
|
92
|
+
{
|
|
93
|
+
type: "function",
|
|
94
|
+
function: {
|
|
95
|
+
name: "structured_response",
|
|
96
|
+
description: "Generate structured response matching the schema",
|
|
97
|
+
parameters: outputSchema,
|
|
98
|
+
},
|
|
99
|
+
},
|
|
100
|
+
],
|
|
101
|
+
tool_choice: {
|
|
102
|
+
type: "function",
|
|
103
|
+
function: { name: "structured_response" },
|
|
104
|
+
},
|
|
105
|
+
};
|
|
106
|
+
}
|
|
81
107
|
constructor(config,
|
|
82
108
|
/**
|
|
83
109
|
* Per-provider quirks. Defaults keep every provider that works today
|
|
@@ -86,6 +112,7 @@ export class OpenAIProvider {
|
|
|
86
112
|
options = {}) {
|
|
87
113
|
this.disableThinking = options.disableThinking ?? false;
|
|
88
114
|
this.isOpenAi = options.isOpenAi ?? false;
|
|
115
|
+
this.structuredOutput = options.structuredOutput ?? "tool_call";
|
|
89
116
|
if (!config.apiKey) {
|
|
90
117
|
throw new Error("OpenAI API key is required");
|
|
91
118
|
}
|
|
@@ -141,17 +168,6 @@ export class OpenAIProvider {
|
|
|
141
168
|
messages.push({ role: "system", content: request.systemPrompt });
|
|
142
169
|
}
|
|
143
170
|
messages.push({ role: "user", content: userContent });
|
|
144
|
-
// Use function calling for structured output
|
|
145
|
-
const tools = [
|
|
146
|
-
{
|
|
147
|
-
type: "function",
|
|
148
|
-
function: {
|
|
149
|
-
name: "structured_response",
|
|
150
|
-
description: "Generate structured response matching the schema",
|
|
151
|
-
parameters: request.outputSchema,
|
|
152
|
-
},
|
|
153
|
-
},
|
|
154
|
-
];
|
|
155
171
|
// Audio output configuration - ONLY enable when endpoint expects audio output
|
|
156
172
|
const modalities = ["text"];
|
|
157
173
|
let audioConfig;
|
|
@@ -167,13 +183,9 @@ export class OpenAIProvider {
|
|
|
167
183
|
model,
|
|
168
184
|
messages,
|
|
169
185
|
...(audioConfig ? { modalities, audio: audioConfig } : {}),
|
|
170
|
-
|
|
171
|
-
tool_choice: {
|
|
172
|
-
type: "function",
|
|
173
|
-
function: { name: "structured_response" },
|
|
174
|
-
},
|
|
186
|
+
...this.structuredOutputParams(request.outputSchema),
|
|
175
187
|
// Off where the model reasons by default: thinking mode rejects
|
|
176
|
-
// `tool_choice` outright, so this is what keeps the
|
|
188
|
+
// `tool_choice` outright, so this is what keeps the forced call legal.
|
|
177
189
|
...(this.disableThinking ? { thinking: { type: "disabled" } } : {}),
|
|
178
190
|
temperature: request.temperature ?? 0,
|
|
179
191
|
[tokenLimitParamFor(this.isOpenAi, model)]: request.maxTokens,
|
|
@@ -206,12 +218,23 @@ export class OpenAIProvider {
|
|
|
206
218
|
}
|
|
207
219
|
}
|
|
208
220
|
const usage = compatibleUsage(response.usage);
|
|
209
|
-
// Extract structured response
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
221
|
+
// Extract the structured response: the forced function call's arguments,
|
|
222
|
+
// or the message content in response_format mode.
|
|
223
|
+
let rawResponse;
|
|
224
|
+
if (this.structuredOutput === "response_format") {
|
|
225
|
+
const text = response.choices[0]?.message.content;
|
|
226
|
+
if (typeof text !== "string" || text.length === 0) {
|
|
227
|
+
throw attachUsage(new Error("Expected JSON message content from the provider"), usage, response.model);
|
|
228
|
+
}
|
|
229
|
+
rawResponse = text;
|
|
230
|
+
}
|
|
231
|
+
else {
|
|
232
|
+
const toolCall = response.choices[0]?.message.tool_calls?.[0];
|
|
233
|
+
if (!toolCall || toolCall.function.name !== "structured_response") {
|
|
234
|
+
throw attachUsage(new Error("Expected function call response from OpenAI"), usage, response.model);
|
|
235
|
+
}
|
|
236
|
+
rawResponse = toolCall.function.arguments;
|
|
213
237
|
}
|
|
214
|
-
const rawResponse = toolCall.function.arguments;
|
|
215
238
|
const finishReason = normalizeFinishReason(response.choices[0]?.finish_reason);
|
|
216
239
|
/*
|
|
217
240
|
Why the stop reason is read BEFORE parsing.
|
|
@@ -575,20 +598,7 @@ export class OpenAIProvider {
|
|
|
575
598
|
model,
|
|
576
599
|
messages,
|
|
577
600
|
...(audioConfig ? { modalities, audio: audioConfig } : {}),
|
|
578
|
-
|
|
579
|
-
{
|
|
580
|
-
type: "function",
|
|
581
|
-
function: {
|
|
582
|
-
name: "structured_response",
|
|
583
|
-
description: "Generate structured response matching the schema",
|
|
584
|
-
parameters: request.outputSchema,
|
|
585
|
-
},
|
|
586
|
-
},
|
|
587
|
-
],
|
|
588
|
-
tool_choice: {
|
|
589
|
-
type: "function",
|
|
590
|
-
function: { name: "structured_response" },
|
|
591
|
-
},
|
|
601
|
+
...this.structuredOutputParams(request.outputSchema),
|
|
592
602
|
temperature: request.temperature ?? 0,
|
|
593
603
|
[tokenLimitParamFor(this.isOpenAi, model)]: request.maxTokens,
|
|
594
604
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai.js","sourceRoot":"","sources":["../../../src/services/llm/openai.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"openai.js","sourceRoot":"","sources":["../../../src/services/llm/openai.ts"],"names":[],"mappings":"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"}
|