본문 바로가기
AI 언어 모델

🧠 최강 AI 검색 비서: Mistral Large 2 모델 설정 가이드

by James AI Explorer 2024. 7. 26.
    728x90

    안녕하세요! 오늘은 뛰어난 한국어와 명쾌한 추론 능력으로 관심을 모으로 있는 Mistral Large 2 모델을 브라우저 사이드바에 고정해서 인터넷 검색 비서로 활용하는 방법을 알아보겠습니다. 이전 블로그에서 알아보았듯이 Mistral Large 2는 다양한 코딩 언어와 다국어 지원은 물론 논리적 추론 성능도 매우 뛰어난 모델로서, 123B의 매개변수로 Llama 3.1 405B의 성능과 동등한 수준을 보입니다. 이 블로그에서는 Mistral Large 2 모델을 웹 브라우저 사이드바에 고정해서 필요할때마다 검색비서로 활용하는 방법을 구현해보겠습니다.

    🧠 최강 AI 검색 비서: Mistral Large 2

    2024.07.26 - [AI 언어 모델] - 🚀Mistral Large 2 리뷰: 유창한 한국어와 뛰어난 추론 능력의 코딩 AI

     

    🚀Mistral Large 2 리뷰: 유창한 한국어와 뛰어난 추론 능력의 코딩 AI

    안녕하세요! 오늘은 미스트랄의 최신 대형 언어 모델 Mistral Large 2에 대해서 알아보겠습니다. 123B(1230억 개)의 파라미터와 128k 컨텍스트 윈도우를 갖춘 Mistral Large 2는 코드 생성, 수학, 추론 능력에

    fornewchallenge.tistory.com

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

    프로그램 설치방법

    이 프로그램은 DuckDuckGo 검색 API를 통해 사용자의 질문을 검색하고, Mistral Large 2 모델을 사용하여 검색 결과를 처리하는 웹 애플리케이션입니다. 사용자는 Gradio 인터페이스에서 질문을 입력하면, AI가 DuckDuckGo에서 결과를 가져와 상세한 답변을 제공합니다. 모델의 도구(Tool) 호출 기능을 활용하여 검색과 응답을 자동으로 처리합니다.

     

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

    환경설정

    1. 가상환경 생성 및 활성화: VSC 프롬프트 메인 디렉토리에서 다음 명령어를 통해 가상환경을 만들고 활성화합니다.

    python3.11 -m venv myenv
    source myenv/bin/activate

    2. 의존성 설치: 가상환경이 활성화된 상태에서 아래 명령어로 의존성을 설치합니다.

    pip install gradio mistralai

    가상환경 활성화 및 의존성 설치 화면

    코드 작성

    3. 코드 작성: VSC에서 새 파이썬 파일을 만들고 아래 코드를 복사해서 붙여 넣고 app.py로 저장합니다. 코드의 출처는  https://console.groq.com/docs/tool-use 사이트의 예제를 참고하여 GPT-4o로 작성하였습니다. 

    import os
    import gradio as gr
    from mistralai.client import MistralClient
    from mistralai.models.chat_completion import ChatMessage
    import json
    
    # 환경 변수에서 API 키를 가져옵니다.
    os.environ["MISTRAL_API_KEY"] = "발급받은 API KEY"
    
    # DuckDuckGo 검색 함수
    def duckduckgo_search(query: str, max_results: int = 5):
        """Perform a DuckDuckGo search and return results."""
        from duckduckgo_search import DDGS
        params = {
            "keywords": query,
            "max_results": max_results,
        }
        
        results = []
        with DDGS() as ddg:
            for result in ddg.text(**params):
                results.append(str(result))
        
        return results
    
    # Mistral API를 사용하여 대화를 실행하는 함수
    def chat_with_mistral(user_input):
        api_key = os.environ["MISTRAL_API_KEY"]
        model = "mistral-large-2407"
    
        client = MistralClient(api_key=api_key)
        messages = [ChatMessage(role="user", content=user_input)]
    
        chat_response = client.chat(model=model, messages=messages)
        return chat_response.choices[0].message.content
    
    # 대화를 실행하는 함수
    def run_conversation(user_prompt: str) -> str:
        # DuckDuckGo 검색 도구 호출 포함 메시지 준비
        initial_prompt = (
            "You are a DuckDuckGo search assistant. Use the DuckDuckGo search function to provide answers. "
            "Please provide a comprehensive answer in Korean. User prompt: " + user_prompt
        )
        messages = [ChatMessage(role="system", content=initial_prompt)]
        
        search_results = duckduckgo_search(user_prompt)
        messages.append(ChatMessage(role="assistant", content="\n".join(search_results)))
        
        final_response = chat_with_mistral("\n".join([m.content for m in messages]))
    
        return final_response  # 답변 반환
    
    # Gradio 인터페이스 정의
    def process_query(query: str) -> str:
        return run_conversation(query)
    
    iface = gr.Interface(
        fn=process_query,
        inputs=gr.Textbox(label="Search Query"),
        outputs=gr.Markdown(label="Response"),
        title="Mistral-Large-2 인터넷 검색",
        description="질문을 입력하면 Mistral AI가 DuckDuckGo 인터넷 검색 Tool을 실행하고 결과를 응답합니다."
    )
    
    # 인터페이스 실행
    iface.launch(server_name="127.0.0.1", server_port=7862)

     

    코드 실행 및 사이드바 등록

    4.  파이썬 코드 실행: 코드 작성이 완료되면 아래와 같이 코드를 실행합니다. 

    python3 app.py

    코드를 실행하면 다음 화면과 같이 http://127.0.0.1:7862/ 주소에서 웹 애플리케이션이 열립니다. 

    Mistral Large 2 모델을 이용한 DuckDuckGo 인터넷 검색 초기화면

    5. 웨일 브라우저 사이드바 등록: 브라우저 상에서 언제나 편리하게 사용할 수 있도록 사이드바에 등록합니다. 웨일 브라우저의 오른쪽 툴바에서 맨 하단의 + 버튼을 클릭하고 아래 화면과 같이 http://127.0.0.1:7862/ 를 입력하면 됩니다. 

    웨일 브라우저 사이드바 등록
    Mistral Large 2 웹 브라우저 사이드바 검색비서: 상식 검색

     

    Mistral Large 2 웹 브라우저 사이드바 검색비서: 테크 뉴스 검색

     

    Mistral Large 2 웹 브라우저 사이드바 검색비서: 정치 뉴스 검색
    Mistral Large 2 웹 브라우저 사이드바 검색비서: 날씨 검색

    Mistral Large 2 모델 응답속도는 질문에 따라 20~30초 정도 소요되며, 웹 브라우저 사용중에 언제라도 궁금한 내용을 검색해서 정확한 정보를 확인하실수 있습니다. 

    728x90

    맺음말

    이 글에서는 Mistral Large 2 모델을 사용하여 DuckDuckGo 검색 결과를 처리하는 방법과 이를 웹 브라우저 사이드바에 고정하는 방법을 알아보았습니다. Mistral Large 2는 123B 매개변수를 갖춘 강력한 AI 모델로, Llama 3.1 405B의 성능과 동등한 수준을 보여 다양한 코딩 언어와 다국어 지원, 논리적 추론 성능까지 뛰어납니다. 이 블로그를 통해 사용자는 웹 브라우저 상에서 편리하게 AI 비서를 활용하여 실시간 검색과 정보를 손쉽게 얻을 수 있습니다.

     

    Mistral Large 2 웹 브라우저 사이드바 검색비서를 사용해본 후기는 다음과 같습니다. 

    • Llama-3-Groq-Tool-Use 보다 환각현상이 없다
    • 한국어 표현이 매우 자연스럽다
    • 출처를 클릭가능한 URL로 표시해줘서 Llama-3-Groq-Tool-Use 보다 편리하다

     

    이 블로그를 통해 여러분도 손쉽게 Mistral Large 2 모델을 활용한 인터넷 검색 비서를 만들어보세요. 새로운 기술을 배우고 적용하는 과정이 흥미롭고 유익할 것입니다. 이 글이 도움이 되셨기를 바라며, 저는 다음에 더 유익한 정보로 찾아뵙겠습니다. 감사합니다!

     

    https://fornewchallenge.tistory.com/

     

     

    2024.07.23 - [AI 도구] - 🔍 Llama-3-Groq 최신 AI 모델로 브라우저 사이드바 웹 검색 구현하기

     

    🔍 Llama-3-Groq 최신 AI 모델로 브라우저 사이드바 웹 검색 구현하기

    안녕하세요! 오늘은 Groq의 최신 오픈소스 대형 언어 모델,  Llama-3-Groq-Tool-Use(이하, Llama-3-Groq)에 대해 알아보겠습니다. Llama-3-Groq 모델은 Groq의 고성능 AI 하드웨어 가속기를 활용하여 빠르고 효율

    fornewchallenge.tistory.com

     

     

    728x90