Skip to content

Commit e242236

Browse files
committed
chore: remove deprecated methods
1 parent 64b56f3 commit e242236

File tree

8 files changed

+11
-185
lines changed

8 files changed

+11
-185
lines changed

README.md

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -287,8 +287,6 @@ main();
287287

288288
Like with `.stream()`, we provide a variety of [helpers and events](helpers.md#chat-events).
289289

290-
Note that `runFunctions` was previously available as well, but has been deprecated in favor of `runTools`.
291-
292290
Read more about various examples such as with integrating with [zod](helpers.md#integrate-with-zod),
293291
[next.js](helpers.md#integrate-with-nextjs), and [proxying a stream to the browser](helpers.md#proxy-streaming-to-a-browser).
294292

api.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -347,7 +347,6 @@ Methods:
347347

348348
Methods:
349349

350-
- <code>client.beta.chat.completions.<a href="./src/resources/beta/chat/completions.ts">runFunctions</a>(body, options?) -> ChatCompletionRunner | ChatCompletionStreamingRunner</code>
351350
- <code>client.beta.chat.completions.<a href="./src/resources/beta/chat/completions.ts">runTools</a>(body, options?) -> ChatCompletionRunner | ChatCompletionStreamingRunner</code>
352351
- <code>client.beta.chat.completions.<a href="./src/resources/beta/chat/completions.ts">stream</a>(body, options?) -> ChatCompletionStream</code>
353352

helpers.md

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -353,8 +353,6 @@ chat completion request, not for the entire call run.
353353
See an example of automated function calls in action in
354354
[`examples/function-call-helpers.ts`](examples/function-call-helpers.ts).
355355

356-
Note, `runFunctions` was also previously available, but has been deprecated in favor of `runTools`.
357-
358356
### Chat Events
359357

360358
#### `.on('connect', () => …)`

src/lib/AbstractChatCompletionRunner.ts

Lines changed: 2 additions & 90 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,8 @@ import {
1313
type BaseFunctionsArgs,
1414
RunnableToolFunction,
1515
} from './RunnableFunction';
16-
import { ChatCompletionFunctionRunnerParams, ChatCompletionToolRunnerParams } from './ChatCompletionRunner';
17-
import {
18-
ChatCompletionStreamingFunctionRunnerParams,
19-
ChatCompletionStreamingToolRunnerParams,
20-
} from './ChatCompletionStreamingRunner';
16+
import { ChatCompletionToolRunnerParams } from './ChatCompletionRunner';
17+
import { ChatCompletionStreamingToolRunnerParams } from './ChatCompletionStreamingRunner';
2118
import { isAssistantMessage, isFunctionMessage, isToolMessage } from './chatCompletionUtils';
2219
import { BaseEvents, EventStream } from './EventStream';
2320
import { ParsedChatCompletion } from '../resources/beta/chat/completions';
@@ -266,91 +263,6 @@ export class AbstractChatCompletionRunner<
266263
return await this._createChatCompletion(client, params, options);
267264
}
268265

269-
protected async _runFunctions<FunctionsArgs extends BaseFunctionsArgs>(
270-
client: OpenAI,
271-
params:
272-
| ChatCompletionFunctionRunnerParams<FunctionsArgs>
273-
| ChatCompletionStreamingFunctionRunnerParams<FunctionsArgs>,
274-
options?: RunnerOptions,
275-
) {
276-
const role = 'function' as const;
277-
const { function_call = 'auto', stream, ...restParams } = params;
278-
const singleFunctionToCall = typeof function_call !== 'string' && function_call?.name;
279-
const { maxChatCompletions = DEFAULT_MAX_CHAT_COMPLETIONS } = options || {};
280-
281-
const functionsByName: Record<string, RunnableFunction<any>> = {};
282-
for (const f of params.functions) {
283-
functionsByName[f.name || f.function.name] = f;
284-
}
285-
286-
const functions: ChatCompletionCreateParams.Function[] = params.functions.map(
287-
(f): ChatCompletionCreateParams.Function => ({
288-
name: f.name || f.function.name,
289-
parameters: f.parameters as Record<string, unknown>,
290-
description: f.description,
291-
}),
292-
);
293-
294-
for (const message of params.messages) {
295-
this._addMessage(message, false);
296-
}
297-
298-
for (let i = 0; i < maxChatCompletions; ++i) {
299-
const chatCompletion: ChatCompletion = await this._createChatCompletion(
300-
client,
301-
{
302-
...restParams,
303-
function_call,
304-
functions,
305-
messages: [...this.messages],
306-
},
307-
options,
308-
);
309-
const message = chatCompletion.choices[0]?.message;
310-
if (!message) {
311-
throw new OpenAIError(`missing message in ChatCompletion response`);
312-
}
313-
if (!message.function_call) return;
314-
const { name, arguments: args } = message.function_call;
315-
const fn = functionsByName[name];
316-
if (!fn) {
317-
const content = `Invalid function_call: ${JSON.stringify(name)}. Available options are: ${functions
318-
.map((f) => JSON.stringify(f.name))
319-
.join(', ')}. Please try again`;
320-
321-
this._addMessage({ role, name, content });
322-
continue;
323-
} else if (singleFunctionToCall && singleFunctionToCall !== name) {
324-
const content = `Invalid function_call: ${JSON.stringify(name)}. ${JSON.stringify(
325-
singleFunctionToCall,
326-
)} requested. Please try again`;
327-
328-
this._addMessage({ role, name, content });
329-
continue;
330-
}
331-
332-
let parsed;
333-
try {
334-
parsed = isRunnableFunctionWithParse(fn) ? await fn.parse(args) : args;
335-
} catch (error) {
336-
this._addMessage({
337-
role,
338-
name,
339-
content: error instanceof Error ? error.message : String(error),
340-
});
341-
continue;
342-
}
343-
344-
// @ts-expect-error it can't rule out `never` type.
345-
const rawContent = await fn.function(parsed, this);
346-
const content = this.#stringifyFunctionCallResult(rawContent);
347-
348-
this._addMessage({ role, name, content });
349-
350-
if (singleFunctionToCall) return;
351-
}
352-
}
353-
354266
protected async _runTools<FunctionsArgs extends BaseFunctionsArgs>(
355267
client: OpenAI,
356268
params:

src/lib/ChatCompletionRunner.ts

Lines changed: 1 addition & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import {
22
type ChatCompletionMessageParam,
33
type ChatCompletionCreateParamsNonStreaming,
44
} from '../resources/chat/completions';
5-
import { type RunnableFunctions, type BaseFunctionsArgs, RunnableTools } from './RunnableFunction';
5+
import { type BaseFunctionsArgs, RunnableTools } from './RunnableFunction';
66
import {
77
AbstractChatCompletionRunner,
88
AbstractChatCompletionRunnerEvents,
@@ -16,13 +16,6 @@ export interface ChatCompletionRunnerEvents extends AbstractChatCompletionRunner
1616
content: (content: string) => void;
1717
}
1818

19-
export type ChatCompletionFunctionRunnerParams<FunctionsArgs extends BaseFunctionsArgs> = Omit<
20-
ChatCompletionCreateParamsNonStreaming,
21-
'functions'
22-
> & {
23-
functions: RunnableFunctions<FunctionsArgs>;
24-
};
25-
2619
export type ChatCompletionToolRunnerParams<FunctionsArgs extends BaseFunctionsArgs> = Omit<
2720
ChatCompletionCreateParamsNonStreaming,
2821
'tools'
@@ -34,21 +27,6 @@ export class ChatCompletionRunner<ParsedT = null> extends AbstractChatCompletion
3427
ChatCompletionRunnerEvents,
3528
ParsedT
3629
> {
37-
/** @deprecated - please use `runTools` instead. */
38-
static runFunctions(
39-
client: OpenAI,
40-
params: ChatCompletionFunctionRunnerParams<any[]>,
41-
options?: RunnerOptions,
42-
): ChatCompletionRunner<null> {
43-
const runner = new ChatCompletionRunner();
44-
const opts = {
45-
...options,
46-
headers: { ...options?.headers, 'X-Stainless-Helper-Method': 'runFunctions' },
47-
};
48-
runner._run(() => runner._runFunctions(client, params, opts));
49-
return runner;
50-
}
51-
5230
static runTools<ParsedT>(
5331
client: OpenAI,
5432
params: ChatCompletionToolRunnerParams<any[]>,

src/lib/ChatCompletionStreamingRunner.ts

Lines changed: 2 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ import {
33
type ChatCompletionCreateParamsStreaming,
44
} from '../resources/chat/completions';
55
import { RunnerOptions, type AbstractChatCompletionRunnerEvents } from './AbstractChatCompletionRunner';
6-
import { type ReadableStream } from '../internal/shim-types';
7-
import { RunnableTools, type BaseFunctionsArgs, type RunnableFunctions } from './RunnableFunction';
6+
import type { ReadableStream } from '../internal/shim-types';
7+
import { RunnableTools, type BaseFunctionsArgs } from './RunnableFunction';
88
import { ChatCompletionSnapshot, ChatCompletionStream } from './ChatCompletionStream';
99
import OpenAI from '../index';
1010
import { AutoParseableTool } from '../lib/parser';
@@ -14,13 +14,6 @@ export interface ChatCompletionStreamEvents extends AbstractChatCompletionRunner
1414
chunk: (chunk: ChatCompletionChunk, snapshot: ChatCompletionSnapshot) => void;
1515
}
1616

17-
export type ChatCompletionStreamingFunctionRunnerParams<FunctionsArgs extends BaseFunctionsArgs> = Omit<
18-
ChatCompletionCreateParamsStreaming,
19-
'functions'
20-
> & {
21-
functions: RunnableFunctions<FunctionsArgs>;
22-
};
23-
2417
export type ChatCompletionStreamingToolRunnerParams<FunctionsArgs extends BaseFunctionsArgs> = Omit<
2518
ChatCompletionCreateParamsStreaming,
2619
'tools'
@@ -38,21 +31,6 @@ export class ChatCompletionStreamingRunner<ParsedT = null>
3831
return runner;
3932
}
4033

41-
/** @deprecated - please use `runTools` instead. */
42-
static runFunctions<T extends (string | object)[]>(
43-
client: OpenAI,
44-
params: ChatCompletionStreamingFunctionRunnerParams<T>,
45-
options?: RunnerOptions,
46-
): ChatCompletionStreamingRunner<null> {
47-
const runner = new ChatCompletionStreamingRunner(null);
48-
const opts = {
49-
...options,
50-
headers: { ...options?.headers, 'X-Stainless-Helper-Method': 'runFunctions' },
51-
};
52-
runner._run(() => runner._runFunctions(client, params, opts));
53-
return runner;
54-
}
55-
5634
static runTools<T extends (string | object)[], ParsedT = null>(
5735
client: OpenAI,
5836
params: ChatCompletionStreamingToolRunnerParams<T>,

src/lib/RunnableFunction.ts

Lines changed: 0 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -85,42 +85,13 @@ export function isRunnableFunctionWithParse<Args extends object>(
8585

8686
export type BaseFunctionsArgs = readonly (object | string)[];
8787

88-
export type RunnableFunctions<FunctionsArgs extends BaseFunctionsArgs> =
89-
[any[]] extends [FunctionsArgs] ? readonly RunnableFunction<any>[]
90-
: {
91-
[Index in keyof FunctionsArgs]: Index extends number ? RunnableFunction<FunctionsArgs[Index]>
92-
: FunctionsArgs[Index];
93-
};
94-
9588
export type RunnableTools<FunctionsArgs extends BaseFunctionsArgs> =
9689
[any[]] extends [FunctionsArgs] ? readonly RunnableToolFunction<any>[]
9790
: {
9891
[Index in keyof FunctionsArgs]: Index extends number ? RunnableToolFunction<FunctionsArgs[Index]>
9992
: FunctionsArgs[Index];
10093
};
10194

102-
/**
103-
* This is helper class for passing a `function` and `parse` where the `function`
104-
* argument type matches the `parse` return type.
105-
*
106-
* @deprecated - please use ParsingToolFunction instead.
107-
*/
108-
export class ParsingFunction<Args extends object> {
109-
function: RunnableFunctionWithParse<Args>['function'];
110-
parse: RunnableFunctionWithParse<Args>['parse'];
111-
parameters: RunnableFunctionWithParse<Args>['parameters'];
112-
description: RunnableFunctionWithParse<Args>['description'];
113-
name?: RunnableFunctionWithParse<Args>['name'];
114-
115-
constructor(input: RunnableFunctionWithParse<Args>) {
116-
this.function = input.function;
117-
this.parse = input.parse;
118-
this.parameters = input.parameters;
119-
this.description = input.description;
120-
this.name = input.name;
121-
}
122-
}
123-
12495
/**
12596
* This is helper class for passing a `function` and `parse` where the `function`
12697
* argument type matches the `parse` return type.

src/resources/beta/chat/completions.ts

Lines changed: 6 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import { APIResource } from '../../../resource';
44
import { ChatCompletionRunner } from '../../../lib/ChatCompletionRunner';
55
import { ChatCompletionStreamingRunner } from '../../../lib/ChatCompletionStreamingRunner';
6-
import { RunnerOptions } from '../../../lib/AbstractChatCompletionRunner';
76
import { ChatCompletionToolRunnerParams } from '../../../lib/ChatCompletionRunner';
87
import { ChatCompletionStreamingToolRunnerParams } from '../../../lib/ChatCompletionStreamingRunner';
98
import { ChatCompletionStream, type ChatCompletionStreamParams } from '../../../lib/ChatCompletionStream';
@@ -14,28 +13,21 @@ import {
1413
ChatCompletionMessageToolCall,
1514
} from '../../chat/completions';
1615
import { ExtractParsedContentFromParams, parseChatCompletion, validateInputTools } from '../../../lib/parser';
16+
import { RequestOptions } from '../../../internal/request-options';
17+
import { type APIPromise } from '../../../api-promise';
18+
import { RunnerOptions } from '../../../lib/AbstractChatCompletionRunner';
1719

18-
export {
19-
ChatCompletionStreamingRunner,
20-
type ChatCompletionStreamingFunctionRunnerParams,
21-
} from '../../../lib/ChatCompletionStreamingRunner';
20+
export { ChatCompletionStream, type ChatCompletionStreamParams } from '../../../lib/ChatCompletionStream';
21+
export { ChatCompletionRunner } from '../../../lib/ChatCompletionRunner';
22+
export { ChatCompletionStreamingRunner } from '../../../lib/ChatCompletionStreamingRunner';
2223
export {
2324
type RunnableFunction,
24-
type RunnableFunctions,
2525
type RunnableFunctionWithParse,
2626
type RunnableFunctionWithoutParse,
27-
ParsingFunction,
2827
ParsingToolFunction,
2928
} from '../../../lib/RunnableFunction';
3029
export { type ChatCompletionToolRunnerParams } from '../../../lib/ChatCompletionRunner';
3130
export { type ChatCompletionStreamingToolRunnerParams } from '../../../lib/ChatCompletionStreamingRunner';
32-
export { ChatCompletionStream, type ChatCompletionStreamParams } from '../../../lib/ChatCompletionStream';
33-
export {
34-
ChatCompletionRunner,
35-
type ChatCompletionFunctionRunnerParams,
36-
} from '../../../lib/ChatCompletionRunner';
37-
import { RequestOptions } from '../../../internal/request-options';
38-
import { type APIPromise } from '../../../index';
3931

4032
export interface ParsedFunction extends ChatCompletionMessageToolCall.Function {
4133
parsed_arguments?: unknown;

0 commit comments

Comments
 (0)