Tendo em vista que muitos amigos de senso comum usam o gráfico de conhecimento para aprimorar a recordação ou como armazenamento de memória de longo prazo e não entendem o método de construção do gráfico de conhecimento na era do grande modelo, aqui está uma simples popularização do senso comum, e a construção real terá mais diferenças.
De fato, o gráfico de conhecimento é simples, para dizer o mínimo, e o grande modelo é responsável por três blocos principais em seu processo: extração de relações, construção de consultas e resposta a perguntas.
Na verdade, há muitos outros detalhes, conforme mostrado no exemplo a seguir: (Otimização do processo de consulta intermediária)
Construção de palavras-chave do gráfico de conhecimento
# Etapa 1: Prompts de análise de problemas QUESTION_ANALYSIS_PROMPT = """ Você é um especialista em análise de consultas. Sua tarefa é analisar a pergunta fornecida e extrair os principais termos de pesquisa. Pergunta de entrada: {query} Siga estas etapas. 1. identifique as entidades principais (substantivos, nomes próprios) 2. extrair atributos importantes (adjetivos, descritores) 3. identificar indicadores de relacionamento (verbos, preposições) 4. observe quaisquer termos temporais ou condicionais Formate sua saída como. { "main_entities": ["entity1", "entity2"...], ["entity1", "entity2"...], ["entity1", "entity2"...] ["entity1", "entity2"...] ] , "attributes": ["attr1", "attr2"...] . "attributes": ["attr1", "attr2"...] , "attributes": ["attr2"...] "relationships": ["rel1", "rel2"...] . "conditions": ["cond1", "cond2"...] , "conditions": ["cond1", "cond2"...] "conditions": ["cond1", "cond2"...] . } Certifique-se de que cada termo seja. - Específico e relevante - Em sua forma básica/raiz - Sem duplicatas Exemplos. Q: "Quem criou a linguagem de programação Python?" { "main_entities": ["Python", "programming language"], "attributes": ["created"], { "conditions": [] } """ # Etapa 2: Prompts de expansão de sinônimos SYNONYM_EXPANSION_PROMPT = """ Você é um especialista em sistema de expansão de sinônimos. Sua tarefa é expandir cada termo com alternativas relevantes. Termos de entrada: {terms} Para cada termo, forneça. 1. sinônimos exatos 2. termos relacionados 3. variações comuns 4. abreviações/acrônimos 5. formas completas 6. erros ortográficos comuns Regras: Inclua a terminologia padrão do setor. - Incluir a terminologia padrão do setor - Considerar diferentes convenções de nomenclatura - Incluir termos formais e informais - Manter a equivalência semântica Formate sua saída como. { "termo": { "termo": { "termo": { "termo": { "termo": { "synonyms": ["syn1", "syn2"...] ["variations": ["var2"...]. "variations": ["var1", "var2"...] . "variations": ["var1", "var2"...] , "variations": ["var2"...] "abbreviations": ["abbr1", "abbr2"...] . , "related_terms": ["var1"...] , "abbreviations": ["abbr1", "abbr2"...] , "var2". "related_terms": ["rel1", "rel2"...] . } } Exemplo. Entrada: "Python" { "Python": { "related_terms": ["CPython", "Jython", "IronPython"] } } """ # Etapa 3: consultar a palavra do prompt de construção QUERY_CONSTRUCTION_PROMPT = """ Você é um especialista na construção de consultas a bancos de dados de gráficos. Sua tarefa é criar um padrão de pesquisa otimizado. Sua tarefa é criar um padrão de pesquisa otimizado. - Termos primários: {primary_terms} - Termos expandidos: {expanded_terms} - Relacionamentos: {relationships} Gere um padrão de consulta que: 1. 1. prioriza correspondências exatas 2. inclui correspondências de sinônimos 3. considera padrões de relacionamento 4. lida com variações de terminologia Regras: comece com os termos mais específicos. - Começar com os termos mais específicos - Incluir todos os relacionamentos relevantes - Considerar relacionamentos bidirecionais - Limitar adequadamente o comprimento do caminho Formate sua saída como. [exact_match_patterns]: ["pattern1", "pattern2". "exact_match_patterns": ["pattern1", "pattern2"...]] ["pattern1": "pattern2"...]. "fuzzy_match_patterns": ["pattern1", "pattern2"...] . ["pattern1"...] , "fuzzy_match_patterns": ["pattern1", "pattern2"...] . "relationship_patterns": ["pattern1", "pattern2"...] . "relationship_patterns": ["pattern1", "pattern2"...] , "relationship_patterns": ["pattern1", "pattern2"...] "priority_order": ["high", "medium", "low"] } Exemplo. { "fuzzy_match_patterns": ["MATCH (n) WHERE n.name =~ '(?i). *python.*'"], "relationship_patterns": ["MATCH (creator)-[:CREATED]->(lang)", "MATCH (lang)-[:TYPE_OF]->(prog_lang)"], "priority_order": ["exact_name_match", "fuzzy_name_match", "relationship_match"] } """ # Etapa 4: Palavra do prompt de classificação de resultados RESULT_RANKING_PROMPT = """ Você é um especialista em classificação e ordenação de resultados de pesquisa. Sua tarefa é pontuar e classificar as correspondências recuperadas. Resultados de entrada: {query_results} Consulta original: {original_query} Critérios de classificação. 1. relevância para a consulta original 2. qualidade da correspondência (exata vs. parcial) 3. distância de relacionamento 4. completude da informação 5. confiabilidade da fonte Pontue cada resultado em. - Relevância (0-10) - Confiança (0-10) - Completude (0-10) - Penalidade de comprimento do caminho (-1 por salto) Formate sua saída como. { "ranked_results": [ { "result": "result_content", "completeness_score": pontuação, "final_score": pontuação "final_score": pontuação, "reasoning". "reasoning" (raciocínio): "explanation" (explicação) } ], "summary": { "summary": { "reasoning": "explanation" } "summary": { "total_results": número, "total_results": número, "high_confidence_count": número, "high_confidence_count": número "high_confidence_count": número, "average_score": número, "high_confidence_count": número "average_score": número } } """
Com base nas palavras-chave acima, pode-se ver que o processo intermediário de construção de um gráfico de conhecimento pode ter muitos detalhes a serem tratados. Os sentidos do exemplo acima não são óbvios e o exemplo de saída a seguir é fornecido como referência.
Entrada e saída de conteúdo do gráfico de conhecimento
Etapa 1: Análise do problema
Entrada.
{
"query" (consulta): "Quais estruturas de aprendizagem profunda o Google desenvolveu?"
}
Saída.
{
"main_entities": ["Google"., "Estrutura de aprendizagem profunda"],
"atributos": ["Desenvolvimento"],
"relacionamentos": ["Desenvolvimento", "Criar", "Manutenção"],
"condições": []
}
Etapa 2: Expansão de sinônimos
Entrada.
{
"termos": ["Google"., "Estrutura de aprendizagem profunda"]
}
Saída.
{
"Google".: {
"synonyms" (sinônimos): ["Google LLC", "Google Inc.", "Corporação Google"],
"variações": ["google", "GOOGLE"],
"abreviações": ["GOOG"],
"related_terms": ["Alphabet Inc.", "IA do Google"., "Pesquisa do Google"]
},
"Estrutura de aprendizagem profunda": {
"synonyms" (sinônimos): ["Biblioteca de aprendizagem profunda", "Estrutura de rede neural"],
"variações": ["Estrutura DL", "Plataforma de aprendizado profundo"],
"abreviações": ["Estrutura DL", "Estrutura DNN"],
"related_terms": ["Estrutura de aprendizado de máquina"., "Estrutura de IA", "Biblioteca de redes neurais"]
}
}
Etapa 3: Construção da consulta
Entrada.
{
"primary_terms": ["Google"., "Estrutura de aprendizagem profunda"],
"expanded_terms": [
"Google"., "Google LLC", "Google Inc.", "IA do Google".,
"Estrutura de aprendizagem profunda", "Biblioteca de aprendizagem profunda", "Estrutura de rede neural"
],
"relacionamentos": ["Desenvolvimento", "Criar", "Manutenção"]
}
Saída.
{
"exact_match_patterns" (padrões de correspondência exata): [
"MATCH (org:Organisation {name: 'Google'})",
"MATCH (framework:Framework {type: 'deep_learning'})"
],
"fuzzy_match_patterns" (padrões de correspondência difusa): [
"MATCH (org) WHERE org.name =~ '(?i). *google.*'",
"MATCH (framework) WHERE framework.type =~ '(?i). *(deep learning|neural network). *'"
],
"relationship_patterns" (padrões de relacionamento): [
"MATCH (org)-[:DEVELOPED]->(framework)",
"MATCH (org)-[:CREATED]->(framework)",
"MATCH (org)-[:MAINTAINS]->(framework)",
"MATCH (framework)-[:DEVELOPED_BY]->(org)"
],
"priority_order": [
"exact_organisation_match",
"exact_framework_match",
"relationship_match",
"fuzzy_framework_match".
]
}
Etapa 4: Classificar resultados
Entrada.
{
"query_results": [
{
"org": "Google".,
"estrutura": "TensorFlow".,
"relacionamento": "Desenvolvimento",
"ano": "2015"
},
{
"org": "Google".,
"estrutura": "JAX",
"relacionamento": "Desenvolvimento",
"ano": "2018"
}
],
"original_query": "Quais estruturas de aprendizagem profunda o Google desenvolveu?"
}
Saída.
{
"ranked_results" (resultados classificados): [
{
"resultado": "O Google desenvolveu o TensorFlow, uma estrutura popular de aprendizado profundo",
"relevance_score": 10.0,
"confidence_score": 9.5,
"completeness_score": 9.0,
"final_score": 9.5,
"raciocínio": "Resposta direta com alta confiança - o TensorFlow é a principal estrutura de aprendizagem profunda do Google"
},
{
"resultado": "O Google desenvolveu o JAX, uma estrutura de aprendizado profundo.",
"relevance_score": 9.0,
"confidence_score": 8.5,
"completeness_score": 8.0,
"final_score": 8.5,
"raciocínio": "Relevante, mas menos conhecido que o TensorFlow"
}
],
"summary" (resumo): {
"total_results": 2,
"high_confidence_count": 2,
"average_score": 9.0
}
}
Consulta combinada final (Cypher).
// Primeiro, faça a correspondência da relação entre a organização e a estrutura
MATCH (org:Organisation)-[r:DEVELOPED|CREATED|MAINTAINS]->(framework:Framework)
WHERE org.name =~ '(?i). *google.*'
AND framework.type =~ '(?i). *(deep learning|neural network). *'
// 2. salvar os resultados intermediários
WITH org, framework, r
// 3. encontrar o caminho mais curto
MATCH p = shortestPath((org)-[*1..2]-(framework))
// 4. retornar os caminhos e classificá-los por popularidade
RETURN p
ORDER BY framework.popularity DESC
LIMITE 10
Resposta final:O Google desenvolveu várias estruturas de aprendizagem profunda," + "As mais famosas são TensorFlow (2015) e JAX (2018)." +"O TensorFlow é sua principal estrutura e a mais amplamente usada.
O processo de implementação acima também não está completo. Recomenda-se desmontar um projeto completo para análise, e o Llamaindex é uma boa opção. Abaixo está uma coleção de alguns exemplos de palavras de alerta para que você possa ter uma ideia.
Exemplos de palavras-chave do gráfico de conhecimento
Extração de relacionamento de entidades
SISTEMA: você é um especialista em extração de triplas de conhecimento. Sua tarefa é identificar entidades e seus relacionamentos em um determinado texto. Para cada texto, gere uma tríade de conhecimento no seguinte formato: (sujeito, relação, objeto) Regras: 1. o sujeito e o objeto devem ser entidades concretas 2. A relação deve ser um predicado claro e conciso. 3. cada tripla deve representar uma única declaração baseada em fatos 4. Evitar relacionamentos generalizados ou ambíguos. 5. manter a consistência na nomeação de entidades Texto de entrada: {text_chunk} Extraia os triplos de conhecimento do texto acima. Formatar cada tríade como: (entidade1) -> [relacionamento] -> (entidade2)
Observação: Para agregar relacionamentos de entidades de acordo com seu próprio setor, a extração do design de relacionamento de entidades é complexa, portanto, apenas o modelo básico é fornecido aqui.
Análise de problemas Palavras-chave
Você é um especialista profissional em análise de consultas. Sua tarefa é analisar determinadas perguntas e extrair os principais componentes para a pesquisa de gráficos de conhecimento. Pergunta de entrada: {query} Siga cuidadosamente as etapas abaixo: 1. extrair entidades-chave: - Identifique todas as entidades-chave (substantivos, nomes próprios, termos técnicos) - Liste todos os atributos específicos mencionados - Registre todos os valores ou datas 2. identificar relacionamentos: - Identificar verbos que mostrem relacionamentos entre entidades - Identificar preposições que mostrem conexões - Registre quaisquer relacionamentos implícitos 3. detectar o tipo de consulta: - Determine se ela é de um dos seguintes tipos: * Consultas factuais * Consultas relacionais * Consultas de comparação * Consultas de atributos * Consultas de linha do tempo 4. extrair restrições: - Restrições de tempo - Restrições de localização - Restrições de condições - Restrições de quantidade Apresente os resultados de sua análise no seguinte formato: { "entidades": ["entidade1", "entidade2", ...] , "attributes": ["attribute1", "attribute2", ...] "relationships" (relacionamentos): ["relationship1" (relacionamento1), "relationship2" (relacionamento2), ...] . "query_type": "type_of_query", . "constraints": { "time": [], "location" (local): [], "condition" (condição): [], "quantity": [] } } Lembre-se: - Identifique as entidades com precisão - Incluir todas as possíveis variantes de terminologia - Manter a precisão técnica - Manter a terminologia específica do domínio
Você é um especialista profissional em análise de consultas. Sua tarefa é analisar determinadas perguntas e extrair os principais termos de pesquisa. Digite a pergunta: {query} Siga as etapas abaixo: 1. identificar entidades-chave (substantivos, nomes próprios) 2. extrair atributos importantes (adjetivos, descritores) 3. identificar indicadores de relacionamento (verbos, preposições) 4. anote quaisquer termos relacionados a tempo ou condição Formatar a saída como: { "main_entities": ["entity1", "entity2"...] , "attributes": ["attr1", "attr2"...] . "attributes": ["attr1", "attr2"...] , "attributes": ["attr2"...] "relationships": ["rel1", "rel2"...] . , "conditions": ["cond1", "cond2"...] , "conditions": ["cond1", "cond2"...] "conditions": ["cond1", "cond2"...] . } Certifique-se de que cada termo: - Seja específico e relevante - esteja na forma básica/raiz - Sem repetição Exemplos: Q: "Quem criou a linguagem de programação Python?" { "main_entities": ["Python", "programming_language"], "conditions": [] }
Analise a pergunta a seguir e extraia os termos-chave para pesquisa: Pergunta: {query} Extraia: 1. entidades-chave 2. atributos principais 3. indicadores de relacionamento Formate sua resposta em uma lista de termos-chave.
palavra-chave de expansão de sinônimos
Você é um sistema profissional de expansão de sinônimos. Sua tarefa é gerar uma lista abrangente de sinônimos para os termos fornecidos, mantendo a precisão técnica e a integridade contextual do domínio. Digite os termos: {terms} Forneça extensões para cada termo nas seguintes categorias: 1. sinônimos precisos: - Termos que são diretamente equivalentes - Variantes com significados idênticos 2. termos relacionados: - Um termo mais amplo - Termos mais específicos - Conceitos relacionados 3. abreviações e formas alternativas: - Abreviações comuns - Forma completa - Grafias alternativas - Erros ortográficos comuns 4. variantes específicas do domínio: - Termos técnicos - Termos específicos do setor - Uso comum em diferentes contextos 5. Termos compostos: - Termos compostos relacionados - Variantes de frases - Combinações comuns Regras: 1. manter a equivalência semântica 2. manter a precisão técnica 3. considerar o contexto do domínio 4. incluir variantes comuns 5. adicionar termos técnicos relevantes Organize sua resposta no seguinte formato: { "term": { "exact_synonyms": [], "related_terms": [], "abbreviations": [], "compound_terms": [] } } Exemplo: Para o termo "aprendizado de máquina": { "aprendizado de máquina": { "exact_synonyms": ["ML", "machine learning"], { "machine_learning": { "machine_learning": { "machine_learning": { "related_terms": ["artificial intelligence" (inteligência artificial), "aprendizado profundo"]. "abreviações": ["ML", "M.L."], "domain_terms": ["Statistical Learning", "Computational Learning"], "compound_terms": ["Machine Learning Algorithms", "ML Models"] } }
Você é um sistema profissional de expansão de sinônimos. Sua tarefa é expandir as alternativas relevantes para cada termo. Digite o termo: {terms} Para cada termo, forneça: 1. sinônimos exatos 2. termos relacionados 3. variantes comuns 4. abreviações/acrônimos 5. formas completas 6. erros comuns de ortografia Regras: - Incluir a terminologia padrão do setor - Considerar diferentes convenções de nomenclatura - Incluir termos formais e informais - Manter a equivalência semântica Formatar a saída como: { "termo": { "synonyms": ["syn1", "syn2"...] [ "variations": [ "var1": [ "syn2"...] ] ] "variations": ["var1", "var2"...] . , "variations": ["var1", "var2"...] , "variations": ["var2"...] "abbreviations": ["abbr1", "abbr2"...] . , "related_terms": ["var1"...] , "abbreviations": ["abbr1", "abbr2"...] , "var2". "related_terms": ["rel1", "rel2"...] . } } Exemplo: Entrada: "Python" { "Python": { "variations": ["python", "Python3", "Python2"], "abbreviations". "related_terms": ["CPython", "Jython", "IronPython"] } }
Você é um sistema profissional de expansão de sinônimos. Encontre sinônimos para cada palavra da lista ou palavras relacionadas comumente usadas para fazer referência à mesma palavra: Aqui estão alguns exemplos: - Um sinônimo para Palantir pode ser Palantir technologies ou Palantir technologies inc. - Um sinônimo para Austin pode ser Austin texas - Um sinônimo para Taylor swift pode ser Taylor - Um sinônimo para Winter park pode ser Winter park resort Formato: {format_instructions} Texto: {palavras-chave}
Para cada termo-chave, são fornecidas expressões alternativas comuns: Termo: {key_terms} Incluir: - Abreviações comuns - Nome completo - Conceitos semelhantes - Termos relacionados
Pistas de construção de consultas
Você é um especialista em construção de consultas de gráficos de conhecimento. Sua tarefa é criar um esquema de consulta estruturado usando os termos analisados e suas extensões. Entrada: - Consulta original: {original_query} - Componentes analisados: {analyzed_components} - Termos estendidos: {expanded_terms} Etapas de ação: 1. construir o padrão de pesquisa principal: Considere o seguinte: - Esquema de entidade - Padrões de relacionamento - Restrições de atributos - Esquema de caminho 2. definir prioridades de pesquisa: Categorizar os elementos de pesquisa como: - Termos que devem corresponder - Termos que devem corresponder - Termos que devem corresponder 3. Especificar a profundidade da relação: Determine: - Relação direta (1 salto) - Relação indireta (2 saltos) - Caminho complexo (vários saltos) 4. Definir restrições: Incluir: - Condições de filtragem de tempo - Restrições de tipo - Condições de atributo - Intervalo de valores Formato de saída: { "search_patterns": { "primary_entities": [], "secondary_entities": [], "relações": [], "attributes": [] }, "priorities": { "must_match": [], "should_match": [], "attributes": [] }, "priorities": { "nice_to_match": [] }, "depth_config": { "direct_relations" (relações diretas): [], "indirect_relations": [], "complex_paths": [] }, "constraints": { "time_filters": [], "type_constraints": [], "property_conditions": [], "value_ranges": [] } } Exemplo: Para "Who contributed to TensorFlow in 2020?" (Quem contribuiu para o TensorFlow em 2020?) Para "Quem contribuiu com o TensorFlow em 2020?": { "search_patterns": { "primary_entities": ["TensorFlow", "contributor"], { "search_patterns": { "search_patterns": { "relationships": ["contributed_to", "authored"], "attributes": ["date", "contribution_type"], ["date", "contribution_type"] }, "priorities": { "priorities": { "date", "contribution_type"] "priorities": { "should_match": ["contributor", "contribution"], { "nice_to_match": ["TensorFlow", "2020"], { "nice_to_match": ["commit_message", "pull_request_title"] } ... }
Você é um especialista em criar consultas de banco de dados de gráficos. Sua tarefa é criar um esquema de pesquisa otimizado. Entrada. - Termos primários: {primary_terms} - Termos estendidos: {expanded_terms} - Relacionamentos: {relationships} Gerar um padrão de consulta que exija: 1. corresponder preferencialmente a resultados exatos 2. inclua a correspondência de sinônimos 3. considerar padrões de relacionamento 4. lidar com variantes de termos Regras: - Começar com o termo mais específico - Incluir todas as relações relevantes - Considerar relações bidirecionais - Limitar adequadamente o comprimento dos caminhos Formatar a saída como: { "exact_match_patterns": ["pattern1", "pattern2"...] , "fuzzy_match_patterns": ["pattern1", "pattern2"...] ["pattern1"...] , "fuzzy_match_patterns": ["pattern1", "pattern2"...] . "relationship_patterns": ["pattern1", "pattern2"...] . "relationship_patterns": ["pattern1", "pattern2"...] , "relationship_patterns": ["pattern1", "pattern2"...] "priority_order": ["high" (alta), "medium" (média), "low" (baixa)] } Exemplo: { "exact_match_patterns": ["MATCH (n:Entity {name: 'Python'})"], "MATCH (n:Language {type: 'programming'})"], "fuzzy_match_patterns": ["MATCH (n) WHERE n.name =~ '(?i). *python.*'"], "relationship_patterns": ["MATCH (creator)-[:CREATED]->(lang)", "MATCH (lang)-[:TYPE_OF]->(prog_lang)"], "priority_order": ["exact_name_match", "fuzzy_name_match", "relationship_match"] }
Crie um padrão de pesquisa usando termos expandidos: {expanded_terms} Gerar: 1. termo de pesquisa primário 2. termos secundários 3. esquema de relacionamento
Dada a seguinte pergunta: {query} Extraia conceitos-chave e construa um padrão de pesquisa para ajudar a encontrar informações relevantes no gráfico de conhecimento. Conceitos-chave: - Identificar entidades-chave - Identificar relacionamentos de interesse - Considerar termos/sinônimos semelhantes O padrão de pesquisa deve incluir: 1. as entidades primárias a serem encontradas 2. os relacionamentos relevantes 3. quaisquer restrições ou condições
Dicas de classificação de resultados
Você é um especialista em classificar e ordenar resultados de pesquisa. Sua tarefa é pontuar e classificar os resultados recuperados. Resultados de entrada: {query_results} Consulta original: {original_query} Critérios de classificação: 1. relevância para a consulta original 2. qualidade da correspondência (exata vs. parcial) 3. distância de relacionamento 4. integridade das informações 5. confiabilidade da fonte Classifique cada resultado: - Relevância (0-10) - Confiança (0 a 10) - Integridade (0-10) - Penalidade de comprimento do caminho (-1 por salto) Formate a saída como: { "ranked_results": [ { "resultado": "conteúdo_do_resultado", "relevance_score": pontuação, "completeness_score": pontuação, "final_score": pontuação "final_score": pontuação, "reasoning". "reasoning" (raciocínio): "explanation" (explicação) } ], "summary": { "summary": { "reasoning": "explanation" } "summary": { "total_results": número, "total_results": número, "high_confidence_count": número, "high_confidence_count": número "high_confidence_count": número, "average_score": número, "high_confidence_count": número "average_score": número } }
Processamento de resultados Resposta à pergunta Prompt Words
Você é um processador de resultados de consultas. Sua tarefa é processar e formatar os resultados da consulta do gráfico de conhecimento em respostas coerentes. Entrada: - {pergunta_original} - Resultados da consulta: {query_results} - Informações de contexto: {context} Etapas de processamento: 1. analisar resultados. Avaliar: - Completude dos resultados - Relevância dos resultados - Qualidade dos resultados - Cobertura de todos os aspectos do problema 2) Informações combinadas. Combinadas: - Resultados diretamente correspondentes - Relações indiretas - Informações de apoio - Detalhes contextuais 3. respostas formatadas. As respostas estruturadas incluem: - Principais conclusões - Detalhes de apoio - Contexto relevante - Nível de confiança 4. identificar lacunas de informações:. Registre: - Informações ausentes - Aspectos de incerteza - Possíveis próximas etapas - Possíveis explicações alternativas Formato de saída: { "answer" (resposta): { "main_response": "", "supporting_facts": [], "confidence_level": "", "information_gaps": [] }, "metadata": { "sources_used": [], "result_quality": "", "processing_notes": [] }, "follow_up": { "suggested_questions" (perguntas sugeridas): [], "clarification_needed" (esclarecimento necessário): [], "additional_context": [] } } Diretrizes: - Precisão e exatidão - Manter a correção técnica - Indicar o nível de confiança - Documentar quaisquer incertezas - Sugerir perguntas de acompanhamento, se necessário
Você é um especialista em sintetizar os resultados de consultas a bancos de dados de gráficos em respostas de linguagem natural. Entradas. 1. pergunta original: {original_question} 2. resultados classificados: {ranked_results} 3. metadados da consulta: {query_metadata} Tarefa: gerar uma resposta abrangente. Gerar uma resposta abrangente que: 1. responda diretamente à pergunta original 2. incorpore informações de alta confiança dos resultados classificados 3. mantenha a precisão dos fatos e atribua corretamente as fontes Diretriz. - Comece com as informações mais relevantes - Inclua detalhes de apoio quando a confiança for alta - Reconheça quaisquer incertezas ou informações ausentes - Mantenha um estilo claro e conciso - Use a terminologia técnica correta Formate sua resposta da seguinte forma: { "main_answer": "A principal resposta à pergunta central", "supporting_details": [ "additional_relevant_facts 1", "Fatos de apoio adicionais 2" "metadata": { "confidence_score": float, "source_count": integer, "source_count": integer, "source_count": integer, "source_count": integer "source_count": integer, "information_completeness": float, "information_completeness": float "information_completeness": float }, { "query_coverage": "query_coverage": float "query_coverage": "Uma explicação de como as informações disponíveis responderam à pergunta original" } Saída de amostra. { "main_answer": "O Google desenvolveu o TensorFlow como sua principal estrutura de aprendizagem profunda e o lançou em 2015." , "supporting_details": [ "O Google desenvolveu outra estrutura de aprendizagem profunda, JAX, em 2018.", "supporting_details":[ "O Google desenvolveu o TensorFlow como sua principal estrutura de aprendizagem profunda e o lançou em 2018. "O TensorFlow se tornou uma das estruturas de aprendizagem profunda mais amplamente usadas." ],. "metadata": { "confidence_score": 9,5, "source_count": 2 "source_count": 2, "information_completeness". "information_completeness": 0,95 }, "query_coverage": "Os resultados da consulta fornecem informações abrangentes sobre o desenvolvimento das principais estruturas de aprendizagem profunda do Google" }
Com base nas informações recuperadas: {context} Responda à pergunta original: {query} Forneça uma resposta clara e concisa que exija: 1. responder diretamente à pergunta 2. usar somente as informações do conteúdo recuperado 3. indique se alguma informação está faltando ou é incerta