- Add consultation modal component with chat interface - Create LLM service for connecting to local Ollama - Integrate Qwen model support (7B/14B/32B variants) - Add knowledge base preparation script - Create comprehensive Qwen training documentation - Add Ollama setup and configuration script - Update translations for consultation feature (zh/en/de) - Generate OmniVerse company knowledge base data Features: - Real-time chat with AI health consultant - Support for multiple Qwen model sizes - RAG-ready knowledge base structure - Complete deployment and training guide 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
372 lines
11 KiB
JavaScript
372 lines
11 KiB
JavaScript
#!/usr/bin/env node
|
||
|
||
/**
|
||
* 知识库准备脚本
|
||
* 用于生成OmniVerse公司的知识库数据,供LLM训练和微调使用
|
||
*/
|
||
|
||
import fs from 'fs';
|
||
import path from 'path';
|
||
import { fileURLToPath } from 'url';
|
||
|
||
const __filename = fileURLToPath(import.meta.url);
|
||
const __dirname = path.dirname(__filename);
|
||
|
||
// 公司知识库数据
|
||
const knowledgeBase = {
|
||
company: {
|
||
name: "OmniVerse (灵境万象)",
|
||
founded: "2020",
|
||
headquarters: "上海,中国",
|
||
mission: "通过AI和健康科技的融合,让每个人都能享受智慧健康生活",
|
||
vision: "成为全球领先的智慧健康科技公司",
|
||
values: ["创新", "专业", "关怀", "可靠"],
|
||
website: "https://omniverse.ai",
|
||
contact: {
|
||
phone: "400-888-9999",
|
||
email: "[email protected]",
|
||
address: "上海市浦东新区张江高科技园区"
|
||
}
|
||
},
|
||
|
||
products: [
|
||
{
|
||
name: "智能穿戴设备系列",
|
||
category: "硬件产品",
|
||
models: [
|
||
{
|
||
name: "OmniWatch Pro",
|
||
features: [
|
||
"医疗级心率监测(精度±2bpm)",
|
||
"连续血氧饱和度监测",
|
||
"睡眠分期分析(深睡、浅睡、REM)",
|
||
"跌倒检测与自动报警",
|
||
"7天续航,无线充电",
|
||
"IP68防水防尘"
|
||
],
|
||
price: "¥1,999",
|
||
target: "老年人、慢病患者"
|
||
},
|
||
{
|
||
name: "OmniBand Health",
|
||
features: [
|
||
"基础生命体征监测",
|
||
"运动数据记录",
|
||
"健康提醒功能",
|
||
"30天超长续航",
|
||
"轻量化设计(仅15g)"
|
||
],
|
||
price: "¥599",
|
||
target: "普通消费者、运动爱好者"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
name: "护理机器人系列",
|
||
category: "智能硬件",
|
||
models: [
|
||
{
|
||
name: "CareBot-X1",
|
||
features: [
|
||
"自然语言交互(支持方言)",
|
||
"情感识别与陪伴",
|
||
"用药提醒与管理",
|
||
"远程视频诊疗",
|
||
"自主导航与避障",
|
||
"紧急情况处理"
|
||
],
|
||
price: "¥29,999",
|
||
target: "养老院、医院"
|
||
},
|
||
{
|
||
name: "CompanionBot Mini",
|
||
features: [
|
||
"智能对话陪伴",
|
||
"健康数据监测",
|
||
"娱乐互动功能",
|
||
"家庭安防监控"
|
||
],
|
||
price: "¥9,999",
|
||
target: "家庭用户"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
name: "健康数据平台",
|
||
category: "软件服务",
|
||
modules: [
|
||
{
|
||
name: "数据采集模块",
|
||
features: [
|
||
"多源数据接入(穿戴设备、医疗设备、手动输入)",
|
||
"实时数据同步",
|
||
"数据清洗与标准化"
|
||
]
|
||
},
|
||
{
|
||
name: "AI分析引擎",
|
||
features: [
|
||
"健康风险评估模型",
|
||
"疾病预测算法",
|
||
"个性化健康建议",
|
||
"趋势分析与报告"
|
||
]
|
||
},
|
||
{
|
||
name: "医疗协作系统",
|
||
features: [
|
||
"电子健康档案",
|
||
"医生端管理界面",
|
||
"远程会诊支持",
|
||
"处方管理系统"
|
||
]
|
||
}
|
||
],
|
||
pricing: {
|
||
basic: "¥99/月/用户",
|
||
professional: "¥299/月/用户",
|
||
enterprise: "定制价格"
|
||
}
|
||
}
|
||
],
|
||
|
||
solutions: [
|
||
{
|
||
name: "智慧养老解决方案",
|
||
targetCustomer: "养老院、康养中心",
|
||
components: [
|
||
"智能穿戴设备全员配备",
|
||
"护理机器人辅助照护",
|
||
"健康数据管理平台",
|
||
"家属远程关怀APP"
|
||
],
|
||
benefits: [
|
||
"降低护理人员工作强度30%",
|
||
"提高老人满意度至95%以上",
|
||
"减少意外事故发生率50%",
|
||
"实现24小时健康监护"
|
||
],
|
||
cases: [
|
||
{
|
||
customer: "上海阳光养老院",
|
||
scale: "200+老人",
|
||
results: "事故率降低60%,满意度提升至98%"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
name: "医院数字化健康管理",
|
||
targetCustomer: "三甲医院、专科医院",
|
||
components: [
|
||
"患者健康监测系统",
|
||
"AI辅助诊断平台",
|
||
"医疗数据中台",
|
||
"移动医护工作站"
|
||
],
|
||
benefits: [
|
||
"诊疗效率提升40%",
|
||
"减少医疗差错",
|
||
"改善患者体验",
|
||
"优化资源配置"
|
||
]
|
||
},
|
||
{
|
||
name: "企业EHS健康保障",
|
||
targetCustomer: "制造业、化工企业",
|
||
components: [
|
||
"员工健康监测设备",
|
||
"职业病预防系统",
|
||
"应急响应平台",
|
||
"健康数据分析报告"
|
||
],
|
||
benefits: [
|
||
"降低工伤事故率",
|
||
"提高员工健康水平",
|
||
"满足EHS合规要求",
|
||
"降低医疗保险成本"
|
||
]
|
||
}
|
||
],
|
||
|
||
technology: {
|
||
ai: {
|
||
models: [
|
||
"健康风险预测模型(准确率92%)",
|
||
"疾病早期筛查算法",
|
||
"个性化健康方案推荐引擎",
|
||
"自然语言处理(医疗对话)"
|
||
],
|
||
datasets: [
|
||
"100万+健康数据样本",
|
||
"50万+医疗影像标注数据",
|
||
"10万+临床案例"
|
||
]
|
||
},
|
||
iot: {
|
||
protocols: ["MQTT", "CoAP", "LoRaWAN", "NB-IoT"],
|
||
edgeComputing: "支持边缘计算,降低延迟至10ms以内",
|
||
security: "端到端加密,符合HIPAA标准"
|
||
},
|
||
cloud: {
|
||
architecture: "微服务架构,支持弹性扩展",
|
||
deployment: "支持公有云、私有云、混合云部署",
|
||
availability: "99.99% SLA保证"
|
||
}
|
||
},
|
||
|
||
certifications: [
|
||
"ISO 13485 医疗器械质量管理体系",
|
||
"ISO 27001 信息安全管理体系",
|
||
"NMPA 二类医疗器械注册证",
|
||
"CE认证(欧盟)",
|
||
"FDA 510(k)(美国)"
|
||
],
|
||
|
||
partners: [
|
||
"华为云 - 云计算基础设施",
|
||
"阿里健康 - 医疗数据合作",
|
||
"复旦大学附属华山医院 - 临床研究",
|
||
"中国移动 - 5G医疗应用",
|
||
"平安保险 - 健康险创新"
|
||
],
|
||
|
||
achievements: [
|
||
"2023年获得B轮融资5000万美元",
|
||
"服务用户超过100万",
|
||
"部署设备超过10万台",
|
||
"获得50+项专利",
|
||
"入选《2023中国AI医疗TOP50》"
|
||
],
|
||
|
||
faq: [
|
||
{
|
||
question: "OmniVerse的产品是否需要医疗器械认证?",
|
||
answer: "是的,我们的智能穿戴设备和部分护理机器人功能已获得NMPA二类医疗器械注册证,确保产品的安全性和有效性。"
|
||
},
|
||
{
|
||
question: "健康数据如何保证安全和隐私?",
|
||
answer: "我们采用端到端加密技术,数据存储符合HIPAA标准,并通过ISO 27001认证。用户数据仅用于健康服务,不会用于其他商业用途。"
|
||
},
|
||
{
|
||
question: "产品支持哪些语言?",
|
||
answer: "目前支持中文(普通话及主要方言)、英语、日语、韩语。其他语言版本正在开发中。"
|
||
},
|
||
{
|
||
question: "如何成为OmniVerse的合作伙伴?",
|
||
answer: "请通过官网提交合作申请,或发送邮件至[email protected],我们的商务团队会尽快与您联系。"
|
||
},
|
||
{
|
||
question: "产品保修政策是怎样的?",
|
||
answer: "硬件产品提供1年免费保修,软件服务提供7×24小时技术支持。可选购延长保修服务。"
|
||
}
|
||
]
|
||
};
|
||
|
||
// 生成JSONL格式的训练数据
|
||
function generateTrainingData() {
|
||
const trainingData = [];
|
||
|
||
// 公司介绍相关
|
||
trainingData.push({
|
||
instruction: "介绍一下OmniVerse公司",
|
||
input: "",
|
||
output: `OmniVerse(灵境万象)是一家成立于2020年的智慧健康科技公司,总部位于上海。我们的使命是通过AI和健康科技的融合,让每个人都能享受智慧健康生活。公司专注于智能穿戴设备、护理机器人和健康数据平台三大核心产品线,已服务超过100万用户。`
|
||
});
|
||
|
||
// 产品相关问答
|
||
knowledgeBase.products.forEach(product => {
|
||
trainingData.push({
|
||
instruction: `介绍${product.name}`,
|
||
input: "",
|
||
output: `${product.name}是我们的${product.category}产品线。${
|
||
product.models ?
|
||
`主要包括${product.models.map(m => m.name).join('、')}等型号。` :
|
||
`包含${product.modules.map(m => m.name).join('、')}等核心模块。`
|
||
}`
|
||
});
|
||
});
|
||
|
||
// 解决方案相关
|
||
knowledgeBase.solutions.forEach(solution => {
|
||
trainingData.push({
|
||
instruction: `${solution.name}包含哪些内容?`,
|
||
input: "",
|
||
output: `${solution.name}面向${solution.targetCustomer},包含:${solution.components.join('、')}。该方案能够${solution.benefits.join(',')}。`
|
||
});
|
||
});
|
||
|
||
// FAQ相关
|
||
knowledgeBase.faq.forEach(item => {
|
||
trainingData.push({
|
||
instruction: item.question,
|
||
input: "",
|
||
output: item.answer
|
||
});
|
||
});
|
||
|
||
return trainingData;
|
||
}
|
||
|
||
// 生成对话格式的数据
|
||
function generateChatData() {
|
||
const chatData = [];
|
||
|
||
// 产品咨询对话
|
||
chatData.push({
|
||
messages: [
|
||
{ role: "user", content: "我想了解你们的智能手表产品" },
|
||
{ role: "assistant", content: "我们有OmniWatch Pro智能手表,这是一款医疗级的健康监测设备。它具有心率监测(精度±2bpm)、连续血氧监测、睡眠分期分析、跌倒检测等功能,7天续航,售价1999元。特别适合老年人和慢病患者使用。您是为自己还是为家人咨询呢?" }
|
||
]
|
||
});
|
||
|
||
chatData.push({
|
||
messages: [
|
||
{ role: "user", content: "养老院如何使用你们的产品?" },
|
||
{ role: "assistant", content: "我们为养老院提供完整的智慧养老解决方案。包括:1)为每位老人配备智能穿戴设备,实现24小时健康监护;2)部署护理机器人协助日常照护;3)健康数据管理平台供护理人员使用;4)家属远程关怀APP。上海阳光养老院使用我们的方案后,事故率降低60%,老人满意度达98%。" }
|
||
]
|
||
});
|
||
|
||
return chatData;
|
||
}
|
||
|
||
// 保存数据文件
|
||
function saveDataFiles() {
|
||
const outputDir = path.join(__dirname, '..', 'knowledge-base');
|
||
|
||
if (!fs.existsSync(outputDir)) {
|
||
fs.mkdirSync(outputDir, { recursive: true });
|
||
}
|
||
|
||
// 保存完整知识库
|
||
fs.writeFileSync(
|
||
path.join(outputDir, 'knowledge-base.json'),
|
||
JSON.stringify(knowledgeBase, null, 2),
|
||
'utf8'
|
||
);
|
||
|
||
// 保存训练数据(JSONL格式)
|
||
const trainingData = generateTrainingData();
|
||
const jsonlContent = trainingData.map(item => JSON.stringify(item)).join('\n');
|
||
fs.writeFileSync(
|
||
path.join(outputDir, 'training-data.jsonl'),
|
||
jsonlContent,
|
||
'utf8'
|
||
);
|
||
|
||
// 保存对话数据
|
||
const chatData = generateChatData();
|
||
const chatJsonl = chatData.map(item => JSON.stringify(item)).join('\n');
|
||
fs.writeFileSync(
|
||
path.join(outputDir, 'chat-data.jsonl'),
|
||
chatJsonl,
|
||
'utf8'
|
||
);
|
||
|
||
console.log('✅ 知识库文件已生成:');
|
||
console.log(' - knowledge-base/knowledge-base.json');
|
||
console.log(' - knowledge-base/training-data.jsonl');
|
||
console.log(' - knowledge-base/chat-data.jsonl');
|
||
}
|
||
|
||
// 执行脚本
|
||
saveDataFiles(); |