AI를 활용한 연구 아이디어 자동생성기

소개

AI를 활용하여 생명과학을 비롯한 여러 연구분야에서 연구 아이디어를 자동으로 생성하는 시스템을 만들고자 했습니다.

  • 연구자는 연구 아이디어를 찾기 위해 많은 논문을 검색하고 분석해야 하는데, 이는 시간이 많이 소요됩니다.

  • 근거가 불분명한 웹 정보가 아닌 권위있고 최신의 Google scholar의 학술논문을 기반으로 연구 아이디어를 자동으로 도출해 주는 AI 기반 연구 아이디어 생성기를 만들면, 연구 아이디어를 얻는데 도움을 받을 수 있다고 생각했습니다.

  • Google Gemini AI의 API와 Google Scholar의 SerpAPI를 활용하였고, 연구 키워드를 입력하면 연구 아이디어 5개 + 관련 최신 논문 리스트 (3개 이상)를 자동으로 생성하도록 했습니다.

  • 연구 제목은 한글+영어로 함께 제공하도록 하였습니다.

진행 방법

이를 위해 챗GPT와 다음 세 가지 구글툴을 사용하였습니다.

1️⃣ Google Gemini API → 연구 키워드를 입력하면 AI가 연구 아이디어를 생성
2️⃣ Google Scholar API (SerpAPI) → 입력된 연구 키워드와 관련된 최신 논문을 검색
3️⃣ Google Colab / Python → 연구 아이디어와 참고 논문을 자동 정리하여 보여주고 txt로 저장

# 🔹 1. 필요한 라이브러리 설치
!pip install -q google-generativeai serpapi pandas

# 🔹 2. Google Gemini API & Google Scholar API 설정
import google.generativeai as genai
import requests
import re

# 🔥 API 키 입력 (본인의 API 키로 변경!)
GEMINI_API_KEY = "YOUR_GEMINI_API_KEY"  # Google Gemini API Key
SERPAPI_KEY = "YOUR_SERPAPI_KEY"  # SerpAPI Key

genai.configure(api_key=GEMINI_API_KEY)

def search_scholar_papers(query, num_results=5):
    """
    Google 학술검색 (SerpAPI 사용)으로 최신 논문 검색 (최대 5개 논문 활용)
    논문 제목과 링크만 저장
    """
    url = "https://serpapi.com/search"
    params = {
        "engine": "google_scholar",
        "q": query,
        "api_key": SERPAPI_KEY,
        "num": num_results
    }
    
    response = requests.get(url, params=params)
    data = response.json()

    papers = []
    if "organic_results" in data:
        for result in data["organic_results"][:num_results]:
            title = result.get("title", "No title available")
            link = result.get("link", "#")  # 논문 링크
            
            formatted_paper = f"{title} (🔗 {link})"  # 논문 제목 + 링크만 저장
            papers.append(formatted_paper)

    return papers

def generate_research_ideas(keywords, papers):
    """
    연구 키워드를 기반으로 최신 논문을 참고하여 연구 아이디어 5개를 생성
    """
    model = genai.GenerativeModel("gemini-pro")

    prompt = f"""
    다음 연구 키워드를 기반으로 최신 연구 논문 여러 개(최소 3개 이상)를 참고하여 연구 아이디어를 5개 생성해 주세요.
    
    연구 키워드: {', '.join(keywords)}

    최신 연구 논문:
    {papers}

    - 연구 아이디어는 반드시 **5개**를 생성해야 합니다.
    - 각 연구 아이디어는 최소 **3개 이상의 논문을 반드시 참고**해야 합니다.
    - 연구 제목은 반드시 **한글과 영어**로 함께 제공하세요. (예: "치아 재생 연구 (Tooth Regeneration Study)")
    - 각 연구 아이디어는 다음과 같은 형식으로 작성하세요:
      1. **연구 아이디어 제목 (한글 + 영어)**
      2. **연구 기획 (연구의 필요성과 배경 설명)**
      3. **실행 방법 (실험 방법, 기술적 접근 방식 등)**
      4. **참고 논문 리스트 (제목 + 링크 포함, 최소 3개 이상)**
    """

    response = model.generate_content(prompt)
    return response.text  

# 📝 연구 키워드 입력
user_input = input("연구 키워드를 입력하세요 (여러 개 입력하려면 쉼표로 구분): ")
research_keywords = [keyword.strip() for keyword in user_input.split(",")]

# 🔍 Google 학술검색 (SerpAPI)에서 최신 논문 검색 (최소 3개 이상 활용)
search_query = " ".join(research_keywords)
papers = search_scholar_papers(search_query)

# 🧠 연구 아이디어 5개 생성
ideas_text = generate_research_ideas(research_keywords, papers)

# 🔹 연구 아이디어 출력
print("\n🔬 최신 연구 아이디어 미리보기 🔬\n")
print(ideas_text.strip())

# 🔹 TXT 파일 저장 여부 선택
save_option = input("\n📂 연구 아이디어를 TXT 파일로 저장하시겠습니까? (y/n): ").strip().lower()

if save_option == 'y':
    txt_filename = "research_ideas_output.txt"
    with open(txt_filename, "w", encoding="utf-8-sig") as file:
        file.write("🔬 최신 논문 기반 연구 아이디어 🔬\n\n")
        file.write(ideas_text.strip())
    
    print(f"✅ 연구 아이디어가 '{txt_filename}' 파일로 저장되었습니다! (다운로드 가능)")

    # 🔹 Google Colab 환경에서 TXT 파일 다운로드 가능하도록 설정
    try:
        from google.colab import files
        files.download(txt_filename)
        print(f"📂 '{txt_filename}' 파일 다운로드를 시작합니다.")
    except:
        print(f"❌ Google Colab 환경이 아닙니다. 파일은 현재 디렉토리에 저장되었습니다: {txt_filename}")
else:
    print("❌ TXT 파일 저장이 취소되었습니다.")

결과와 배운 점

배운 점과 나만의 꿀팁

  1. AI를 활용하면 연구 아이디어 도출 시간을 대폭 단축할 수 있음

  2. Gemini API와 Google Scholar API를 결합하면 연구의 최신성을 유지 가능

  3. 결과를 TXT 파일로 저장할 수 있게 함

  4. 현재 본인이 연구중인 주제의 키워드를 직접 입력하여 직접 테스트 (참신성 좋으나 너무 광범위한 연구 아이디어를 제공하는 문제가 있음)

    한국 숫자가있는 페이지의 스크린 샷

과정 중 시행착오

  1. 도출되는 연구 아이디어 갯수가 너무 적은 문제 → AI 데이터처리 용량의 한계, 도출 아이디어 갯수 3개로 줄임

  2. 연구 아이디어가 너무 단순하게 생성되는 문제 → 프롬프트 개선하여 연구 기획 + 실행 방법까지 포함하도록 수정

  3. Google Scholar API에서 논문 발행 연도를 정확하게 가져오지 못하는 문제 → 논문 제목 옆에 링크를 연결해서 해결

  4. 참고 논문의 개수가 너무 적게 나오는 문제 → AI가 논문을 무조건 5개 이상 사용해야 한다는 조건을 추가

  5. 도출 아이디어 숫자와 참고 논문의 숫자를 강제로 올리면 AI가 과부하로 제대로 수행하지 못함

앞으로의 계획

연구 키워드 입력 대신, 사용자가 PDF 논문을 업로드하면 AI가 논문을 분석하여 연구 아이디어를 추천하는 기능 계획
연구 아이디어에 논문의 핵심 내용 요약을 포함하는 기능도 실험해 볼 예정
연구 키워드의 유사도를 분석하여 관련 연구 키워드 추천 시스템 구축

도움 받은 글 (옵션)

챗GPT는 현재 나의 반려뇌 😅로서 모든 과정을 챗GPT와 함께 상의하면서 했습니다.
"저는 AI 스터디에 참여하고 있습니다. 직업은 [연구자]이며, 주로 [생명과학 연구]를 하고 있습니다. 제 AI 활용 실력은 [하급] 정도입니다. 4주 정도의 기간 동안, 프로젝트 아이디어를 가볍게 브레인스토밍하려고 합니다. 요청 제 직업이나 업무에 도움이 될 만한 AI 프로젝트 아이디어 5가지를 제안해 주세요. 너무 복잡하거나 거창하지 않아도 됩니다. 짧은 기간 안에 시도해볼 만한 것 위주로 제안해 주세요. 각 아이디어당 2~3줄 정도만 간단히 소개해 주시면 좋겠습니다."로 대화 시작했습니다.

현재 자신이 가진 문제점이 무엇이든 오래 대화하면서 좁혀가면 되지 않을까 생각합니다.

5
3개의 답글

👉 이 게시글도 읽어보세요