자바스크립트에서 올라마 API 사용

이 문서에서는 Ollama API를 참조하세요. 이 문서는 개발자가 빠르게 시작하여 Ollama의 기능을 최대한 활용할 수 있도록 돕기 위해 작성되었습니다. Node.js 환경에서 사용하거나 브라우저에서 직접 모듈을 가져올 수 있습니다. 이 문서를 공부하면 Ollama를 프로젝트에 쉽게 통합할 수 있습니다.

 

올라마 설치

npm i ollama

 

사용법

import ollama from 'ollama'
const response = await ollama.chat({
model: 'llama3.1',
messages: [{ role: 'user', content: '为什么天空是蓝色的?' }],
})
console.log(response.message.content)

브라우저 사용

Node.js 없이 이 라이브러리를 사용하려면 브라우저 모듈을 가져오세요.

import ollama from 'ollama/browser'

 

스트리밍 응답

이 작업은 stream: true 함수 호출이 반환하도록 응답 스트리밍을 사용하도록 설정하면 AsyncGenerator 에서 각 부분은 스트림의 객체입니다.

import ollama from 'ollama'
const message = { role: 'user', content: '为什么天空是蓝色的?' }
const response = await ollama.chat({ model: 'llama3.1', messages: [message], stream: true })
for await (const part of response) {
process.stdout.write(part.message.content)
}

 

구조화된 출력

올라마 자바스크립트 라이브러리를 사용하여 아키텍처를 JSON 객체는 format 매개 변수를 선택적으로 사용할 수 있습니다. object 형식을 전달하거나 Zod(권장)를 사용하여 zodToJsonSchema() 메서드 직렬화 아키텍처.

import ollama from 'ollama';
import { z } from 'zod';
import { zodToJsonSchema } from 'zod-to-json-schema';
const Country = z.object({
name: z.string(),
capital: z.string(), 
languages: z.array(z.string()),
});
const response = await ollama.chat({
model: 'llama3.1',
messages: [{ role: 'user', content: 'Tell me about Canada.' }],
format: zodToJsonSchema(Country),
});
const country = Country.parse(JSON.parse(response.message.content));
console.log(country);

 

모델 만들기

import ollama from 'ollama'
const modelfile = `
FROM llama3.1
SYSTEM "你是超级马里奥兄弟中的马里奥。"
`
await ollama.create({ model: 'example', modelfile: modelfile })

 

API

올라마 자바스크립트 라이브러리 API는 올라마 REST API를 중심으로 설계되었습니다. 기본 구현 및 전체 API 엔드포인트 정보에 대해 자세히 알아보려면 다음을 참조하는 것이 좋습니다. Ollama API 사용 가이드

채팅

ollama.chat(request)
  • request <Object>채팅 매개변수가 포함된 요청 객체입니다.
    • model <string> 채팅에 사용할 모델의 이름입니다.
    • messages <Message[]>채팅 기록을 나타내는 메시지 객체의 배열입니다.
      • role <string>메시지 발신자('사용자', '시스템' 또는 '어시스턴트')의 역할입니다.
      • content <string>: 메시지 내용입니다.
      • images <Uint8Array[] | string[]>: (선택 사항) 메시지에 포함할 이미지(Uint8Array 또는 base64로 인코딩된 문자열)입니다.
    • format <string>: (선택 사항) 응답의 예상 형식을 설정합니다(json).
    • stream <boolean>: (선택 사항) true이면 다음을 반환합니다. AsyncGenerator.
    • keep_alive <string | number>: (선택 사항) 모델이 로드되는 시간을 유지합니다.
    • tools <Tool[]>: (선택 사항) 모델에서 호출할 수 있는 도구 목록입니다.
    • options <Options>: (선택 사항) 런타임 옵션을 구성합니다.
  • 반환합니다. <ChatResponse>

생성

ollama.generate(request)
  • request <Object>생성된 매개 변수가 포함된 요청 개체입니다.
    • model <string> 채팅에 사용할 모델의 이름입니다.
    • prompt <string>:: 모델에게 보낸 힌트입니다.
    • suffix <string>: (선택 사항) 접미사는 삽입된 텍스트 뒤에 오는 텍스트입니다.
    • system <string>: (선택 사항) 모델 시스템 프롬프트 재정의.
    • template <string>: (선택 사항) 모델 템플릿을 재정의합니다.
    • raw <boolean>: (선택 사항) 프롬프트 템플릿을 건너뛰고 프롬프트를 모델에 직접 전달합니다.
    • images <Uint8Array[] | string[]>: (선택 사항) 포함할 이미지(Uint8Array 또는 base64로 인코딩된 문자열)입니다.
    • format <string>: (선택 사항) 응답의 예상 형식을 설정합니다(json).
    • stream <boolean>: (선택 사항) true이면 다음을 반환합니다. AsyncGenerator.
    • keep_alive <string | number>: (선택 사항) 모델이 로드되는 시간을 유지합니다.
    • options <Options>: (선택 사항) 런타임 옵션을 구성합니다.
  • 반환합니다. <GenerateResponse>

풀 모델

ollama.pull(request)
  • request <Object>풀 매개변수가 포함된 요청 개체입니다.
    • model <string> 가져올 모델의 이름입니다.
    • insecure <boolean>: (선택 사항) 인증할 수 없는 서버에서 가져옵니다.
    • stream <boolean>: (선택 사항) true이면 다음을 반환합니다. AsyncGenerator.
  • 반환합니다. <ProgressResponse>

푸시 모델

ollama.push(request)
  • request <Object>푸시 매개변수가 포함된 요청 객체입니다.
    • model <string> 푸시할 모델의 이름입니다.
    • insecure <boolean>: (선택 사항) 신원을 인증할 수 없는 서버로 푸시합니다.
    • stream <boolean>: (선택 사항) true이면 다음을 반환합니다. AsyncGenerator.
  • 반환합니다. <ProgressResponse>

모델 만들기

ollama.create(request)
  • request <Object>매개변수가 생성된 요청 객체를 포함합니다.
    • model <string> 생성할 모델의 이름입니다.
    • path <string>: (선택 사항) 생성할 모델 파일의 경로입니다.
    • modelfile <string>: (선택 사항) 생성할 모델 파일의 내용입니다.
    • stream <boolean>: (선택 사항) true이면 다음을 반환합니다. AsyncGenerator.
  • 반환합니다. <ProgressResponse>

모델 삭제

ollama.delete(request)
  • request <Object>삭제 매개변수가 포함된 요청 개체입니다.
    • model <string> 삭제할 모델의 이름입니다.
  • 반환합니다. <StatusResponse>

복제 모델

ollama.copy(request)
  • request <Object>복제 매개 변수가 포함된 요청 개체입니다.
    • source <string> 복사할 모델의 이름입니다.
    • destination <string> 복사할 모델의 이름입니다.
  • 반환합니다. <StatusResponse>

로컬 모델 목록

ollama.list()
  • 반환합니다. <ListResponse>

모델 정보 표시

ollama.show(request)
  • request <Object>표시 매개 변수가 포함된 요청 객체입니다.
    • model <string> 표시할 모델의 이름입니다.
    • system <string>: (선택 사항) 모델 시스템 프롬프트 반환 값을 재정의합니다.
    • template <string>: (선택 사항) 모델 템플릿 반환값을 재정의합니다.
    • options <Options>: (선택 사항) 런타임 옵션을 구성합니다.
  • 반환합니다. <ShowResponse>

임베딩 생성

ollama.embed(request)
  • request <Object>매개변수가 포함된 요청 객체입니다.
    • model <string> 임베딩을 생성하는 데 사용된 모델의 이름입니다.
    • input <string> | <string[]>임베딩 생성에 사용되는 입력입니다.
    • truncate <boolean>: (선택 사항) 모델에서 지원하는 최대 컨텍스트 길이에 맞게 입력을 잘라냅니다.
    • keep_alive <string | number>: (선택 사항) 모델이 로드되는 시간을 유지합니다.
    • options <Options>: (선택 사항) 런타임 옵션을 구성합니다.
  • 반환합니다. <EmbedResponse>

코스

ollama.ps()
  • 반환합니다. <ListResponse>

 

맞춤형 클라이언트

다음 필드를 사용하여 사용자 지정 클라이언트를 만들 수 있습니다:

  • host <string>: (선택 사항) 올라마 호스트 주소. 기본값입니다. "http://127.0.0.1:11434".
  • fetch <Object>: (선택 사항) 올라마 호스트에 요청하는 데 사용되는 가져오기 라이브러리입니다.
import { Ollama } from 'ollama'
const ollama = new Ollama({ host: 'http://127.0.0.1:11434' })
const response = await ollama.chat({
model: 'llama3.1',
messages: [{ role: 'user', content: '为什么天空是蓝色的?' }],
})

 

구성 (STH 추상)

프로젝트 파일을 빌드하려면 실행합니다:

npm run build

 

 

설명서를 참조하세요:ollama-js

© 저작권 정책

관련 문서

댓글 없음

댓글에 참여하려면 로그인해야 합니다!
지금 로그인
없음
댓글 없음...