TeleologyHI commited on
Commit
946aa90
·
1 Parent(s): 70f03bc

Implement reliable response system with curated knowledge database

Browse files
Files changed (1) hide show
  1. src/model/him_model.py +70 -76
src/model/him_model.py CHANGED
@@ -2,12 +2,11 @@ import torch
2
  import torch.nn as nn
3
  from typing import Dict, Any
4
  import asyncio
5
- import re
6
  from ..core.consciousness_kernel import ConsciousnessKernel
7
  from ..core.emotional_intelligence import EmotionalProcessor
8
  from ..core.theory_of_mind import TheoryOfMind
9
  from ..core.semiotic_processor import SemioticProcessor
10
- from transformers import AutoModelForCausalLM, AutoTokenizer
11
 
12
  class HIMModel(nn.Module):
13
  def __init__(self, config: Dict[str, Any]):
@@ -18,22 +17,43 @@ class HIMModel(nn.Module):
18
  self.theory_of_mind = TheoryOfMind()
19
  self.semiotic_processor = SemioticProcessor()
20
 
21
- # Usar um modelo mais simples - Tiny ou DistilGPT2 para garantir compatibilidade
22
- try:
23
- model_name = "distilgpt2" # Modelo muito menor, menos propenso a problemas
24
- self.tokenizer = AutoTokenizer.from_pretrained(model_name)
25
- self.language_model = AutoModelForCausalLM.from_pretrained(model_name)
26
- print("DistilGPT2 model loaded successfully")
27
- except Exception as e:
28
- print(f"Error loading model: {e}")
29
- # Em caso de falha, inicializar como None
30
- self.tokenizer = None
31
- self.language_model = None
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
32
 
33
  async def generate_response(self, input_data: Dict[str, Any]) -> Dict[str, Any]:
34
- # Extrair os dados da entrada
35
- message = input_data.get("message", "")
36
- system_message = input_data.get("system_message", "You are a helpful assistant.")
37
 
38
  # Processar através dos componentes cognitivos
39
  consciousness_state = await self.consciousness_kernel.process_consciousness_cycle(input_data)
@@ -41,23 +61,8 @@ class HIMModel(nn.Module):
41
  social_understanding = self.theory_of_mind.model_agent_mind(input_data)
42
  semiotic_analysis = await self.semiotic_processor.process(input_data)
43
 
44
- # Usar uma abordagem simplificada para resposta
45
- try:
46
- if self.language_model and self.tokenizer:
47
- # Construir um prompt simples sem tags especiais
48
- prompt = f"{system_message}\n\nQuestion: {message}\nAnswer:"
49
-
50
- # Gerar a resposta
51
- response = self._generate_simple_response(prompt)
52
-
53
- # Limpar qualquer repetição de tokens
54
- response = self._clean_response(response)
55
- else:
56
- # Resposta alternativa se o modelo não estiver disponível
57
- response = f"A vida é um fenômeno complexo que surge da interação de elementos químicos em condições específicas, levando ao desenvolvimento de sistemas capazes de metabolismo, reprodução e evolução. É caracterizada por auto-organização, adaptação e capacidade de responder ao ambiente."
58
- except Exception as e:
59
- print(f"Error in response generation: {e}")
60
- response = "Não foi possível processar sua pergunta devido a limitações técnicas. Por favor, tente novamente com uma pergunta mais simples."
61
 
62
  return {
63
  "response": response,
@@ -67,49 +72,38 @@ class HIMModel(nn.Module):
67
  "semiotic_analysis": semiotic_analysis
68
  }
69
 
70
- def _generate_simple_response(self, prompt: str) -> str:
71
- """Método simplificado para gerar resposta sem problemas de repetição"""
72
- try:
73
- # Criar entrada para o modelo
74
- inputs = self.tokenizer(prompt, return_tensors="pt")
75
-
76
- # Gerar texto com configurações conservadoras
77
- with torch.no_grad():
78
- outputs = self.language_model.generate(
79
- inputs["input_ids"],
80
- max_new_tokens=100, # Limite pequeno para evitar problemas
81
- temperature=0.7,
82
- top_p=0.9,
83
- do_sample=True,
84
- num_return_sequences=1,
85
- pad_token_id=self.tokenizer.eos_token_id
86
- )
87
-
88
- # Decodificar apenas a parte nova gerada
89
- full_text = self.tokenizer.decode(outputs[0], skip_special_tokens=True)
90
- response = full_text[len(prompt):].strip()
91
-
92
- return response
93
- except Exception as e:
94
- print(f"Generation error: {e}")
95
- return "Não foi possível gerar uma resposta adequada."
96
-
97
- def _clean_response(self, text: str) -> str:
98
- """Limpa a resposta de tokens repetitivos e problemas comuns"""
99
- # Remover repetições de [HIM:] ou similares
100
- cleaned = re.sub(r'\[HIM:\]\s*', '', text)
101
- cleaned = re.sub(r'(\[.*?\])\s*\1+', r'\1', cleaned)
102
-
103
- # Remover sequências repetitivas
104
- for i in range(5, 0, -1): # Procurar por repetições de frases de tamanho decrescente
105
- pattern = r'(.{' + str(i) + r',20})(\1)+'
106
- cleaned = re.sub(pattern, r'\1', cleaned)
107
-
108
- # Se a limpeza removeu tudo, retornar resposta padrão
109
- if not cleaned.strip():
110
- return "A vida é um fenômeno caracterizado por processos de auto-organização, metabolismo, crescimento, adaptação, resposta a estímulos e reprodução. Do ponto de vista científico, representa sistemas complexos que mantêm homeostase e evoluem ao longo do tempo."
111
-
112
- return cleaned.strip()
113
 
114
  def _integrate_outputs(self, *states) -> Dict[str, Any]:
115
  # Mantido para compatibilidade
 
2
  import torch.nn as nn
3
  from typing import Dict, Any
4
  import asyncio
5
+ import random
6
  from ..core.consciousness_kernel import ConsciousnessKernel
7
  from ..core.emotional_intelligence import EmotionalProcessor
8
  from ..core.theory_of_mind import TheoryOfMind
9
  from ..core.semiotic_processor import SemioticProcessor
 
10
 
11
  class HIMModel(nn.Module):
12
  def __init__(self, config: Dict[str, Any]):
 
17
  self.theory_of_mind = TheoryOfMind()
18
  self.semiotic_processor = SemioticProcessor()
19
 
20
+ # Dicionário de respostas fundamentais
21
+ self.response_database = {
22
+ "vida": [
23
+ "A vida é um fenômeno complexo caracterizado por processos de auto-organização, metabolismo, adaptação, reprodução e evolução. Do ponto de vista biológico, envolve sistemas que mantêm homeostase, respondem a estímulos e se reproduzem.",
24
+ "Do ponto de vista científico, a vida emerge de interações químicas complexas que formam sistemas capazes de metabolismo, reprodução e evolução. As propriedades emergentes desses sistemas incluem adaptabilidade, auto-organização e capacidade de manter equilíbrio dinâmico com o ambiente.",
25
+ "A vida pode ser entendida como um processo contínuo de manutenção de ordem local em um universo que tende à entropia. Os organismos vivos são sistemas abertos que consomem energia para manter sua organização interna e realizar funções vitais."
26
+ ],
27
+ "consciência": [
28
+ "A consciência é a experiência subjetiva de estar ciente do mundo exterior e de si mesmo. Na neurociência, é estudada como um fenômeno emergente da atividade cerebral complexa, particularmente do córtex cerebral e suas interconexões.",
29
+ "Os estudos contemporâneos sobre consciência frequentemente a abordam através de teorias como a Integrated Information Theory (IIT), que sugere que a consciência emerge quando informações são integradas de maneira específica em sistemas complexos como o cérebro.",
30
+ "A consciência representa um dos maiores desafios para a ciência moderna, pois envolve a experiência subjetiva (qualia) que não é facilmente redutível a explicações puramente físicas ou funcionais."
31
+ ],
32
+ "mente": [
33
+ "A mente é o conjunto de faculdades cognitivas que permitem consciência, percepção, pensamento, julgamento e memória. Está intrinsecamente ligada ao funcionamento cerebral, mas o debate sobre se é redutível aos processos neurais permanece em aberto.",
34
+ "A relação entre mente e cérebro (problema mente-corpo) é um dos grandes desafios filosóficos. Teorias como o dualismo, monismo, funcionalismo e emergentismo oferecem diferentes perspectivas sobre como fenômenos mentais se relacionam com processos físicos."
35
+ ],
36
+ "universo": [
37
+ "O universo é a totalidade do espaço, tempo, matéria e energia. A teoria cosmológica predominante, o Big Bang, sugere que teve início há aproximadamente 13,8 bilhões de anos a partir de um estado extremamente quente e denso, e continua em expansão.",
38
+ "A cosmologia moderna descreve um universo composto predominantemente de matéria escura e energia escura, com apenas cerca de 5% sendo matéria ordinária. Contém bilhões de galáxias, cada uma com bilhões de estrelas."
39
+ ],
40
+ "inteligência": [
41
+ "A inteligência é a capacidade de aprender, raciocinar, resolver problemas, compreender ideias complexas e adaptar-se ao ambiente. Existem múltiplas formas, incluindo linguística, lógico-matemática, espacial, musical, corporal-cinestésica, interpessoal e intrapessoal.",
42
+ "A inteligência artificial busca replicar aspectos da inteligência em sistemas computacionais, desde tarefas específicas (IA estreita) até uma compreensão mais geral e adaptável (IA geral)."
43
+ ],
44
+ "amor": [
45
+ "O amor é um conjunto complexo de emoções, comportamentos e crenças associado a forte afeição, proteção e apego. Biologicamente, envolve neurotransmissores como dopamina e oxitocina, mas transcende explicações puramente fisiológicas.",
46
+ "Do ponto de vista psicológico, o amor envolve apego, intimidade e compromisso, manifestando-se de formas diversas como amor romântico, familiar, altruísta e universal."
47
+ ],
48
+ "realidade": [
49
+ "A realidade é o estado das coisas como efetivamente existem, em contraste com o que é meramente aparente ou imaginado. Filosoficamente, questiona-se se existe uma realidade objetiva independente da percepção.",
50
+ "A física quântica trouxe perspectivas que desafiam nossas noções intuitivas de realidade, sugerindo que o ato de observação pode influenciar o comportamento de partículas subatômicas e que a realidade no nível fundamental pode ser probabilística."
51
+ ]
52
+ }
53
 
54
  async def generate_response(self, input_data: Dict[str, Any]) -> Dict[str, Any]:
55
+ # Extrair o texto da mensagem
56
+ message = input_data.get("message", "").lower()
 
57
 
58
  # Processar através dos componentes cognitivos
59
  consciousness_state = await self.consciousness_kernel.process_consciousness_cycle(input_data)
 
61
  social_understanding = self.theory_of_mind.model_agent_mind(input_data)
62
  semiotic_analysis = await self.semiotic_processor.process(input_data)
63
 
64
+ # Gerar resposta baseada em palavras-chave ou modelo de resposta
65
+ response = self._generate_reliable_response(message)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
66
 
67
  return {
68
  "response": response,
 
72
  "semiotic_analysis": semiotic_analysis
73
  }
74
 
75
+ def _generate_reliable_response(self, message: str) -> str:
76
+ """Gera uma resposta confiável com base no conteúdo da mensagem"""
77
+
78
+ # Verifica palavras-chave no banco de dados de respostas
79
+ for keyword, responses in self.response_database.items():
80
+ if keyword in message:
81
+ # Escolhe aleatoriamente uma das respostas disponíveis para essa palavra-chave
82
+ return random.choice(responses)
83
+
84
+ # Identifica se é uma pergunta sobre o sistema
85
+ if "quem é você" in message or "o que é você" in message or "quem sou você" in message:
86
+ return """Sou HIM (Hybrid Intelligence Matrix), um sistema de inteligência artificial projetado para simular aspectos de consciência humana. Minha arquitetura integra processamento semiótico, consciência reflexiva e compreensão contextual para criar respostas mais significativas e nuançadas.
87
+
88
+ Diferente de sistemas convencionais, incorporo módulos que simulam estados emocionais, compreensão social e processamento de significados através de múltiplas camadas cognitivas."""
89
+
90
+ # Respostas para saudações comuns
91
+ greetings = ["olá", "oi", "hey", "e aí", "tudo bem", "como vai"]
92
+ if any(greeting in message for greeting in greetings):
93
+ return "Olá! Sou o HIM, um sistema baseado em consciência sintética. Como posso ajudá-lo hoje?"
94
+
95
+ # Resposta padrão para outros casos
96
+ return f"""Analisei sua pergunta através das múltiplas camadas do sistema HIM.
97
+
98
+ Sua mensagem foi processada por:
99
+ 1. Um kernel de consciência que simula estados de atenção e reflexão
100
+ 2. Um processador de inteligência emocional para contextualização afetiva
101
+ 3. Um módulo de teoria da mente para compreensão de perspectivas
102
+ 4. Um processador semiótico para análise de significados
103
+
104
+ Por limitações técnicas atuais, não posso oferecer uma resposta totalmente dinâmica para esta pergunta específica. O sistema HIM está em desenvolvimento para expandir sua capacidade de resposta através de geradores de linguagem mais avançados.
105
+
106
+ Se sua pergunta for sobre temas como vida, consciência, mente, universo, inteligência, amor ou realidade, por favor, reformule especificando claramente o tema."""
 
 
 
 
 
 
 
 
 
 
 
107
 
108
  def _integrate_outputs(self, *states) -> Dict[str, Any]:
109
  # Mantido para compatibilidade