본문 바로가기
AI 도구

Answer Engine: AI 검색엔진, 퍼플렉시티를 내 컴퓨터에서 무료로 돌리자! (Next.js, Ollama, Serper 활용 가이드)

by James AI Explorer 2024. 5. 19.
    728x90

    안녕하세요! 오늘은 인터넷 검색이 가능한 인공지능 검색엔진 무료로 내 컴퓨터에서 실행할 수 있도록 해주는 Answer Engine에 대해 알아보겠습니다. Answer Engine은 Next.js, Ollama, Serper 등을 사용하여 인터넷 정보 검색 결과에 대한 출처(링크)를 제공하고, 자연어 질의응답 및 이미지, 비디오 검색이 가능하며, 퍼플렉시티와 유사한 UI를 제공하는 GitHub  프로젝트입니다. 이 블로그에서는 Answer Engine의 개요, 설치방법, 실행결과에 대해 알아보겠습니다.

    Answer Engine 응답화면 - 브라우저 번역

    https://github.com/developersdigest/llm-answer-engine/tree/main

     

    GitHub - developersdigest/llm-answer-engine: Build a Perplexity-Inspired Answer Engine Using Next.js, Groq, Mixtral, Langchain,

    Build a Perplexity-Inspired Answer Engine Using Next.js, Groq, Mixtral, Langchain, OpenAI, Brave & Serper - developersdigest/llm-answer-engine

    github.com

    "이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

    Answer Engine이란?

    Answer Engine은 GroqOllama를 통한 언어 모델을 기반으로 Langchain, Brave Search, Serper API 등 다양한 기술을 활용하여 사용자 질문에 대한 검색결과와 출처, 관련 이미지 및 비디오, 후속 질문 등을 제공하는 AI 검색 엔진입니다.

     

    Answer Engine의 주요 기능은 다음과 같이 5가지로 요약할 수 있습니다:

    • 다양한 쿼리 처리: Groq, Mixtral, Langchain을 활용하여 사용자의 다양한 쿼리를 효율적으로 처리하고 이해합니다.
    • 관련 콘텐츠 및 미디어 제공: Brave Search와 Serper API를 통해 사용자 쿼리에 맞는 지도, 위치정보, 주식데이터, 쇼핑정보와 같은 관련 콘텐츠와 이미지 및 비디오 검색결과를 제공합니다.
    • 고급 텍스트 분석 및 임베딩: OpenAI 임베딩을 사용하여 텍스트 청크의 벡터 표현을 생성하고, Cheerio HTML 파서를 통해 웹 페이지 콘텐츠를 추출합니다.
    • AI 기반 UI 구축: Next.js와 Tailwind CSS를 사용하여 빠르고 사용자 친화적인 인터페이스를 구축하고, Vercel AI SDK로 AI 기반 스트리밍 텍스트 및 채팅 UI를 구현합니다.
    • 스트리밍 추론 지원: Ollama를 옵션으로 사용하여 스트리밍 추론 및 임베딩을 지원합니다.

    뉴욕 최고의 베이글 가게를 묻는 질문에 대한 Answer Engine의 답변

    728x90

    설치 및 설정방법

    이 블로그의 설치환경은 Windows 11 Pro(23H2),  파이썬 버전 3.11, 코드 에디터는 비주얼 스튜디오 코드(이하 VSC)이며, VSC를 실행하여 "WSL에 연결"을 통해 Windows Subsystem for Linux(WSL)을 사용하여 Linux 환경에 액세스 하도록 구성합니다. Answer Engine의 설치순서와 방법은 다음과 같습니다. 

    • 1. Node.js 및 npm 설치: Node.js는 서버 측 애플리케이션을 JavaScript로 작성할 수 있게 해주는 런타임 환경이고,. npm은 Node.js 패키지 관리자(Node Package Manager)로, JavaScript 라이브러리와 패키지를 쉽게 설치하고 관리할 수 있도록 도와줍니다. 링크에서 "Download Node.js"를 클릭하고 받은 파일을 실행하면 됩니다. 
    • 2. Groq과 Serper API 키 발급. 언어 모델 추론성능 가속을 위한 솔루션, Groq은 https://console.groq.com/keys에서 API 키를 발급받고, 인터넷 검색을 위한 Serper는 https://serper.dev/api-key에서 가입하여 API 키를 생성합니다.
    • 3. GitHub 레포지토리 클론: 다음 명령어를 실행하여 GitHub 레포지토리를 복제하고, 해당 디렉토리로 이동합니다.
    git clone https://github.com/developersdigest/llm-answer-engine.git
    cd llm-answer-engine
    • 4. 종속성 설치: 아래 명령어를 실행해서 필요한 종속성을 설치합니다
    npm install
    • 5, `.env` 파일에 API 키 추가: 프로젝트 디렉토리에 있는 .env 파일을 VSCode에서 열고 GROQ_API_KEY와 SERPER_API를 입력합니다. 
    • 6. 환경설정 파일 수정: llm-answer-engine/app/config.tsx 파일을 VSCode에서 열고 아래 내용과 같이 수정합니다. 아래 설정은 Groq 언어 모델 추론과 Ollama 엠베딩을 사용하는 설정입니다. 
    export const config = {
        useOllamaInference: false,
        useOllamaEmbeddings: true,
        searchProvider: 'serper', // 'serper', 'google' // 'serper' is the default
        inferenceModel: 'llama3-8b-8192', // Groq: 'mixtral-8x7b-32768', 'gemma-7b-it' // OpenAI: 'gpt-3.5-turbo', 'gpt-4' // Ollama 'mistral', 'llama3' etc
        inferenceAPIKey: process.env.GROQ_API_KEY, // Groq: process.env.GROQ_API_KEY // OpenAI: process.env.OPENAI_API_KEY // Ollama: 'ollama' is the default
        embeddingsModel: 'nomic-embed-text', // Ollama: 'llama2', 'nomic-embed-text' // OpenAI 'text-embedding-3-small', 'text-embedding-3-large'
        textChunkSize: 1000, // Recommended to decrease for Ollama
        textChunkOverlap: 400, // Recommended to decrease for Ollama
        numberOfSimilarityResults: 4, // Number of similarity results to return per page
        numberOfPagesToScan: 10, // Recommended to decrease for Ollama
        nonOllamaBaseURL: 'https://api.groq.com/openai/v1', //Groq: https://api.groq.com/openai/v1 // OpenAI: https://api.openai.com/v1 
        useFunctionCalling: true, // Set to true to enable function calling and conditional streaming UI (currently in beta)
        useRateLimiting: false, // Uses Upstash rate limiting to limit the number of requests per user
    };

     

    언어 모델 추론과 임베딩을 모두 Ollama로 설정하려면 아래와 같이 수정하면 됩니다. "useOllamaInference"를 true로 수정하고, textChunkSize와 textChunkOverlap을 기본값의 반정도로 낮게 수정합니다. 이렇게 하면 추론과 임베딩 모두 내 컴퓨터의 Ollama 모델을 사용하게 되므로 응답속도가 Groq으로 설정한 경우보다는 느려집니다. 

    export const config = {
        useOllamaInference: true,
        useOllamaEmbeddings: true,
        searchProvider: 'serper', // 'serper', 'google' // 'serper' is the default
        inferenceModel: 'llama3', // Groq: 'mixtral-8x7b-32768', 'gemma-7b-it' // OpenAI: 'gpt-3.5-turbo', 'gpt-4' // Ollama 'mistral', 'llama3' etc
        inferenceAPIKey: process.env.GROQ_API_KEY, // Groq: process.env.GROQ_API_KEY // OpenAI: process.env.OPENAI_API_KEY // Ollama: 'ollama' is the default
        embeddingsModel: 'nomic-embed-text', // Ollama: 'llama2', 'nomic-embed-text' // OpenAI 'text-embedding-3-small', 'text-embedding-3-large'
        textChunkSize: 500, // Recommended to decrease for Ollama
        textChunkOverlap: 200, // Recommended to decrease for Ollama
        numberOfSimilarityResults: 4, // Number of similarity results to return per page
        numberOfPagesToScan: 10, // Recommended to decrease for Ollama
        nonOllamaBaseURL: 'https://api.groq.com/openai/v1', //Groq: https://api.groq.com/openai/v1 // OpenAI: https://api.openai.com/v1 
        useFunctionCalling: true, // Set to true to enable function calling and conditional streaming UI (currently in beta)
        useRateLimiting: false, // Uses Upstash rate limiting to limit the number of requests per user
    };
    • 7. 서버 실행: config.tsx의 수정이 완료되고, 아래 명령어로 서버를 시작하면 http://localhost:3000/주소에서 Answer Engine 첫 화면이 열립니다. 
    npm run dev

    Answer Engine 서버 실행화면

    실행결과

    Answer Engine의 첫화면은 아래와 같이 샘플 질문 3개와 사용자 입력창이 전부인 심플한 인터페이스입니다. 

    Answer Engine 첫화면

    아래 화면은 초기화면에서 첫 번째 샘플 쿼리를 입력하여 애플의 주식에 대해 질문한 응답결과입니다. 한글은 브라우저의 번역기능을 활용하였습니다. 

    애플 주식 질문에 대한 응답결과

    아래 화면은 GPT-4o의 최신 정보에 대한 응답 결과입니다. GPT-4o에 대한 다양한 검색결과와 함께 동영상 및 이미지 검색결과가 우측에 나타납니다.

    GPT-4o에 대한 응답결과

    맺음말

    오늘은 Groq, Ollama, Serper 등 최신 기술을 결합하여 사용자 친화적인 인터페이스로 다양한 쿼리를 효과적으로 처리하고 관련 콘텐츠를 제공하는 AI 검색 엔진, Answer Engine에 대해서 알아보았습니다. 설치부터 실행까지의 과정은 이 블로그에서 제공한 단계별 가이드를 따르면 쉽게 설정하실 수 있습니다,

     

    Answer Engine을 활용하면, 자연어 질의응답을 통해 인터넷 검색과 이미지 및 비디오 등 다양한 검색 결과를 얻을 수 있으며, AI 기반의 텍스트 분석 기능을 통해 더 나은 검색 경험을 할 수 있습니다. Answer Engine 설치와 관련된 추가적인 정보는 GitHub 레포지토리에서 확인할 수 있으며, 필요한 경우 개발자 커뮤니티의 도움을 받을 수 있습니다.

     

    여러분도 Answer Engine을 설치하고 활용하여 AI 검색의 새로운 가능성을 탐험해 보시기 바랍니다. 그럼 저는 다음 시간에 더 유익한 정보를 가지고 다시 찾아뵙겠습니다. 감사합니다. 

     

    https://fornewchallenge.tistory.com/

     

     

    2024.05.17 - [AI 언어 모델] - GPT-4o: 자연스러운 음성 대화와 뛰어난 코딩 성능을 갖춘 멀티모달 언어 모델

     

    GPT-4o: 자연스러운 음성 대화와 뛰어난 코딩 성능을 갖춘 멀티모달 언어 모델

    안녕하세요! 오늘은 이번주 가장 큰 관심을 모으고 있는 OpenAI의 새로운 플래그십 언어모델 GPT-4o에 대해 알아보겠습니다. GPT-4o의 "o"는 "omni(모든 방식으로)"를 의미하며, 이는 텍스트 입력 외에도

    fornewchallenge.tistory.com

     

    728x90