This commit is contained in:
2026-06-16 14:34:09 +08:00
parent 1236865f4b
commit 4c56c7cb04
126 changed files with 14802 additions and 0 deletions

View File

@@ -0,0 +1,216 @@
export type ModelCategory =
| "text"
| "agent"
| "vision"
| "embedding"
| "code"
| "video"
| "image";
/** 卡片右上角促销角标 */
export type ModelCornerBadge = "热门" | "特惠";
export type ModelCatalogItem = {
id: string;
name: string;
description: string;
tags: string[];
context: string;
priceIn: string;
priceOut: string;
category: ModelCategory;
provider: string;
priceLabel?: string;
pricingNote?: string;
contextLabel?: string;
logo?: string;
logoAlt?: string;
highlight?: "hot" | "offer" | null;
};
/** 后端 API 返回的模型数据格式 */
export type ApiModelItem = {
id: string;
name: string;
description: string;
pricing?: {
type: string;
inputPrice?: number;
outputPrice?: number;
currency?: string;
unit?: string;
columns?: string[];
rows?: { label: string; values: Record<string, number> }[];
unitLabel?: string;
};
highlight?: "hot" | "offer" | null;
promoBadges?: string[];
capabilityTags?: string[];
provider?: string;
version?: string;
updatedAt?: string;
isNew?: boolean;
};
/** 根据 highlight 获取角标(仅后端字段) */
export function getCornerBadgeFromHighlight(
highlight?: "hot" | "offer" | null,
): ModelCornerBadge | undefined {
if (highlight === "hot") return "热门";
if (highlight === "offer") return "特惠";
return undefined;
}
export type ModelMarqueeItem = Pick<
ModelCatalogItem,
"id" | "name" | "logo" | "logoAlt" | "provider"
>;
export function getMarqueeModelRows(models: ModelCatalogItem[]): {
rowLtr: ModelMarqueeItem[];
rowRtl: ModelMarqueeItem[];
} {
const items: ModelMarqueeItem[] = models.map((m) => ({
id: m.id,
name: m.name,
logo: m.logo,
logoAlt: m.logoAlt,
provider: m.provider,
}));
const mid = Math.ceil(items.length / 2);
return {
rowLtr: items.slice(0, mid),
rowRtl: items.slice(mid),
};
}
export const modelSquarePage = {
eyebrow: "模型",
title: "模型广场",
lead: "浏览平台已接入的 API 大模型文本、Agent、多模态、向量、编程、视频与图像生成按场景筛选并查看参考价格。",
} as const;
export const modelCategoryLabels: Record<ModelCategory | "all", string> = {
all: "全部",
agent: "Agent / 智能体",
text: "文本 / 旗舰",
vision: "多模态",
code: "编程",
embedding: "向量嵌入",
video: "视频生成",
image: "图像生成",
};
/** 标签去重(保留首次出现顺序) */
export function uniqueTags(tags: string[]): string[] {
const seen = new Set<string>();
const out: string[] = [];
for (const t of tags) {
const s = t.trim();
if (!s || seen.has(s)) continue;
seen.add(s);
out.push(s);
}
return out;
}
function inferCategory(
description: string,
tags: string[],
): ModelCategory {
const desc = `${description} ${tags.join(" ")}`;
if (desc.includes("视频")) return "video";
if (desc.includes("图像") || desc.includes("文生图")) return "image";
if (desc.includes("Embedding") || desc.includes("embedding")) return "embedding";
if (desc.includes("代码") || desc.includes("Coding") || desc.includes("编程"))
return "code";
if (desc.includes("多模态") || desc.includes("视觉")) return "vision";
if (desc.includes("Agent") || desc.includes("推理")) return "agent";
return "text";
}
function formatPricing(api: ApiModelItem): Pick<
ModelCatalogItem,
"priceIn" | "priceOut" | "priceLabel" | "pricingNote"
> {
let priceIn = "—";
let priceOut = "—";
let pricingNote: string | undefined;
let priceLabel: string | undefined;
const p = api.pricing;
if (!p) return { priceIn, priceOut, priceLabel, pricingNote };
if (
p.type === "simple" &&
p.inputPrice !== undefined &&
p.outputPrice !== undefined
) {
const cur = p.currency ?? "¥";
priceIn = `${cur}${p.inputPrice.toFixed(2)}`;
priceOut = `${cur}${p.outputPrice.toFixed(2)}`;
} else if (p.type === "table" && p.rows && p.columns) {
priceLabel = p.unitLabel ?? "价格";
const parts: string[] = [];
for (const row of p.rows) {
for (const col of p.columns) {
const val = row.values[col];
if (val !== undefined) {
parts.push(`${row.label} ${col} ¥${val}`);
}
}
}
pricingNote = parts.length > 0 ? parts.join(" · ") : undefined;
}
return { priceIn, priceOut, priceLabel, pricingNote };
}
/** 将后端公开模型列表映射为展示用目录(无静态合并) */
export function mapApiModelsToCatalog(
apiModels: ApiModelItem[],
): ModelCatalogItem[] {
return apiModels.map((api) => {
const tags = uniqueTags([
...(api.capabilityTags ?? []),
...(api.promoBadges ?? []),
]);
const description = api.description ?? "";
const prices = formatPricing(api);
return {
id: api.id,
name: api.name,
description,
tags,
context: api.version?.trim() || "—",
...prices,
category: inferCategory(description, tags),
provider: api.provider?.trim() || "—",
contextLabel: "版本 / 规格",
highlight: api.highlight ?? null,
};
});
}
/** 首页主推:优先后端 highlight否则取列表前三 */
export function pickHomeFeaturedModels(
models: ModelCatalogItem[],
): (ModelCatalogItem & { cornerBadge?: ModelCornerBadge })[] {
const decorate = (
model: ModelCatalogItem,
): ModelCatalogItem & { cornerBadge?: ModelCornerBadge } => ({
...model,
tags: model.tags.includes("主推") ? model.tags : ["主推", ...model.tags],
cornerBadge: getCornerBadgeFromHighlight(model.highlight),
});
const highlighted = models.filter(
(m) => m.highlight === "hot" || m.highlight === "offer",
);
if (highlighted.length > 0) {
return highlighted.slice(0, 3).map(decorate);
}
return models.slice(0, 3).map(decorate);
}

View File

@@ -0,0 +1,162 @@
export type NewsArticle = {
slug: string;
tag: string;
title: string;
summary: string;
date: string;
author: string;
readMinutes: number;
image: string;
imageAlt: string;
paragraphs: string[];
};
export const newsListPage = {
eyebrow: "资讯",
title: "AI 新闻资讯",
lead: "精选行业动态、模型发布与产品实践,帮助团队保持对 AI 生态的同步认知。",
} as const;
/** 与 public/news/1.webp … 8.webp 一一对应 */
export const newsArticles: NewsArticle[] = [
{
slug: "model-square-launch",
tag: "产品",
title: "模型广场上线:统一浏览平台可用模型",
summary: "按场景分类查看上下文、能力与参考价格,技术选型一页完成。",
date: "2026-05-20",
author: "海宇数科产品团队",
readMinutes: 3,
image: "/news/1.webp",
imageAlt: "模型广场界面与多模型能力示意",
paragraphs: [
"模型广场页面现已上线,汇总海宇数科自营与接入模型的能力标签、上下文长度与参考单价,方便技术负责人做选型对比。",
"首页「超全模型库」精选三款主力模型,完整目录请访问模型广场。后续将支持按行业筛选与 API 文档跳转。",
"建议结合报告智能体场景模板一起评估:文本推理、报告成稿与多模态可组合调用,避免「单模型包打天下」带来的成本与效果失衡。",
],
},
{
slug: "report-templates-2",
tag: "产品",
title: "智能报告模板库 2.0 发布",
summary: "新增制造业与零售行业模板,支持多语言导出。",
date: "2026-05-12",
author: "海宇数科产品团队",
readMinutes: 4,
image: "/news/2.webp",
imageAlt: "智能报告模板与结构化章节预览",
paragraphs: [
"智能报告模板库 2.0 即日起面向全部企业客户开放。本次更新重点补齐制造业产能分析、零售渠道动销解读两类高频场景,模板结构与首页「大模型智能报告」四类智能体输出保持一致,便于从示例一键切换到生产任务。",
"多语言导出支持简体中文、英文与繁体中文三种排版骨架;图表与表格标题将随语言包自动切换。若你已在用 1.x 模板,升级后历史任务无需重配字段映射。",
"建议团队在上线前用 KYB 或供应商筛查场景各跑一条试算任务,确认复核节点与导出样式符合内部合规要求。",
],
},
{
slug: "kyb-batch-export",
tag: "产品",
title: "KYB 报告支持批量导出与审计留痕",
summary: "复核结论、证据链与时间戳一并打包,满足银行尽调归档。",
date: "2026-05-08",
author: "海宇数科产品团队",
readMinutes: 4,
image: "/news/3.webp",
imageAlt: "KYB 企业核验与批量导出流程示意",
paragraphs: [
"KYB 企业核验场景新增批量导出:单次任务最多 50 个主体,导出 ZIP 内含 PDF 报告、证据链 JSON 与操作审计日志,满足银行尽调留痕要求。",
"审计日志记录模型版本、工具调用摘要与人工复核人,不可篡改字段由平台侧签名。",
"批量任务仍支持在关键节点暂停复核,避免高风险主体在未确认情况下进入正式档案系统。",
],
},
{
slug: "long-context-report-trial",
tag: "模型",
title: "长上下文报告模型开放试用",
summary: "256K 上下文面向超长年报与招股书场景。",
date: "2026-04-28",
author: "海宇数科模型平台",
readMinutes: 5,
image: "/news/4.webp",
imageAlt: "长文档报告模型与上下文能力示意",
paragraphs: [
"Haiyu-Report-Max 256K 上下文版本进入限量试用。该版本针对年报、招股书与合并报表等超长输入做了分段索引优化,在 IC Memo 与管理层汇报场景中可显著减少人工摘抄时间。",
"试用配额按企业账号发放,默认并发 2 路。价格参考模型广场公示的输入 / 输出单价,试用期间不计入正式账单。",
"若文档含大量扫描页,建议与 Haiyu-Vision-Doc 组合调用:视觉模型先提取表格与段落,再由报告模型成稿。",
],
},
{
slug: "finance-shared-services-ai",
tag: "行业",
title: "大模型在财务共享中心的落地观察",
summary: "从试点到规模化的三条路径与常见坑位。",
date: "2026-04-15",
author: "海宇数科行业研究",
readMinutes: 6,
image: "/news/5.webp",
imageAlt: "财务共享与 AI 助手协同办公场景",
paragraphs: [
"财务共享中心是大模型落地最密集的企业职能之一,但成功率差异主要来自「流程嵌入深度」而非模型选型本身。我们观察到三条可复用路径:制度问答助手、关账说明自动生成、异常凭证解释。",
"试点阶段常见坑位包括:指标口径未与数据中台对齐、输出直接进 ERP 缺少人工节点、以及把通用聊天模型硬用于结构化报告。",
"规模化阶段建议将模型调用纳入统一网关,按场景路由到 Text-Pro 或 Report-Max并在模型广场查看实时价格与上下文上限。",
],
},
{
slug: "report-agent-orchestration",
tag: "实践",
title: "报告智能体编排最佳实践",
summary: "如何在关键节点保留人工审核而不拖慢交付。",
date: "2026-03-30",
author: "海宇数科解决方案",
readMinutes: 5,
image: "/news/6.webp",
imageAlt: "报告智能体三步流程与编排示意",
paragraphs: [
"报告智能体的一体化流水线已内置模型与工具,但风控场景仍需要在关键节点保留人工审核。推荐在「高风险信号写出后」「导出 PDF 前」设置两个可选暂停点,平均只增加约 38 分钟等待。",
"编排上尽量用场景模板驱动,而不是在对话里临时描述输出结构;模板与智能报告卡片一一对应,可减少返工。",
"安装渠道与 IDE 插件形态仍在完善中,官网「一键安装」入口将同步更新。",
],
},
{
slug: "multimodal-contract-review",
tag: "行业",
title: "多模态审阅如何缩短合同核验周期",
summary: "扫描件 OCR 与主体风险批注一体化,降低法务重复劳动。",
date: "2026-03-18",
author: "海宇数科行业研究",
readMinutes: 5,
image: "/news/7.webp",
imageAlt: "合同扫描件与多模态风险批注示意",
paragraphs: [
"法务团队在处理供应商合同时,往往需要在 PDF 扫描件、工商数据和司法风险之间来回切换。Haiyu-Vision-Doc 与合同核验场景模板组合后,可在同一任务流中完成主体状态校验与条款风险提示。",
"试点客户反馈:平均首轮审阅时间从约 45 分钟降至 15 分钟以内,复核节点仍由法务负责人确认后导出。",
"对于含大量表格的附件,建议开启「表格优先解析」选项,避免段落顺序错乱影响批注位置。",
],
},
{
slug: "enterprise-rag-knowledge-base",
tag: "实践",
title: "企业制度库 RAG从问答到可引用报告",
summary: "向量检索 + 报告模型,让制度问答输出带条款出处。",
date: "2026-03-05",
author: "海宇数科解决方案",
readMinutes: 6,
image: "/news/8.webp",
imageAlt: "企业知识库检索与 RAG 问答示意",
paragraphs: [
"许多企业将 Haiyu-Embed-v2 用于制度库与历史报告片段召回,再交由 Haiyu-Text-Pro 或 Report-Max 生成带引用的答复。相比纯聊天接口,报告模型更易输出结构化章节,便于合规归档。",
"实施时建议按部门拆分知识库权限,并在网关侧记录检索命中片段 ID以满足内控审计要求。",
"若与报告智能体联用,可将高频问答沉淀为场景模板,减少业务人员重复描述需求。",
],
},
];
export function getNewsBySlug(slug: string): NewsArticle | undefined {
return newsArticles.find((a) => a.slug === slug);
}
export function getAllNewsSlugs(): string[] {
return newsArticles.map((a) => a.slug);
}
export function getHomeNewsPreview(count = 3): NewsArticle[] {
return newsArticles.slice(0, count);
}

330
src/content/site.ts Normal file
View File

@@ -0,0 +1,330 @@
export const site = {
brand: "海宇数科",
tagline: "企业级大模型服务与智能报告平台",
brandAssets: {
logo: "/logo.png",
logoAlt: "海宇数科",
favicon: "/favicon.ico",
webManifest: "/site.webmanifest",
},
links: {
console: "https://console.haiyushuke.com",
customerService:
"https://work.weixin.qq.com/kfid/kfc1f8fc41acaca0895",
},
contact: {
eyebrow: "联系",
title: "联系我们",
lead: "产品咨询、技术支持与合作洽谈,可通过以下方式与我们联系。",
email: "main@haiyushuke.cn",
phoneDisplay: "+86 15018866168",
phoneTel: "+8615018866168",
customerServiceLabel: "在线客服",
business: {
title: "扫码咨询",
lead: "扫码加企微,一对一咨询 MCP 接入",
qrImage: "/contact/business-wechat-qr.png",
qrAlt: "企业微信商务洽谈二维码",
phoneLabel: "电话咨询",
},
},
nav: [
{ label: "文档中心", href: "/docs" },
{ label: "智能报告", href: "/reports" },
{ label: "Agent 技能", href: "/agents" },
{ label: "模型能力", href: "/models" },
{ label: "企业方案", href: "/solutions" },
{ label: "AI 资讯", href: "/news" },
],
hero: {
eyebrow: "大模型服务",
title: "用智能报告与智能体,把数据变成可决策的洞察",
lead: "面向企业与团队的官方能力展示站点:多模型推理、自动化报告生成、可编排的报告智能体,以及持续更新的 AI 行业资讯。",
primaryCta: "控制台",
secondaryCta: "查看模型",
secondaryHref: "/models",
},
intelligentReport: {
eyebrow: "产品",
title: "大模型智能报告",
lead: "面向银行、投资、法务与采购等场景,智能体自动完成企业核验与多维尽调,输出带证据链的结构化报告,支持一键查看示例与导出分享。",
viewExampleLabel: "查看智能体报告示例",
reports: [
{
id: "kyb",
audience: "银行 / 金融机构",
title: "KYB 企业核验",
body: "贷款申请提交后AI 自动核验申请方工商状态、34 类司法风险与关联方异常,识别问题主体立即触发复核标注,将人工尽调从 2 小时压缩至分钟级。",
example: {
title: "KYB 企业核验报告",
meta: "智能体输出 · 示例 · 申请主体:某科技有限公司",
sections: [
{
heading: "核验结论",
body: "主体存续正常;存在 2 项需复核风险信号,建议进入人工复核队列。",
},
{
heading: "工商与经营状态",
bullets: [
"统一社会信用代码登记状态:存续",
"法定代表人近 12 个月无变更",
"经营范围与贷款用途类别匹配",
],
},
{
heading: "司法与信用风险34 类扫描摘要)",
bullets: [
"无失信被执行人记录",
"关联企业 A 存在 1 条未结商事诉讼(标的 120 万)→ 已标注复核",
"无股权冻结、无限制高消费",
],
},
{
heading: "关联方异常",
bullets: [
"实际控制人对外担任高管的企业 3 家,均非注销/吊销",
"1 家关联方近 90 天新增行政处罚 → 触发复核标注",
],
},
],
},
},
{
id: "ic-memo",
audience: "投资人 / FA",
title: "IC Memo 投资备忘录",
body: "DD 阶段一次对话AI 并行完成股权穿透、司法诉讼、知识产权与招投标多维扫描,自动输出股权结构图 + 诉讼摘要 + 专利清单,直接用于 IC Memo 撰写。",
example: {
title: "IC Memo 尽调摘要",
meta: "智能体输出 · 示例 · 标的:某智能制造有限公司",
sections: [
{
heading: "股权结构(穿透摘要)",
bullets: [
"控股股东:创始团队持股平台 62%",
"机构股东A 轮基金 28%,员工期权池 10%",
"无代持、无对赌条款在公开登记信息中披露",
],
},
{
heading: "诉讼与合规",
body: "近 3 年作为被告案件 1 起(劳动争议,已结案);无重大环保、安全生产处罚。",
},
{
heading: "知识产权",
bullets: [
"发明专利 14 项(其中 9 项已授权)",
"软件著作权 6 项",
"核心商标 3 件,均在有效期内",
],
},
{
heading: "招投标与市场",
bullets: [
"近 12 个月中标金额合计约 4,200 万",
"主要客户行业:汽车零部件、工业自动化",
],
},
],
},
},
{
id: "contract",
audience: "法务 / 律师",
title: "合同核验",
body: "AI 审阅合同文本时同步核验合同双方工商状态、34 类司法风险,营业执照注销、被执行、股权冻结等异常立即生成高风险批注,防范与问题主体签约导致合同无效或履约失败。",
example: {
title: "合同双方核验批注",
meta: "智能体输出 · 示例 · 合同:软件采购框架协议",
sections: [
{
heading: "甲方(采购方)",
body: "工商存续正常;无司法高风险项。",
},
{
heading: "乙方(供应方)— 高风险批注",
bullets: [
"【高风险】登记状态为「注销」→ 建议暂停签署",
"【高风险】法定代表人被列入失信被执行人名单",
"【中风险】股权 30% 处于冻结状态",
],
},
{
heading: "条款关联提示",
body: "第 3.2 条交付义务、第 8 条违约责任在乙方主体异常情况下履约风险极高,建议更换主体或要求母公司担保后再签。",
},
],
},
},
{
id: "supplier",
audience: "采购 / 供应链",
title: "新供应商快速筛选",
body: "招投标评审前批量核验候选供应商AI 同步扫描工商合规、失信被执行黑名单与资质证件真实性3 分钟批量出筛查结论,在评审会召开前帮助采购团队锁定高风险候选方。",
example: {
title: "供应商批量筛查结果",
meta: "智能体输出 · 示例 · 批次2025-Q2 设备采购 8 家候选",
sections: [
{
heading: "批次结论",
body: "建议进入短名单 4 家;建议剔除 2 家;待补充资质 2 家。",
},
{
heading: "高风险(建议剔除)",
bullets: [
"供应商 C失信被执行人 + 经营异常名录",
"供应商 F营业执照信息与投标文件不一致",
],
},
{
heading: "通过项(节选)",
bullets: [
"供应商 A、B、D、H工商、失信、资质证照交叉验证通过",
"供应商 GISO9001 证书链验证通过,有效期至 2026-08",
],
},
],
},
},
],
},
reportAgent: {
eyebrow: "Skill",
title: "智能体技能一键安装",
lead: "为小龙虾等个人与团队智能体提供海宇数科官方 Skill 技能包:智能报告、尽调与核验能力一键挂载。安装通道即将开放,敬请期待。",
comingSoon: "敬请期待",
supportedAgents: ["小龙虾", "OpenClaw", "更多智能体"],
pillars: [
{
title: "面向主流 Agent",
body: "优先支持小龙虾等高频使用的对话智能体,后续扩展更多运行时与安装渠道。",
},
{
title: "官方 Skill 技能包",
body: "按场景封装工具调用、模板与模型路由,安装后即可在 Agent 内触发与官网一致的报告能力。",
},
{
title: "一键安装",
body: "规划为一键下发 Skill 配置与依赖说明;当前为展示与预约阶段,按钮仅作「敬请期待」提示。",
},
],
installSteps: [
{
name: "选择智能体",
desc: "在支持列表中选中小龙虾或你的 Agent 运行时。",
screenTitle: "选择 Agent",
screenHint: "小龙虾 · 已连接",
},
{
name: "挑选 Skill",
desc: "浏览智能报告、KYB、合同核验等技能包与版本说明。",
screenTitle: "技能市场",
screenHint: "报告 Skill · 尽调 Skill",
},
{
name: "一键安装",
desc: "确认权限与配置后一键写入;功能即将开放。",
screenTitle: "敬请期待",
screenHint: "安装通道即将上线",
},
],
capabilities: [
{
title: "智能报告 Skill",
body: "对接上方四类场景模板,在 Agent 对话中直接发起结构化报告任务。",
},
{
title: "尽调与核验 Skill",
body: "工商、司法、供应链等工具链预置,减少自行拼装 MCP / 插件的成本。",
},
{
title: "模型自动路由",
body: "按任务类型选用 Text-Pro、Report-Max 等模型,价格与上下文见模型广场。",
},
{
title: "版本与更新",
body: "Skill 包将支持 semver 更新说明;开放安装后可从官网获取变更日志。",
},
],
primaryCta: "一键安装",
secondaryCta: "查看智能报告能力",
secondaryHref: "/reports",
},
models: {
eyebrow: "模型",
title: "超全模型库",
lead: "展示平台已上线模型;主推位与滚动名录来自后台目录,完整价格与筛选见模型广场。",
squareCta: "模型广场",
squareHref: "/models",
},
enterprise: {
eyebrow: "解决方案",
title: "企业数字化解决方案",
lead: "将大模型能力嵌入现有 ERP、数据中台与协同办公流程而非替代既有系统。",
solutions: [
{
title: "经营分析中枢",
body: "统一指标口径,自动生成管理层看板与解读说明。",
},
{
title: "合规与风控助手",
body: "制度文档问答、合同要点提取与异常条款提示。",
},
{
title: "客户成功洞察",
body: "从工单与通话记录中提炼风险信号与续约建议。",
},
],
},
news: {
eyebrow: "资讯",
title: "AI 新闻资讯",
lead: "精选行业动态、模型发布与产品实践,帮助团队保持对 AI 生态的同步认知。",
listHref: "/news",
previewCount: 4,
},
footer: {
columns: [
{
title: "产品",
links: [
{ label: "智能报告", href: "/reports" },
{ label: "Agent 技能", href: "/agents" },
{ label: "模型能力", href: "/models" },
{ label: "模型广场", href: "/models" },
],
},
{
title: "方案",
links: [
{ label: "企业数字化", href: "/solutions" },
{ label: "控制台", href: "https://console.haiyushuke.com" },
],
},
{
title: "资源",
links: [
{ label: "AI 资讯", href: "/news" },
{ label: "模型广场", href: "/models" },
{ label: "服务状态", href: "#" },
],
},
{
title: "联系",
links: [
{ label: "在线客服", href: "https://work.weixin.qq.com/kfid/kfc1f8fc41acaca0895" },
{ label: "main@haiyushuke.cn", href: "mailto:main@haiyushuke.cn" },
{ label: "+86 15018866168", href: "tel:+8615018866168" },
],
},
],
friendLinks: [
{ label: "天远API", href: "https://www.tianyuanapi.com" },
{ label: "海宇数据", href: "https://www.haiyudata.com" },
],
companyName: "海宇数科(广东横琴)科技有限公司",
legal: "© 2026 海宇数科(广东横琴)科技有限公司。保留所有权利。",
icp: "粤ICP备2026039543号-3",
icpHref: "https://beian.miit.gov.cn/",
},
} as const;