papermind / src /reasoning /idea_generator.py
Kurapika993's picture
Initial PaperMind deployment
e23520e verified
Raw
History Blame Contribute Delete
925 Bytes
from __future__ import annotations
from src.reasoning.llm_client import OpenAIReasoner
from src.retrieval.retriever import evidence_packet
from src.schemas.domain import RetrievedEvidence
from src.schemas.outputs import IdeaResult
from src.schemas.prompts import IDEA_PROMPT
def generate_ideas(
reasoner: OpenAIReasoner,
request: str,
evidence: list[RetrievedEvidence],
) -> IdeaResult:
prompt = f"""
User focus:
{request}
Retrieved evidence:
{evidence_packet(evidence)}
Generate 4 to 6 distinct research ideas. Keep ideas technically specific, evidence-grounded, and
honest about uncertainty. Do not include MVP scope or CV/demo value. Use evidence IDs in each
idea's citations and wherever factual paper claims appear in prose.
""".strip()
return reasoner.parse(
system_prompt=IDEA_PROMPT,
user_prompt=prompt,
output_schema=IdeaResult,
max_output_tokens=9000,
)