llm-answer-engine: Perplexity에서 영감을 받아서 만든, 여러 LLM을 활용한 검색 엔진
들어가며
어제는 GeekNews에 소개되었던 Perplexity AI의 오픈소스 대체제인 Perplexica를 소개해드렸는데요, Perplexica보다 먼저 이와 유사한 접근을 시도한 llm-answer-engine 프로젝트를 발견하여 소개드립니다.
MIT 라이선스로 공개되어 있으며, 이를 바탕으로 여러 컴포넌트들을 그대로 또는 바꿔가며 사용해보시면서 다양한 프로젝트를 해보실 수도 있을 것 같습니다. 프로젝트의 사용부터 시작하여 개발부터 배포까지의 절차들에 대해 GitHub 저장소 내 문서를 비롯하여 YouTube 영상 튜토리얼 등이 제공되고 있어 LLM과 검색 API를 연동/활용하시려는 분들께는 좋은 참고가 될 것 같습니다.
소개
llm-answer-engine은 Groq, 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 구축을 위한 라이브러리.
-
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 키는 다음 링크에서 가입 및 발급이 가능합니다.
-
OpenAI API Key 발급: https://platform.openai.com/account/api-keys
-
Groq API Key 발급: https://console.groq.com/keys
-
Brave Search API Key: Brave Search API | Brave
-
Serper API Key: https://serper.dev/
더 자세한 프로젝트 소개는 GitHub 저장소 소개 글의 시작하기(Getting Started) 섹션 및 아래 튜토리얼 영상들을 참고해주세요.
튜토리얼 영상 (YouTube)
개발 로드맵
2023/05/29 현재, GitHub 저장소의 개발 로드맵 현황입니다:
- 여러 모델 및 임베딩을 지원하는 AI 게이트웨이 추가
- UI에서 모델, 임베딩 모델 및 기타 매개변수를 선택할 수 있는 설정 컴포넌트 추가
- Ollama를 사용할 때 후속 질문 지원 추가
- 응답 시간을 개선하기 위한 의미 체계 캐싱 지원 추가
- 사용자의 쿼리에 따라 동적으로 렌더링되는 UI 컴포넌트 지원 추가
- 사용자의 시스템 환경 설정에 따른 다크 모드 지원 추가
라이선스
이 프로젝트는 MIT 라이센스로 공개 및 배포되고 있습니다.
더 읽어보기
이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다.
파이토치 한국 사용자 모임이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일로 보내드립니다! (기본은 Weekly지만 Daily로 변경도 가능합니다.)
아래쪽에 좋아요를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~