AIパーソナル・ラーニング
と実践的なガイダンス
TRAE

JavaScriptでOllama APIを使う

この記事では オーラマ 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

無断転載を禁じます:チーフAIシェアリングサークル " JavaScriptでOllama APIを使う
ja日本語