Um die Projektausführung und die Übersetzung der Stichwortanweisungen miteinander zu verknüpfen, müssen wir unser Projekt auf der Grundlage desprompts.py
Datei, um den Ausführungsablauf jedes Schritts und die entsprechenden Stichwortanweisungen im Detail zu beschreiben.
Projektausführungsprozess und entsprechende Stichwortanweisungen
1. die Erstellung von Suchanfragen zur Planung von Berichten
- Eingabeaufforderung:
report_planner_query_writer_instructions = """ 你是一名专家技术写手,正在帮助计划一份报告。 <报告主题> {topic} </报告主题> <报告组织> {report_organization} </报告组织> <任务> 你的目标是生成 {number_of_queries} 个搜索查询,以帮助收集全面的信息来规划报告部分。 这些查询应当: 1. 与报告主题相关 2. 帮助满足报告组织中规定的要求 使查询足够具体,以找到高质量、相关的资源,同时覆盖报告结构所需的广度。 </任务> """
2. einen Plan für die Erstellung von Berichten
- Eingabeaufforderung:
report_planner_instructions = """ 我需要一个报告计划。 <任务> 生成一个报告部分的列表。 每个部分应当包含以下字段: - 名称 - 报告部分的名称。 - 描述 - 本部分涵盖的主要主题的简要概述。 - 研究 - 是否需要为本部分报告进行网络研究。 - 内容 - 本部分的内容,现在可以留空。 例如,介绍和结论将不需要研究,因为它们将从报告的其他部分提炼信息。 </任务> <主题> 报告的主题是: {topic} </主题> <报告组织> 报告应遵循此组织: {report_organization} </报告组织> <上下文> 以下是用于规划报告部分的上下文: {context} </上下文> <反馈> 以下是对报告结构的审查反馈(如果有): {feedback} </反馈> """
3. die Vorbereitung von Suchanfragen
- Eingabeaufforderung:
query_writer_instructions = """ 你是一名专家技术写手,正在编写有针对性的网络搜索查询,以收集撰写技术报告部分的全面信息。 <部分主题> {section_topic} </部分主题> <任务> 你的目标是生成 {number_of_queries} 个搜索查询,以帮助收集有关本部分主题的全面信息。 这些查询应当: 1. 与主题相关 2. 检查该主题的不同方面 使查询足够具体,以找到高质量、相关的资源。 </任务> """
4. die Komponente Berichtswesen
- Eingabeaufforderung:
section_writer_instructions = """ 你是一名专家技术写手,正在撰写技术报告的一个部分。 <部分主题> {section_topic} </部分主题> <现有部分内容(如果已填写)> {section_content} </现有部分内容> <源材料> {context} </源材料> <撰写指南> 1. 如果现有部分内容未填写,则从头撰写新的部分。 2. 如果现有部分内容已填写,请撰写一个新的部分,将现有内容与新信息综合起来。 <长度和风格> - 严格限制在150-200字 - 不使用营销语言 - 技术重点 - 使用简单、清晰的语言 - 用**加粗**的最重要的见解开头 - 使用简短的段落(每段最多2-3句话) - 使用 ## 作为部分标题(Markdown格式) - 仅在有助于澄清观点时使用一个结构元素: * 要么是比较2-3个关键项目的集中表格(使用Markdown表格语法) * 要么是使用正确的Markdown列表语法的简短列表(3-5项): - 使用 `*` 或 `-` 表示无序列表 - 使用 `1.` 表示有序列表 - 确保正确的缩进和间距 - 以参考以下源材料的###来源结束: * 列出每个来源的标题、日期和URL * 格式:`- 标题 : URL` </长度和风格> <质量检查> - 恰好150-200字(不包括标题和来源) - 仔细使用一个结构元素(表格或列表),仅在有助于澄清观点时 - 一个具体的例子/案例研究 - 以加粗见解开头 - 在创建部分内容之前不作任何序言 - 在结尾引用来源 </质量检查> """
5. die Bewertung der Berichterstattungskomponente
- Eingabeaufforderung:
section_grader_instructions = """ 审核相对于指定主题的报告部分: <部分主题> {section_topic} </部分主题> <部分内容> {section} </部分内容> <任务> 评估该部分是否通过检查技术准确性和深度,充分涵盖了主题。 如果该部分未满足任何标准,请生成具体的后续搜索查询以收集缺失的信息。 </任务> <格式> grade: Literal["pass","fail"] = Field( description="评估结果,指示响应是否符合要求('通过')或需要修订('失败')。" ) follow_up_queries: List[SearchQuery] = Field( description="后续搜索查询列表。", ) </格式> """
6. den Abschnitt über den Abschlussbericht schreiben
- Eingabeaufforderung:
final_section_writer_instructions = """ 你是一名专家技术写手,正在撰写综合报告其他部分信息的部分。 <部分主题> {section_topic} </部分主题> <可用报告内容> {context} </可用报告内容> <任务> 1. 部分特定方法: 对于介绍: - 使用 # 作为报告标题(Markdown格式) - 50-100字限制 - 使用简单和清晰的语言 - 重点介绍报告的核心动机,1-2段 - 使用清晰的叙述弧线介绍报告 - 不使用任何结构元素(无列表或表格) - 不需要来源部分 对于结论/总结: - 使用 ## 作为部分标题(Markdown格式) - 100-150字限制 - 对于比较报告: * 必须包含使用Markdown表格语法的集中比较表 * 表格应提炼报告中的见解 * 保持表格条目清晰简洁 - 对于非比较报告: * 仅在有助于提炼报告中的要点时使用一个结构元素: * 要么是比较报告中项目的集中表格(使用Markdown表格语法) * 要么是使用正确的Markdown列表语法的简短列表: - 使用 `*` 或 `-` 表示无序列表 - 使用 `1.` 表示有序列表 - 确保正确的缩进和间距 - 以具体的下一步或影响结束 - 不需要来源部分 3. 撰写方法: - 使用具体细节而非一般陈述 - 每个字都要有意义 - 重点突出最重要的一点 </任务> <质量检查> - 对于介绍:50-100字限制,# 作为报告标题,无结构元素,无来源部分 - 对于结论:100-150字限制,## 作为部分标题,仅使用一个结构元素,无来源部分 - Markdown格式 - 不在响应中包含字数或任何序言 </质量检查> """
Prozess der Tandemausführung
1. die Initialisierung (Start)
- Einfuhr Benutzerdefinierte Themen wie z.B. "Überblick über den AI Reasoning Markt mit Fokus auf Fireworks, Together.ai, Groq".
- Ablauf der Ereignisse Das System initialisiert den Zustand und speichert das Thema als Teil des Zustands ohne KI-Modellaufrufe.
- Ausfuhren Status: Enthält den Status des Themas zur Verwendung in den nachfolgenden Schritten.
2. die Planung
- Einfuhr Status: Enthält den Status des Themas.
- Ablauf der Ereignisse Generieren Sie einen Forschungsplan unter Verwendung eines Planungsmodells wie z.B. dem Standard OpenAI o3-mini oder Groq's deepseek-r1-distill-llama-70b. Die Aufforderung lautet: "Erstellen Sie anhand eines Themas einen Forschungsplan, der in Unterthemen gegliedert ist und der Berichtsstruktur folgt: Einleitung, Hauptteil und Schluss."
- Ausfuhren Status aktualisiert, um Forschungsprogramme (Liste von Unterthemen) aufzunehmen, z.B. "1. Definition des KI-Inferenzmarktes; 2. GemeinsamEine Fallstudie zu .ai", unter anderem.
- Quelle der Stichwörter Die Struktur besteht aus einer Einleitung, einem Hauptteil und einer Schlussfolgerung, wobei der Hauptteil die wichtigsten Konzepte, Definitionen und Beispiele abdecken muss, vermutlich aus der DEFAULT_REPORT_STRUCTURE von configuration.py.
3. die Erstellung von Abfragen
- Einfuhr : Enthält den Stand des Forschungsprogramms.
- Ablauf der Ereignisse Verwenden Sie das KI-Modell, um für jedes Unterthema eine Suchanfrage mit der folgenden Aufforderung zu generieren: "Generieren Sie für jedes Unterthema in [Forschungsplan] [Anzahl_der_Abfragen] Suchanfragen, um relevante Informationen zu finden." Die Standardanzahl_der_Abfragen ist 2.
- Ausfuhren Status aktualisiert, um eine Liste von Suchanfragen wie "AI Reasoning Market Definition 2023", "Fireworks AI Service Cases", etc. aufzunehmen.
- Quelle der Stichwörter Aus der Projektdokumentation geht hervor, dass die Anzahl der Abfragen konfiguriert werden kann, vorausgesetzt, dass das Prompt-Wort eine generische Form der generierten Abfrage ist.
4. die Websuche
- Einfuhr Status: Enthält den Status der Suchanfrage.
- Ablauf der Ereignisse Ausführen jeder Abfrage über eine Such-API (z. B. Standard-Tavily), um Websuchergebnisse zu erhalten. Keine KI-Modellaufrufe, Ausführung direkt über das Tool.
- Ausfuhren Status: Der Status wird aktualisiert, um Suchergebnisse (URLs oder Snippet-Listen) einzuschließen, wie z.B. eine Zusammenfassung der von Tavily zurückgegebenen Seiten.
- Technische Einzelheiten : Abhängigkeit von tavily-python >= 0.5.0, TAVILY_API_KEY muss konfiguriert werden.
5. die Datenverarbeitung
- Einfuhr Status: Enthält den Status der Suchergebnisse.
- Ablauf der Ereignisse KI-Modell verwenden, um die Suchergebnisse für jedes Unterthema zusammenzufassen, mit der Aufforderung: "Fassen Sie die Informationen der Suchergebnisse für jedes Unterthema zusammen".
- Ausfuhren Status aktualisiert, um Verarbeitungsdaten (Zusammenfassung) einzubeziehen, z. B. "AI Inference Market Definition: bezieht sich auf die Branche, die AI-Modelle für Echtzeit-Prognosen verwendet, die bis 2023 schnell wachsen werden."
- Quelle der Stichwörter Annahmen für generische Eingabeaufforderungen für zusammenfassende Aufgaben, basierend auf den Projektzielen für die Erstellung von Berichten.
6. das Verfassen von Berichten
- Einfuhr Status: Enthält den Status der verarbeiteten Daten.
- Ablauf der Ereignisse : Verwenden Sie ein Schreibmodell (z. B. Standard-Anthropic). Claude 3.5 Sonnet) Schreiben Sie einen Berichtsteil auf der Grundlage der verarbeiteten Daten mit der Aufforderung: "Schreiben Sie anhand der verarbeiteten Daten einen Berichtsteil für jedes Unterthema und folgen Sie dabei der Berichtsstruktur."
- Ausfuhren Status aktualisiert, um einen Berichtsabschnitt aufzunehmen, z. B. "Einleitung: Der Markt für KI-Reasoning ist ein wichtiger Bereich für die Einführung von KI; Hauptteil, Abschnitt 1: Fireworks bietet effiziente Reasoning-Dienste, mit Beispielen einschließlich Cloud-Implementierungen."
- Quelle der Stichwörter DEFAULT_REPORT_STRUCTURE: In Verbindung mit DEFAULT_REPORT_STRUCTURE muss der Bericht einen Überblick, Schlüsselkonzepte und Beispiele enthalten.
7. reflexion
- Einfuhr Status: Enthält den Status des Berichtsabschnitts.
- Ablauf der Ereignisse Verwenden Sie das KI-Modell, um den Bericht zu überprüfen, um festzustellen, ob weitere Untersuchungen erforderlich sind, mit der Aufforderung: "Überprüfen Sie den Berichtsabschnitt und identifizieren Sie Lücken oder Bereiche, in denen weitere Untersuchungen erforderlich sind. Wenn mehr Forschung erforderlich ist, schlagen Sie neue Unterthemen oder Abfragen vor.
- Ausfuhren Status aktualisiert, um die Iterationsentscheidung (z.B. weitere Forschung erforderlich) oder den Abschlussbericht einzubeziehen. Wenn eine Iteration erforderlich ist, werden neue Unterthemen oder Abfragevorschläge ausgegeben.
- Quelle der Stichwörter Hinweis aus der Projektdokumentation, dass Reflexion und Iteration unterstützt werden, unter der Annahme, dass das Stichwort eine allgemeine Form der Überprüfung und Empfehlung ist.
8. ausgang
- Einfuhr Status: Enthält den Status des Abschlussberichts (wenn Reflection entscheidet, dass der Bericht vollständig ist).
- Ablauf der Ereignisse Kompilieren Sie alle Berichtsabschnitte, um den endgültigen Bericht im Markdown-Format ohne AI-Modellaufrufe zu erstellen.
- Ausfuhren Abschlussbericht, z. B. ein vollständiges Markdown-Dokument, das die Benutzer herunterladen oder ansehen können.