@chinudotdev/provider-openai 0.1.3 → 0.1.4
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/README.md +14 -1
- package/dist/config.d.ts +3 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +1 -0
- package/dist/config.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/provider.d.ts.map +1 -1
- package/dist/provider.js +10 -3
- package/dist/provider.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -18,6 +18,7 @@ import { createOpenAIProvider } from "@chinudotdev/provider-openai";
|
|
|
18
18
|
const provider = createOpenAIProvider({
|
|
19
19
|
apiKey: process.env.OPENAI_API_KEY!,
|
|
20
20
|
baseURL: "https://api.openai.com", // optional
|
|
21
|
+
chatCompletionsPath: "/v1/chat/completions", // optional override
|
|
21
22
|
});
|
|
22
23
|
|
|
23
24
|
for await (const event of provider.stream(
|
|
@@ -33,11 +34,23 @@ for await (const event of provider.stream(
|
|
|
33
34
|
}
|
|
34
35
|
```
|
|
35
36
|
|
|
37
|
+
## OpenAI-compatible endpoints
|
|
38
|
+
|
|
39
|
+
`baseURL` is the API host or prefix. `chatCompletionsPath` defaults to `/v1/chat/completions`. Override it for providers that use a different route:
|
|
40
|
+
|
|
41
|
+
```typescript
|
|
42
|
+
const provider = createOpenAIProvider({
|
|
43
|
+
apiKey: process.env.GLM_API_KEY!,
|
|
44
|
+
baseURL: "https://api.z.ai/api/coding/paas/v4",
|
|
45
|
+
chatCompletionsPath: "/chat/completions",
|
|
46
|
+
});
|
|
47
|
+
```
|
|
48
|
+
|
|
36
49
|
## Environment helper
|
|
37
50
|
|
|
38
51
|
```typescript
|
|
39
52
|
import { createProviderFromEnv } from "@chinudotdev/provider-openai";
|
|
40
|
-
// Reads OPENAI_API_KEY, optional OPENAI_BASE_URL
|
|
53
|
+
// Reads OPENAI_API_KEY, optional OPENAI_BASE_URL, OPENAI_CHAT_COMPLETIONS_PATH
|
|
41
54
|
```
|
|
42
55
|
|
|
43
56
|
## With Agent SDK
|
package/dist/config.d.ts
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
export type OpenAIProviderConfig = {
|
|
2
2
|
apiKey: string;
|
|
3
3
|
baseURL?: string;
|
|
4
|
+
/** Path appended to baseURL for chat completions (default `/v1/chat/completions`). */
|
|
5
|
+
chatCompletionsPath?: string;
|
|
4
6
|
defaultHeaders?: Record<string, string>;
|
|
5
7
|
organization?: string;
|
|
6
8
|
};
|
|
7
9
|
export declare const DEFAULT_BASE_URL = "https://api.openai.com";
|
|
10
|
+
export declare const DEFAULT_CHAT_COMPLETIONS_PATH = "/v1/chat/completions";
|
|
8
11
|
//# sourceMappingURL=config.d.ts.map
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,oBAAoB,GAAG;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,eAAO,MAAM,gBAAgB,2BAA2B,CAAC"}
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,oBAAoB,GAAG;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sFAAsF;IACtF,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,eAAO,MAAM,gBAAgB,2BAA2B,CAAC;AACzD,eAAO,MAAM,6BAA6B,yBAAyB,CAAC"}
|
package/dist/config.js
CHANGED
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AASA,MAAM,CAAC,MAAM,gBAAgB,GAAG,wBAAwB,CAAC;AACzD,MAAM,CAAC,MAAM,6BAA6B,GAAG,sBAAsB,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { createOpenAIProvider } from "./provider.js";
|
|
2
2
|
export type { OpenAIProviderConfig } from "./config.js";
|
|
3
|
-
export { DEFAULT_BASE_URL } from "./config.js";
|
|
3
|
+
export { DEFAULT_BASE_URL, DEFAULT_CHAT_COMPLETIONS_PATH, } from "./config.js";
|
|
4
4
|
export { translateRequest } from "./translate-request.js";
|
|
5
5
|
export { parseSSE } from "./parse-sse.js";
|
|
6
6
|
export { mapHttpError, mapNetworkError, mapTimeoutError } from "./map-errors.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,YAAY,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,YAAY,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EACL,gBAAgB,EAChB,6BAA6B,GAC9B,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACjF,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAa1D,wBAAgB,qBAAqB,IAAI,QAAQ,CAWhD"}
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { createOpenAIProvider } from "./provider.js";
|
|
2
|
-
export { DEFAULT_BASE_URL } from "./config.js";
|
|
2
|
+
export { DEFAULT_BASE_URL, DEFAULT_CHAT_COMPLETIONS_PATH, } from "./config.js";
|
|
3
3
|
export { translateRequest } from "./translate-request.js";
|
|
4
4
|
export { parseSSE } from "./parse-sse.js";
|
|
5
5
|
export { mapHttpError, mapNetworkError, mapTimeoutError } from "./map-errors.js";
|
|
@@ -19,9 +19,13 @@ function requireEnv(name) {
|
|
|
19
19
|
export function createProviderFromEnv() {
|
|
20
20
|
const apiKey = requireEnv("OPENAI_API_KEY");
|
|
21
21
|
const baseURL = process.env.OPENAI_BASE_URL?.trim();
|
|
22
|
+
const chatCompletionsPath = process.env.OPENAI_CHAT_COMPLETIONS_PATH?.trim();
|
|
22
23
|
return createOpenAIProvider({
|
|
23
24
|
apiKey,
|
|
24
25
|
...(baseURL !== undefined && baseURL.length > 0 ? { baseURL } : {}),
|
|
26
|
+
...(chatCompletionsPath !== undefined && chatCompletionsPath.length > 0
|
|
27
|
+
? { chatCompletionsPath }
|
|
28
|
+
: {}),
|
|
25
29
|
});
|
|
26
30
|
}
|
|
27
31
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAErD,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAErD,OAAO,EACL,gBAAgB,EAChB,6BAA6B,GAC9B,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACjF,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAErD,SAAS,UAAU,CAAC,IAAY;IAC9B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAChC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CAAC,0CAA0C,IAAI,EAAE,CAAC,CAAC;QAChE,OAAO,CAAC,KAAK,CAAC,qCAAqC,IAAI,GAAG,CAAC,CAAC;QAC5D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,qBAAqB;IACnC,MAAM,MAAM,GAAG,UAAU,CAAC,gBAAgB,CAAC,CAAC;IAC5C,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,EAAE,CAAC;IACpD,MAAM,mBAAmB,GAAG,OAAO,CAAC,GAAG,CAAC,4BAA4B,EAAE,IAAI,EAAE,CAAC;IAC7E,OAAO,oBAAoB,CAAC;QAC1B,MAAM;QACN,GAAG,CAAC,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnE,GAAG,CAAC,mBAAmB,KAAK,SAAS,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC;YACrE,CAAC,CAAC,EAAE,mBAAmB,EAAE;YACzB,CAAC,CAAC,EAAE,CAAC;KACR,CAAC,CAAC;AACL,CAAC"}
|
package/dist/provider.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAoBxD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,oBAAoB,GAAG,QAAQ,CAyE3E"}
|
package/dist/provider.js
CHANGED
|
@@ -1,10 +1,17 @@
|
|
|
1
|
-
import { DEFAULT_BASE_URL } from "./config.js";
|
|
1
|
+
import { DEFAULT_BASE_URL, DEFAULT_CHAT_COMPLETIONS_PATH, } from "./config.js";
|
|
2
2
|
import { capabilities } from "./capabilities.js";
|
|
3
3
|
import { mapHttpError, mapNetworkError, mapTimeoutError, } from "./map-errors.js";
|
|
4
4
|
import { parseSSE } from "./parse-sse.js";
|
|
5
5
|
import { translateRequest } from "./translate-request.js";
|
|
6
|
+
function resolveChatCompletionsUrl(baseURL, path) {
|
|
7
|
+
const normalizedBase = baseURL.replace(/\/$/, "");
|
|
8
|
+
const normalizedPath = path.startsWith("/") ? path : `/${path}`;
|
|
9
|
+
return `${normalizedBase}${normalizedPath}`;
|
|
10
|
+
}
|
|
6
11
|
export function createOpenAIProvider(config) {
|
|
7
|
-
const baseURL =
|
|
12
|
+
const baseURL = config.baseURL ?? DEFAULT_BASE_URL;
|
|
13
|
+
const chatCompletionsPath = config.chatCompletionsPath ?? DEFAULT_CHAT_COMPLETIONS_PATH;
|
|
14
|
+
const chatCompletionsUrl = resolveChatCompletionsUrl(baseURL, chatCompletionsPath);
|
|
8
15
|
return {
|
|
9
16
|
async *stream(request, cancelSignal) {
|
|
10
17
|
if (cancelSignal.aborted) {
|
|
@@ -22,7 +29,7 @@ export function createOpenAIProvider(config) {
|
|
|
22
29
|
}
|
|
23
30
|
let response;
|
|
24
31
|
try {
|
|
25
|
-
response = await fetch(
|
|
32
|
+
response = await fetch(chatCompletionsUrl, {
|
|
26
33
|
method: "POST",
|
|
27
34
|
headers,
|
|
28
35
|
body: JSON.stringify(body),
|
package/dist/provider.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"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"}
|