Spaces:
Sleeping
Sleeping
File size: 1,764 Bytes
3d1811d 5fcb7fe 0dc951b 5fcb7fe 0dc951b 5fcb7fe 0dc951b 5fcb7fe 0dc951b 5fcb7fe 0dc951b 5fcb7fe 0dc951b 5fcb7fe 0dc951b | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 | from src.config import client
def get_paper_analysis(abstract):
"""
Generate summary, limitations, and research gaps
in a single API call.
"""
if not abstract:
return {
"summary": "No abstract available.",
"limitations": "N/A",
"research_gaps": "N/A"
}
prompt = f"""
You are an academic research assistant.
Analyze the following research abstract and return your answer in exactly this format:
SUMMARY:
(3-5 sentence summary)
LIMITATIONS:
- bullet point
- bullet point
RESEARCH_GAPS:
- bullet point
- bullet point
Abstract:
{abstract}
"""
response = client.chat.completions.create(
model="llama-3.1-8b-instant",
messages=[
{
"role": "user",
"content": prompt
}
],
temperature=0.3,
)
text = response.choices[0].message.content
summary = ""
limitations = ""
research_gaps = ""
current = None
for line in text.splitlines():
line = line.strip()
if line.upper().startswith("SUMMARY"):
current = "summary"
continue
elif line.upper().startswith("LIMITATIONS"):
current = "limitations"
continue
elif line.upper().startswith("RESEARCH_GAPS"):
current = "research_gaps"
continue
if current == "summary":
summary += line + "\n"
elif current == "limitations":
limitations += line + "\n"
elif current == "research_gaps":
research_gaps += line + "\n"
return {
"summary": summary.strip(),
"limitations": limitations.strip(),
"research_gaps": research_gaps.strip()
} |