はじめに
この記事は、はてブのテクノロジーカテゴリで見かけた、以下の Ollama公式の「Web search」に関する話です。
●Web search · Ollama Blog
https://ollama.com/blog/web-search
公式の X のアカウントでも、以下でポストされているようです。今回、これを軽く試してみます。
Ollama公式の「Web search」
以下を見ると、Ollama のアカウントから APIキーを発行して、その APIキーを使った Web検索機能を使うことができるようです。
さっそく試してみる
Ollama のアカウントで APIキーを発行して、さっそく試してみます。
APIキーの発行
Ollamaアカウントでログインした状態で、以下のページにアクセスすると APIキーが発行できます。
●Ollama keys · Settings
https://ollama.com/settings/keys
以下は、APIキーの名称・APIキーの文字列をマスクしている状態ですが、1つのキーを発行した後の画面です。
API を使う準備
APIキーを発行できたので、さらに API を使う準備を進めます。
パッケージのインストール
以下を見ると、Node.js の ollama のパッケージを使ったやり方があるようです。
公式ページに書かれている curl を使ったサンプルをもとに、Node.js の fetch で処理することもできそうですが、今回は上記を試してみます。
パッケージは以下のコマンドでインストールしました。
npm i ollama
記事執筆時点では、以下のように 0.6.0 がインストールされました。
環境変数の設定
それと、環境変数を設定します。OLLAMA_API_KEY という名前で、上記の Ollama の API を設定しました。
API を使ってみる
準備が整ったので、あとは API を使ってみます。
Node.js のコードは、公式サンプルをほぼそのまま使っています(※ 違いは、プロンプトを日本語にしたくらいです)。
import { Ollama } from "ollama";
const client = new Ollama();
const results = await client.webSearch({ query: "Ollamaって何?" });
console.log(JSON.stringify(results, null, 2));
上記を実行したところ、以下のように検索結果を得ることができました(以下の表示だと、かなり見づらいですが...)。
【追記】
レスポンスで得られた出力の、改行文字を実際の改行にしたり、というちょっとした整形をした結果ものせてみます。
上記の整形は、以下の jq を使ったコマンド処理で行いました(レスポンスとして得られた内容を data.json として保存して、それに対して処理を行ったというものです)。
jq -r '
.results[] |
"## \(.title)\n\(.url)\n\n" +
( .content
| gsub("\\\\r?\\\\n"; "\n")
) + "\n\n---\n"
' data.json | less