この記事では オーラマ API .このドキュメントは、開発者がすぐに使い始められ、Ollamaの機能を最大限に活用できるようにするためのものです。Node.js環境で使うことも、ブラウザで直接モジュールをインポートすることもできます。このドキュメントを学ぶことで、あなたのプロジェクトにOllamaを簡単に統合することができます。
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)
}
構造化出力
Ollama JavaScriptライブラリを使用することで、以下のようなアーキテクチャーを実現できる。 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
Ollama JavaScript ライブラリ API は、Ollama REST API を中心に設計されています。基礎となる実装やAPIエンドポイントの全情報についてもっと知りたい場合は Ollama API ユーザーガイド
チャット
ollama.chat(request)
request
<Object>
: チャットパラメータを含むリクエストオブジェクト。model
<string>
チャットに使用するモデルの名前。messages
<Message[]>
: チャットの履歴を表すメッセージオブジェクトの配列。role
<string>
メッセージ送信者の役割('user'、'system'、'assistant')。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>
オプション)ID を認証できないサーバーにプッシュする。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>
(オプション) Ollamaホストアドレス。デフォルト。"http://127.0.0.1:11434"
.fetch
<Object>
(オプション) Ollama ホストへのリクエストに使用するフェッチライブラリ。
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: '为什么天空是蓝色的?' }],
})
造る
プロジェクト・ファイルをビルドするには、以下を実行する:
npm run build
ドキュメントを参照してください:OLLAMA-JS