Ollama 프로바이더

Ollama 프로바이더

AI SDK는 두 개의 커뮤니티 프로바이더를 통해 Ollama를 지원해요:

둘 다 서로 다른 접근 방식과 기능 세트로 AI SDK에 언어 모델 지원을 제공해요.

출처: 문서

본문

프로바이더 선택하기 (Choosing Your Provider)

AI SDK 생태계에는 여러 Ollama 프로바이더가 있으며, 각각 다른 사용 사례에 최적화되어 있어요:

단순 텍스트 생성을 위한 선택 (For Simple Text Generation)

nordwestt/ollama-ai-provider-v2 은 직접 HTTP API 호출로 Ollama 모델에 간편하게 접근해, 기본 텍스트 생성과 빠른 시작에 이상적이에요.

고급 기능과 도구 안정성을 위한 선택 (For Advanced Features & Tool Reliability)

다음이 필요할 때는 ai-sdk-ollama by jagreehal을 권장해요:

  • 신뢰할 수 있는 도구 호출 — 완전한 응답 보장 (흔한 빈 응답 문제 해결)
  • 웹 검색 기능 — 최신 정보를 위한 Ollama의 새 웹 검색 API 사용
  • 크로스 환경 지원 — Node.js와 브라우저 자동 감지
  • 고급 Ollama 기능 — mirostat, repeat_penalty, num_ctx 같은 세밀한 제어
  • 향상된 안정성 — 공식 클라이언트를 통한 내장 오류 처리와 재시도

주요 기술적 장점:

  • 공식 Ollama JavaScript 클라이언트 라이브러리 기반
  • CommonJS와 ESM 모듈 형식 모두 지원
  • 타입 안전한 Ollama 특화 옵션을 갖춘 완전한 TypeScript 지원

두 프로바이더 모두 AI SDK 스펙을 구현하고 훌륭한 TypeScript 지원을 제공해요. 프로젝트의 복잡성과 기능 요구 사항에 따라 선택하세요.

설정 (Setup)

선호하는 Ollama 프로바이더를 선택해 설치하세요:

ollama-ai-provider-v2

ai-sdk-ollama

프로바이더 인스턴스 (Provider Instance)

ollama-ai-provider-v2에서 기본 프로바이더 인스턴스 ollama을 임포트할 수 있어요:

import { ollama } from 'ollama-ai-provider-v2';

커스터마이즈가 필요하면 ollama-ai-provider-v2에서 createOllama를 임포트해 나만의 설정으로 프로바이더 인스턴스를 만들 수 있어요:

import { createOllama } from 'ollama-ai-provider-v2';

const ollama = createOllama({
  // 선택적 설정, 예:
  baseURL: 'https://api.ollama.com',
});

다음의 선택적 설정으로 Ollama 프로바이더 인스턴스를 커스터마이즈할 수 있어요:

  • baseURL string

    프록시 서버를 사용하는 경우처럼 API 호출에 다른 URL 프리픽스를 사용할 수 있어요. 기본 프리픽스는 http://localhost:11434/api예요.

  • headers Record<string,string>

    요청에 포함할 커스텀 헤더예요.

언어 모델 (Language Models)

프로바이더 인스턴스를 사용해 Ollama 채팅 완성 API를 호출하는 모델을 만들 수 있어요. 첫 번째 인자는 모델 ID이며, 예를 들어 phi3처럼 사용해요. 일부 모델은 멀티모달 기능을 갖고 있어요.

const model = ollama('phi3');

Ollama 라이브러리 홈페이지에서 더 많은 모델을 찾을 수 있어요.

모델 기능 (Model Capabilities)

이 프로바이더는 qwen3 같은 하이브리드 추론 모델을 사용할 수 있어, 메시지 사이에서 추론을 켜고 끌 수 있어요.

import { ollama } from 'ollama-ai-provider-v2';
import { generateText } from 'ai';

const { text } = await generateText({
  model: ollama('qwen3:4b'),
  providerOptions: { ollama: { think: true } },
  prompt:
    'Write a vegetarian lasagna recipe for 4 people, but really think about it',
});

임베딩 모델 (Embedding Models)

.embeddingModel() 팩토리 메서드로 Ollama 임베딩 API를 호출하는 모델을 만들 수 있어요.

const model = ollama.embeddingModel('nomic-embed-text');

const { embeddings } = await embedMany({
  model: model,
  values: ['sunny day at the beach', 'rainy afternoon in the city'],
});

console.log(
  `cosine similarity: ${cosineSimilarity(embeddings[0], embeddings[1])}`,
);

더 알아보기 (Learn more)

전체 사이트맵