Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -21,7 +21,7 @@ def load_summarizer():
|
|
| 21 |
|
| 22 |
@st.cache_resource(show_spinner=False)
|
| 23 |
def load_text_generator():
|
| 24 |
-
# For demonstration, we load a text-generation model such as GPT-2
|
| 25 |
generator = pipeline("text-generation", model="gpt2")
|
| 26 |
return generator
|
| 27 |
|
|
@@ -40,7 +40,7 @@ def generate_ideas_with_hf(prompt):
|
|
| 40 |
def generate_ideas_with_openai(prompt, api_key):
|
| 41 |
"""
|
| 42 |
Generates research ideas using OpenAI's GPT‑3.5 model with streaming.
|
| 43 |
-
This function uses the latest OpenAI SDK v1.0
|
| 44 |
"""
|
| 45 |
openai.api_key = api_key
|
| 46 |
output_text = ""
|
|
@@ -139,13 +139,13 @@ paper_abstract = st.text_area("Enter the research paper abstract:", height=200)
|
|
| 139 |
if st.button("Generate Ideas"):
|
| 140 |
if paper_abstract.strip():
|
| 141 |
st.subheader("Summarized Abstract")
|
| 142 |
-
#
|
| 143 |
summary = summarizer(paper_abstract, max_length=100, min_length=30, do_sample=False)
|
| 144 |
summary_text = summary[0]['summary_text']
|
| 145 |
st.write(summary_text)
|
| 146 |
|
| 147 |
st.subheader("Generated Research Ideas")
|
| 148 |
-
# Build a combined prompt
|
| 149 |
prompt = (
|
| 150 |
f"Based on the following research paper abstract, generate innovative and promising research ideas for future work.\n\n"
|
| 151 |
f"Paper Abstract:\n{paper_abstract}\n\n"
|
|
@@ -169,8 +169,9 @@ if st.button("Generate Ideas"):
|
|
| 169 |
# --- Section 3: Knowledge Graph Visualization ---
|
| 170 |
st.header("Knowledge Graph Visualization")
|
| 171 |
st.markdown(
|
| 172 |
-
"Simulate a knowledge graph by entering paper details and their citation relationships in CSV format:
|
| 173 |
-
"
|
|
|
|
| 174 |
)
|
| 175 |
papers_csv = st.text_area("Enter paper details in CSV format:", height=150)
|
| 176 |
|
|
@@ -189,15 +190,17 @@ if st.button("Generate Knowledge Graph"):
|
|
| 189 |
# Build a directed graph using NetworkX
|
| 190 |
G = nx.DiGraph()
|
| 191 |
for paper in data:
|
| 192 |
-
|
|
|
|
| 193 |
for cited in paper["cited"]:
|
| 194 |
G.add_edge(paper["paper_id"], cited)
|
| 195 |
|
| 196 |
st.subheader("Knowledge Graph")
|
| 197 |
# Create an interactive visualization using Pyvis
|
| 198 |
net = Network(height="500px", width="100%", directed=True)
|
|
|
|
| 199 |
for node, node_data in G.nodes(data=True):
|
| 200 |
-
net.add_node(node, label=node_data
|
| 201 |
for source, target in G.edges():
|
| 202 |
net.add_edge(source, target)
|
| 203 |
# Save the interactive visualization to an HTML file and embed it in Streamlit
|
|
|
|
| 21 |
|
| 22 |
@st.cache_resource(show_spinner=False)
|
| 23 |
def load_text_generator():
|
| 24 |
+
# For demonstration, we load a text-generation model such as GPT-2.
|
| 25 |
generator = pipeline("text-generation", model="gpt2")
|
| 26 |
return generator
|
| 27 |
|
|
|
|
| 40 |
def generate_ideas_with_openai(prompt, api_key):
|
| 41 |
"""
|
| 42 |
Generates research ideas using OpenAI's GPT‑3.5 model with streaming.
|
| 43 |
+
This function uses the latest OpenAI SDK v1.0 and asynchronous API calls.
|
| 44 |
"""
|
| 45 |
openai.api_key = api_key
|
| 46 |
output_text = ""
|
|
|
|
| 139 |
if st.button("Generate Ideas"):
|
| 140 |
if paper_abstract.strip():
|
| 141 |
st.subheader("Summarized Abstract")
|
| 142 |
+
# Summarize the abstract to capture its key points
|
| 143 |
summary = summarizer(paper_abstract, max_length=100, min_length=30, do_sample=False)
|
| 144 |
summary_text = summary[0]['summary_text']
|
| 145 |
st.write(summary_text)
|
| 146 |
|
| 147 |
st.subheader("Generated Research Ideas")
|
| 148 |
+
# Build a combined prompt with the abstract and its summary
|
| 149 |
prompt = (
|
| 150 |
f"Based on the following research paper abstract, generate innovative and promising research ideas for future work.\n\n"
|
| 151 |
f"Paper Abstract:\n{paper_abstract}\n\n"
|
|
|
|
| 169 |
# --- Section 3: Knowledge Graph Visualization ---
|
| 170 |
st.header("Knowledge Graph Visualization")
|
| 171 |
st.markdown(
|
| 172 |
+
"Simulate a knowledge graph by entering paper details and their citation relationships in CSV format:\n\n"
|
| 173 |
+
"**PaperID,Title,CitedPaperIDs** (CitedPaperIDs separated by ';').\n\n"
|
| 174 |
+
"Example:\n\n```\n1,Paper A,2;3\n2,Paper B,\n3,Paper C,2\n```"
|
| 175 |
)
|
| 176 |
papers_csv = st.text_area("Enter paper details in CSV format:", height=150)
|
| 177 |
|
|
|
|
| 190 |
# Build a directed graph using NetworkX
|
| 191 |
G = nx.DiGraph()
|
| 192 |
for paper in data:
|
| 193 |
+
# Ensure each node has a 'title' key, even if it's an empty string.
|
| 194 |
+
G.add_node(paper["paper_id"], title=paper.get("title", ""))
|
| 195 |
for cited in paper["cited"]:
|
| 196 |
G.add_edge(paper["paper_id"], cited)
|
| 197 |
|
| 198 |
st.subheader("Knowledge Graph")
|
| 199 |
# Create an interactive visualization using Pyvis
|
| 200 |
net = Network(height="500px", width="100%", directed=True)
|
| 201 |
+
# Use get() to avoid KeyError and provide a fallback label.
|
| 202 |
for node, node_data in G.nodes(data=True):
|
| 203 |
+
net.add_node(node, label=node_data.get("title", str(node)))
|
| 204 |
for source, target in G.edges():
|
| 205 |
net.add_edge(source, target)
|
| 206 |
# Save the interactive visualization to an HTML file and embed it in Streamlit
|