AIに『何様ですか?』って言われたことはありますか?
はじめに
ChatGPT や Claude など、便利な生成AIが増えていますが..
「APIキーを取るのが面倒」
「まずはローカルで無料で試したい!」
という方も多いのではないでしょうか??
今回は、完全無料で使えるローカルLLM「Ollama」と、C#のデスクトップアプリ(WinForms)を組み合わせて、自作AIチャットアプリを作る ための方法をひとつ紹介します。
実は、私もはじめてなので、実際にインストールからプロジェクトの作成と実行までしていますのでぜひ一緒に作ってみてください。
環境
| 項目 | 内容 |
|---|---|
| OS | Windows 11 Home 24H2 |
| CPU | Intel(R) Core(TM) Ultra 7 155H 3.80 GHz |
| 開発環境 | Visual Studio 2022 |
| フレームワーク | .NET 6 または 7 |
| LLM実行基盤 | Ollama |
| モデル | LLaMA 3/ Phi |
Ollamaとは?
Ollama(オラマ)は、Meta社のLLaMAなどのLLM(大規模言語モデル)をローカルで動かせる、シンプルなツールです。
- 完全無料
- Windows/macOS/Linux対応
- APIサーバー(localhost:11434)内蔵
- 軽量モデルから高精度モデルまで対応
ラマのイラストがめちゃくちゃ可愛い..![]()
Step 1 - Ollamaのインストール
1.ここ から Windows用インストーラーをダウンロードします。
[Download] ボタンをクリックして次の画面へ..
[Windows] が選択されていることを確認して [Download for Windows] をクリック..
結構大きい(980MB)のでちょっと時間かかりますが、ダウンロードフォルダに以下の OllamaSetup.exe が出来れば終了です。
ラマが可愛い...
2. 実行してセットアップ
OllamaSetup.exe をクリックしてインストールしていきます。
※終わったら勝手に終了しました。もし 「✅Add Path」とか出たらチェックしておいてください。
3. インストール後、ターミナルで以下を実行
PowerShellまたはコマンドプロンプトで実行してください。
ollama run llama3
→ モデル(約4.7GB)が自動でダウンロード&起動(ここも結構時間がかかります!)
成功するとこのような表示になります。
>>> Send a message
実際の画面...
💡 ここで止まっていればOK。モデルがバックエンドで稼働しています。
せっかくなので、ちょっとご挨拶してみます!!
「はじめまして!」
「こんにちは!初めまして、ありがとうございます。私は Chatbot です。何かのお話ししたいですか?」
おぉ!! ちゃんとお返事返ってきましたね。
Step 2 - Visual StudioでWinFormsアプリ作成
ollamaをインストールして、バックグラウンドで実行されているので、早速C#でアプリを作ってみようと思います。
- Visual Studio 2022を起動
- 「新しいプロジェクトの作成」
- 「Windows フォーム アプリ (.NET)」を選択(.NET 6/7/8 OK)
- プロジェクト名:OllamaChatWinForms(任意)
| コントロール | Name | 内容 |
|---|---|---|
| TextBox(Multiline) | txtPrompt |
ユーザー入力欄 |
| Button | btnSend |
送信ボタン |
| TextBox(ReadOnly) | txtResponse |
応答表示欄 |
作成したフォームには、3つだけコントロールを追加して名前を付けてください。
Step 3 - OllamaClientクラスの作成
NuGetパッケージとして Newtonsoft.Json を追加します。
メニューバーから「プロジェクト」→ 「NuGetパッケージの管理」の 参照タブで「Newtonsoft」を検索すると出てきます。
クラス OllamaClient.cs の追加(AIとのやりとりを担当)を新規作成します。
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;
public class OllamaClient
{
private readonly HttpClient _client = new HttpClient
{
Timeout = TimeSpan.FromMinutes(5) // ←応答が遅い場合に備え延長
};
public async Task<string> AskAsync(string prompt)
{
var request = new
{
model = "llama3", // または "phi"
prompt = prompt,
stream = false
};
var json = JsonConvert.SerializeObject(request);
var content = new StringContent(json, Encoding.UTF8, "application/json");
var response = await _client.PostAsync("http://localhost:11434/api/generate", content);
var responseBody = await response.Content.ReadAsStringAsync();
dynamic result = JsonConvert.DeserializeObject(responseBody);
return result?.response ?? "(応答なし)";
}
}
Step 4 - ボタンイベントでAI応答
ボタンクリックイベントを追加します。 (ボタンをとりあえずダブルクリックしてできた関数を以下のコードと入れ替えればOK)
private async void btnSend_Click(object sender, EventArgs e)
{
var client = new OllamaClient();
string input = txtPrompt.Text;
txtResponse.Text = "送信中...";
try
{
string reply = await client.AskAsync(input);
txtResponse.Text = reply;
}
catch (Exception ex)
{
txtResponse.Text = "エラー: " + ex.Message;
}
}
さっそく実行してみる! (モデル:llama3)
遅っっ・・・・
長文の質問はモデルが重いもっと時間が掛かる・・
軽量モデルに変更してみる
モデル llama3 は 精度は高いが速度は遅いみたいなので、回答速度重視という phi に切り替えてみました。※最初は、モデル phi をインストールするのでちょっと時間がかかります。
ollama run phi
C#側のクラスも以下に変更します。
model = "phi"
再び実行してみる! (モデル:phi)
英語か!!
ちみにターミナルの方で聞いてみたら....
「日本語ははなせますか?」
「それはどうしいと思います。 何様ですか?」
感じ悪っ.....日本語は無理そうですね。
補足:Ollamaモデルの比較
| モデル | 精度 | 速度 | 備考 |
|---|---|---|---|
| llama3 | 高 | 遅 | 4.7GB、自然な応答 |
| mistral | 中 | 普通 | バランス型 |
| phi | 軽 | 速 | 回答速度重視向け |
他にもいろいろあるけど、今回の目的はC#から呼び出すことなので割愛します。
Ollama Library(モデル一覧)
アンインストール手順
1. 標準のアンインストール
Windowsの「設定」→「アプリ」→「インストール済みアプリ」からOllamaを選択してアンインストール
2. モデルファイルの手動削除
重要: Ollamaをアンインストールしても、ダウンロードしたモデルは自動で削除されません。
モデルファイルの保存場所
C:\Users%username%.ollama\models
完全削除するには以下のフォルダを手動で削除
%HOMEPATH%.ollama
%LOCALAPPDATA%\Ollama
3. 注意事項
- モデルファイルは数GB~数十GBと大容量
- OLLAMA_MODELSの場所を変更していた場合は、その場所も確認
- ディスク容量を回復したい場合は必ず手動削除が必要
個別モデルの削除
アンインストール前に特定のモデルのみ削除したい場合は以下です。
# モデル一覧を確認
ollama list
# 特定のモデルを削除
ollama rm モデル名
実際に確認して、削除してみた。
モデル 'phi' が削除されています。
使った感想
- C#経由はターミナルの2倍くらい遅い感じ?
- メモリを結構使う
- 今のところ使い道(アイデア)が思い浮かばない
おわりに
まだまだ勉強不足ですが...LLMとC#アプリの組み合わせで、とりあえず ローカルAI体験が現実のものになりました。
API不要・完全ローカルで使えるLLMは非常にパワフルです!!
「とにかく無料で試したい」「商用APIの前にローカルで試したい」方にとって、Ollamaは最良のスタート地点 だと感じました。












