Skip to content
/ BE Public

'생각잇기'는 생성형 AI의 비사실적 정보 생성 문제를 해결하기 위한 의미 기반 RAG 지식그래프 시스템입니다. Clova OCR을 통해 PDF에서 텍스트를 자동 추출하고, AI가 생성한 정보를 Neo4j Aura에 저장합니다. 이후 RAG 방식을 적용하여, 그래프 기반 검색을 통해 보다 정확하고 신뢰성 높은 응답을 제공합니다.

Notifications You must be signed in to change notification settings

capgoing/BE

Repository files navigation

🧠 딥러닝 기반 지식 그래프 생성 시스템

최근 생성형 AI 기술은 텍스트 생성, 문서 요약, 번역 등 다양한 영역에서 활용되며 큰 주목을 받고 있습니다. 그러나 사실과 무관한 내용을 그럴듯하게 만들어내는 한계가 존재합니다. 이는 특히 정보성 자료에서 정보의 신뢰성을 해치는 심각한 요인이 될 수 있습니다. 이러한 문제를 해결하기 위해, 생각잇기 시스템은 생성형 AI의 기반 데이터를 구조화된 지식그래프 형태로 가공하여 AI의 의미 기반 응답 정확도를 높이고자 합니다.

최종

✨ 주요기능

  1. 텍스트가 담긴 PDF 파일을 업로드합니다.
  2. PDF에서 텍스트를 추출한 뒤, 직접 학습시킨 지식그래프 생성 모델을 통해 주요 개념과 관계를 시각적인 지식그래프로 구성합니다.
  3. 그래프의 노드를 더블 클릭하면 해당 문장이 포함된 문맥과 관련 이미지를 확인할 수 있으며, TTS 기술로 음성 출력도 가능합니다.
  4. 생성된 그래프를 바탕으로 Graph-RAG 기반 챗봇을 통해 정확하고 맥락 있는 질의응답이 가능합니다.
  5. 지식그래프 내용을 기반으로 3가지 형태의 퀴즈를 통해 자기 점검이 가능합니다.

🛠️ Backend 주요 기술

  • 개발언어: Java, Cypher Query
  • 개발환경: Spring Boot, Neo4j Aura, Docker, Docker-Compose
  • 개발도구: IntelliJ IDEA
  • 주요기술:
    • Clova OCR: 네이버 Clova OCR 콘솔에 템플릿을 등록하여, 해당 템플릿에 맞는 PDF 파일 입력 시 텍스트 자동 추출
    • Neo4j Aura: AI 모델이 생성한 지식그래프 데이터를 Node-Edge 구조로 매핑하여 저장하는 그래프형 데이터베이스
    • GitHub Actions + DockerHub: 코드 push 시 자동으로 테스트를 실행하고, Docker 이미지를 빌드 및 DockerHub에 배포하는 CI/CD 파이프라인 구성
    • RAG:

⚙️ 시스템 아키텍쳐

image 41

📂 프로젝트 구조

📁 Backend_Config             # 백엔드 서브모듈 관련 디렉토리
📄 Dockerfile                 # Docker 환경 설정 파일
📁 build                      # Gradle 빌드 결과물 디렉토리
📄 build.gradle               # Gradle 빌드 설정
📄 docker-compose.yml         # Docker Compose 설정 파일
📁 gradle                     # Gradle 관련 파일
📄 gradlew                    # Gradle 실행 스크립트 (Unix)
📄 gradlew.bat                # Gradle 실행 스크립트 (Windows)
📄 settings.gradle            # Gradle 프로젝트 설정
📁 src                        # 소스 디렉토리
 ├── 📁 main
 │    ├── 📁 java
 │    │    └── 📁 com.going.server
 │    │         ├── 📄 ServerApplication.java       # 메인 실행 클래스
 │    │         ├── 📁 domain                       # 도메인 모듈
 │    │         │    ├── 📁 chatbot
 │    │         │    ├── 📁 graph
 │    │         │    ├── 📁 ocr
 │    │         │    ├── 📁 openai
 │    │         │    ├── 📁 quiz
 │    │         │    ├── 📁 rag
 │    │         │    ├── 📁 upload
 │    │         └── 📁 global                       # 전역 설정 모듈
 │    │              ├── 📁 common
 │    │              ├── 📁 config
 │    │              ├── 📁 constant
 │    │              ├── 📁 exception
 │    │              ├── 📁 response
 │    │              └── 📁 temp
 │    └── 📁 resources               # 리소스 파일 (설정, 정적 자원 등)
 └── 📁 test                        # 테스트 코드 디렉토리

👩🏻‍💻 Developers

BE BE BE
강다현 김혜진 이주연
Docker 인프라 구축
CI/CD 자동 배포 환경 구성
REST API 구현
Graph-RAG 챗봇 구현
REST API 구현
Cypher 쿼리 GraphDB 구조 설계
@hyeonda02 @khyaejin @Juye0nLee

📹 시연

📽️ 시연영상 보러가기

About

'생각잇기'는 생성형 AI의 비사실적 정보 생성 문제를 해결하기 위한 의미 기반 RAG 지식그래프 시스템입니다. Clova OCR을 통해 PDF에서 텍스트를 자동 추출하고, AI가 생성한 정보를 Neo4j Aura에 저장합니다. 이후 RAG 방식을 적용하여, 그래프 기반 검색을 통해 보다 정확하고 신뢰성 높은 응답을 제공합니다.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •