최근 생성형 AI 기술은 텍스트 생성, 문서 요약, 번역 등 다양한 영역에서 활용되며 큰 주목을 받고 있습니다. 그러나 사실과 무관한 내용을 그럴듯하게 만들어내는 한계가 존재합니다. 이는 특히 정보성 자료에서 정보의 신뢰성을 해치는 심각한 요인이 될 수 있습니다. 이러한 문제를 해결하기 위해, 생각잇기 시스템은 생성형 AI의 기반 데이터를 구조화된 지식그래프 형태로 가공하여 AI의 의미 기반 응답 정확도를 높이고자 합니다.
- 텍스트가 담긴 PDF 파일을 업로드합니다.
- PDF에서 텍스트를 추출한 뒤, 직접 학습시킨 지식그래프 생성 모델을 통해 주요 개념과 관계를 시각적인 지식그래프로 구성합니다.
- 그래프의 노드를 더블 클릭하면 해당 문장이 포함된 문맥과 관련 이미지를 확인할 수 있으며, TTS 기술로 음성 출력도 가능합니다.
- 생성된 그래프를 바탕으로 Graph-RAG 기반 챗봇을 통해 정확하고 맥락 있는 질의응답이 가능합니다.
- 지식그래프 내용을 기반으로 3가지 형태의 퀴즈를 통해 자기 점검이 가능합니다.
- 개발언어: 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:
📁 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 # 테스트 코드 디렉토리
| BE | BE | BE |
|---|---|---|
| 강다현 | 김혜진 | 이주연 |
| Docker 인프라 구축 CI/CD 자동 배포 환경 구성 |
REST API 구현 Graph-RAG 챗봇 구현 |
REST API 구현 Cypher 쿼리 GraphDB 구조 설계 |
| @hyeonda02 | @khyaejin | @Juye0nLee |
📽️ 시연영상 보러가기

