본문 바로가기
AI 도구

Ollama 업데이트! 이제 OpenAI API를 무료로 즐기세요!

by James AI Explorer 2024. 2. 12.
    728x90

    안녕하세요! 오늘은 대규모 언어 모델 활용도구인 Ollama의 OpenAI API 호환성 업데이트 소식을 전해드리겠습니다. ChatGPT를 만든 OpenAI의 API는 현재 1,000 토큰 당 $0.03(GPT-4)의 가격에 유료로 제공되고 있는데요. 이번 Ollama의 호환성 업데이트를 통해 OpenAI API와 호환되는 AI 모델 및 서비스와 무료로 상호 작용할 수 있게 되었습니다. 이 블로그에서는 Ollama의 OpenAI API 호환성 업데이트 내용, 사용방법, 활용예제 등에 대해 알아보겠습니다.

    Ollama로 OpenAI의 API를 무료로 즐기세요

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

    OpenAI API란?

    OpenAI API는 ChatGPT를 만든 OpenAI에서 제공하는 인공 지능 모델과 서비스에 액세스 할 수 있는 프로그래밍 인터페이스입니다. 이 API를 사용하면 다양한 종류의 인공 지능 모델을 활용하여 자연어 처리, 이미지 분석, 생성적 작업 및 기타 인공 지능 작업을 수행할 수 있습니다. OpenAI API를 사용하면 다음과 같은 작업을 수행할 수 있습니다.

    • 자연어 이해(Natural Language Understanding): 텍스트를 이해하고 의미를 추론하여 질문에 대한 답변을 생성하거나 문장을 요약하는 등의 작업을 수행할 수 있습니다.
    • 생성 작업(Generative Tasks): 텍스트 생성, 이미지 생성, 음악 생성 등과 같은 생성 작업을 수행할 수 있습니다. 예를 들어, 주어진 텍스트 프롬프트에 대한 응답을 생성하는 등의 작업을 수행할 수 있습니다.
    • 이미지 분석(Image Analysis): 이미지를 분석하여 객체를 식별하거나 이미지에 대한 설명을 생성하는 등의 작업을 수행할 수 있습니다.

    OpenAI API는 다양한 인공 지능 모델을 제공하며, 이를 통해 사용자는 복잡한 AI 모델을 간편하게 활용할 수 있습니다. 또한, OpenAI API를 통해 사용자는 자신만의 애플리케이션에 인공 지능을 통합할 수 있습니다. 이러한 OpenAI API에는 다양한 종류의 API가 있습니다. 주요 API 몇 가지를 살펴보겠습니다.

    • Completions API: 이 API는 주어진 입력에 대해 자연어 생성(NLG)을 수행합니다. 예를 들어, 텍스트 프롬프트가 주어지면 모델은 이를 기반으로 자연스러운 텍스트를 생성합니다. 대화 완성 API(Chat Completions API)사용자가 입력한 텍스트를 기반으로 자연스러운 대화를 생성하고 응답을 제공합니다.  아래 예제는 대화 완성 API 예제입니다.

    Chat Completions API 예제

    • Classification API: 이 API는 텍스트의 분류를 수행합니다. 주어진 텍스트가 어떤 카테고리에 속하는지 예측합니다. 예를 들어, 주어진 문장이 스팸인지 아닌지를 판별하거나 문서의 주제를 식별하는 등의 작업을 수행할 수 있습니다.
    • Translation API: 이 API는 텍스트 번역을 수행합니다. 한 언어로 작성된 텍스트를 다른 언어로 번역하는 기능을 제공합니다. 이를 통해 다국어 지원 애플리케이션을 개발할 수 있습니다.
    • Summarization API: 이 API는 주어진 긴 텍스트를 간결하고 요약된 형태로 변환합니다. 주로 긴 문서나 기사를 간략하게 요약하는 데 사용됩니다.
    • Question-Answering API: 이 API는 주어진 질문에 대한 답변을 생성합니다. 주어진 문맥을 이해하고, 질문에 대한 정보를 추출하여 적절한 답변을 제공합니다.
    • Image Classification API: 이 API는 이미지 분류를 수행합니다. 주어진 이미지에 대해 객체를 식별하고 이미지의 내용을 분석합니다.

    이 외에도 OpenAI는 계속해서 새로운 API 및 서비스를 발표하고 있으며, 이러한 API를 통해 다양한 인공 지능 작업을 수행할 수 있습니다.

     

    위와 같은 OpenAI API는 인증을 위해 API key를 사용하는데요. 아래 화면에서와 같이 API key 인증정보를 사용하는 OpenAI API는 현재 1,000 토큰(영어 글자수 약 750자) 당 $0.03 (GPT-4)의 가격에 유료로 서비스되고 있으며, AI 모델과 대화를 하거나, 이미지 생성하면 토큰이 증가하고 이에 비례하여 요금이 발생합니다. 

    https://openai.com/pricing

    OpenAI API GPT-4 Turbo 가격 정책

    728x90

    Ollama OpenAI 호환 API 호출방법

    Ollama는 이번 업데이트를 통해 OpenAI 호환 대화 완성 API와 통합함으로써 대화형 애플리케이션 및 도구에 대한 기능을 확장하였으며, 이로 인해 로컬에서 더 많은 가능성이 열리게 되었습니다. 아래는 Ollama의 업데이트의 블로그 링크입니다.

    https://ollama.com/blog/openai-compatibility

     

    OpenAI compatibility · Ollama Blog

    Ollama now has initial compatibility with the OpenAI Chat Completions API, making it possible to use existing tooling built for OpenAI with local models via Ollama.

    ollama.com

    Ollama에 내장된 OpenAI API 호환성 업데이트의 사용방법은 다음과 같습니다. 

    1. Ollama 다운로드https://ollama.com/download 에서 운영체제에 맞는 Ollama를 설치하고, 원하는 언어 모델을 다운로드합니다. 사용자들은 `ollama pull llama2` 와 같은 명령을 사용하여 Llama 2나 Mistral과 같은 모델을 불러와서 로컬 컴퓨터에 다운로드할 수 있습니다. 이번 업데이트 적용을 위해 기존에 Ollama가 설치되어 있더라도 다시 설치해야 합니다. 

    2. 사용 방법: cURL, 파이썬, 자바스크립트에서 Ollama의 OpenAI 호환 API 호출방법은 다음과 같습니다. 

    • 커맨드라인을 통해 웹 서버와 상호작용하는 cURL을 사용할 경우, 호스트 이름을 `http://localhost:11434`로 변경하여 Ollama의 OpenAI 호환 API 엔드포인트를 아래 화면과 같이 호출할 수 있습니다. 

    cURL 사용 OpenAI 호환 API 엔드포인트 호출

    • 파이썬의 경우, 지정된 베이스 URL과 API key를 사용하여 OpenAI Python 라이브러리를 사용할 수 있습니다. 아래 화면을 참조하여  베이스 URL은 "http://localhost:11434", API key는 임의의 문자열을 입력하면 됩니다. 
    from openai import OpenAI
    
    client = OpenAI(
        base_url = 'http://localhost:11434/v1',
        api_key='ollama', # required, but unused
    )
    
    response = client.chat.completions.create(
      model="llama2",
      messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Who won the world series in 2020?"},
        {"role": "assistant", "content": "The LA Dodgers won in 2020."},
        {"role": "user", "content": "Where was it played?"}
      ]
    )
    print(response.choices[0].message.content)

    OpenAI Python 라이브러리 실행 결과

    • 자바스크립트의 경우, 지정된 베이스 URL과 API 키를 필요로 하는 OpenAI 자바스크립트 라이브러리를 사용할 수 있습니다. 자세한 내용은 아래 더 보기를 클릭하시면 설치방법을 확인하실 수 있습니다. 
    더보기

    1. Node.js 설치: 우선 컴퓨터에 Node.js를 설치해야 합니다. Node.js는 JavaScript를 실행할 수 있는 런타임 환경입니다. 공식 웹 사이트(https://nodejs.org)에서 다운로드 및 설치할 수 있습니다.

    2. 코드 저장: 아래 코드를 원하는 디렉토리에 .js 확장자를 가진 파일로 저장합니다. 예를 들어, openai_example.js와 같은 이름으로 저장할 수 있습니다.

    3. 터미널에서 실행: Node.js 명령어 프롬프트를 실행하고, "npm install openai" 명령으로 openai 모듈을 설치한 후, "node openai_example.js" 명령을 입력하면 됩니다.

    const OpenAI = require('openai');
    
    const main = async () => {
      const openai = new OpenAI({
        baseURL: 'http://localhost:11434/v1',
        apiKey: 'ollama', // required but unused
      });
      
      const completion = await openai.chat.completions.create({
        model: 'llama2',
        messages: [{ role: 'user', content: 'Why is the sky blue?' }],
      });
      
      console.log(completion.choices[0].message.content);
    };
    
    main(); // 호출하여 async 함수를 실행합니다.

    OpenAI 자바스크립트 라이브러리 실행 결과

     

    Vercel AI SDK 예제

    Ollama의 OpenAI API 호환성 업데이트를 활용할 수 있는 또 다른 방법은 Vercel AI SDK를 활용하는 것입니다. Vercel AI SDK는 Vercel에서 만든 사용자 인터페이스에 AI를 통합하는 데 사용되는 도구 모음입니다. 이 SDK를 사용하여 스트리밍 사용자 인터페이스와 함께 간단한 AI 챗봇을 빌드할 수 있습니다. 

     

    이 SDK는 Vercel Edge Runtime과 호환되는 OpenAI의 공식 JavaScript SDK인 'openai'를 포함하고 있습니다. 따라서 OpenAI API를 사용하여 AI 모델과 상호 작용할 수 있습니다. 이 SDK를 사용하면 AI를 사용하여 사용자와의 대화를 처리하고, 실시간으로 채팅을 하는 등의 기능을 구현할 수 있습니다. 

     

    다음 코드는 Vercel AI SDK의 openai를 활용하기 위해 `create-next-app` 명령어를 사용하여 새로운 Next.js 애플리케이션을 만드는 예제입니다. Next.js는 React 기반의 웹 애플리케이션을 빌드하기 위한 JavaScript 프레임워크입니다. React는 사용자 인터페이스를 만들기 위한 라이브러리이며, Next.js는 React를 사용하여 서버 사이드 렌더링(SSR), 정적 사이트 생성(SSG), 라우팅 및 API 서버 등을 쉽게 구축할 수 있도록 도와주는 프레임워크입니다. 

    npx create-next-app --example https://github.com/vercel/ai/tree/main/examples/next-openai example
    cd example

     

    위의 코드를 실행하면, 지정된 GitHub 레포지토리에서 예제 애플리케이션을 복제하고, 이를 기반으로 새로운 Next.js 애플리케이션을 생성합니다. 이것은 사용자가 처음부터 애플리케이션을 구축하는 것보다 더 빠르게 시작할 수 있는 방법을 제공합니다. 코드를 내 컴퓨터에서 실행하려면 다음 단계를 따르면 됩니다:

    • 1. 먼저 Node.js가 설치되어 있는지 확인하세요. Node.js가 설치되어 있지 않다면 공식 웹사이트(https://nodejs.org/)에서 다운로드하여 설치하세요.

    Node.js 설치

    • 2. 터미널 또는 명령 프롬프트를 열고, 다음 명령어를 실행하여 create-next-app을 사용하여 새로운 Next.js 애플리케이션을 만듭니다: "npx create-next-app --example https://github.com/vercel/ai/tree/main/examples/next-openai example"

    • 3. 애플리케이션 디렉토리로 이동합니다: "cd example"
    • 4. 이제 Ollama API 관련 설정을 위해 편집기로 app/api/chat/route.ts 파일을 열고, 아래와 같이 코드를 수정합니다. 모델명은 mistral, codellama 등 원하는 언어 모델명으로 수정해도 됩니다. 
    const openai = new OpenAI({
      baseURL: 'http://localhost:11434/v1',
      apiKey: 'ollama',
    });
    const response = await openai.chat.completions.create({
      model: 'llama2',
      stream: true,
      messages,
    });

    route.ts 파일 수정

    • 5. "ollama serve" 명령어로 서비스를 구동한 후,  "npm run dev" 명령어로 앱을 실행합니다. 

    npm run dev 실행화면

    • 6. 마지막으로, 웹 브라우저에서 http://localhost:3000을 열면 Ollama 설정에서 지정한 모델을 사용하여 채팅 애플리케이션을 구동할 수 있습니다. 

    Vercel AI SDK를 이용한 Ollama OpenAI API 활용 예제
    https://fornewchallenge.tistory.com/

    마치며

    오늘은 OpenAI의 API에 대해 알아보고, 이를 활용할 수 있는 대규모 언어 모델 도구 Ollama의 OpenAI API 호환성 업데이트에 관한 내용을 전달해 드렸습니다. 새로운 업데이트를 통해 사용자는 OpenAI API와 호환되는 AI 모델이나 서비스에 Ollama를 통해 무료로 상호 작용할 수 있게 되었습니다.

     

    cURL, 파이썬, 자바스크립트, Vercel AI SDK 등 다양한 도구들과 Ollama의 OpenAI 호환 API를 활용해서 더욱 다양한 방법으로 간단하게 인공 지능을 활용한 프로젝트를 구현하고 부담 없이 확장할 수 있을것 같습니다. 여러분도 Ollama의 OpenAI 호환 API를 활용해 보시면 어떨까요? 그럼 저는 다음에 더 유익한 정보를 가지고 다시 찾아뵙겠습니다. 감사합니다.

     

     

    2024.02.04 - [AI 논문 분석] - OLMo(Open Language Model) : 완전한 오픈소스 대형 언어 모델

     

    OLMo(Open Language Model) : 완전한 오픈소스 대형 언어 모델

    안녕하세요! 최근 언어 모델이 자연어 처리 연구와 상업 제품에서 더욱 보편화되면서, 모델의 편향과 잠재적인 위험을 이해하기 위한 훈련 데이터와 아키텍처 및 개발에 대한 세부 정보가 중요

    fornewchallenge.tistory.com

    728x90