diff --git a/app/lib/.server/llm/api-key.ts b/app/lib/.server/llm/api-key.ts index 863f763..5867dd6 100644 --- a/app/lib/.server/llm/api-key.ts +++ b/app/lib/.server/llm/api-key.ts @@ -7,3 +7,4 @@ export function getAPIKey(cloudflareEnv: Env) { */ return env.ANTHROPIC_API_KEY || cloudflareEnv.ANTHROPIC_API_KEY; } + diff --git a/app/lib/.server/llm/base-url.ts b/app/lib/.server/llm/base-url.ts new file mode 100644 index 0000000..f3afdc3 --- /dev/null +++ b/app/lib/.server/llm/base-url.ts @@ -0,0 +1,4 @@ +import { env } from 'node:process'; +export function getBaseURL(cloudflareEnv: Env) { + return env.ANTHROPIC_BASE_URL || cloudflareEnv.ANTHROPIC_BASE_URL; +} diff --git a/app/lib/.server/llm/model.ts b/app/lib/.server/llm/model.ts index 8b3c6f1..9b99e85 100644 --- a/app/lib/.server/llm/model.ts +++ b/app/lib/.server/llm/model.ts @@ -1,7 +1,6 @@ import { createAnthropic } from '@ai-sdk/anthropic'; -import { env } from 'node:process'; -export function getAnthropicModel(apiKey: string) { - const baseURL = env.ANTHROPIC_BASE_URL; +export function getAnthropicModel(apiKey: string, baseURL: string) { + console.log('baseURL', baseURL); const anthropic = createAnthropic({ apiKey, baseURL, diff --git a/app/lib/.server/llm/stream-text.ts b/app/lib/.server/llm/stream-text.ts index cf937fd..9b7776a 100644 --- a/app/lib/.server/llm/stream-text.ts +++ b/app/lib/.server/llm/stream-text.ts @@ -1,6 +1,7 @@ import { streamText as _streamText, convertToCoreMessages } from 'ai'; import { getAPIKey } from '~/lib/.server/llm/api-key'; import { getAnthropicModel } from '~/lib/.server/llm/model'; +import { getBaseURL } from '~/lib/.server/llm/base-url'; import { MAX_TOKENS } from './constants'; import { getSystemPrompt } from './prompts'; @@ -23,7 +24,7 @@ export type StreamingOptions = Omit[0], 'model'>; export function streamText(messages: Messages, env: Env, options?: StreamingOptions) { return _streamText({ - model: getAnthropicModel(getAPIKey(env)), + model: getAnthropicModel(getAPIKey(env), getBaseURL(env)), system: getSystemPrompt(), maxTokens: MAX_TOKENS, headers: { diff --git a/package.json b/package.json index 07ffc0e..6ece036 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ "scripts": { "deploy": "npm run build && wrangler pages deploy", "build": "remix vite:build", - "dev": "remix vite:dev", + "dev": "remix vite:dev --port 23895", "test": "vitest --run", "test:watch": "vitest", "lint": "eslint --cache --cache-location ./node_modules/.cache/eslint .", diff --git a/worker-configuration.d.ts b/worker-configuration.d.ts index 606a4e5..28af737 100644 --- a/worker-configuration.d.ts +++ b/worker-configuration.d.ts @@ -1,3 +1,5 @@ interface Env { ANTHROPIC_API_KEY: string; + ANTHROPIC_BASE_URL: string; } +