From 7f2fc153b5d74a8de0fe5548583987f5ab6c402b Mon Sep 17 00:00:00 2001 From: hailin Date: Fri, 9 Jan 2026 20:45:44 -0800 Subject: [PATCH] refactor: simplify Anthropic client config using baseURL Remove https-proxy-agent dependency since ANTHROPIC_BASE_URL already supports pointing to a proxy server directly. Co-Authored-By: Claude Opus 4.5 --- docker-compose.yml | 2 -- .../services/conversation-service/package.json | 3 +-- .../claude/claude-agent.service.ts | 18 +++++++----------- pnpm-lock.yaml | 18 ------------------ 4 files changed, 8 insertions(+), 33 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 61ecd9f..1073ef7 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -232,7 +232,6 @@ services: REDIS_URL: redis://:${REDIS_PASSWORD:-redis123}@redis:6379 ANTHROPIC_API_KEY: ${ANTHROPIC_API_KEY} ANTHROPIC_BASE_URL: ${ANTHROPIC_BASE_URL:-https://api.anthropic.com} - ANTHROPIC_PROXY_URL: ${ANTHROPIC_PROXY_URL:-} KNOWLEDGE_SERVICE_URL: http://knowledge-service:3003 CORS_ORIGINS: https://iconsulting.szaiai.com,http://localhost:5173 ports: @@ -263,7 +262,6 @@ services: REDIS_URL: redis://:${REDIS_PASSWORD:-redis123}@redis:6379 ANTHROPIC_API_KEY: ${ANTHROPIC_API_KEY} ANTHROPIC_BASE_URL: ${ANTHROPIC_BASE_URL:-https://api.anthropic.com} - ANTHROPIC_PROXY_URL: ${ANTHROPIC_PROXY_URL:-} ports: - "3005:3005" networks: diff --git a/packages/services/conversation-service/package.json b/packages/services/conversation-service/package.json index 429cfe0..ff071da 100644 --- a/packages/services/conversation-service/package.json +++ b/packages/services/conversation-service/package.json @@ -31,8 +31,7 @@ "rxjs": "^7.8.0", "socket.io": "^4.8.3", "typeorm": "^0.3.19", - "uuid": "^9.0.0", - "https-proxy-agent": "^7.0.6" + "uuid": "^9.0.0" }, "devDependencies": { "@nestjs/cli": "^10.0.0", diff --git a/packages/services/conversation-service/src/infrastructure/claude/claude-agent.service.ts b/packages/services/conversation-service/src/infrastructure/claude/claude-agent.service.ts index d23fd94..5bb739b 100644 --- a/packages/services/conversation-service/src/infrastructure/claude/claude-agent.service.ts +++ b/packages/services/conversation-service/src/infrastructure/claude/claude-agent.service.ts @@ -1,7 +1,6 @@ import { Injectable, OnModuleInit } from '@nestjs/common'; import { ConfigService } from '@nestjs/config'; import Anthropic from '@anthropic-ai/sdk'; -import { HttpsProxyAgent } from 'https-proxy-agent'; import { ImmigrationToolsService } from './tools/immigration-tools.service'; import { buildSystemPrompt, SystemPromptConfig } from './prompts/system-prompt'; @@ -34,20 +33,17 @@ export class ClaudeAgentService implements OnModuleInit { ) {} onModuleInit() { - const proxyUrl = this.configService.get('ANTHROPIC_PROXY_URL'); - const clientOptions: ConstructorParameters[0] = { + const baseUrl = this.configService.get('ANTHROPIC_BASE_URL'); + + this.client = new Anthropic({ apiKey: this.configService.get('ANTHROPIC_API_KEY'), - }; + baseURL: baseUrl || undefined, + }); - // Configure proxy if specified - if (proxyUrl) { - console.log(`Using proxy for Anthropic API: ${proxyUrl}`); - const agent = new HttpsProxyAgent(proxyUrl); - clientOptions.httpAgent = agent; + if (baseUrl) { + console.log(`Using Anthropic API base URL: ${baseUrl}`); } - this.client = new Anthropic(clientOptions); - // Initialize with default config this.systemPromptConfig = { identity: '专业、友善、耐心的香港移民顾问', diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c38ee66..7a35a63 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -132,9 +132,6 @@ importers: class-validator: specifier: ^0.14.0 version: 0.14.3 - https-proxy-agent: - specifier: ^7.0.6 - version: 7.0.6 ioredis: specifier: ^5.3.0 version: 5.9.1 @@ -3553,11 +3550,6 @@ packages: - supports-color dev: false - /agent-base@7.1.4: - resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==} - engines: {node: '>= 14'} - dev: false - /agentkeepalive@4.6.0: resolution: {integrity: sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ==} engines: {node: '>= 8.0.0'} @@ -5596,16 +5588,6 @@ packages: - supports-color dev: false - /https-proxy-agent@7.0.6: - resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} - engines: {node: '>= 14'} - dependencies: - agent-base: 7.1.4 - debug: 4.4.3 - transitivePeerDependencies: - - supports-color - dev: false - /human-signals@2.1.0: resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} engines: {node: '>=10.17.0'}