Spaces:
Running
Running
def generate_agent_role_prompt(agent): | |
"""Generates the agent role prompt. | |
Args: agent (str): The type of the agent. | |
Returns: str: The agent role prompt. | |
""" | |
prompts = { | |
"Finance Agent": ( | |
"You are a seasoned finance analyst AI assistant. Your" | |
" primary goal is to compose comprehensive, astute," | |
" impartial, and methodically arranged financial reports" | |
" based on provided data and trends." | |
), | |
"Travel Agent": ( | |
"You are a world-travelled AI tour guide assistant. Your" | |
" main purpose is to draft engaging, insightful," | |
" unbiased, and well-structured travel reports on given" | |
" locations, including history, attractions, and cultural" | |
" insights." | |
), | |
"Academic Research Agent": ( | |
"You are an AI academic research assistant. Your primary" | |
" responsibility is to create thorough, academically" | |
" rigorous, unbiased, and systematically organized" | |
" reports on a given research topic, following the" | |
" standards of scholarly work." | |
), | |
"Default Agent": ( | |
"You are an AI critical thinker research assistant. Your" | |
" sole purpose is to write well written, critically" | |
" acclaimed, objective and structured reports on given" | |
" text." | |
), | |
} | |
return prompts.get(agent, "No such agent") | |
def generate_report_prompt(question, research_summary): | |
"""Generates the report prompt for the given question and research summary. | |
Args: question (str): The question to generate the report prompt for | |
research_summary (str): The research summary to generate the report prompt for | |
Returns: str: The report prompt for the given question and research summary | |
""" | |
return ( | |
f'"""{research_summary}""" Using the above information,' | |
f' answer the following question or topic: "{question}" in a' | |
" detailed report -- The report should focus on the answer" | |
" to the question, should be well structured, informative," | |
" in depth, with facts and numbers if available, a minimum" | |
" of 1,200 words and with markdown syntax and apa format." | |
" Write all source urls at the end of the report in apa" | |
" format" | |
) | |
def generate_search_queries_prompt(question): | |
"""Generates the search queries prompt for the given question. | |
Args: question (str): The question to generate the search queries prompt for | |
Returns: str: The search queries prompt for the given question | |
""" | |
return ( | |
"Write 4 google search queries to search online that form an" | |
f' objective opinion from the following: "{question}"You must' | |
" respond with a list of strings in the following format:" | |
' ["query 1", "query 2", "query 3", "query 4"]' | |
) | |
def generate_resource_report_prompt(question, research_summary): | |
"""Generates the resource report prompt for the given question and research summary. | |
Args: | |
question (str): The question to generate the resource report prompt for. | |
research_summary (str): The research summary to generate the resource report prompt for. | |
Returns: | |
str: The resource report prompt for the given question and research summary. | |
""" | |
return ( | |
f'"""{research_summary}""" Based on the above information,' | |
" generate a bibliography recommendation report for the" | |
f' following question or topic: "{question}". The report' | |
" should provide a detailed analysis of each recommended" | |
" resource, explaining how each source can contribute to" | |
" finding answers to the research question. Focus on the" | |
" relevance, reliability, and significance of each source." | |
" Ensure that the report is well-structured, informative," | |
" in-depth, and follows Markdown syntax. Include relevant" | |
" facts, figures, and numbers whenever available. The report" | |
" should have a minimum length of 1,200 words." | |
) | |
def generate_outline_report_prompt(question, research_summary): | |
"""Generates the outline report prompt for the given question and research summary. | |
Args: question (str): The question to generate the outline report prompt for | |
research_summary (str): The research summary to generate the outline report prompt for | |
Returns: str: The outline report prompt for the given question and research summary | |
""" | |
return ( | |
f'"""{research_summary}""" Using the above information,' | |
" generate an outline for a research report in Markdown" | |
f' syntax for the following question or topic: "{question}".' | |
" The outline should provide a well-structured framework for" | |
" the research report, including the main sections," | |
" subsections, and key points to be covered. The research" | |
" report should be detailed, informative, in-depth, and a" | |
" minimum of 1,200 words. Use appropriate Markdown syntax to" | |
" format the outline and ensure readability." | |
) | |
def generate_concepts_prompt(question, research_summary): | |
"""Generates the concepts prompt for the given question. | |
Args: question (str): The question to generate the concepts prompt for | |
research_summary (str): The research summary to generate the concepts prompt for | |
Returns: str: The concepts prompt for the given question | |
""" | |
return ( | |
f'"""{research_summary}""" Using the above information,' | |
" generate a list of 5 main concepts to learn for a research" | |
f' report on the following question or topic: "{question}".' | |
" The outline should provide a well-structured frameworkYou" | |
" must respond with a list of strings in the following" | |
' format: ["concepts 1", "concepts 2", "concepts 3",' | |
' "concepts 4, concepts 5"]' | |
) | |
def generate_lesson_prompt(concept): | |
""" | |
Generates the lesson prompt for the given question. | |
Args: | |
concept (str): The concept to generate the lesson prompt for. | |
Returns: | |
str: The lesson prompt for the given concept. | |
""" | |
prompt = ( | |
f"generate a comprehensive lesson about {concept} in Markdown" | |
f" syntax. This should include the definitionof {concept}," | |
" its historical background and development, its" | |
" applications or uses in differentfields, and notable" | |
f" events or facts related to {concept}." | |
) | |
return prompt | |
def get_report_by_type(report_type): | |
report_type_mapping = { | |
"research_report": generate_report_prompt, | |
"resource_report": generate_resource_report_prompt, | |
"outline_report": generate_outline_report_prompt, | |
} | |
return report_type_mapping[report_type] | |