Skip to content

Commit 8e55b1e

Browse files
committed
add support for options
1 parent 4864dca commit 8e55b1e

File tree

3 files changed

+23
-8
lines changed

3 files changed

+23
-8
lines changed

examples/tool-calls-beta-zod.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,8 @@ async function main() {
9999
console.log();
100100
}
101101
}
102+
103+
console.log(JSON.stringify(runner.params, null, 2));
102104
}
103105

104106
main();

src/lib/beta/BetaToolRunner.ts

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
import type { OpenAI } from '../..';
22
import { OpenAIError } from '../../core/error';
3+
import { buildHeaders } from '../../internal/headers';
4+
import type { RequestOptions } from '../../internal/request-options';
35
import type {
46
ChatCompletion,
57
ChatCompletionCreateParams,
@@ -42,6 +44,7 @@ export class BetaToolRunner<Stream extends boolean> {
4244
#mutated = false;
4345
/** Current state containing the request parameters */
4446
#state: { params: BetaToolRunnerParams };
47+
#options: BetaToolRunnerRequestOptions;
4548
/** Promise for the last message received from the assistant */
4649
#message?: Promise<ChatCompletion> | undefined;
4750
/** Cached tool response to avoid redundant executions */
@@ -58,6 +61,7 @@ export class BetaToolRunner<Stream extends boolean> {
5861
constructor(
5962
private client: OpenAI,
6063
params: BetaToolRunnerParams,
64+
options?: BetaToolRunnerRequestOptions,
6165
) {
6266
this.#state = {
6367
params: {
@@ -69,6 +73,10 @@ export class BetaToolRunner<Stream extends boolean> {
6973
},
7074
};
7175

76+
this.#options = {
77+
...options,
78+
headers: buildHeaders([{ 'x-stainless-helper': 'BetaToolRunner' }, options?.headers]),
79+
};
7280
this.#completion = promiseWithResolvers();
7381
}
7482

@@ -104,19 +112,22 @@ export class BetaToolRunner<Stream extends boolean> {
104112

105113
const { ...params } = this.#state.params;
106114
if (params.stream) {
107-
stream = this.client.beta.chat.completions.stream({ ...params, stream: true });
115+
stream = this.client.beta.chat.completions.stream({ ...params, stream: true }, this.#options);
108116
this.#message = stream.finalMessage();
109117
// Make sure that this promise doesn't throw before we get the option to do something about it.
110118
// Error will be caught when we call await this.#message ultimately
111119
this.#message?.catch(() => {});
112120
yield stream as any;
113121
} else {
114-
this.#message = this.client.beta.chat.completions.create({
115-
stream: false,
116-
tools: params.tools,
117-
messages: params.messages,
118-
model: params.model,
119-
});
122+
this.#message = this.client.beta.chat.completions.create(
123+
{
124+
stream: false,
125+
tools: params.tools,
126+
messages: params.messages,
127+
model: params.model,
128+
},
129+
this.#options,
130+
);
120131
yield this.#message as any;
121132
}
122133

@@ -428,3 +439,5 @@ export type BetaToolRunnerParams = Simplify<
428439
max_iterations?: number;
429440
}
430441
>;
442+
443+
export type BetaToolRunnerRequestOptions = Pick<RequestOptions, 'headers'>;

src/resources/chat/completions/completions.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ import { ChatCompletionToolRunnerParams } from '../../../lib/ChatCompletionRunne
1919
import { ChatCompletionStreamingToolRunnerParams } from '../../../lib/ChatCompletionStreamingRunner';
2020
import { ChatCompletionStream, type ChatCompletionStreamParams } from '../../../lib/ChatCompletionStream';
2121
import { ExtractParsedContentFromParams, parseChatCompletion, validateInputTools } from '../../../lib/parser';
22-
import { BetaToolRunner, type BetaToolRunnerParams } from '../../../lib/beta/BetaToolRunner';
22+
import { BetaToolRunner, BetaToolRunnerRequestOptions, type BetaToolRunnerParams } from '../../../lib/beta/BetaToolRunner';
2323
import type OpenAI from '../../../index';
2424

2525
export class Completions extends APIResource {

0 commit comments

Comments
 (0)