89 lines
2.8 KiB
TypeScript
89 lines
2.8 KiB
TypeScript
import { env } from "@/env";
|
|
|
|
/**
|
|
* 内网知识库「查看原文」详情页地址前缀。
|
|
* 素材的 recUuid 直接拼接在其后即为完整原文链接。
|
|
*/
|
|
export const INTRANET_SOURCE_URL_BASE =
|
|
"https://chlib.b.uat.4.cn/knowlibrary/#/knowledge/mid-detail?recUuid=";
|
|
|
|
/** 由 recUuid 构造内网原文详情页地址;recUuid 为空时返回空串。 */
|
|
export function buildIntranetSourceUrl(recUuid?: string | null): string {
|
|
if (!recUuid) return "";
|
|
return `${INTRANET_SOURCE_URL_BASE}${encodeURIComponent(recUuid)}`;
|
|
}
|
|
|
|
function getBaseOrigin() {
|
|
if (typeof window !== "undefined") {
|
|
return window.location.origin;
|
|
}
|
|
// Fallback for SSR
|
|
return "http://localhost:2026";
|
|
}
|
|
|
|
export function getBackendBaseURL() {
|
|
if (env.NEXT_PUBLIC_BACKEND_BASE_URL) {
|
|
return new URL(env.NEXT_PUBLIC_BACKEND_BASE_URL, getBaseOrigin())
|
|
.toString()
|
|
.replace(/\/+$/, "");
|
|
} else {
|
|
return "";
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Canvas page has its own LangGraph base URL so canvas-specific modifications
|
|
* (different server, different route prefix, etc.) can be made independently
|
|
* without touching the main page's API path.
|
|
* Falls back to the main LangGraph URL when VITE_CANVAS_LANGGRAPH_BASE_URL is unset.
|
|
*/
|
|
export function getCanvasLangGraphBaseURL(): string {
|
|
if (env.NEXT_PUBLIC_CANVAS_LANGGRAPH_BASE_URL) {
|
|
return new URL(
|
|
env.NEXT_PUBLIC_CANVAS_LANGGRAPH_BASE_URL,
|
|
getBaseOrigin(),
|
|
).toString();
|
|
}
|
|
// Fall back to the main LangGraph URL (same server, different assistantId)
|
|
return getLangGraphBaseURL();
|
|
}
|
|
|
|
export function getLangGraphBaseURL(isMock?: boolean) {
|
|
if (env.NEXT_PUBLIC_LANGGRAPH_BASE_URL) {
|
|
return new URL(
|
|
env.NEXT_PUBLIC_LANGGRAPH_BASE_URL,
|
|
getBaseOrigin(),
|
|
).toString();
|
|
} else if (isMock) {
|
|
if (typeof window !== "undefined") {
|
|
return `${window.location.origin}/mock/api`;
|
|
}
|
|
return "http://localhost:3000/mock/api";
|
|
} else {
|
|
// LangGraph SDK requires a full URL, construct it from current origin
|
|
if (typeof window !== "undefined") {
|
|
return `${window.location.origin}/api/langgraph`;
|
|
}
|
|
// Fallback for SSR
|
|
return "http://localhost:2026/api/langgraph";
|
|
}
|
|
}
|
|
|
|
/** 空间外部系统后端 API 地址,通过 VITE_AIPI_BACKENP_URL 配置。 */
|
|
export function getNotebookApiBaseURL(): string {
|
|
if (env.NEXT_PUBLIC_NOTEBOOK_API_BASE_URL) {
|
|
return env.NEXT_PUBLIC_NOTEBOOK_API_BASE_URL.replace(/\/+$/, "");
|
|
}
|
|
return "";
|
|
}
|
|
|
|
/** 轻应用「新建笔记」系列接口的基础地址(与 DeerFlow Gateway 分离)。 */
|
|
export function getNoteApiBaseURL(): string {
|
|
if (env.NEXT_PUBLIC_NOTE_API_BASE_URL) {
|
|
return new URL(env.NEXT_PUBLIC_NOTE_API_BASE_URL, getBaseOrigin())
|
|
.toString()
|
|
.replace(/\/+$/, "");
|
|
}
|
|
return "";
|
|
}
|