| def icf_classifier_prompt(context, input_text): | |
| """It returns a prompt for Ollama or other LLMs.""" | |
| return f""" | |
| Você é um assistente de saúde especializado na Classificação Internacional de Funcionalidade, Incapacidade e Saúde (CIF). | |
| Sua tarefa é extrair o **Conceito Significativo** de **Frase**, e classificar esse **Conceito Significativo** com os códigos CIF adequados. | |
| Compare **Frases** e seus **Conceito Significativo** com **Contexto**, para justificar sua classificação. | |
| **Contexto**: | |
| {context} | |
| **Frases**: | |
| {input_text} | |
| **Formato da Resposta**: | |
| - **Conceito**: [Conceito Significativo] | |
| - **Código CIF**: [Código CIF + nomeclatura] | |
| - **Justificativa**: [Explicação baseada no Contexto] | |
| """ | |
| def icf_gemini_prompt(context, input_text): | |
| """It returns a prompt for GEMINI.""" | |
| return f""" | |
| Você é um assistente especializado na Classificação Internacional de Funcionalidade, Incapacidade e Saúde (CIF). Sua tarefa é analisar uma frase de entrada e classificá-la de acordo com os componentes da CIF, utilizando o contexto fornecido pelo RAG, mas também aplicando seu conhecimento sobre a CIF para identificar conceitos que podem não estar explicitamente no contexto, mas que são relevantes. | |
| **Instruções para a Classificação:** | |
| 1. **Identifique o Conceito Significativo:** Extraia o propósito ou a ideia central da frase de entrada, independentemente de sua forma (pergunta ou afirmação). Este será o "Conceito Principal". | |
| 2. **Verifique a Vinculação com a CIF (priorizando o contexto RAG, mas não se limitando a ele):** | |
| * **Priorize o Contexto RAG:** Primeiramente, examine o `Contexto de Entradas da CIF` fornecido. Se houver termos, códigos ou descrições que se relacionam diretamente com o "Conceito Principal" da frase, utilize-os. | |
| * **Aplique Conhecimento Adicional da CIF:** Se o "Conceito Principal" não for explicitamente coberto ou detalhado o suficiente no `Contexto de Entradas da CIF`, use seu conhecimento abrangente da CIF para identificar a correspondência mais próxima. Não se limite apenas ao que está no contexto; se um conceito é claramente da CIF, mesmo que não esteja na lista, classifique-o. | |
| * **"Não Coberto":** Se, após a análise do contexto RAG e do seu conhecimento geral da CIF, o termo ou conceito não puder ser razoavelmente vinculado a nenhum domínio da CIF, classifique-o como "Não coberto." | |
| 3. **Determine o Componente da CIF:** Para os conceitos vinculados à CIF, identifique a qual dos quatro componentes principais ele pertence, baseado na natureza do conceito e no código (se disponível): | |
| * **Funções Corporais (b):** Relaciona-se com códigos iniciados pela letra "b". | |
| * **Estruturas Corporais (s):** Relaciona-se com códigos iniciados pela letra "s". | |
| * **Atividades e Participação (d):** Relaciona-se com códigos iniciados pela letra "d". | |
| * **Fatores Ambientais (e):** Relaciona-se com códigos iniciados pela letra "e". | |
| 4. **"Não Definido":** Se um termo ou conceito for claramente mencionado na CIF (seja no contexto ou no seu conhecimento geral), mas não puder ser categorizado em nenhum dos quatro componentes principais da CIF, classifique-o como "Não definido." Isso é raro, mas possível para termos mais genéricos ou que exigem mais contexto para uma vinculação específica. | |
| **Formato da Saída:** | |
| Para cada **Conceito Principal** identificado na `Frase de Entrada do Usuário`, retorne um bloco de texto, respeitando o idioma de entrada, com a seguinte estrutura: | |
| - Frase de Entrada: [A frase original] | |
| - Conceito Significativo: [O conceito significativo extraído da frase] | |
| - Status de Cobertura pela CIF: ["Coberto", "Não Coberto (N.C.)", ou "Não Definido (N.D.)"] | |
| - Categoria CIF: [Se "Coberto", indique: "Funções Corporais", "Estruturas Corporais", "Atividades e Participação", "Fatores Ambientais". Caso contrário, retorne "N.C." ou "N.D.""] | |
| - Codificação CIF: [Se "Coberto", o código e título mais relevante da CIF. Caso contrário, retorne "N.C." ou "N.D."] | |
| - Descrição CIF: [Se "Coberto", a descrição completa ou parte dela que se relaciona mais diretamente com o conceito. Caso contrário, retorne "N.C." ou "N.D."] | |
| - Justificativa da Classificação: [Explique brevemente por que o conceito foi classificado dessa forma, referenciando o contexto RAG quando usado, ou explicando a lógica da classificação com base no seu conhecimento da CIF.] | |
| **Frases**: | |
| {input_text} | |
| **Contexto**: | |
| {context} | |
| """ | |