基于 shiy-temp分支修改
This commit is contained in:
@@ -0,0 +1,98 @@
|
||||
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;
|
||||
};
|
||||
|
||||
// 获取配置值并添加调试日志
|
||||
const getApiUrl = () => {
|
||||
// 在Remix中,我们使用本地API路由作为代理,而不是直接访问Dify API
|
||||
if (typeof window !== 'undefined') {
|
||||
// 客户端:使用相对路径访问本地API
|
||||
return '/api';
|
||||
} else {
|
||||
// 服务端:也使用相对路径
|
||||
return '/api';
|
||||
}
|
||||
};
|
||||
|
||||
const getAppId = () => {
|
||||
const rawAppId = getEnvVar('NEXT_PUBLIC_APP_ID', '');
|
||||
const extractedAppId = extractAppId(rawAppId);
|
||||
// console.log('🔧 Chat Config Debug:', {
|
||||
// rawAppId,
|
||||
// extractedAppId,
|
||||
// apiUrl: getApiUrl(),
|
||||
// hasApiKey: !!getEnvVar('NEXT_PUBLIC_APP_KEY', ''),
|
||||
// difyApiUrl: getEnvVar('NEXT_PUBLIC_API_URL', ''),
|
||||
// });
|
||||
return extractedAppId;
|
||||
};
|
||||
|
||||
// 聊天应用配置
|
||||
export const CHAT_CONFIG = {
|
||||
// API相关配置 - 使用本地API路由作为代理
|
||||
API_URL: getApiUrl(),
|
||||
APP_ID: getAppId(),
|
||||
API_KEY: getEnvVar('NEXT_PUBLIC_APP_KEY', ''),
|
||||
|
||||
// Dify API 配置(用于服务端)
|
||||
DIFY_API_URL: getEnvVar('NEXT_PUBLIC_API_URL', 'https://api.dify.ai/v1'),
|
||||
|
||||
// 应用信息
|
||||
APP_INFO: {
|
||||
title: '大模型对话',
|
||||
description: '大模型对话',
|
||||
copyright: '大模型对话',
|
||||
privacy_policy: '大模型对话',
|
||||
default_language: 'zh-Hans',
|
||||
},
|
||||
|
||||
// 功能配置
|
||||
isShowPrompt: false,
|
||||
promptTemplate: 'I want you to act as a javascript console.',
|
||||
|
||||
// API相关
|
||||
API_PREFIX: '/api',
|
||||
|
||||
// 本地化
|
||||
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',
|
||||
};
|
||||
Reference in New Issue
Block a user