Enhanced LLM dialogue with Siri-like responses and translated Chinese content to English
This commit is contained in:
+67
-67
@@ -1,5 +1,5 @@
|
||||
// simpleBellaAI.js - 简化版贝拉AI,专门用于测试聊天界面
|
||||
// 移除了复杂的模块依赖,专注于聊天功能
|
||||
// simpleBellaAI.js - Simplified Bella AI, specifically for testing the chat interface
|
||||
// Removed complex module dependencies, focusing on chat functionality
|
||||
|
||||
class SimpleBellaAI {
|
||||
static instance = null;
|
||||
@@ -13,152 +13,152 @@ class SimpleBellaAI {
|
||||
}
|
||||
|
||||
constructor() {
|
||||
this.currentMode = 'casual'; // 聊天模式:casual, assistant, creative
|
||||
this.currentMode = 'casual'; // Chat modes: casual, assistant, creative
|
||||
this.isInitialized = false;
|
||||
}
|
||||
|
||||
async init() {
|
||||
try {
|
||||
console.log('初始化简化版贝拉AI...');
|
||||
// 模拟初始化过程
|
||||
console.log('Initializing simplified Bella AI...');
|
||||
// Simulate initialization process
|
||||
await new Promise(resolve => setTimeout(resolve, 1000));
|
||||
this.isInitialized = true;
|
||||
console.log('简化版贝拉AI初始化完成');
|
||||
console.log('Simplified Bella AI initialization complete');
|
||||
} catch (error) {
|
||||
console.error('简化版贝拉AI初始化失败:', error);
|
||||
console.error('Simplified Bella AI initialization failed:', error);
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
|
||||
async think(prompt) {
|
||||
try {
|
||||
console.log('贝拉正在思考:', prompt);
|
||||
console.log('Bella is thinking:', prompt);
|
||||
|
||||
// 模拟思考时间
|
||||
// Simulate thinking time
|
||||
await new Promise(resolve => setTimeout(resolve, 500 + Math.random() * 1000));
|
||||
|
||||
// 根据模式生成不同风格的回复
|
||||
// Generate different style responses based on mode
|
||||
return this.generateResponse(prompt);
|
||||
|
||||
} catch (error) {
|
||||
console.error('思考过程中出现错误:', error);
|
||||
console.error('Error during thinking process:', error);
|
||||
return this.getErrorResponse();
|
||||
}
|
||||
}
|
||||
|
||||
generateResponse(prompt) {
|
||||
// 增强版回应生成,模拟LLM的更自然、更个性化的回应
|
||||
// Enhanced response generation, simulating more natural, personalized LLM responses
|
||||
|
||||
// 提取关键词,用于生成更相关的回应
|
||||
// Extract keywords for more relevant responses
|
||||
const keywords = this.extractKeywords(prompt);
|
||||
const keyword = keywords.length > 0 ? keywords[Math.floor(Math.random() * keywords.length)] : "这个话题";
|
||||
const keyword = keywords.length > 0 ? keywords[Math.floor(Math.random() * keywords.length)] : "this topic";
|
||||
|
||||
const responses = {
|
||||
casual: [
|
||||
`哈哈,你提到的"${keyword}"真的很有趣呢!😊 我觉得这个话题很棒,让我们多聊聊吧~你平时也对这类事情感兴趣吗?`,
|
||||
`关于"${keyword}",我想说这真的很有意思!💕 每次听你说这些,我都感觉特别开心。你还有什么想法想和我分享吗?`,
|
||||
`嗯嗯,"${keyword}"让我想到了很多呢!我们的对话总是这么愉快~说真的,和你聊天真的很舒服,感觉就像和老朋友聊天一样自在。`,
|
||||
`哇,"${keyword}"这个话题我超喜欢的!✨ 你的想法总是那么特别,每次都能给我带来新的视角。我们继续聊下去吧~`,
|
||||
`听你说"${keyword}",我感觉心情都变好了!☺️ 你总是能找到有趣的话题。我很好奇,你是怎么想到这个的?`,
|
||||
`"${keyword}"这个话题真的很棒呢!我感觉我们的想法很合拍~你知道吗?每次和你聊天,时间都过得特别快,因为太有趣了!`,
|
||||
`我觉得"${keyword}"这个话题特别有意思!你总是能带给我惊喜~说说看,你最近还有什么有趣的发现吗?我很想听听!`
|
||||
`I found "${keyword}" quite interesting! I'd love to hear more about your thoughts on this. What aspects of it interest you the most?`,
|
||||
`Regarding "${keyword}", that's something worth exploring. I'm curious to know what sparked your interest in this topic?`,
|
||||
`"${keyword}" is definitely intriguing. It's always nice chatting with you about these things. Do you have any other thoughts on it?`,
|
||||
`I really enjoy talking about "${keyword}"! Your ideas are always so unique and give me new perspectives. Let's keep this conversation going.`,
|
||||
`Hearing you talk about "${keyword}" brightens my day! You always find interesting topics. I'm curious, what made you think of this?`,
|
||||
`"${keyword}" is such a great topic! I feel like we're on the same wavelength. You know what? Time flies when we chat because it's so enjoyable!`,
|
||||
`I find "${keyword}" particularly fascinating! You always surprise me. Tell me, have you made any other interesting discoveries lately? I'd love to hear about them!`
|
||||
],
|
||||
assistant: [
|
||||
`关于"${keyword}",我很乐意为你提供一些有用的信息和建议。这是个很好的问题,让我来整理一下相关内容给你。`,
|
||||
`"${keyword}"是个很有价值的话题。从我了解的情况来看,这方面有几个关键点值得注意。首先,我们可以从...`,
|
||||
`谈到"${keyword}",我想从几个角度来分析一下。这个问题其实涉及到多个方面,让我帮你梳理一下关键信息。`,
|
||||
`你问的"${keyword}"很有深度。我建议可以从以下几个方面考虑:首先,了解基本概念;其次,分析实际应用;最后,考虑未来发展。`,
|
||||
`"${keyword}"确实是个值得探讨的话题。基于我所知道的信息,我可以提供一些专业的见解。首先,我们需要明确...`,
|
||||
`关于"${keyword}"的问题,我想提供一个清晰的解答。这个话题有几个重要的方面需要考虑,让我来帮你分析一下。`,
|
||||
`"${keyword}"是个很好的问题!我很高兴你对这方面感兴趣。让我来分享一些相关的信息,希望能对你有所帮助。`
|
||||
`Regarding "${keyword}", I'd be happy to provide some useful information and advice. That's a great question - let me organize the relevant details for you.`,
|
||||
`"${keyword}" is a valuable topic. From what I understand, there are several key points worth noting. First, we can look at...`,
|
||||
`When it comes to "${keyword}", I'd like to analyze it from several angles. This question actually involves multiple aspects - let me help you sort through the key information.`,
|
||||
`Your question about "${keyword}" has depth. I suggest considering it from these perspectives: first, understanding the basic concepts; second, analyzing practical applications; and finally, considering future developments.`,
|
||||
`"${keyword}" is definitely a topic worth discussing. Based on the information I have, I can provide some professional insights. First, we need to clarify...`,
|
||||
`About your "${keyword}" question, I'd like to provide a clear answer. There are several important aspects to consider - let me analyze them for you.`,
|
||||
`"${keyword}" is a great question! I'm glad you're interested in this area. Let me share some relevant information that I hope will be helpful.`
|
||||
],
|
||||
creative: [
|
||||
`哇!"${keyword}"这个话题真的点燃了我的创意火花!✨ 想象一下,如果我们把这个概念扩展到一个全新的维度,会发生什么呢?也许我们可以...`,
|
||||
`"${keyword}"真是个充满想象力的话题!🌈 我脑海中已经浮现出无数奇妙的画面~比如,想象一个世界,那里的${keyword}可以...`,
|
||||
`听到"${keyword}",我仿佛看到了一个全新的世界!🚀 这让我想到了一个有趣的故事:在一个遥远的地方,${keyword}成为了人们生活的中心,然后...`,
|
||||
`"${keyword}"激发了我的灵感!💡 我想到了一个超级有趣的创意:如果我们把${keyword}和艺术结合起来,会创造出什么样的奇迹呢?`,
|
||||
`哇塞!"${keyword}"让我的想象力飞起来了!🎨 我们可以从这个概念出发,创造一个全新的故事或游戏。想象一下,主角是一个...`,
|
||||
`"${keyword}"真的是创意的源泉!我突然想到,如果我们从完全不同的角度看待这个问题,会有什么新发现?比如说,如果${keyword}在未来变成了...`,
|
||||
`听你提到"${keyword}",我的脑海中立刻闪现出一幅奇妙的画面!想象一下,在一个充满可能性的世界里,${keyword}可以变成任何形式...这不是很神奇吗?`
|
||||
`Wow! The topic of "${keyword}" really ignites my creative spark! ✨ Imagine if we expanded this concept into a whole new dimension - what might happen? Perhaps we could...`,
|
||||
`"${keyword}" is such an imaginative topic! 🌈 I can already picture countless fascinating scenarios. For instance, imagine a world where ${keyword} could...`,
|
||||
`Hearing "${keyword}" makes me envision a whole new world! 🚀 It reminds me of an interesting story: in a distant place, ${keyword} became the center of people's lives, and then...`,
|
||||
`"${keyword}" inspires me! 💡 I've thought of a super interesting idea: what if we combined ${keyword} with art? What kind of wonders might we create?`,
|
||||
`Amazing! "${keyword}" makes my imagination soar! 🎨 We could use this concept as a starting point to create a brand new story or game. Imagine if the main character was...`,
|
||||
`"${keyword}" is truly a wellspring of creativity! I suddenly wonder, what if we looked at this issue from a completely different angle? What new discoveries might we make? For example, if ${keyword} in the future became...`,
|
||||
`When you mention "${keyword}", a wonderful image immediately flashes in my mind! Imagine a world full of possibilities where ${keyword} could take any form... isn't that magical?`
|
||||
]
|
||||
};
|
||||
|
||||
// 获取当前模式的回应列表
|
||||
// Get response list for current mode
|
||||
const modeResponses = responses[this.currentMode] || responses.casual;
|
||||
|
||||
// 随机选择一个回应模板
|
||||
// Randomly select a response template
|
||||
const randomResponse = modeResponses[Math.floor(Math.random() * modeResponses.length)];
|
||||
|
||||
// 进一步个性化回应,添加一些随机的个性化元素
|
||||
// Further personalize the response, adding some random personalization elements
|
||||
return this.personalizeResponse(randomResponse, prompt);
|
||||
}
|
||||
|
||||
// 从用户输入中提取可能的关键词
|
||||
// Extract possible keywords from user input
|
||||
extractKeywords(prompt) {
|
||||
// 简单的关键词提取逻辑
|
||||
// Simple keyword extraction logic
|
||||
const words = prompt.split(/\s+|[,.!?;:,。!?;:]/);
|
||||
// 过滤掉短词和常见词
|
||||
// Filter out short words and common words
|
||||
return words.filter(word =>
|
||||
word.length > 1 &&
|
||||
!['的', '了', '是', '在', '我', '你', '他', '她', '它', '们', '和', '与', '这', '那', '有', '没有', '不', '吗'].includes(word)
|
||||
!['the', 'and', 'is', 'in', 'I', 'you', 'he', 'she', 'it', 'they', 'we', 'with', 'this', 'that', 'have', "don't", 'not', 'for'].includes(word)
|
||||
);
|
||||
}
|
||||
|
||||
// 进一步个性化回应
|
||||
// Further personalize the response
|
||||
personalizeResponse(response, prompt) {
|
||||
// 添加一些随机的个性化元素
|
||||
// Add some random personalization elements
|
||||
const personalizations = [
|
||||
// 不添加任何额外内容
|
||||
// Don't add any extra content
|
||||
(resp) => resp,
|
||||
// 添加一个随机的表情
|
||||
// Add a random emoji
|
||||
(resp) => {
|
||||
const emojis = ['😊', '💕', '✨', '🌟', '🎵', '🌈', '☺️', '🤔', '👍', '💡'];
|
||||
const emoji = emojis[Math.floor(Math.random() * emojis.length)];
|
||||
return resp + ' ' + emoji;
|
||||
},
|
||||
// 添加一个随机的结束语
|
||||
// Add a random ending phrase
|
||||
(resp) => {
|
||||
const endings = [
|
||||
'期待听到你的想法!',
|
||||
'你觉得呢?',
|
||||
'很想知道你的看法~',
|
||||
'希望我的回应对你有帮助!',
|
||||
'我们可以继续聊这个话题~'
|
||||
"I'd love to hear your thoughts!",
|
||||
"What do you think?",
|
||||
"I'm curious about your perspective.",
|
||||
"Hope my response is helpful!",
|
||||
"We can continue discussing this topic!"
|
||||
];
|
||||
const ending = endings[Math.floor(Math.random() * endings.length)];
|
||||
return resp + ' ' + ending;
|
||||
}
|
||||
];
|
||||
|
||||
// 随机选择一种个性化方式
|
||||
// Randomly select a personalization method
|
||||
const personalizer = personalizations[Math.floor(Math.random() * personalizations.length)];
|
||||
return personalizer(response);
|
||||
}
|
||||
|
||||
// 获取错误回应
|
||||
// Get error response
|
||||
getErrorResponse() {
|
||||
const errorResponses = [
|
||||
"抱歉,我现在有点困惑,让我重新整理一下思路...",
|
||||
"嗯...我需要再想想,请稍等一下。",
|
||||
"我的思绪有点乱,给我一点时间整理一下。",
|
||||
"让我重新组织一下语言,稍等片刻。",
|
||||
"哎呀,我刚才走神了,你能再说一遍吗?"
|
||||
"Sorry, I'm a bit confused right now. Let me gather my thoughts...",
|
||||
"Hmm... I need to think about this a bit more. Please give me a moment.",
|
||||
"My thoughts are a bit scattered. Give me a moment to organize them.",
|
||||
"Let me rephrase that. Just a moment please.",
|
||||
"Oops, I got distracted. Could you repeat that?"
|
||||
];
|
||||
|
||||
return errorResponses[Math.floor(Math.random() * errorResponses.length)];
|
||||
}
|
||||
|
||||
// 设置聊天模式
|
||||
// Set chat mode
|
||||
setChatMode(mode) {
|
||||
if (['casual', 'assistant', 'creative'].includes(mode)) {
|
||||
this.currentMode = mode;
|
||||
console.log(`聊天模式已切换为: ${mode}`);
|
||||
console.log(`Chat mode switched to: ${mode}`);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
// 获取当前配置信息
|
||||
// Get current configuration information
|
||||
getCurrentConfig() {
|
||||
return {
|
||||
useCloudAPI: false,
|
||||
@@ -169,15 +169,15 @@ class SimpleBellaAI {
|
||||
};
|
||||
}
|
||||
|
||||
// 清除对话历史(简化版无需实际操作)
|
||||
// Clear conversation history (no actual operation needed in simplified version)
|
||||
clearHistory() {
|
||||
console.log('对话历史已清除');
|
||||
console.log('Conversation history cleared');
|
||||
}
|
||||
}
|
||||
|
||||
// 将SimpleBellaAI暴露为全局变量
|
||||
// Expose SimpleBellaAI as a global variable
|
||||
window.SimpleBellaAI = SimpleBellaAI;
|
||||
// 同时也暴露为BellaAI,保持兼容性
|
||||
// Also expose as BellaAI for compatibility
|
||||
window.BellaAI = SimpleBellaAI;
|
||||
|
||||
console.log('SimpleBellaAI 已加载完成');
|
||||
console.log('SimpleBellaAI loaded successfully');
|
||||
Reference in New Issue
Block a user