Spaces:
Sleeping
Sleeping
Update prompt.py
Browse files
prompt.py
CHANGED
|
@@ -13,7 +13,7 @@ def build_prompt(tools: List[BaseTool]) -> ChatPromptTemplate:
|
|
| 13 |
tool_names = ", ".join(t.name for t in tools)
|
| 14 |
|
| 15 |
system_text = (
|
| 16 |
-
"You are a
|
| 17 |
"You have ONLY the following tools — do not call anything else:\n\n"
|
| 18 |
f"{tool_ref}\n\n"
|
| 19 |
"The research domain is FIXED: AI and Societal Impact. Never ask the user for a topic.\n"
|
|
@@ -32,11 +32,14 @@ def build_prompt(tools: List[BaseTool]) -> ChatPromptTemplate:
|
|
| 32 |
" - Call import_from_scratch() to see if there are any papers in the scratch folder to add.\n"
|
| 33 |
" - If count is greater than 0 (after scratch import), check if this data satisfies the user request.\n\n"
|
| 34 |
"Step C — FETCH FROM WEB (only if needed):\n"
|
| 35 |
-
" - Use search_academic_source to search.
|
|
|
|
|
|
|
|
|
|
| 36 |
" - Process exactly 5 relevant papers at a time from the raw results.\n"
|
| 37 |
-
" -
|
| 38 |
-
" -
|
| 39 |
-
" - Call save_papers with this mapped JSON array.\n\n"
|
| 40 |
"Step D — DOI ENRICHMENT:\n"
|
| 41 |
" Always call enrich_doi after any ingestion to ensure every paper has a DOI if possible.\n\n"
|
| 42 |
|
|
|
|
| 13 |
tool_names = ", ".join(t.name for t in tools)
|
| 14 |
|
| 15 |
system_text = (
|
| 16 |
+
"You are a Curator of Academic Artifacts specializing in Qualitative Thematic Analysis.\n"
|
| 17 |
"You have ONLY the following tools — do not call anything else:\n\n"
|
| 18 |
f"{tool_ref}\n\n"
|
| 19 |
"The research domain is FIXED: AI and Societal Impact. Never ask the user for a topic.\n"
|
|
|
|
| 32 |
" - Call import_from_scratch() to see if there are any papers in the scratch folder to add.\n"
|
| 33 |
" - If count is greater than 0 (after scratch import), check if this data satisfies the user request.\n\n"
|
| 34 |
"Step C — FETCH FROM WEB (only if needed):\n"
|
| 35 |
+
" - Use search_academic_source to search. Valid sources: 'google_scholar', 'arxiv', 'pubmed', 'tavily', 'apify', 'hf_papers', 'semantic_scholar', 'openalex', 'scopus', 'web_of_science'.\n"
|
| 36 |
+
" - HIERARCHY: Always try 'semantic_scholar', 'openalex', or 'arxiv' first, as they are free and open. Only use 'scopus' or 'web_of_science' if specifically requested by the user, and handle missing API key errors gracefully.\n"
|
| 37 |
+
" - Cycle through these specialized sources to find the best match for the user's topic.\n"
|
| 38 |
+
" - We strictly enforce a Research-Only rule. Explain if content is discarded for being a Book, Chapter, or News.\n"
|
| 39 |
" - Process exactly 5 relevant papers at a time from the raw results.\n"
|
| 40 |
+
" - Format the 5 papers into a JSON array using these EXACT keys: 'Title', 'DOI', 'Web Link', 'Authors', 'Date of Publication', 'Journal', 'Abstract', 'No of Citations'.\n"
|
| 41 |
+
" - ALWAYS include a direct link to the PDF file in the 'Web Link' field if one exists in the search results.\n"
|
| 42 |
+
" - Call save_papers with this mapped JSON array. The system will automatically download any PDFs found in the 'Web Link' field.\n\n"
|
| 43 |
"Step D — DOI ENRICHMENT:\n"
|
| 44 |
" Always call enrich_doi after any ingestion to ensure every paper has a DOI if possible.\n\n"
|
| 45 |
|