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()