언어모델 LLM/프로젝트 예제

ollama API로 간단한 애플리케이션 만들기

General AI 2024. 7. 6. 16:49
728x90
반응형

ollama API 활용 - 애플리케이션에 AI 통합하기

이번 포스팅에서는 ollama API를 활용하여 애플리케이션에 AI 기능을 쉽게 구현하는 방법을 정리합니다.

ollama API 활용 - 애플리케이션에 AI 통합하기

1. ollama API 소개

ollama API는 RESTful 인터페이스를 제공하여 다양한 프로그래밍 언어와 환경에서 ollama의 기능을 쉽게 활용할 수 있게 해줍니다. 아래와 같이 ollama를 실행하면 API 서버는 로컬호스트의 http://localhost:11434에서 실행됩니다.

ollama serve

2. API 엔드포인트 살펴보기

ollama API의 주요 엔드포인트:

  1. /api/generate: 텍스트 생성
  2. /api/chat: 대화형 응답 생성
  3. /api/embeddings: 텍스트 임베딩 생성
  4. /api/pull: 모델 다운로드
  5. /api/show: 모델 정보 조회

3. Python을 사용한 API 호출 예제

Python의 requests 라이브러리를 사용하여 API를 호출해 보겠습니다.

import requests

def generate_text(prompt, model="llama2"):
    url = "http://localhost:11434/api/generate"
    data = {
        "model": model,
        "prompt": prompt
    }
    response = requests.post(url, json=data)
    return response.json()["response"]

# 사용 예
result = generate_text("Tell me a short story about a robot.")
print(result)

4. 채팅 애플리케이션 만들기

간단한 채팅 애플리케이션을 만들어 보겠습니다.

import requests

def chat_with_ai(messages, model="llama2"):
    url = "http://localhost:11434/api/chat"
    data = {
        "model": model,
        "messages": messages
    }
    response = requests.post(url, json=data)
    return response.json()["message"]["content"]

# 채팅 루프
messages = []
print("AI와의 대화를 시작합니다. 종료하려면 'quit'를 입력하세요.")
while True:
    user_input = input("You: ")
    if user_input.lower() == "quit":
        break
    messages.append({"role": "user", "content": user_input})
    ai_response = chat_with_ai(messages)
    messages.append({"role": "assistant", "content": ai_response})
    print("AI:", ai_response)

print("대화를 종료합니다.")

5. 웹 애플리케이션에 ollama 통합하기

Flask를 사용하여 간단한 웹 애플리케이션을 만들어 보겠습니다.

from flask import Flask, request, jsonify
import requests

app = Flask(__name__)

@app.route('/generate', methods=['POST'])
def generate():
    data = request.json
    prompt = data.get('prompt')
    model = data.get('model', 'llama2')

    ollama_response = requests.post(
        "http://localhost:11434/api/generate",
        json={"model": model, "prompt": prompt}
    )

    return jsonify(ollama_response.json())

if __name__ == '__main__':
    app.run(debug=True)

이 웹 애플리케이션은 /generate 엔드포인트를 제공하며, 클라이언트로부터 받은 프롬프트를 ollama API로 전달하고 결과를 반환합니다.

 

이번 포스팅에서 ollama API를 활용하여 애플리케이션에 AI 기능을 통합하는 방법에 대해 알아보았습니다. API의 기본 사용법, 채팅 애플리케이션 구현, 웹 서비스 통합 등 다양한 예제를 통해 실제 적용 방법을 살펴보았습니다. 다음 포스팅에서는 ollama를 활용한 특정 도메인 AI 솔루션 개발에 대해 알아보겠습니다!

728x90
반응형