llm-answer-engine: Perplexity에서 영감을 받아서 만든, 여러 LLM을 활용한 검색 및 답변 프로젝트

llm-answer-engine: Perplexity에서 영감을 받아서 만든, 여러 LLM을 활용한 검색 엔진

들어가며 :pytorch::kr:

어제는 GeekNews에 소개되었던 Perplexity AI의 오픈소스 대체제인 Perplexica를 소개해드렸는데요, Perplexica보다 먼저 이와 유사한 접근을 시도한 llm-answer-engine 프로젝트를 발견하여 소개드립니다. :smiley:

llm-answer-engine: Perplexity에서 영감을 받아서 만든, 여러 LLM을 활용한 검색 엔진

MIT 라이선스로 공개되어 있으며, 이를 바탕으로 여러 컴포넌트들을 그대로 또는 바꿔가며 사용해보시면서 다양한 프로젝트를 해보실 수도 있을 것 같습니다. :thinking: 프로젝트의 사용부터 시작하여 개발부터 배포까지의 절차들에 대해 GitHub 저장소 내 문서를 비롯하여 YouTube 영상 튜토리얼 등이 제공되고 있어 LLM과 검색 API를 연동/활용하시려는 분들께는 좋은 참고가 될 것 같습니다. :+1:

소개

llm-answer-engineGroq, Mistral AI's Mixtral, Langchain.JS, Brave Search, Serper API, OpenAI 등의 다양한 LLM 및 검색 AI 등을 활용하여 효율적인 답변 엔진을 구축하는 방법을 제공하고 있습니다.

특히, 사용자의 질문에 기반하여 소스, 답변, 이미지, 비디오, 후속 질문을 효율적으로 반환하는 고급 답변 엔진을 구축하는 데 필요한 코드와 지침이 포함되어 있습니다. 특히 자연어 처리와 검색 기술에 관심이 있는 개발자들이 참고할만한 주요한 자료입니다.

사용한 주요 기술 목록

llm-answer-engine은 아래와 같은 서버 사이드 렌더링과 정적 웹 애플리케이션 구축을 위한 다양한 도구와 API 통합 프레임워크 등을 사용합니다:

  • Next.js: 서버 사이드 렌더링과 정적 웹 애플리케이션 구축을 위한 React 프레임워크.

  • Tailwind CSS: 커스텀 사용자 인터페이스를 빠르게 구축할 수 있는 유틸리티 중심의 CSS 프레임워크.

  • Vercel AI SDK: AI 기반 스트리밍 텍스트 및 채팅 UI 구축을 위한 라이브러리.

  • Groq & Mixtral: 사용자 질문을 처리하고 이해하기 위한 기술.

  • Langchain.JS: 텍스트 분할 및 임베딩과 같은 텍스트 작업에 중점을 둔 JavaScript 라이브러리.

  • Brave Search: 관련 콘텐츠와 이미지를 검색하는 데 사용되는 개인정보 보호 중심의 검색 엔진.

  • Serper API: 사용자 질문에 대한 관련 비디오 및 이미지 결과를 가져오는 데 사용.

  • OpenAI Embeddings: 텍스트 청크의 벡터 표현을 생성하는 데 사용.

  • Cheerio: 웹 페이지에서 콘텐츠를 추출하기 위한 HTML 파싱 라이브러리.

  • Ollama (Optional): 스트리밍 추론 및 임베딩에 사용.

  • Upstash Redis Rate Limiting (Optional): 애플리케이션의 속도 제한을 설정하는 데 사용.

  • Upstash Semantic Cache (Optional): 더 빠른 응답 시간을 위해 데이터를 캐싱하는 데 사용.

사용방법

Node.js와 npm이 설치되어 있어야 하며, OpenAI나 Groq을 비롯하여 검색을 위한 Brave Search 및 Serper 사용을 위한 API Key 발급이 필요합니다. 각 API 키는 다음 링크에서 가입 및 발급이 가능합니다.

더 자세한 프로젝트 소개는 GitHub 저장소 소개 글의 시작하기(Getting Started) 섹션 및 아래 튜토리얼 영상들을 참고해주세요.

튜토리얼 영상 (YouTube)

개발 로드맵

2023/05/29 현재, GitHub 저장소의 개발 로드맵 현황입니다:

  • 여러 모델 및 임베딩을 지원하는 AI 게이트웨이 추가
  • UI에서 모델, 임베딩 모델 및 기타 매개변수를 선택할 수 있는 설정 컴포넌트 추가
  • Ollama를 사용할 때 후속 질문 지원 추가
  • 응답 시간을 개선하기 위한 의미 체계 캐싱 지원 추가
  • 사용자의 쿼리에 따라 동적으로 렌더링되는 UI 컴포넌트 지원 추가

사용자의 쿼리에 따라 동적으로 렌더링되는 UI 컴포넌트 지원 추가 예시

  • 사용자의 시스템 환경 설정에 따른 다크 모드 지원 추가

사용자의 시스템 환경 설정에 따른 다크 모드 지원 추가 예시

라이선스

이 프로젝트는 MIT 라이센스로 공개 및 배포되고 있습니다.

더 읽어보기




이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다. :hugs:

:pytorch:파이토치 한국 사용자 모임:kr:이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일:love_letter:로 보내드립니다! (기본은 Weekly지만 Daily로 변경도 가능합니다.)

:gift: 아래:arrow_lower_right:쪽에 좋아요:heart:를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~ :star_struck: