트렌딩 목록으로
Java

ZJunCher / xiaoyan-ai-dev-assistant

RAG 혼합 검색 및 다회 메모리를 기반으로 한 AI 연구개발 지원 도구로, 팀 지식 질문 답변을 지원하며, 초보자가 RAG 응용 개발을 배우는 데에도 적합합니다.

62
2
약 1개월 전
GitHub에서 보기

이 프로젝트에 대해

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

시스템 프로세스

문서 입력 절차

  1. 사용자가 문서를 업로드합니다.
  2. 백엔드는 Apache Tika를 사용해 본문을 추출합니다.
  3. 중복된 공백과 유효하지 않은 문자를 제거하여 텍스트를 정리합니다.
  4. 제목 밀도, 단락 길이, 서식, 마크업 밀도 및 기타 구조적 특징과 같은 구조적 특징을 분석합니다.
  5. 구조적, 의미론적 또는 하이브리드 청킹 전략을 자동으로 선택합니다.
  6. 문서와 청크 메타데이터를 MySQL에 작성합니다.
  7. 청크 텍스트를 벡터화한 후, 이를 Pinecone의 '지식' 네임스페이스에 입력한다.
  8. BM25 인덱스 메모리 재구축.

온라인 질의응답 과정

  1. 사용자가 질문을 보냅니다.
  2. 'userId + sessionId'를 사용하여 Redis에서 단기 기억을 읽습니다.
  3. LLM을 사용하여 쿼리 재작성, 다중 의도 분할, 키워드 확장을 수행합니다.
  4. 파인콘의 '기억' 네임스페이스에서 장기 기억을 회상한다.
  5. 벡터 검색과 BM25 검색을 사용하여 지식 기반 조각을 회상합니다.
  6. 후보 결과 융합, 중복 제거 및 재정렬.
  7. 원본 질문, 결과를 다시 쓰기, 단기 기억, 장기 기억, RAG 조각을 통합한 프롬프트를 만듭니다.
  8. Qwen-Plus에 전화하여 스트리밍 응답을 생성하세요.
  9. 이번 Q&A 라운드를 Redis에 작성하고, 임계값을 초과하면 요약 압축을 트리거합니다.

프로젝트 구조

환경 요구 사항

  • JDK 17+
  • 메이븐 3.8+
  • MySQL 8+
  • 레디스 6+
  • Pinecone 계정 및 인덱스 (선택 사항, 로컬 기본값으로 메모리 내 벡터 라이브러리 사용)

🌐 본 텍스트는 빠른 이해를 돕기 위한 요약 번역본입니다. 정확한 기술 정보 및 전체 코드는 GitHub 원문에서 확인하실 수 있습니다.

이 정보는 AI가 자동으로 분석한 결과입니다. 정확한 내용은 원문을 확인하세요.

ZJunCher/xiaoyan-ai-dev-assistant GitHub 원문 바로가기 →