File size: 4,798 Bytes
ef6d407
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
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}
    """