@arvo-tools/agentic 1.2.3 → 1.2.5
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/Agent/stream/schema.d.ts +331 -7
- package/dist/Agent/stream/schema.d.ts.map +1 -1
- package/dist/Agent/stream/schema.js +51 -1
- package/dist/Agent/stream/schema.js.map +1 -1
- package/dist/Integrations/anthropic/index.d.ts.map +1 -1
- package/dist/Integrations/anthropic/index.js +40 -84
- package/dist/Integrations/anthropic/index.js.map +1 -1
- package/dist/Integrations/anthropic/nonstreamable.d.ts +7 -0
- package/dist/Integrations/anthropic/nonstreamable.d.ts.map +1 -0
- package/dist/Integrations/anthropic/nonstreamable.js +112 -0
- package/dist/Integrations/anthropic/nonstreamable.js.map +1 -0
- package/dist/Integrations/anthropic/streamable.d.ts +9 -0
- package/dist/Integrations/anthropic/streamable.d.ts.map +1 -0
- package/dist/Integrations/anthropic/streamable.js +245 -0
- package/dist/Integrations/anthropic/streamable.js.map +1 -0
- package/dist/Integrations/anthropic/types.d.ts +1 -1
- package/dist/Integrations/anthropic/types.d.ts.map +1 -1
- package/dist/Integrations/defaultContextTransformer.d.ts +3 -0
- package/dist/Integrations/defaultContextTransformer.d.ts.map +1 -0
- package/dist/Integrations/defaultContextTransformer.js +62 -0
- package/dist/Integrations/defaultContextTransformer.js.map +1 -0
- package/dist/Integrations/openai/index.d.ts.map +1 -1
- package/dist/Integrations/openai/index.js +48 -92
- package/dist/Integrations/openai/index.js.map +1 -1
- package/dist/Integrations/openai/nonstreamable.d.ts +10 -0
- package/dist/Integrations/openai/nonstreamable.d.ts.map +1 -0
- package/dist/Integrations/openai/nonstreamable.js +129 -0
- package/dist/Integrations/openai/nonstreamable.js.map +1 -0
- package/dist/Integrations/openai/streamable.d.ts +12 -0
- package/dist/Integrations/openai/streamable.d.ts.map +1 -0
- package/dist/Integrations/openai/streamable.js +321 -0
- package/dist/Integrations/openai/streamable.js.map +1 -0
- package/dist/Integrations/openai/types.d.ts +1 -1
- package/dist/Integrations/openai/types.d.ts.map +1 -1
- package/dist/Integrations/types.d.ts +5 -0
- package/dist/Integrations/types.d.ts.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +36 -1
- package/dist/index.js.map +1 -1
- package/package.json +3 -2
|
@@ -64,7 +64,10 @@ var api_1 = require("@opentelemetry/api");
|
|
|
64
64
|
var arvo_core_1 = require("arvo-core");
|
|
65
65
|
var zod_to_json_schema_1 = require("zod-to-json-schema");
|
|
66
66
|
var utils_1 = require("../../Agent/utils");
|
|
67
|
+
var defaultContextTransformer_1 = require("../defaultContextTransformer");
|
|
67
68
|
var prompts_1 = require("../prompts");
|
|
69
|
+
var nonstreamable_1 = require("./nonstreamable");
|
|
70
|
+
var streamable_1 = require("./streamable");
|
|
68
71
|
var utils_2 = require("./utils");
|
|
69
72
|
/**
|
|
70
73
|
* Creates an Arvo-compatible LLM Adapter for OpenAI and compatible models (e.g., Azure OpenAI).
|
|
@@ -84,7 +87,7 @@ var utils_2 = require("./utils");
|
|
|
84
87
|
var openaiLLMIntegration = function (client, config) {
|
|
85
88
|
return function (_a, _b) { return __awaiter(void 0, [_a, _b], void 0, function (_c, _d) {
|
|
86
89
|
var _e;
|
|
87
|
-
var _messages = _c.messages, _system = _c.system, tools = _c.tools, outputFormat = _c.outputFormat, lifecycle = _c.lifecycle, toolInteractions = _c.toolInteractions;
|
|
90
|
+
var _messages = _c.messages, _system = _c.system, tools = _c.tools, outputFormat = _c.outputFormat, lifecycle = _c.lifecycle, toolInteractions = _c.toolInteractions, onStream = _c.onStream;
|
|
88
91
|
var otelInfo = _d.otelInfo;
|
|
89
92
|
return __generator(this, function (_f) {
|
|
90
93
|
switch (_f.label) {
|
|
@@ -101,40 +104,21 @@ var openaiLLMIntegration = function (client, config) {
|
|
|
101
104
|
_e),
|
|
102
105
|
},
|
|
103
106
|
fn: function (span) { return __awaiter(void 0, void 0, void 0, function () {
|
|
104
|
-
var llmChatCompletionParams, _a, messages, system, limitMessage, toolDef, tools_1, tools_1_1, tool, formattedMessages, responseFormat,
|
|
105
|
-
var e_2,
|
|
106
|
-
var _f, _g, _h, _j, _k, _l, _m, _o, _p, _q
|
|
107
|
-
return __generator(this, function (
|
|
108
|
-
switch (
|
|
107
|
+
var llmChatCompletionParams, _a, messages, system, limitMessage, toolDef, tools_1, tools_1_1, tool, formattedMessages, responseFormat, enableStreaming, baseParams, result, llmUsage, executionUnits, content, e_1;
|
|
108
|
+
var e_2, _b;
|
|
109
|
+
var _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;
|
|
110
|
+
return __generator(this, function (_r) {
|
|
111
|
+
switch (_r.label) {
|
|
109
112
|
case 0:
|
|
110
|
-
llmChatCompletionParams = (
|
|
111
|
-
|
|
112
|
-
max_completion_tokens: 4096,
|
|
113
|
-
temperature: 0,
|
|
114
|
-
};
|
|
115
|
-
return [4 /*yield*/, ((_g = config === null || config === void 0 ? void 0 : config.contextTransformer) === null || _g === void 0 ? void 0 : _g.call(config, {
|
|
113
|
+
llmChatCompletionParams = __assign({ model: 'gpt-4o', max_completion_tokens: 4096, temperature: 0, stream: true }, ((_c = config === null || config === void 0 ? void 0 : config.invocationParam) !== null && _c !== void 0 ? _c : {}));
|
|
114
|
+
return [4 /*yield*/, ((_d = config === null || config === void 0 ? void 0 : config.contextTransformer) !== null && _d !== void 0 ? _d : defaultContextTransformer_1.defaultContextTransformer)({
|
|
116
115
|
messages: _messages,
|
|
117
116
|
system: _system,
|
|
118
|
-
})
|
|
117
|
+
})];
|
|
119
118
|
case 1:
|
|
120
|
-
_a =
|
|
121
|
-
messages: _messages.map(function (item) {
|
|
122
|
-
if (item.content.type === 'media' && item.seenCount > 0) {
|
|
123
|
-
return {
|
|
124
|
-
role: item.role,
|
|
125
|
-
content: {
|
|
126
|
-
type: 'text',
|
|
127
|
-
content: "Media file (type: ".concat(item.content.contentType.type, "@").concat(item.content.contentType.format, ") already parsed and looked at. No need for you to look at it again"),
|
|
128
|
-
},
|
|
129
|
-
seenCount: item.seenCount,
|
|
130
|
-
};
|
|
131
|
-
}
|
|
132
|
-
return item;
|
|
133
|
-
}),
|
|
134
|
-
system: _system,
|
|
135
|
-
}, messages = _a.messages, system = _a.system;
|
|
119
|
+
_a = _r.sent(), messages = _a.messages, system = _a.system;
|
|
136
120
|
if (toolInteractions.exhausted) {
|
|
137
|
-
limitMessage = (
|
|
121
|
+
limitMessage = (_f = (_e = config === null || config === void 0 ? void 0 : config.toolLimitPrompt) === null || _e === void 0 ? void 0 : _e.call(config, toolInteractions)) !== null && _f !== void 0 ? _f : prompts_1.DEFAULT_TOOL_LIMIT_PROMPT;
|
|
138
122
|
messages.push({
|
|
139
123
|
role: 'user',
|
|
140
124
|
content: {
|
|
@@ -147,8 +131,8 @@ var openaiLLMIntegration = function (client, config) {
|
|
|
147
131
|
}
|
|
148
132
|
(0, utils_1.setOpenInferenceInputAttr)({
|
|
149
133
|
llm: {
|
|
150
|
-
provider: (
|
|
151
|
-
system: (
|
|
134
|
+
provider: (_h = (_g = config === null || config === void 0 ? void 0 : config.telemetry) === null || _g === void 0 ? void 0 : _g.modelProvider) !== null && _h !== void 0 ? _h : 'openai',
|
|
135
|
+
system: (_k = (_j = config === null || config === void 0 ? void 0 : config.telemetry) === null || _j === void 0 ? void 0 : _j.modelSystem) !== null && _k !== void 0 ? _k : (((_l = config === null || config === void 0 ? void 0 : config.telemetry) === null || _l === void 0 ? void 0 : _l.modelProvider) === 'azure' ? 'azure_openai' : 'openai'),
|
|
152
136
|
model: llmChatCompletionParams === null || llmChatCompletionParams === void 0 ? void 0 : llmChatCompletionParams.model,
|
|
153
137
|
invocationParam: llmChatCompletionParams,
|
|
154
138
|
},
|
|
@@ -156,9 +140,9 @@ var openaiLLMIntegration = function (client, config) {
|
|
|
156
140
|
system: system,
|
|
157
141
|
tools: tools,
|
|
158
142
|
}, span);
|
|
159
|
-
|
|
143
|
+
_r.label = 2;
|
|
160
144
|
case 2:
|
|
161
|
-
|
|
145
|
+
_r.trys.push([2, 7, 8, 9]);
|
|
162
146
|
toolDef = [];
|
|
163
147
|
try {
|
|
164
148
|
for (tools_1 = __values(tools), tools_1_1 = tools_1.next(); !tools_1_1.done; tools_1_1 = tools_1.next()) {
|
|
@@ -176,7 +160,7 @@ var openaiLLMIntegration = function (client, config) {
|
|
|
176
160
|
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
177
161
|
finally {
|
|
178
162
|
try {
|
|
179
|
-
if (tools_1_1 && !tools_1_1.done && (
|
|
163
|
+
if (tools_1_1 && !tools_1_1.done && (_b = tools_1.return)) _b.call(tools_1);
|
|
180
164
|
}
|
|
181
165
|
finally { if (e_2) throw e_2.error; }
|
|
182
166
|
}
|
|
@@ -187,66 +171,37 @@ var openaiLLMIntegration = function (client, config) {
|
|
|
187
171
|
json_schema: {
|
|
188
172
|
name: 'response_schema',
|
|
189
173
|
description: 'The required response schema',
|
|
190
|
-
// biome-ignore lint/suspicious/noExplicitAny: Make the typescript compiler ignore
|
|
174
|
+
// biome-ignore lint/suspicious/noExplicitAny: Make the typescript compiler ignore
|
|
191
175
|
schema: (0, zod_to_json_schema_1.zodToJsonSchema)(outputFormat.format),
|
|
192
176
|
},
|
|
193
177
|
}
|
|
194
178
|
: undefined;
|
|
195
|
-
|
|
179
|
+
enableStreaming = (_o = (_m = config === null || config === void 0 ? void 0 : config.invocationParam) === null || _m === void 0 ? void 0 : _m.stream) !== null && _o !== void 0 ? _o : false;
|
|
180
|
+
baseParams = __assign(__assign({}, llmChatCompletionParams), { tools: toolDef.length ? toolDef : undefined, messages: formattedMessages, response_format: responseFormat, stream_options: enableStreaming ? { include_usage: true } : undefined });
|
|
181
|
+
result = void 0;
|
|
182
|
+
if (!enableStreaming) return [3 /*break*/, 4];
|
|
183
|
+
return [4 /*yield*/, (0, streamable_1.streamableOpenAI)(client, __assign(__assign({}, baseParams), { stream: true }), { span: span, onStream: onStream })];
|
|
196
184
|
case 3:
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
executionUnits = (
|
|
185
|
+
result = _r.sent();
|
|
186
|
+
return [3 /*break*/, 6];
|
|
187
|
+
case 4: return [4 /*yield*/, (0, nonstreamable_1.nonStreamableOpenAI)(client, __assign(__assign({}, baseParams), { stream: false }), { span: span })];
|
|
188
|
+
case 5:
|
|
189
|
+
result = _r.sent();
|
|
190
|
+
_r.label = 6;
|
|
191
|
+
case 6:
|
|
192
|
+
llmUsage = result.usage;
|
|
193
|
+
executionUnits = (_q = (_p = config === null || config === void 0 ? void 0 : config.executionunits) === null || _p === void 0 ? void 0 : _p.call(config, llmUsage.tokens.prompt, llmUsage.tokens.completion)) !== null && _q !== void 0 ? _q : llmUsage.tokens.prompt + llmUsage.tokens.completion;
|
|
206
194
|
(0, utils_1.setOpenInferenceUsageOutputAttr)(llmUsage, span);
|
|
207
|
-
if (
|
|
208
|
-
toolRequests
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
.
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
toolUseId: toolCall.id,
|
|
216
|
-
name: toolCall.function.name,
|
|
217
|
-
input: JSON.parse(toolCall.function.arguments),
|
|
218
|
-
});
|
|
219
|
-
}
|
|
220
|
-
catch (err) {
|
|
221
|
-
(0, arvo_core_1.exceptionToSpan)(err, span);
|
|
222
|
-
}
|
|
223
|
-
}
|
|
224
|
-
}
|
|
225
|
-
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
|
226
|
-
finally {
|
|
227
|
-
try {
|
|
228
|
-
if (_c && !_c.done && (_e = _b.return)) _e.call(_b);
|
|
229
|
-
}
|
|
230
|
-
finally { if (e_3) throw e_3.error; }
|
|
231
|
-
}
|
|
232
|
-
if (toolRequests.length) {
|
|
233
|
-
(0, utils_1.setOpenInferenceToolCallOutputAttr)({ toolCalls: toolRequests }, span);
|
|
234
|
-
return [2 /*return*/, {
|
|
235
|
-
type: 'tool_call',
|
|
236
|
-
toolRequests: toolRequests,
|
|
237
|
-
usage: llmUsage,
|
|
238
|
-
executionUnits: executionUnits,
|
|
239
|
-
}];
|
|
240
|
-
}
|
|
241
|
-
}
|
|
242
|
-
content = (_z = (_y = choice === null || choice === void 0 ? void 0 : choice.message) === null || _y === void 0 ? void 0 : _y.content) !== null && _z !== void 0 ? _z : '';
|
|
243
|
-
if (choice.finish_reason === 'length') {
|
|
244
|
-
content = "".concat(content, " [Max response token limit (<= ").concat((_0 = llmChatCompletionParams.max_tokens) !== null && _0 !== void 0 ? _0 : llmChatCompletionParams.max_completion_tokens, ") reached]");
|
|
245
|
-
throw new Error("Agent reached max token limit. The partial response is \"".concat(content, "\""));
|
|
246
|
-
}
|
|
247
|
-
if (choice.finish_reason === 'content_filter') {
|
|
248
|
-
content = "".concat(content, " [Request blocked due to OpenAI content filtering policies]");
|
|
195
|
+
if (result.toolRequests && result.toolRequests.length > 0) {
|
|
196
|
+
(0, utils_1.setOpenInferenceToolCallOutputAttr)({ toolCalls: result.toolRequests }, span);
|
|
197
|
+
return [2 /*return*/, {
|
|
198
|
+
type: 'tool_call',
|
|
199
|
+
toolRequests: result.toolRequests,
|
|
200
|
+
usage: llmUsage,
|
|
201
|
+
executionUnits: executionUnits,
|
|
202
|
+
}];
|
|
249
203
|
}
|
|
204
|
+
content = result.response || '';
|
|
250
205
|
(0, utils_1.setOpenInferenceResponseOutputAttr)({ response: content }, span);
|
|
251
206
|
if (outputFormat.type === 'json') {
|
|
252
207
|
return [2 /*return*/, {
|
|
@@ -263,14 +218,15 @@ var openaiLLMIntegration = function (client, config) {
|
|
|
263
218
|
usage: llmUsage,
|
|
264
219
|
executionUnits: executionUnits,
|
|
265
220
|
}];
|
|
266
|
-
case
|
|
267
|
-
e_1 =
|
|
221
|
+
case 7:
|
|
222
|
+
e_1 = _r.sent();
|
|
268
223
|
span.setStatus({ code: api_1.SpanStatusCode.ERROR, message: e_1 === null || e_1 === void 0 ? void 0 : e_1.message });
|
|
224
|
+
(0, arvo_core_1.exceptionToSpan)(e_1, span);
|
|
269
225
|
throw e_1;
|
|
270
|
-
case
|
|
226
|
+
case 8:
|
|
271
227
|
span.end();
|
|
272
228
|
return [7 /*endfinally*/];
|
|
273
|
-
case
|
|
229
|
+
case 9: return [2 /*return*/];
|
|
274
230
|
}
|
|
275
231
|
});
|
|
276
232
|
}); },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Integrations/openai/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kGAGqD;AACrD,0CAAoD;AACpD,uCAA+D;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Integrations/openai/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { Span } from '@opentelemetry/api';
|
|
2
|
+
import type OpenAI from 'openai';
|
|
3
|
+
import type { AzureOpenAI } from 'openai';
|
|
4
|
+
import type { LLMExecutionResult } from '../types';
|
|
5
|
+
export declare const nonStreamableOpenAI: <TClient extends OpenAI | AzureOpenAI>(client: TClient, param: Parameters<TClient["chat"]["completions"]["create"]>[0] & {
|
|
6
|
+
stream: false;
|
|
7
|
+
}, config: {
|
|
8
|
+
span: Span;
|
|
9
|
+
}) => Promise<LLMExecutionResult>;
|
|
10
|
+
//# sourceMappingURL=nonstreamable.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nonstreamable.d.ts","sourceRoot":"","sources":["../../../src/Integrations/openai/nonstreamable.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAE/C,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AACjC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAG1C,OAAO,KAAK,EAA6B,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAE9E,eAAO,MAAM,mBAAmB,GAAU,OAAO,SAAS,MAAM,GAAG,WAAW,EAC5E,QAAQ,OAAO,EACf,OAAO,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;IAAE,MAAM,EAAE,KAAK,CAAA;CAAE,EAClF,QAAQ;IACN,IAAI,EAAE,IAAI,CAAC;CACZ,KACA,OAAO,CAAC,kBAAkB,CAyE5B,CAAC"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
13
|
+
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
+
function step(op) {
|
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
18
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
+
switch (op[0]) {
|
|
21
|
+
case 0: case 1: t = op; break;
|
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
+
default:
|
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
+
if (t[2]) _.ops.pop();
|
|
31
|
+
_.trys.pop(); continue;
|
|
32
|
+
}
|
|
33
|
+
op = body.call(thisArg, _);
|
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
var __values = (this && this.__values) || function(o) {
|
|
39
|
+
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
|
40
|
+
if (m) return m.call(o);
|
|
41
|
+
if (o && typeof o.length === "number") return {
|
|
42
|
+
next: function () {
|
|
43
|
+
if (o && i >= o.length) o = void 0;
|
|
44
|
+
return { value: o && o[i++], done: !o };
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
48
|
+
};
|
|
49
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
50
|
+
exports.nonStreamableOpenAI = void 0;
|
|
51
|
+
var arvo_core_1 = require("arvo-core");
|
|
52
|
+
var nonStreamableOpenAI = function (client, param, config) { return __awaiter(void 0, void 0, void 0, function () {
|
|
53
|
+
var completion, choice, llmUsage, toolRequests, _a, _b, toolCall, content;
|
|
54
|
+
var e_1, _c;
|
|
55
|
+
var _d, _e, _f, _g, _h, _j, _k;
|
|
56
|
+
return __generator(this, function (_l) {
|
|
57
|
+
switch (_l.label) {
|
|
58
|
+
case 0: return [4 /*yield*/, client.chat.completions.create(param)];
|
|
59
|
+
case 1:
|
|
60
|
+
completion = _l.sent();
|
|
61
|
+
choice = completion.choices[0];
|
|
62
|
+
llmUsage = {
|
|
63
|
+
tokens: {
|
|
64
|
+
prompt: (_e = (_d = completion.usage) === null || _d === void 0 ? void 0 : _d.prompt_tokens) !== null && _e !== void 0 ? _e : 0,
|
|
65
|
+
completion: (_g = (_f = completion.usage) === null || _f === void 0 ? void 0 : _f.completion_tokens) !== null && _g !== void 0 ? _g : 0,
|
|
66
|
+
},
|
|
67
|
+
};
|
|
68
|
+
if ((_h = choice === null || choice === void 0 ? void 0 : choice.message) === null || _h === void 0 ? void 0 : _h.tool_calls) {
|
|
69
|
+
toolRequests = [];
|
|
70
|
+
try {
|
|
71
|
+
for (_a = __values(choice.message.tool_calls), _b = _a.next(); !_b.done; _b = _a.next()) {
|
|
72
|
+
toolCall = _b.value;
|
|
73
|
+
try {
|
|
74
|
+
toolRequests.push({
|
|
75
|
+
toolUseId: toolCall.id,
|
|
76
|
+
name: toolCall.function.name,
|
|
77
|
+
input: JSON.parse(toolCall.function.arguments),
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
catch (e) {
|
|
81
|
+
(0, arvo_core_1.logToSpan)({
|
|
82
|
+
level: 'WARNING',
|
|
83
|
+
message: "Failed to parse tool call arguments for tool '".concat(toolCall.function.name, "' (id: ").concat(toolCall.id, "). Tool call will be dropped. Error: ").concat(e.message),
|
|
84
|
+
}, config.span);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
89
|
+
finally {
|
|
90
|
+
try {
|
|
91
|
+
if (_b && !_b.done && (_c = _a.return)) _c.call(_a);
|
|
92
|
+
}
|
|
93
|
+
finally { if (e_1) throw e_1.error; }
|
|
94
|
+
}
|
|
95
|
+
if (toolRequests.length) {
|
|
96
|
+
return [2 /*return*/, {
|
|
97
|
+
toolRequests: toolRequests,
|
|
98
|
+
response: null,
|
|
99
|
+
usage: llmUsage,
|
|
100
|
+
}];
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
content = (_k = (_j = choice === null || choice === void 0 ? void 0 : choice.message) === null || _j === void 0 ? void 0 : _j.content) !== null && _k !== void 0 ? _k : '';
|
|
104
|
+
if (choice.finish_reason === 'length') {
|
|
105
|
+
content = content
|
|
106
|
+
? "".concat(content, "\n\n[Response truncated: Maximum token limit reached]")
|
|
107
|
+
: '[Response truncated: Maximum token limit reached]';
|
|
108
|
+
(0, arvo_core_1.logToSpan)({
|
|
109
|
+
level: 'WARNING',
|
|
110
|
+
message: 'Max token limit reached. Response truncated',
|
|
111
|
+
}, config.span);
|
|
112
|
+
}
|
|
113
|
+
if (choice.finish_reason === 'content_filter') {
|
|
114
|
+
content = "".concat(content, "\n\n[Request blocked due to OpenAI content filtering policies]");
|
|
115
|
+
(0, arvo_core_1.logToSpan)({
|
|
116
|
+
level: 'WARNING',
|
|
117
|
+
message: 'Content filtered by OpenAI',
|
|
118
|
+
}, config.span);
|
|
119
|
+
}
|
|
120
|
+
return [2 /*return*/, {
|
|
121
|
+
toolRequests: null,
|
|
122
|
+
response: content,
|
|
123
|
+
usage: llmUsage,
|
|
124
|
+
}];
|
|
125
|
+
}
|
|
126
|
+
});
|
|
127
|
+
}); };
|
|
128
|
+
exports.nonStreamableOpenAI = nonStreamableOpenAI;
|
|
129
|
+
//# sourceMappingURL=nonstreamable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nonstreamable.js","sourceRoot":"","sources":["../../../src/Integrations/openai/nonstreamable.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,uCAAsC;AAO/B,IAAM,mBAAmB,GAAG,UACjC,MAAe,EACf,KAAkF,EAClF,MAEC;;;;;;oBAEkB,qBAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,EAAA;;gBAAxD,UAAU,GAAG,SAA2C;gBAExD,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC/B,QAAQ,GAAoD;oBAChE,MAAM,EAAE;wBACN,MAAM,EAAE,MAAA,MAAA,UAAU,CAAC,KAAK,0CAAE,aAAa,mCAAI,CAAC;wBAC5C,UAAU,EAAE,MAAA,MAAA,UAAU,CAAC,KAAK,0CAAE,iBAAiB,mCAAI,CAAC;qBACrD;iBACF,CAAC;gBAEF,IAAI,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO,0CAAE,UAAU,EAAE,CAAC;oBAC1B,YAAY,GAAyC,EAAE,CAAC;;wBAC9D,KAAuB,KAAA,SAAA,MAAM,CAAC,OAAO,CAAC,UAAqD,CAAA,4CAAE,CAAC;4BAAnF,QAAQ;4BACjB,IAAI,CAAC;gCACH,YAAY,CAAC,IAAI,CAAC;oCAChB,SAAS,EAAE,QAAQ,CAAC,EAAE;oCACtB,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI;oCAC5B,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAA4B;iCAC1E,CAAC,CAAC;4BACL,CAAC;4BAAC,OAAO,CAAC,EAAE,CAAC;gCACX,IAAA,qBAAS,EACP;oCACE,KAAK,EAAE,SAAS;oCAChB,OAAO,EAAE,wDAAiD,QAAQ,CAAC,QAAQ,CAAC,IAAI,oBAAU,QAAQ,CAAC,EAAE,kDAAyC,CAAW,CAAC,OAAO,CAAE;iCACpK,EACD,MAAM,CAAC,IAAI,CACZ,CAAC;4BACJ,CAAC;wBACH,CAAC;;;;;;;;;oBAED,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC;wBACxB,sBAAO;gCACL,YAAY,cAAA;gCACZ,QAAQ,EAAE,IAAI;gCACd,KAAK,EAAE,QAAQ;6BAChB,EAAC;oBACJ,CAAC;gBACH,CAAC;gBAEG,OAAO,GAAG,MAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO,0CAAE,OAAO,mCAAI,EAAE,CAAC;gBAE7C,IAAI,MAAM,CAAC,aAAa,KAAK,QAAQ,EAAE,CAAC;oBACtC,OAAO,GAAG,OAAO;wBACf,CAAC,CAAC,UAAG,OAAO,0DAAuD;wBACnE,CAAC,CAAC,mDAAmD,CAAC;oBAExD,IAAA,qBAAS,EACP;wBACE,KAAK,EAAE,SAAS;wBAChB,OAAO,EAAE,6CAA6C;qBACvD,EACD,MAAM,CAAC,IAAI,CACZ,CAAC;gBACJ,CAAC;gBAED,IAAI,MAAM,CAAC,aAAa,KAAK,gBAAgB,EAAE,CAAC;oBAC9C,OAAO,GAAG,UAAG,OAAO,mEAAgE,CAAC;oBAErF,IAAA,qBAAS,EACP;wBACE,KAAK,EAAE,SAAS;wBAChB,OAAO,EAAE,4BAA4B;qBACtC,EACD,MAAM,CAAC,IAAI,CACZ,CAAC;gBACJ,CAAC;gBAED,sBAAO;wBACL,YAAY,EAAE,IAAI;wBAClB,QAAQ,EAAE,OAAO;wBACjB,KAAK,EAAE,QAAQ;qBAChB,EAAC;;;KACH,CAAC;AA/EW,QAAA,mBAAmB,uBA+E9B"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { Span } from '@opentelemetry/api';
|
|
2
|
+
import type OpenAI from 'openai';
|
|
3
|
+
import type { AzureOpenAI } from 'openai';
|
|
4
|
+
import type { AgentEventStreamer } from '../../Agent/stream/types';
|
|
5
|
+
import type { LLMExecutionResult } from '../types';
|
|
6
|
+
export declare const streamableOpenAI: <TClient extends OpenAI | AzureOpenAI>(client: TClient, param: Parameters<TClient["chat"]["completions"]["create"]>[0] & {
|
|
7
|
+
stream: true;
|
|
8
|
+
}, config: {
|
|
9
|
+
span: Span;
|
|
10
|
+
onStream: AgentEventStreamer;
|
|
11
|
+
}) => Promise<LLMExecutionResult>;
|
|
12
|
+
//# sourceMappingURL=streamable.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"streamable.d.ts","sourceRoot":"","sources":["../../../src/Integrations/openai/streamable.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAE/C,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AACjC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAC1C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAEnE,OAAO,KAAK,EAA6B,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAE9E,eAAO,MAAM,gBAAgB,GAAU,OAAO,SAAS,MAAM,GAAG,WAAW,EACzE,QAAQ,OAAO,EACf,OAAO,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;IAAE,MAAM,EAAE,IAAI,CAAA;CAAE,EACjF,QAAQ;IACN,IAAI,EAAE,IAAI,CAAC;IACX,QAAQ,EAAE,kBAAkB,CAAC;CAC9B,KACA,OAAO,CAAC,kBAAkB,CAyN5B,CAAC"}
|