Ollama ローカル LLM
オープンソースの大規模言語モデルを Delphi、C++ Builder、.NET アプリケーションからローカルで実行します。推論はプライベート、オフライン、オンプレミスのまま、お使いのハードウェア上で実行され、クラウド API は不要です。
オープンソースの大規模言語モデルを Delphi、C++ Builder、.NET アプリケーションからローカルで実行します。推論はプライベート、オフライン、オンプレミスのまま、お使いのハードウェア上で実行され、クラウド API は不要です。
ローカルのチャット補完、Embeddings、モデル管理に対応した Ollama REST API クライアント。
TsgcHTTP_API_Ollama
HTTP 経由のOllama REST API
Windows、macOS、Linux、iOS、Android
Enterprise (AI アドオン)
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 経由のストリーミングを提供します。
CreateMessageは型付きのTsgcOllamaClass_Request_ChatCompletionを送信し、解析済みのレスポンスを返します。_CreateMessage、_CreateMessageWithSystem、_CreateMessageStreamは文字列のショートカットで、ストリーミングのデルタはOnHTTPAPISSEを通じて配信されます。
CreateEmbeddingsは、nomic-embed-textやmxbai-embed-largeなどのローカルに取得した埋め込みモデルを使用して入力テキストを密なベクトルに変換し、TsgcOllamaClass_Response_Embeddingsを返します。
マシン上のモデルを管理します。_GetModelsと_GetTagsは利用可能なモデルを一覧表示し、_ShowModelはモデルの詳細を読み取り、_PullModelは Ollama ライブラリからダウンロードし、_DeleteModelはローカルモデルを削除します。
すべてのリクエストはローカルの Ollama サーバー (デフォルトはhttp://localhost:11434/api) を対象とするため、データがネットワーク外に出ることはなく、API キーも不要です。必要に応じてOllamaOptions.BaseUrlをリモートまたはコンテナ化されたインスタンスに向けることもできます。
CircuitBreakerはサーバーが不安定なときにリクエストを短絡させます。ReadTimeoutとTLSOptionsは HTTP/HTTPS レイヤーを調整します。OnHTTPAPIExceptionは障害を通知し、OnHTTPAPISSEは Server-Sent Events をストリーミングします。
本コンポーネントが実装するプロトコルの正式な情報源です。