Para unir o processo de execução do projeto e traduzir as instruções da palavra-chave, precisamos basear nosso projeto noprompts.py
para descrever em detalhes o fluxo de execução de cada etapa e suas instruções de palavras-chave correspondentes.
Processo de execução do projeto e instruções de palavras-chave correspondentes
1. gerar consultas de pesquisa para ajudar a planejar relatórios
- Prompt:
report_planner_query_writer_instructions = """ Você é um redator técnico especializado que está ajudando a planejar um relatório. <report_topic} {topic} </report_topic <report_organisation} {report_organisation} </report_organisation <task Seu objetivo é gerar {number_of_queries} consultas de pesquisa para ajudar a reunir informações abrangentes para planejar a seção do relatório. Essas consultas devem: 1. ser relevantes para o tópico do relatório 2. ajudar a atender aos requisitos definidos na organização do relatório Tornar as consultas específicas o suficiente para encontrar recursos relevantes e de alta qualidade e, ao mesmo tempo, cobrir a amplitude necessária para a estrutura do relatório. </task """
2. plano para geração de relatórios
- Prompt:
report_planner_instructions = """ Preciso de um planejador de relatórios. Gerar uma lista de seções de relatório. Cada seção deve conter os seguintes campos: - Nome - O nome da seção do relatório. - Descrição - Um breve resumo dos principais tópicos abordados nessa seção. - Pesquisa - Se a pesquisa na Web é necessária para essa seção do relatório. - Conteúdo - O conteúdo dessa seção, que agora pode ser deixado em branco. Por exemplo, a Introdução e a Conclusão não exigirão pesquisa, pois destilarão informações do restante do relatório. </task O tópico do relatório é: {topic} </topic <organização do relatório O relatório deve seguir esta organização: {report_organisation} </report_organisation O contexto a seguir é usado para planejar a seção do relatório: {context} </context A seguir está o feedback (se houver) para revisar a estrutura do relatório: {feedback} </feedback """
3. preparação de consultas de pesquisa
- Prompt:
query_writer_instructions = """ Você é um redator técnico especializado que está escrevendo consultas de pesquisa na Web direcionadas para reunir informações abrangentes para escrever a seção de relatório técnico. <section_topic {section_topic} </section_topic Seu objetivo é gerar {número_de_consultas} consultas de pesquisa para ajudar a reunir informações abrangentes sobre os tópicos desta seção. Essas consultas devem: 1. ser relevantes para o tópico 2. examinar diferentes aspectos do tópico Tornar as consultas específicas o suficiente para encontrar recursos relevantes e de alta qualidade. </task """
4. componente de elaboração de relatórios
- Prompt:
section_writer_instructions = """ Você é um redator técnico especializado que está escrevendo uma seção de um relatório técnico. <section_topic {section_topic} </section_topic <conteúdo da seção existente (se preenchido)} {section_content} </section_content <source material {context} </material de origem <Diretrizes de redação 1. Se a seção existente não estiver preenchida, crie uma nova seção do zero. 2. Se uma seção existente for preenchida, componha uma nova seção que sintetize o conteúdo existente com as novas informações. <Comprimento e estilo - Estritamente limitado a 150-200 palavras - Sem linguagem de marketing - Foco técnico - Use uma linguagem simples e clara - Comece com os insights mais importantes usando **negrito** - Use parágrafos curtos (no máximo 2 a 3 frases por parágrafo) - Use ## para os títulos das seções (formato Markdown) - Use um elemento estrutural somente quando ele ajudar a esclarecer um ponto: * Uma tabela centralizada comparando 2 a 3 itens principais (usando a sintaxe de tabela do Markdown) * Uma lista curta (3 a 5 itens) usando a sintaxe correta de lista do Markdown: - Use `*` ou `-` para listas não ordenadas - Use `1.` para uma lista ordenada. - Certifique-se de que o recuo e o espaçamento estejam corretos. - Termine com uma referência à fonte #### do seguinte material de origem: * Liste o título, a data e o URL de cada fonte. * Formato: `- Título : URL' </comprimento e estilo - Exatamente 150 a 200 palavras (excluindo título e fonte) - Uso cuidadoso de um elemento estrutural (tabela ou lista) somente quando ele ajudar a esclarecer os pontos - Um exemplo concreto/estudo de caso - Começar com um insight em negrito - Nenhum preâmbulo antes de criar seções de conteúdo - Cite as fontes no final </verificação de qualidade """
5. avaliação do componente de relatório
- Prompt:
section_grader_instructions = """ Revise a seção do relatório relativa ao tópico especificado: <section_topic {section_topic} </section_topic
{section} </section_content <task} Avalie se a seção cobre adequadamente o tópico, verificando a precisão técnica e a profundidade. Se a seção não atender a nenhum dos critérios, gere consultas de pesquisa de acompanhamento específicas para reunir as informações que faltam. </task <formato nota: Literal["aprovado", "reprovado"] = Field( description="Resultado da avaliação indicando se a resposta atende aos requisitos ('aprovado') ou requer revisão ('reprovado')." ) follow_up_queries: List[SearchQuery] = Field( description="Lista de consultas de pesquisa de acompanhamento." , ) </formato """
6. escrever a seção do relatório final
- Prompt:
final_section_writer_instructions = """ Você é um redator técnico especializado que está escrevendo uma seção que sintetiza informações de outras seções do relatório. <section_topic {section_topic} </section_topic <conteúdo disponível do relatório} {context} </available_report_content <tasks 1. métodos parcialmente específicos: Para a apresentação: - Use # como título do relatório (formato Markdown) - Limite de 50 a 100 palavras - Use uma linguagem simples e clara - Concentre-se na motivação central do relatório, de 1 a 2 parágrafos. - Use um arco narrativo claro para apresentar o relatório - Sem elementos estruturais (sem listas ou tabelas) - Não há necessidade de uma seção de fontes Para conclusão/resumo: - Use ## para os títulos das seções (formato Markdown) - Limite de 100 a 150 palavras - Para relatórios comparativos: * Deve incluir uma tabela de comparação centralizada usando a sintaxe de tabela do Markdown * As tabelas devem destilar os insights do relatório * Mantenha as entradas da tabela claras e concisas. - Para relatórios não comparativos: * Use um elemento estrutural somente se ele ajudar a destilar os insights do relatório: * Uma tabela centralizada comparando itens no relatório (usando a sintaxe de tabela Markdown) * Uma lista curta usando a sintaxe correta de lista do Markdown: - Use `*` ou `-` para uma lista não ordenada. - Use `1.` para uma lista ordenada. - Certifique-se de que o recuo e o espaçamento estejam corretos - Termine com uma próxima etapa ou impacto específico - Não há necessidade de uma seção de fonte 3) Método de redação: - Use detalhes específicos em vez de declarações gerais - Faça com que cada palavra conte - Concentre-se no ponto mais importante </task - Para a introdução: limite de 50-100 palavras, # como título do relatório, sem elementos estruturais, sem seção de fontes - Para a conclusão: limite de 100-150 palavras, ## como título da seção, usando apenas um elemento estrutural, sem seção de fontes - Formatação Markdown - Não inclua contagem de palavras ou qualquer preâmbulo na resposta </verificação de qualidade """
Processo de execução em tandem
1. inicialização (Start)
- importação Tópicos fornecidos pelo usuário, como "Overview of the AI Reasoning market with a focus on Fireworks, Together.ai, Groq" (Visão geral do mercado de raciocínio de IA com foco em Fireworks, Together.ai, Groq).
- curso dos acontecimentos O sistema inicializa o estado e armazena o tópico como parte do estado sem chamadas de modelo de IA.
- exportações Status do tópico: contém o status do tópico para uso nas etapas subsequentes.
2. planejamento
- importação Status do tópico: Contém o status do tópico.
- curso dos acontecimentos Gerar um plano de pesquisa usando um modelo de planejamento, como o padrão OpenAI o3-mini ou o deepseek-r1-distill-llama-70b do Groq. A palavra-chave é: "Dado um tópico [tema], crie um plano de pesquisa, dividido em subtópicos, que siga a estrutura do relatório: introdução, seção principal do corpo e conclusão."
- exportações Status: atualizado para incluir programas de pesquisa (lista de subtópicos), por exemplo, "1. definição do mercado de inferência de IA; 2. papel dos fogos de artifício; 3. JuntosUm estudo de caso do .ai", entre outros.
- Fonte de palavras-chave Estrutura do relatório: Presumivelmente a partir da DEFAULT_REPORT_STRUCTURE do configuration.py, a estrutura consiste em uma introdução, uma seção do corpo principal e uma conclusão, sendo que a seção do corpo principal precisa abranger os principais conceitos, definições e exemplos.
3. geração de consultas
- importação Status do programa de pesquisa: Contém o status do programa de pesquisa.
- curso dos acontecimentos Use o modelo de IA para gerar uma consulta de pesquisa para cada subtópico com a seguinte frase: "Para cada subtópico em [plano de pesquisa], gere [número_de_consultas] consultas de pesquisa para encontrar informações relevantes." O número_de_consultas padrão é 2.
- exportações Status atualizado para incluir a lista de consultas de pesquisa, como "AI Reasoning Market Definition 2023", "Fireworks AI Service Case", etc.
- Fonte de palavras-chave Na documentação do projeto, é mencionado que o número de consultas pode ser configurado, supondo que a palavra de prompt seja uma forma genérica da consulta gerada.
4. pesquisa na Web
- importação Status da consulta de pesquisa: Contém o status da consulta de pesquisa.
- curso dos acontecimentos Execute cada consulta usando a API de pesquisa (por exemplo, Tavily padrão) para obter resultados de pesquisa na Web. Nenhuma chamada de modelo de IA, executada diretamente pela ferramenta.
- exportações Status: O status é atualizado para incluir resultados de pesquisa (URLs ou listas de snippets), como um resumo das páginas retornadas pela Tavily.
- Detalhes técnicos Dependência de tavily-python >= 0.5.0, necessidade de configurar TAVILY_API_KEY.
5 Processamento de dados
- importação Status da pesquisa: Contém o status dos resultados da pesquisa.
- curso dos acontecimentos Use o modelo de IA para resumir os resultados da pesquisa para cada subtópico com a frase de solicitação: "Summarize the search result information for each sub-topic."
- exportações Status atualizado para incluir dados de processamento (resumo), por exemplo, "Definição do mercado de inferência de IA: refere-se ao setor que usa modelos de IA para previsão em tempo real e está crescendo rapidamente até 2023".
- Fonte de palavras-chave Pressupostos para prompts genéricos para tarefas de resumo, com base nos objetivos do projeto para gerar relatórios.
6) Elaboração de relatórios
- importação Status dos dados processados: Contém o status dos dados processados.
- curso dos acontecimentos Use um modelo de escrita (por exemplo, padrão antrópico). Claude 3.5 Soneto) Escreva uma seção de relatório com base em dados processados com as seguintes palavras: "Use dados processados para escrever uma seção de relatório para cada subtema, seguindo a estrutura do relatório."
- exportações Status atualizado para incluir uma seção de relatório, por exemplo, "Introdução: o mercado de raciocínio de IA é uma área importante para a adoção de IA; Seção 1 do corpo principal: o Fireworks fornece serviços de raciocínio eficientes, com casos que incluem implantações em nuvem".
- Fonte de palavras-chave Em conjunto com DEFAULT_REPORT_STRUCTURE, o relatório precisa incluir uma visão geral, conceitos-chave e exemplos.
7. reflexão
- importação Status da seção do relatório: Contém o status da seção do relatório.
- curso dos acontecimentos Use o modelo de IA para revisar o relatório e determinar se mais pesquisas são necessárias, com as seguintes palavras: "Revise a seção do relatório e identifique quaisquer lacunas ou áreas em que mais pesquisas são necessárias. Se for necessária mais pesquisa, sugira novos subtópicos ou consultas."
- exportações Status atualizado para incluir a decisão de iteração (por exemplo, mais pesquisas necessárias) ou o relatório final. Se a iteração for necessária, produza novos subtópicos ou sugestões de consulta.
- Fonte de palavras-chave Observação: mencionar na documentação do projeto que a reflexão e a iteração são apoiadas, presumindo que a palavra-chave seja uma forma genérica de revisão e recomendação.
8. saída
- importação Status do relatório final: Contém o status do relatório final (quando o Reflection decide que o relatório está completo).
- curso dos acontecimentos Compilar todas as seções do relatório para gerar o relatório final no formato Markdown sem chamadas de modelo de IA.
- exportações Relatório final, por exemplo, documento Markdown completo para os usuários baixarem ou visualizarem.