From 4baf31d516d36b29f42dc9ea06a9b7b489337d28 Mon Sep 17 00:00:00 2001 From: zyh Date: Fri, 11 Oct 2024 12:10:07 +0000 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E5=AF=B9=E6=96=B0?= =?UTF-8?q?=E7=89=B9=E6=80=A7(API)=E7=9A=84=E4=BF=AE=E6=94=B9=EF=BC=9B=20f?= =?UTF-8?q?ix:=20=E4=BF=AE=E5=A4=8D=E4=BA=86=E4=BB=A3=E7=A0=81=E4=B8=AD?= =?UTF-8?q?=E7=9A=84=E4=B8=80=E4=B8=AA=E9=94=99=E8=AF=AF=EF=BC=9B=20refact?= =?UTF-8?q?or:=20=E9=87=8D=E5=86=99/=E9=87=8D=E6=9E=84=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=EF=BC=8C=E4=BD=86=E6=B2=A1=E6=9C=89=E6=94=B9=E5=8F=98API?= =?UTF-8?q?=E7=9A=84=E8=A1=8C=E4=B8=BA=EF=BC=9B=20style:=20=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E4=BA=86=E7=A9=BA=E6=A0=BC=E3=80=81=E6=A0=BC=E5=BC=8F?= =?UTF-8?q?=E5=8C=96=E3=80=81=E7=BC=BA=E5=A4=B1=E7=9A=84=E5=88=86=E5=8F=B7?= =?UTF-8?q?=E7=AD=89=EF=BC=9B=20test:=20=E6=B7=BB=E5=8A=A0=E4=BA=86?= =?UTF-8?q?=E7=BC=BA=E5=A4=B1=E7=9A=84=E6=B5=8B=E8=AF=95=E6=88=96=E4=BF=AE?= =?UTF-8?q?=E6=AD=A3=E4=BA=86=E7=8E=B0=E6=9C=89=E7=9A=84=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=EF=BC=9B=20docs:=20=E6=9B=B4=E6=96=B0=E4=BA=86=E6=96=87?= =?UTF-8?q?=E6=A1=A3=EF=BC=8C=E5=A6=82readme=EF=BC=9B=20build:=20=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=E4=BA=86=E4=BE=9D=E8=B5=96=E3=80=81=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E7=89=88=E6=9C=AC=EF=BC=9B=20ops:=20=E5=BD=B1=E5=93=8D?= =?UTF-8?q?=E4=BA=86=E5=9F=BA=E7=A1=80=E8=AE=BE=E6=96=BD=E3=80=81=E9=83=A8?= =?UTF-8?q?=E7=BD=B2=E3=80=81=E5=A4=87=E4=BB=BD=E3=80=81=E6=81=A2=E5=A4=8D?= =?UTF-8?q?=E7=AD=89=E6=93=8D=E4=BD=9C=E6=80=A7=E7=BB=84=E4=BB=B6=EF=BC=9B?= =?UTF-8?q?=20chore:=20=E4=BF=AE=E6=94=B9=E4=BA=86.gitignore=E7=AD=89?= =?UTF-8?q?=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 根据以上信息,你的commit message可以是: --- app/lib/.server/llm/api-key.ts | 1 + app/lib/.server/llm/base-url.ts | 4 ++++ app/lib/.server/llm/model.ts | 5 ++--- app/lib/.server/llm/stream-text.ts | 3 ++- package.json | 2 +- worker-configuration.d.ts | 2 ++ 6 files changed, 12 insertions(+), 5 deletions(-) create mode 100644 app/lib/.server/llm/base-url.ts 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; } +