mirror of
https://github.com/xszyou/Fay.git
synced 2026-11-03 12:51:28 +08:00
1、支持mcp sse服务管理及动态功具调用 --对摩搭社区提供的sse对接的mcp工具做过兼容测试 2、llm模块统一 --严格匹配openai兼容接口范式,包括token计算及流式控制等 --把认知模式作为llm对接的方式,并对认知模型进行了优化升级,可控制各用户聊天认知是否隔离 --使用qwen3-4b作为默认llm,可以平衡速度、角色模拟与MCP工具调用 3、提供配置管理中心,便于多个fay做配置管理 --当根目录中system.conf或config.json不存在,启动时会自动载入config_uitl.py中指定的配置 --配置中心代码支持多项目管理,单项目也支持多fay对接,源码地址:https://github.com/xszyou/fay_config_server 4、多个bug修复 --修复重复反思和重复保存的问题 --修正认知模型的反思和检索算法 --处理pygame报错程序不继续执行问题 --表情不进行tts --运行时再判断加载qt5 --修复文字交互接口流式输出时不会结束问题 --修复文字交互接口流式输出qa不输出问题
44 lines
1.4 KiB
Plaintext
44 lines
1.4 KiB
Plaintext
// 定义变量
|
|
const slideDistance = 500;
|
|
let currentTranslate = 0;
|
|
let menu, prevButton, nextButton;
|
|
|
|
function updateButtons() {
|
|
if (!prevButton || !nextButton || !menu) return;
|
|
prevButton.disabled = currentTranslate === 0;
|
|
nextButton.disabled = currentTranslate <= -(menu.scrollWidth - menu.clientWidth);
|
|
}
|
|
|
|
function initializeSlider() {
|
|
// 获取DOM元素
|
|
menu = document.querySelector('.menu');
|
|
prevButton = document.getElementById('prevButton');
|
|
nextButton = document.getElementById('nextButton');
|
|
|
|
// 确保所有元素都存在
|
|
if (!menu || !prevButton || !nextButton) return;
|
|
|
|
// 添加事件监听
|
|
prevButton.addEventListener('click', () => {
|
|
if (menu.scrollWidth > menu.clientWidth) {
|
|
currentTranslate = Math.min(currentTranslate + slideDistance, 0);
|
|
menu.style.transform = `translateX(${currentTranslate}px)`;
|
|
updateButtons();
|
|
}
|
|
});
|
|
|
|
nextButton.addEventListener('click', () => {
|
|
if (menu.scrollWidth > menu.clientWidth) {
|
|
currentTranslate = Math.max(currentTranslate - slideDistance, -(menu.scrollWidth - menu.clientWidth));
|
|
menu.style.transform = `translateX(${currentTranslate}px)`;
|
|
updateButtons();
|
|
}
|
|
});
|
|
|
|
// 初始化按钮状态
|
|
updateButtons();
|
|
}
|
|
|
|
// 在DOM加载完成后初始化
|
|
document.addEventListener('DOMContentLoaded', initializeSlider);
|