parser.d.ts 3.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. import { ChatCompletion, ChatCompletionCreateParams, ChatCompletionMessageToolCall, ChatCompletionTool } from "../resources/chat/completions.js";
  2. import { ChatCompletionStreamingToolRunnerParams, ChatCompletionStreamParams, ChatCompletionToolRunnerParams, ParsedChatCompletion } from "../resources/beta/chat/completions.js";
  3. import { ResponseFormatJSONSchema } from "../resources/shared.js";
  4. import { type ResponseFormatTextJSONSchemaConfig } from "../resources/responses/responses.js";
  5. type AnyChatCompletionCreateParams = ChatCompletionCreateParams | ChatCompletionToolRunnerParams<any> | ChatCompletionStreamingToolRunnerParams<any> | ChatCompletionStreamParams;
  6. export type ExtractParsedContentFromParams<Params extends AnyChatCompletionCreateParams> = Params['response_format'] extends AutoParseableResponseFormat<infer P> ? P : null;
  7. export type AutoParseableResponseFormat<ParsedT> = ResponseFormatJSONSchema & {
  8. __output: ParsedT;
  9. $brand: 'auto-parseable-response-format';
  10. $parseRaw(content: string): ParsedT;
  11. };
  12. export declare function makeParseableResponseFormat<ParsedT>(response_format: ResponseFormatJSONSchema, parser: (content: string) => ParsedT): AutoParseableResponseFormat<ParsedT>;
  13. export type AutoParseableTextFormat<ParsedT> = ResponseFormatTextJSONSchemaConfig & {
  14. __output: ParsedT;
  15. $brand: 'auto-parseable-response-format';
  16. $parseRaw(content: string): ParsedT;
  17. };
  18. export declare function makeParseableTextFormat<ParsedT>(response_format: ResponseFormatTextJSONSchemaConfig, parser: (content: string) => ParsedT): AutoParseableTextFormat<ParsedT>;
  19. export declare function isAutoParsableResponseFormat<ParsedT>(response_format: any): response_format is AutoParseableResponseFormat<ParsedT>;
  20. type ToolOptions = {
  21. name: string;
  22. arguments: any;
  23. function?: ((args: any) => any) | undefined;
  24. };
  25. export type AutoParseableTool<OptionsT extends ToolOptions, HasFunction = OptionsT['function'] extends Function ? true : false> = ChatCompletionTool & {
  26. __arguments: OptionsT['arguments'];
  27. __name: OptionsT['name'];
  28. __hasFunction: HasFunction;
  29. $brand: 'auto-parseable-tool';
  30. $callback: ((args: OptionsT['arguments']) => any) | undefined;
  31. $parseRaw(args: string): OptionsT['arguments'];
  32. };
  33. export declare function makeParseableTool<OptionsT extends ToolOptions>(tool: ChatCompletionTool, { parser, callback, }: {
  34. parser: (content: string) => OptionsT['arguments'];
  35. callback: ((args: any) => any) | undefined;
  36. }): AutoParseableTool<OptionsT['arguments']>;
  37. export declare function isAutoParsableTool(tool: any): tool is AutoParseableTool<any>;
  38. export declare function maybeParseChatCompletion<Params extends ChatCompletionCreateParams | null, ParsedT = Params extends null ? null : ExtractParsedContentFromParams<NonNullable<Params>>>(completion: ChatCompletion, params: Params): ParsedChatCompletion<ParsedT>;
  39. export declare function parseChatCompletion<Params extends ChatCompletionCreateParams, ParsedT = ExtractParsedContentFromParams<Params>>(completion: ChatCompletion, params: Params): ParsedChatCompletion<ParsedT>;
  40. export declare function shouldParseToolCall(params: ChatCompletionCreateParams | null | undefined, toolCall: ChatCompletionMessageToolCall): boolean;
  41. export declare function hasAutoParseableInput(params: AnyChatCompletionCreateParams): boolean;
  42. export declare function validateInputTools(tools: ChatCompletionTool[] | undefined): void;
  43. export {};
  44. //# sourceMappingURL=parser.d.ts.map