aboutsummaryrefslogtreecommitdiffstats
path: root/packages/shared/inference.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/shared/inference.ts')
-rw-r--r--packages/shared/inference.ts10
1 files changed, 10 insertions, 0 deletions
diff --git a/packages/shared/inference.ts b/packages/shared/inference.ts
index 7689f4f4..fb9fce09 100644
--- a/packages/shared/inference.ts
+++ b/packages/shared/inference.ts
@@ -1,6 +1,7 @@
import { Ollama } from "ollama";
import OpenAI from "openai";
import { zodResponseFormat } from "openai/helpers/zod";
+import * as undici from "undici";
import { z } from "zod";
import { zodToJsonSchema } from "zod-to-json-schema";
@@ -68,9 +69,18 @@ class OpenAIInferenceClient implements InferenceClient {
openAI: OpenAI;
constructor() {
+ const fetchOptions = serverConfig.inference.openAIProxyUrl
+ ? {
+ dispatcher: new undici.ProxyAgent(
+ serverConfig.inference.openAIProxyUrl,
+ ),
+ }
+ : undefined;
+
this.openAI = new OpenAI({
apiKey: serverConfig.inference.openAIApiKey,
baseURL: serverConfig.inference.openAIBaseUrl,
+ ...(fetchOptions ? { fetchOptions } : {}),
defaultHeaders: {
"X-Title": "Karakeep",
"HTTP-Referer": "https://karakeep.app",