Ollama ローカル LLM

オープンソースの大規模言語モデルを Delphi、C++ Builder、.NET アプリケーションからローカルで実行します。推論はプライベート、オフライン、オンプレミスのまま、お使いのハードウェア上で実行され、クラウド API は不要です。

TsgcHTTP_API_Ollama

ローカルのチャット補完、Embeddings、モデル管理に対応した Ollama REST API クライアント。

コンポーネントクラス

TsgcHTTP_API_Ollama

プロトコル

HTTP 経由のOllama REST API

プラットフォーム

Windows、macOS、Linux、iOS、Android

エディション

Enterprise (AI アドオン)

コンポーネントを配置し、localhost を指定するだけ

Ollama はローカルで動作し、API キーは不要です。OllamaOptions.BaseUrlをローカルサーバー (デフォルトはhttp://localhost:11434/api) に設定し、_CreateMessageを呼び出すか、TsgcOllamaClass_Request_ChatCompletion を構築してCreateMessageを呼び出します。

uses
  sgcHTTP_API_Ollama;

var
  Ollama: TsgcHTTP_API_Ollama;
begin
  Ollama := TsgcHTTP_API_Ollama.Create(nil);
  // ローカルサーバー、API キー不要
  Ollama.OllamaOptions.BaseUrl := 'http://localhost:11434/api';

  // シンプルな単発メッセージ
  Memo1.Lines.Text := Ollama._CreateMessage(
    'llama3',
    'What are the benefits of WebSockets?');

  // ストリーミング — チャンクごとに OnHTTPAPISSE を処理
  Ollama.OnHTTPAPISSE := HandleSSE;
  Ollama._CreateMessageStream(
    'llama3',
    'Summarise RFC 6455');
end;

procedure TForm1.HandleSSE(Sender: TObject;
  const aEvent, aData: string;
  var Cancel: Boolean);
begin
  Memo1.Lines.Add(aEvent + ': ' + aData);
end;
// uses: sgcHTTP_API_Ollama
TsgcHTTP_API_Ollama *Ollama = new TsgcHTTP_API_Ollama(this);
// ローカルサーバー、API キー不要
Ollama->OllamaOptions->BaseUrl = "http://localhost:11434/api";

// シンプルな単発メッセージ
Memo1->Lines->Text = Ollama->_CreateMessage(
  "llama3",
  "What are the benefits of WebSockets?");

// ストリーミング — OnHTTPAPISSE がチャンクごとに発火
Ollama->OnHTTPAPISSE = HandleSSE;
Ollama->_CreateMessageStream(
  "llama3",
  "Summarise RFC 6455");
using esegece.sgcWebSockets;

var ollama = new TsgcHTTPAPI_Ollama();
// ローカルサーバー、API キー不要
ollama.OllamaOptions.BaseUrl = "http://localhost:11434/api";

// シンプルな単発メッセージ
Console.WriteLine(ollama._CreateMessage(
  "llama3",
  "What are the benefits of WebSockets?"));

// Server-Sent Events 経由のストリーミング
ollama.OnHTTPAPISSE += (sender, ev, data, cancel) => Console.Write(data);
ollama._CreateMessageStream(
  "llama3",
  "Summarise RFC 6455");

主な機能

チャット補完と Embeddings の型付きリクエスト/レスポンスクラスに加え、モデル管理と Server-Sent Events 経由のストリーミングを提供します。

Messages とチャット

CreateMessageは型付きのTsgcOllamaClass_Request_ChatCompletionを送信し、解析済みのレスポンスを返します。_CreateMessage_CreateMessageWithSystem_CreateMessageStreamは文字列のショートカットで、ストリーミングのデルタはOnHTTPAPISSEを通じて配信されます。

Embeddings

CreateEmbeddingsは、nomic-embed-textmxbai-embed-largeなどのローカルに取得した埋め込みモデルを使用して入力テキストを密なベクトルに変換し、TsgcOllamaClass_Response_Embeddingsを返します。

Models

マシン上のモデルを管理します。_GetModels_GetTagsは利用可能なモデルを一覧表示し、_ShowModelはモデルの詳細を読み取り、_PullModelは Ollama ライブラリからダウンロードし、_DeleteModelはローカルモデルを削除します。

ローカルかつプライベート

すべてのリクエストはローカルの Ollama サーバー (デフォルトはhttp://localhost:11434/api) を対象とするため、データがネットワーク外に出ることはなく、API キーも不要です。必要に応じてOllamaOptions.BaseUrlをリモートまたはコンテナ化されたインスタンスに向けることもできます。

信頼性と診断

CircuitBreakerはサーバーが不安定なときにリクエストを短絡させます。ReadTimeoutTLSOptionsは HTTP/HTTPS レイヤーを調整します。OnHTTPAPIExceptionは障害を通知し、OnHTTPAPISSEは Server-Sent Events をストリーミングします。

仕様とリファレンス

本コンポーネントが実装するプロトコルの正式な情報源です。

ドキュメントとデモ

コンポーネントリファレンスへのディープリンク、すぐに実行できるデモプロジェクト、体験版のダウンロードをご利用ください。

オンラインヘルプ — Ollama 本コンポーネントのプロパティ、メソッド、イベントの完全なリファレンスです。
デモプロジェクト — Demos\AI\Ollama すぐに実行できるサンプルプロジェクトです。sgcWebSockets パッケージに同梱されています — 下のリンクから体験版をダウンロードしてください。
ユーザーマニュアル (PDF) ライブラリ内のすべてのコンポーネントを網羅した包括的なマニュアルです。

Ollama でローカル LLM を実行する準備はできましたか?

体験版をダウンロードして、数分で構築を開始できます。