81 lines
1.9 KiB
JavaScript
81 lines
1.9 KiB
JavaScript
/**
|
||
* connectors/model-router — 模型调用路由
|
||
*
|
||
* 职责:
|
||
* - 提供统一的模型调用入口
|
||
* - 支持多模型切换(通过 backend-integration/api-proxy.js)
|
||
* - 任务分发至合适的模型端点
|
||
*
|
||
* 调用方式:
|
||
* node connectors/model-router [status]
|
||
*/
|
||
|
||
const path = require('path');
|
||
const fs = require('fs');
|
||
|
||
const ROOT = path.resolve(__dirname, '../..');
|
||
|
||
/**
|
||
* 模型配置注册表
|
||
*/
|
||
const MODEL_REGISTRY = {
|
||
'default': {
|
||
name: 'default',
|
||
endpoint: 'http://localhost:3721/api/chat',
|
||
description: 'AI Chat API 代理(api-proxy.js)'
|
||
},
|
||
'persona': {
|
||
name: 'persona',
|
||
endpoint: 'http://localhost:3002/api/ps/chat',
|
||
description: '人格工作室 API'
|
||
}
|
||
};
|
||
|
||
/**
|
||
* 获取模型配置
|
||
*/
|
||
function getModel(modelName = 'default') {
|
||
return MODEL_REGISTRY[modelName] || MODEL_REGISTRY['default'];
|
||
}
|
||
|
||
/**
|
||
* 列出所有可用模型
|
||
*/
|
||
function listModels() {
|
||
return Object.values(MODEL_REGISTRY);
|
||
}
|
||
|
||
/**
|
||
* 检查模型路由状态
|
||
*/
|
||
function status() {
|
||
console.log('🤖 模型路由状态:');
|
||
console.log('═'.repeat(40));
|
||
|
||
const models = listModels();
|
||
for (const model of models) {
|
||
console.log(` 📌 ${model.name}`);
|
||
console.log(` 端点: ${model.endpoint}`);
|
||
console.log(` 说明: ${model.description}`);
|
||
}
|
||
|
||
// 检查 api-proxy 配置
|
||
const proxyPath = path.join(ROOT, 'backend-integration/api-proxy.js');
|
||
const proxyExists = fs.existsSync(proxyPath);
|
||
console.log(`\n ${proxyExists ? '✅' : '❌'} api-proxy.js 存在`);
|
||
|
||
// 检查 persona-studio 配置
|
||
const psPath = path.join(ROOT, 'persona-studio/backend/server.js');
|
||
const psExists = fs.existsSync(psPath);
|
||
console.log(` ${psExists ? '✅' : '❌'} persona-studio server.js 存在`);
|
||
|
||
return { models, proxy: proxyExists, persona_studio: psExists };
|
||
}
|
||
|
||
// CLI 入口
|
||
if (require.main === module) {
|
||
status();
|
||
}
|
||
|
||
module.exports = { getModel, listModels, status, MODEL_REGISTRY };
|