import type { AppInfo } from '../types/dify_chat'; // 在客户端获取环境变量的辅助函数 const getEnvVar = (name: string, defaultValue: string = '') => { // 在服务端 if (typeof window === 'undefined') { return process.env[name] || defaultValue; } // 在客户端,从window.__ENV获取 return (window as any).__ENV?.[name] || defaultValue; }; // 从完整的APP URL中提取APP ID const extractAppId = (appUrl: string): string => { if (!appUrl) return ''; // 如果是完整的URL,提取最后的UUID部分 const match = appUrl.match(/\/app\/([a-f0-9-]{36})/); if (match) { return match[1]; } // 如果已经是UUID格式,直接返回 if (/^[a-f0-9-]{36}$/.test(appUrl)) { return appUrl; } return appUrl; }; // 获取FastAPI后端的基础URL // 客户端直接调用FastAPI后端,不再通过Remix API routes中转 const getApiBaseUrl = () => { // 在客户端,从 API_BASE_URL 配置获取后端地址 if (typeof window !== 'undefined') { // 客户端:需要从某处获取 baseUrl 配置 // 方案1: 从环境变量 // 方案2: 从 window 全局变量 // 方案3: 硬编码端口映射 // 获取当前端口 const port = window.location.port; // 端口到后端地址的映射(与 api-config.ts 保持一致) const portToBackend: Record = { '5173': 'http://172.16.0.55:8000', '51703': 'http://172.16.0.55:8073', '51704': 'http://10.79.97.17:8001', '51705': 'http://10.79.97.17:8002', '51706': 'http://10.79.97.17:8003', '51707': 'http://10.79.97.17:8004', '51708': 'http://10.79.97.17:8005', }; return portToBackend[port] || 'http://172.16.0.55:8000'; } // 服务端:不应该被调用 return ''; }; // 聊天应用配置 export const CHAT_CONFIG = { // API相关配置 - 客户端直接调用FastAPI后端的/dify路由 // 客户端 → FastAPI /dify/* → Dify API_URL: `${getApiBaseUrl()}/dify`, // 应用ID - 用于localStorage key(固定值) APP_ID: 'docreview-chat', // API_KEY 不再需要 - 服务端通过JWT处理认证 API_KEY: '', // 保留字段以兼容旧代码 // 应用信息 APP_INFO: { title: '大模型对话', description: '大模型对话', copyright: '大模型对话', privacy_policy: '大模型对话', default_language: 'zh-Hans', }, // 功能配置 isShowPrompt: false, promptTemplate: 'I want you to act as a javascript console.', // 本地化 LOCALE_COOKIE_NAME: 'locale', // 限制 DEFAULT_VALUE_MAX_LEN: 48, }; // SSE超时设置 export const SSE_TIMEOUT = 100000; // 内容类型 export const ContentType = { json: 'application/json', stream: 'text/event-stream', form: 'application/x-www-form-urlencoded; charset=UTF-8', download: 'application/octet-stream', };