From ffeec12312352be138bcfbc3899a4c525ed7a5c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=87=8E=E5=A3=B0?= Date: Wed, 18 Jan 2023 14:05:08 +0800 Subject: [PATCH 1/2] feat: support ky options --- src/fetch-api.ts | 3 +++ src/openai-client.ts | 4 ++++ 2 files changed, 7 insertions(+) diff --git a/src/fetch-api.ts b/src/fetch-api.ts index 5b14abb..e33cb58 100644 --- a/src/fetch-api.ts +++ b/src/fetch-api.ts @@ -1,4 +1,5 @@ import ky from 'ky'; +import type { Options } from 'ky'; import { OpenAIApiError } from './errors'; const DEFAULT_BASE_URL = 'https://api.openai.com/v1'; @@ -10,6 +11,7 @@ export function createApiInstance(opts: { apiKey: string; baseUrl?: string; organizationId?: string; + options?: Options; }) { return ky.extend({ prefixUrl: opts.baseUrl || DEFAULT_BASE_URL, @@ -21,6 +23,7 @@ export function createApiInstance(opts: { 'OpenAI-Organization': opts.organizationId, }), }, + ...opts.options, hooks: { beforeError: [ // @ts-ignore diff --git a/src/openai-client.ts b/src/openai-client.ts index bf65f7d..455e948 100644 --- a/src/openai-client.ts +++ b/src/openai-client.ts @@ -8,6 +8,7 @@ import type { } from './schemas/completion'; import type { EditParams, EditResponse } from './schemas/edit'; import type { EmbeddingParams, EmbeddingResponse } from './schemas/embedding'; +import type { Options } from 'ky'; export type ConfigOpts = { /** @@ -25,6 +26,8 @@ export type ConfigOpts = { * @see https://beta.openai.com/docs/api-reference/requesting-organization */ organizationId?: string; + + options?: Options; }; export class OpenAIClient { @@ -39,6 +42,7 @@ export class OpenAIClient { this.api = createApiInstance({ apiKey, organizationId: opts.organizationId, + options: opts.options, }); } From 2438a49efae2df0d1be3139cbee05ef5dad3c855 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=87=8E=E5=A3=B0?= Date: Wed, 18 Jan 2023 14:41:58 +0800 Subject: [PATCH 2/2] chore: rename var --- src/fetch-api.ts | 8 ++++++-- src/openai-client.ts | 6 +++--- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/fetch-api.ts b/src/fetch-api.ts index e33cb58..fe099bd 100644 --- a/src/fetch-api.ts +++ b/src/fetch-api.ts @@ -4,6 +4,10 @@ import { OpenAIApiError } from './errors'; const DEFAULT_BASE_URL = 'https://api.openai.com/v1'; +export interface FetchOptions extends Options { + credentials?: string; +} + /** * Create an instance of Ky with options shared by all requests. */ @@ -11,7 +15,7 @@ export function createApiInstance(opts: { apiKey: string; baseUrl?: string; organizationId?: string; - options?: Options; + fetchOptions?: FetchOptions; }) { return ky.extend({ prefixUrl: opts.baseUrl || DEFAULT_BASE_URL, @@ -23,7 +27,7 @@ export function createApiInstance(opts: { 'OpenAI-Organization': opts.organizationId, }), }, - ...opts.options, + ...opts.fetchOptions, hooks: { beforeError: [ // @ts-ignore diff --git a/src/openai-client.ts b/src/openai-client.ts index 455e948..3172970 100644 --- a/src/openai-client.ts +++ b/src/openai-client.ts @@ -8,7 +8,7 @@ import type { } from './schemas/completion'; import type { EditParams, EditResponse } from './schemas/edit'; import type { EmbeddingParams, EmbeddingResponse } from './schemas/embedding'; -import type { Options } from 'ky'; +import type { FetchOptions } from './fetch-api'; export type ConfigOpts = { /** @@ -27,7 +27,7 @@ export type ConfigOpts = { */ organizationId?: string; - options?: Options; + fetchOptions?: FetchOptions; }; export class OpenAIClient { @@ -42,7 +42,7 @@ export class OpenAIClient { this.api = createApiInstance({ apiKey, organizationId: opts.organizationId, - options: opts.options, + fetchOptions: opts.fetchOptions, }); }