Java
ZJunCher / xiaoyan-ai-dev-assistant
RAG 혼합 검색 및 다회 메모리를 기반으로 한 AI 연구개발 지원 도구로, 팀 지식 질문 답변을 지원하며, 초보자가 RAG 응용 개발을 배우는 데에도 적합합니다.
62
2
약 1개월 전
이 프로젝트에 대해
ZJunCher 님의 xiaoyan-ai-dev-assistant 프로젝트는 GitHub에서 62개의 별을 받으며 많은 개발자들의 주목을 받고 있습니다. 특히 Java 환경에서 유용하게 활용될 수 있으며, 최근 오픈소스 커뮤니티에서 활발한 기여와 토론이 이루어지고 있는 트렌딩 레포지토리입니다.
Language Breakdown
Java 81%HTML 19%
🇰🇷 한국어 번역 README
캐시 히트지능형 효율성 AI 연구개발 어시스턴트
지능형 효율성 AI R&D 어시스턴트('샤오옌-AI-개발-어시스턴트')는 팀의 R&D 효율성 향상 시나리오를 위해 설계된 RAG 지능형 Q&A 지식 기반 시스템입니다. 이 프로젝트는 팀 프로젝트 자료, 연구개발 문서, 개발 사양, 온보드 교육 자료, 자주 묻는 질문을 중앙에서 관리하여 구성원들이 신속하게 지식을 찾고, 프로젝트 배경을 이해하며, 중복된 소통을 줄일 수 있도록 돕습니다.
이 시스템은 Spring Boot와 LangChain4j 기반으로 구축되었으며, 다중 형식 문서 파싱, 구조 인식 청킹, 의미 청킹, 벡터 검색, BM25 키워드 검색, 쿼리 재작성, 다중 턴 세션 메모리, 능동적 장기 메모리 입력을 지원합니다.
기능적 특징
- 문서 지식 라이브러리: PDF, Word, Markdown, TXT 등으로 문서 업로드를 지원하며, Apache Tika를 기반으로 텍스트를 추출합니다.
- 지능형 블록 전략: 구조적 특징 인식, 정책 라우팅, 구조 인지 청킹, 의미론적 청킹, 하이브리드 청킹 처리를 결합합니다.
- RAG 하이브리드 검색: 솔방울 벡터 검색과 메모리 BM25 키워드 검색을 결합하여 RRF 융합, 중복 제거, 리턴팅을 지원합니다.
- 쿼리 재작성 전략: 단기 기억을 결합해 사용자 질문을 맥락 내에서 완성하며, 다중 의도 분할과 키워드 확장을 지원합니다.
- 단기 기억: Redis 세션 맥락을 기반으로 하며, 32K 토큰 임계값 트리거와 오버랩 요약 압축 메커니즘을 사용합니다.
- 장기 기억: 사용자가 장기 기억을 적극적으로 입력하고 사용자 ID로 회상을 분리할 수 있도록 지원합니다.
- 스트리밍 Q&A: SSE 스타일의 스트리밍 채팅 인터페이스를 제공하여 프론트엔드가 실시간으로 생성된 결과를 표시할 수 있습니다.
- 경량 프론트엔드: 내장 채팅, 문서 업로드, 문서 목록, 문서 삭제, 장기 기억 입력 페이지
기술 스택
- 백엔드 프레임워크: Spring Boot 3.5
- 대형 모델 개발 프레임워크: LangChain4j
- 대형 모델: Qwen-Plus
- 벡터 모델: 텍스트 임베딩-v3
- 벡터 데이터베이스: Pinocone
- 문서 분석: Apache Tika
- 키워드 검색: 메모리 BM25
- 중국어 분사: HanLP
- 캐싱 및 단기 기억: Redis
- 데이터 저장: MySQL
- 오르마: 마이 바티스
- 프론트엔드: Vue 3 CDN + 네이티브 HTML/CSS
시스템 프로세스
문서 입력 절차
- 사용자가 문서를 업로드합니다.
- 백엔드는 Apache Tika를 사용해 본문을 추출합니다.
- 중복된 공백과 유효하지 않은 문자를 제거하여 텍스트를 정리합니다.
- 제목 밀도, 단락 길이, 서식, 마크업 밀도 및 기타 구조적 특징과 같은 구조적 특징을 분석합니다.
- 구조적, 의미론적 또는 하이브리드 청킹 전략을 자동으로 선택합니다.
- 문서와 청크 메타데이터를 MySQL에 작성합니다.
- 청크 텍스트를 벡터화한 후, 이를 Pinecone의 '지식' 네임스페이스에 입력한다.
- BM25 인덱스 메모리 재구축.
온라인 질의응답 과정
- 사용자가 질문을 보냅니다.
- 'userId + sessionId'를 사용하여 Redis에서 단기 기억을 읽습니다.
- LLM을 사용하여 쿼리 재작성, 다중 의도 분할, 키워드 확장을 수행합니다.
- 파인콘의 '기억' 네임스페이스에서 장기 기억을 회상한다.
- 벡터 검색과 BM25 검색을 사용하여 지식 기반 조각을 회상합니다.
- 후보 결과 융합, 중복 제거 및 재정렬.
- 원본 질문, 결과를 다시 쓰기, 단기 기억, 장기 기억, RAG 조각을 통합한 프롬프트를 만듭니다.
- Qwen-Plus에 전화하여 스트리밍 응답을 생성하세요.
- 이번 Q&A 라운드를 Redis에 작성하고, 임계값을 초과하면 요약 압축을 트리거합니다.
프로젝트 구조
환경 요구 사항
- JDK 17+
- 메이븐 3.8+
- MySQL 8+
- 레디스 6+
- Pinecone 계정 및 인덱스 (선택 사항, 로컬 기본값으로 메모리 내 벡터 라이브러리 사용)
🌐 본 텍스트는 빠른 이해를 돕기 위한 요약 번역본입니다. 정확한 기술 정보 및 전체 코드는 GitHub 원문에서 확인하실 수 있습니다.
이 정보는 AI가 자동으로 분석한 결과입니다. 정확한 내용은 원문을 확인하세요.
ZJunCher/xiaoyan-ai-dev-assistant GitHub 원문 바로가기 →