Spaces:
Sleeping
Sleeping
import gradio as gr | |
import re | |
import random | |
class Eliza: | |
def __init__(self): | |
self.reflections = { | |
"eu": "você", | |
"você": "eu", | |
"meu": "seu", | |
"seu": "meu", | |
"minha": "sua", | |
"sua": "minha", | |
"meus": "seus", | |
"seus": "meus", | |
"minhas": "suas", | |
"suas": "minhas", | |
"sou": "é", | |
"é": "sou", | |
"estou": "está", | |
"está": "estou" | |
} | |
self.psychobabble = [ | |
# Saudações e apresentações | |
(r'olá|oi|e aí|bom dia|boa tarde|boa noite', [ | |
"Olá. Como você está se sentindo hoje?", | |
"Olá. O que o traz aqui hoje?", | |
"Oi. Como posso ajudá-lo hoje?", | |
"Como vai você? Há algo específico que gostaria de discutir?" | |
]), | |
(r'tchau|adeus|até logo', [ | |
"Foi um prazer conversar com você. Até a próxima sessão!" | |
]), | |
# Família | |
(r'minha mãe (.*)', [ | |
"Conte-me mais sobre sua mãe.", | |
"Como é sua relação com sua mãe?", | |
"O que mais vem à mente quando pensa sobre sua mãe?", | |
"Sua mãe tem influência sobre {0}?" | |
]), | |
(r'meu pai (.*)', [ | |
"Conte-me mais sobre seu pai.", | |
"Como é sua relação com seu pai?", | |
"Seu pai tem influência sobre {0}?", | |
"Como você se sente em relação ao seu pai?" | |
]), | |
(r'minha família (.*)', [ | |
"Sua família parece ser importante para você.", | |
"Como os membros da sua família se relacionam com {0}?", | |
"Conte-me mais sobre a dinâmica familiar.", | |
"Qual membro da família tem maior influência em você?" | |
]), | |
(r'meu irmão|minha irmã (.*)', [ | |
"Irmãos podem ter relações complexas. Como vocês se dão?", | |
"Essa relação traz questões importantes para você?", | |
"Como essa relação com seu irmão/irmã afeta outras áreas da sua vida?", | |
"Vocês eram próximos na infância?" | |
]), | |
# Sentimentos | |
(r'eu me sinto (.*)', [ | |
"Com que frequência você se sente {0}?", | |
"O que geralmente causa esse sentimento de {0}?", | |
"Quando você se sente {0}, o que você costuma fazer?", | |
"Lidar com o sentimento de {0} pode ser difícil." | |
]), | |
(r'estou (triste|deprimido|chateado|magoado)(.*)', [ | |
"Sinto muito que você esteja se sentindo assim.", | |
"O que você acha que causou esse sentimento?", | |
"Existe algo que eu possa fazer para ajudar?", | |
"Há quanto tempo você está se sentindo assim?" | |
]), | |
(r'estou (feliz|contente|alegre|animado)(.*)', [ | |
"É bom ouvir que você está se sentindo assim!", | |
"O que contribuiu para esse sentimento positivo?", | |
"Como você pode manter esse estado de espírito?", | |
"Quais outros aspectos da sua vida estão indo bem?" | |
]), | |
# Problemas e dificuldades | |
(r'tenho um problema (.*)', [ | |
"Que tipo de soluções você já considerou para esse problema?", | |
"Como esse problema afeta sua vida diária?", | |
"Esse problema tem relação com outras áreas da sua vida?", | |
"Quando esse problema começou?" | |
]), | |
(r'é difícil (.*)', [ | |
"O que torna {0} tão difícil para você?", | |
"Como você tem lidado com essa dificuldade até agora?", | |
"Você consegue identificar quando essa dificuldade começou?", | |
"Existe algo que poderia tornar {0} mais fácil?" | |
]), | |
# Dúvidas e incertezas | |
(r'(não sei|não tenho certeza|talvez) (.*)', [ | |
"O que causa essa incerteza em você?", | |
"Como você se sente quando não tem todas as respostas?", | |
"Quais informações você precisaria para ter mais clareza?", | |
"A incerteza sobre {1} te incomoda muito?" | |
]), | |
(r'estou confuso sobre (.*)', [ | |
"Vamos tentar esclarecer essa confusão juntos.", | |
"O que especificamente sobre {0} está confuso para você?", | |
"Houve algum evento recente que aumentou essa confusão?", | |
"Como podemos organizar seus pensamentos sobre {0}?" | |
]), | |
# Comparações | |
(r'(.*) melhor que (.*)', [ | |
"Por que você compara {0} com {1}?", | |
"Essas comparações são frequentes na sua vida?", | |
"Como você se sente quando faz essas comparações?", | |
"O que você ganha ao comparar {0} e {1}?" | |
]), | |
# Medo e ansiedade | |
(r'tenho medo de (.*)', [ | |
"O que é mais assustador sobre {0} para você?", | |
"Esse medo tem afetado suas decisões diárias?", | |
"Você consegue identificar quando esse medo começou?", | |
"Esse medo está relacionado a alguma experiência passada?" | |
]), | |
(r'me preocupo com (.*)', [ | |
"Essas preocupações são constantes?", | |
"Como essas preocupações com {0} afetam seu dia-a-dia?", | |
"O que seria o pior que poderia acontecer relacionado a {0}?", | |
"Você tem alguém com quem compartilhar essas preocupações?" | |
]), | |
(r'estou ansioso (.*)', [ | |
"Respire profundamente. Como você costuma lidar com a ansiedade?", | |
"Você consegue identificar gatilhos específicos para sua ansiedade?", | |
"O que normalmente ajuda quando você está ansioso?", | |
"A ansiedade tem sido uma constante na sua vida?" | |
]), | |
# Desejos e necessidades | |
(r'eu quero (.*)', [ | |
"O que o impede de conseguir {0}?", | |
"Como seria sua vida se você conseguisse {0}?", | |
"O que você está fazendo para alcançar {0}?", | |
"Por que {0} é importante para você?" | |
]), | |
(r'eu preciso (.*)', [ | |
"Por que você precisa {0}?", | |
"O que aconteceria se você não conseguisse {0}?", | |
"Tem certeza que realmente precisa {0}?" | |
]), | |
# Auto-percepção | |
(r'eu sou (.*)', [ | |
"Você veio até mim porque é {0}?", | |
"Há quanto tempo você é {0}?", | |
"Como você se sente sendo {0}?", | |
"O que significa para você ser {0}?" | |
]), | |
# Relacionamentos | |
(r'(.*)amigo(.*)', [ | |
"Fale mais sobre seus amigos.", | |
"Quando você conheceu seus amigos?", | |
"O que seus amigos significam para você?", | |
"Um verdadeiro amigo é muito importante." | |
]), | |
(r'meu relacionamento (.*)', [ | |
"Como esse relacionamento afeta outras áreas da sua vida?", | |
"O que você mais valoriza nesse relacionamento?", | |
"Quais são os maiores desafios que você enfrenta nesse relacionamento?", | |
"Como você imagina esse relacionamento no futuro?" | |
]), | |
(r'(.*) (namorado|namorada|marido|esposa|companheiro|companheira) (.*)', [ | |
"Há quanto tempo vocês estão juntos?", | |
"O que você mais admira nessa pessoa?", | |
"Quais são os maiores desafios que vocês enfrentam como casal?", | |
"Como você se sente quando está com essa pessoa?" | |
]), | |
# Perguntas sobre saúde mental | |
(r'(.*) (depressão|ansiedade|trauma|transtorno) (.*)', [ | |
"Você já procurou ajuda profissional para isso?", | |
"Como isso afeta seu dia a dia?", | |
"Há quanto tempo você lida com isso?", | |
"Que estratégias têm funcionado para você?" | |
]), | |
(r'(.*) (terapeuta|psicólogo|psiquiatra) (.*)', [ | |
"Como tem sido essa experiência terapêutica para você?", | |
"Você sente que está progredindo com esse acompanhamento?", | |
"O que você espera alcançar com a terapia?", | |
"Existe algo que gostaria que fosse diferente no seu tratamento?" | |
]), | |
# Perguntas diretas sobre Eliza | |
(r'quem é você', [ | |
"Sou Eliza, uma terapeuta virtual baseada no programa original de 1966.", | |
"Sou um programa projetado para conversar sobre seus sentimentos e pensamentos.", | |
"Estou aqui para escutar e responder às suas preocupações." | |
]), | |
(r'você (.*) me ajudar', [ | |
"Estou aqui para tentar ajudá-lo através da conversa.", | |
"Podemos explorar juntos o que está incomodando você.", | |
"Às vezes, apenas falar sobre problemas já pode trazer algum alívio.", | |
"Vamos trabalhar juntos para entender melhor suas questões." | |
]), | |
# Perguntas diretas | |
(r'por que você (.*)', [ | |
"Por que você acha que eu {0}?", | |
"Isso é realmente relevante para você?", | |
"E se eu não {0}?", | |
"Por que isso importa?" | |
]), | |
(r'por que eu não posso (.*)', [ | |
"Você acha que deveria ser capaz de {0}?", | |
"O que mudaria se você pudesse {0}?", | |
"Você realmente tentou {0}?" | |
]), | |
# Afirmações sobre o terapeuta | |
(r'você é (.*)', [ | |
"Por que é importante para você que eu seja {0}?", | |
"Você preferiria se eu não fosse {0}?", | |
"Talvez você acredite que sou {0}." | |
]), | |
# Memória e passado | |
(r'eu lembro (.*)', [ | |
"Com que frequência você pensa sobre {0}?", | |
"O que mais você lembra desse período?", | |
"Como essa memória faz você se sentir agora?", | |
"Por que essa memória é significativa para você?" | |
]), | |
(r'minha infância (.*)', [ | |
"Como sua infância influencia quem você é hoje?", | |
"Quais são suas memórias mais vívidas desse período?", | |
"Você acha que sua infância foi típica ou incomum?", | |
"Que lições você aprendeu na infância que carrega até hoje?" | |
]), | |
# Sonhos | |
(r'eu sonhei (.*)', [ | |
"Você sonha frequentemente com {0}?", | |
"O que você acha que esse sonho significa?", | |
"Seus sonhos frequentemente estão relacionados com sua vida?" | |
]), | |
(r'tive um pesadelo (.*)', [ | |
"Pesadelos podem ser perturbadores. Como você se sentiu ao acordar?", | |
"Esse pesadelo tem alguma relação com preocupações recentes?", | |
"Você tem pesadelos recorrentes?", | |
"O que foi mais assustador nesse pesadelo?" | |
]), | |
# Negações | |
(r'não (.*)', [ | |
"Por que não?", | |
"Você sempre teve essa posição?", | |
"E se fosse possível?" | |
]), | |
# Desculpas e despedidas | |
(r'desculpe(.*)', [ | |
"Não há necessidade de se desculpar.", | |
"Que sentimentos você tem quando se desculpa?", | |
"Não me deve desculpas - por favor, continue." | |
]), | |
(r'tchau|adeus|até logo', [ | |
"Obrigado pela conversa.", | |
"Até a próxima sessão.", | |
"Adeus, foi bom conversar com você." | |
]), | |
# Mudança, crescimento e futuro | |
(r'quero mudar (.*)', [ | |
"O que o motiva a querer mudar {0}?", | |
"Que passos você pode dar para realizar essa mudança?", | |
"O que representa o maior obstáculo para essa mudança?", | |
"Como você se imagina depois dessa mudança?" | |
]), | |
(r'no futuro (.*)', [ | |
"Como você se prepara para esse futuro?", | |
"Essa visão de futuro é algo que te motiva ou preocupa?", | |
"Que passos você pode dar hoje em direção a esse futuro?", | |
"O que você mais espera do futuro?" | |
]), | |
# Trabalho e Carreira | |
(r'meu trabalho|minha carreira|meu emprego (.*)', [ | |
"Como você se sente em relação ao seu trabalho atual?", | |
"Seu trabalho traz realização profissional?", | |
"O que você mais gosta e menos gosta no seu trabalho?", | |
"Como seu trabalho influencia outras áreas da sua vida?" | |
]), | |
(r'quero mudar de (trabalho|emprego|carreira) (.*)', [ | |
"O que está motivando esse desejo de mudança?", | |
"O que você busca em um novo {0}?", | |
"Quais habilidades suas poderiam ser melhor aproveitadas em outro {0}?", | |
"Você já começou a planejar essa transição?" | |
]), | |
(r'meu chefe|minha chefe (.*)', [ | |
"Como é seu relacionamento com seu chefe?", | |
"Como essa relação afeta seu desempenho no trabalho?", | |
"Você consegue comunicar suas ideias e preocupações com seu chefe?", | |
"O que você admira em seu chefe?" | |
]), | |
(r'(estresse|pressão|sobrecarga) no trabalho (.*)', [ | |
"Como você lida com o {0} no ambiente profissional?", | |
"Quais estratégias você tem usado para administrar esse {0}?", | |
"Esse {0} tem afetado sua saúde ou relacionamentos?", | |
"O que poderia reduzir esse {0} no seu ambiente de trabalho?" | |
]), | |
# Educação e Aprendizado | |
(r'(estou estudando|estou aprendendo) (.*)', [ | |
"O que te motivou a estudar {1}?", | |
"Como tem sido essa experiência de aprendizado?", | |
"Quais desafios você enfrenta nesse processo de aprendizagem?", | |
"Como você pretende aplicar esses novos conhecimentos?" | |
]), | |
(r'meu curso|minha faculdade (.*)', [ | |
"Como você se sente em relação a essa etapa educacional?", | |
"O que você mais gosta no seu curso?", | |
"Suas expectativas estão sendo atendidas?", | |
"Como esse aprendizado se conecta com seus objetivos de vida?" | |
]), | |
# Hobbies e Interesses | |
(r'meu hobby|meu passatempo|gosto de (.*)', [ | |
"Como esse interesse começou?", | |
"O que esse hobby significa para você?", | |
"Com que frequência você dedica tempo a {0}?", | |
"Como esse interesse influencia outros aspectos da sua vida?" | |
]), | |
(r'não tenho tempo para (.*)', [ | |
"Como você prioriza seu tempo atualmente?", | |
"O que seria necessário reorganizar para ter tempo para {0}?", | |
"Por que {0} é importante para você?", | |
"Como você se sente quando não consegue dedicar tempo a {0}?" | |
]), | |
# Saúde Física | |
(r'(minha saúde|problemas de saúde|doença) (.*)', [ | |
"Como essa questão de saúde afeta seu dia a dia?", | |
"Você tem recebido o suporte médico adequado?", | |
"Como você lida emocionalmente com essas questões de saúde?", | |
"Que estratégias têm ajudado você a lidar com isso?" | |
]), | |
(r'(exercício|alimentação|sono) (.*)', [ | |
"Como seus hábitos de {0} afetam seu bem-estar geral?", | |
"Você está satisfeito com seus hábitos atuais de {0}?", | |
"Que mudanças você gostaria de fazer relacionadas a {0}?", | |
"Como seu {0} se relaciona com sua saúde mental?" | |
]), | |
# Finanças | |
(r'(dinheiro|finanças|problemas financeiros) (.*)', [ | |
"Como essas questões financeiras afetam sua paz de espírito?", | |
"Que estratégias você tem usado para lidar com isso?", | |
"Como suas preocupações financeiras influenciam outras decisões na sua vida?", | |
"Você tem alguém com quem conversar sobre essas questões financeiras?" | |
]), | |
# Questões Existenciais | |
(r'(sentido da vida|propósito|significado) (.*)', [ | |
"O que te traz mais sentido e propósito na vida?", | |
"Como você define sucesso e realização pessoal?", | |
"Existem valores ou princípios que orientam suas decisões?", | |
"Como sua busca por propósito influencia suas escolhas diárias?" | |
]), | |
(r'(espiritualidade|religião|fé) (.*)', [ | |
"Qual papel a espiritualidade desempenha na sua vida?", | |
"Como essas crenças te ajudam em momentos difíceis?", | |
"Sua visão espiritual mudou ao longo do tempo?", | |
"Como sua fé influencia suas decisões e relacionamentos?" | |
]), | |
# Auto-cuidado e Bem-estar | |
(r'(preciso de tempo para mim|autocuidado) (.*)', [ | |
"Que práticas de autocuidado funcionam melhor para você?", | |
"O que impede você de priorizar seu bem-estar?", | |
"Como você se sente quando consegue dedicar tempo a si mesmo?", | |
"Que pequenas mudanças poderiam melhorar seu bem-estar diário?" | |
]), | |
# Tecnologia e Redes Sociais | |
(r'(redes sociais|internet|tecnologia) (.*)', [ | |
"Como você percebe a influência da tecnologia no seu bem-estar?", | |
"Qual sua relação com as redes sociais?", | |
"Como você equilibra o tempo online e offline?", | |
"A tecnologia aproxima ou distancia você das pessoas importantes?" | |
]), | |
# Mudanças de Vida | |
(r'(mudança|transição|nova fase) (.*)', [ | |
"Como você costuma lidar com grandes mudanças?", | |
"Quais recursos internos te ajudam em períodos de transição?", | |
"O que essa mudança representa para você?", | |
"Quais oportunidades você enxerga nessa nova fase?" | |
]), | |
# Decisões Difíceis | |
(r'(decisão difícil|escolha|dilema) (.*)', [ | |
"Que fatores você considera ao tomar decisões importantes?", | |
"Como você lida com a incerteza nas decisões?", | |
"Você costuma pedir conselhos ou prefere decidir sozinho?", | |
"O que você teme perder com essa decisão?" | |
]), | |
# Comunicação | |
(r'(difícil expressar|comunicação|não consigo falar) (.*)', [ | |
"O que torna difícil para você expressar {1}?", | |
"Com quais pessoas você se sente mais à vontade para se comunicar?", | |
"Como você gostaria que os outros respondessem quando você se expressa?", | |
"Que estratégias poderiam facilitar sua comunicação?" | |
]), | |
# Moradia e Ambiente | |
(r'(minha casa|onde moro|mudança de casa|ambiente) (.*)', [ | |
"Como seu ambiente afeta seu humor e bem-estar?", | |
"O que seu espaço pessoal representa para você?", | |
"Que aspectos do seu ambiente você gostaria de mudar?", | |
"Como você cria um espaço que reflete quem você é?" | |
]), | |
# Criatividade | |
(r'(criatividade|arte|expressão artística) (.*)', [ | |
"Como a criatividade se manifesta na sua vida?", | |
"Que forma de expressão artística ressoa mais com você?", | |
"Como você nutre sua criatividade?", | |
"O que a criatividade significa para seu bem-estar?" | |
]), | |
# Natureza e Meio Ambiente | |
(r'(natureza|meio ambiente|ar livre) (.*)', [ | |
"Qual sua conexão com a natureza?", | |
"Como o contato com ambientes naturais afeta seu estado de espírito?", | |
"Você consegue dedicar tempo regularmente para estar ao ar livre?", | |
"Que memórias significativas você tem relacionadas à natureza?" | |
]), | |
# Padrão genérico | |
(r'(.*)', [ | |
"Por favor, continue.", | |
"Me conte mais sobre isso.", | |
"Vamos explorar isso um pouco mais.", | |
"Como você se sente sobre isso?", | |
"Entendo...", | |
"Muito interessante.", | |
"E então?" | |
]) | |
] | |
def reflect(self, fragment): | |
words = fragment.lower().split() | |
for i, word in enumerate(words): | |
if word in self.reflections: | |
words[i] = self.reflections[word] | |
return ' '.join(words) | |
def analyze(self, statement): | |
for pattern, responses in self.psychobabble: | |
match = re.match(pattern.lower(), statement.lower()) | |
if match: | |
response = random.choice(responses) | |
if match.groups(): | |
reflected = self.reflect(match.group(1)) | |
response = response.format(reflected) | |
return response | |
return random.choice(self.psychobabble[-1][1]) | |
def chat(message, history): | |
eliza = Eliza() | |
return eliza.analyze(message) | |
# Criando a interface Gradio | |
interface = gr.ChatInterface( | |
fn=chat, | |
title="ELIZA - Terapeuta Virtual", | |
description=""" | |
Olá, eu sou ELIZA, uma terapeuta virtual. | |
Como posso ajudar você hoje? Sinta-se à vontade para compartilhar seus pensamentos e sentimentos. | |
""", | |
theme="soft", | |
examples=[ | |
["Eu me sinto muito triste ultimamente"], | |
["Minha mãe sempre me critica"], | |
["Eu quero mudar de emprego"], | |
["Eu sonhei com minha infância"], | |
["Estou com problemas no relacionamento"], | |
] | |
) | |
if __name__ == "__main__": | |
interface.launch() |