4
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【C#×Ollama】完全無料&ローカルでAIチャットを作ってみた!!

4
Last updated at Posted at 2025-07-02
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)内蔵
  • 軽量モデルから高精度モデルまで対応

ラマのイラストがめちゃくちゃ可愛い..:hearts:

Step 1 - Ollamaのインストール

1.ここ から Windows用インストーラーをダウンロードします。

[Download] ボタンをクリックして次の画面へ..

o001.png

[Windows] が選択されていることを確認して [Download for Windows] をクリック..

o002.png

結構大きい(980MB)のでちょっと時間かかりますが、ダウンロードフォルダに以下の OllamaSetup.exe が出来れば終了です。

o003.png

ラマが可愛い...

2. 実行してセットアップ

OllamaSetup.exe をクリックしてインストールしていきます。

o005.png

※終わったら勝手に終了しました。もし 「✅Add Path」とか出たらチェックしておいてください。

3. インストール後、ターミナルで以下を実行

PowerShellまたはコマンドプロンプトで実行してください。

ollama run llama3

→ モデル(約4.7GB)が自動でダウンロード&起動(ここも結構時間がかかります!)

o020.png

成功するとこのような表示になります。

>>> Send a message

実際の画面...

o021.png

💡 ここで止まっていればOK。モデルがバックエンドで稼働しています。

せっかくなので、ちょっとご挨拶してみます!!

o022.png

:relaxed: 「はじめまして!」
:robot: 「こんにちは!初めまして、ありがとうございます。私は Chatbot です。何かのお話ししたいですか?」

おぉ!! ちゃんとお返事返ってきましたね。

Step 2 - Visual StudioでWinFormsアプリ作成

ollamaをインストールして、バックグラウンドで実行されているので、早速C#でアプリを作ってみようと思います。

  • Visual Studio 2022を起動
  • 「新しいプロジェクトの作成」
  • 「Windows フォーム アプリ (.NET)」を選択(.NET 6/7/8 OK)
  • プロジェクト名:OllamaChatWinForms(任意)

フォームのデザイン(Form1)
o012.png

コントロール Name 内容
TextBox(Multiline) txtPrompt ユーザー入力欄
Button btnSend 送信ボタン
TextBox(ReadOnly) txtResponse 応答表示欄

作成したフォームには、3つだけコントロールを追加して名前を付けてください。

Step 3 - OllamaClientクラスの作成

NuGetパッケージとして Newtonsoft.Json を追加します。
メニューバーから「プロジェクト」→ 「NuGetパッケージの管理」の 参照タブで「Newtonsoft」を検索すると出てきます。

o011.png

クラス OllamaClient.cs の追加(AIとのやりとりを担当)を新規作成します。

C#
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)

C#
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)

o001_001.gif

遅っっ・・・・

長文の質問はモデルが重いもっと時間が掛かる・・

軽量モデルに変更してみる

モデル llama3 は 精度は高いが速度は遅いみたいなので、回答速度重視という phi に切り替えてみました。※最初は、モデル phi をインストールするのでちょっと時間がかかります。

ollama run phi

C#側のクラスも以下に変更します。

model = "phi"

再び実行してみる! (モデル:phi)

o003_001.gif

英語か!!

ちみにターミナルの方で聞いてみたら....

o023.png

:relaxed: 「日本語ははなせますか?」
:robot: 「それはどうしいと思います。 何様ですか?

感じ悪っ.....日本語は無理そうですね。

補足: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 モデル名

実際に確認して、削除してみた。

o024.png

モデル 'phi' が削除されています。

使った感想

  • C#経由はターミナルの2倍くらい遅い感じ?
  • メモリを結構使う
  • 今のところ使い道(アイデア)が思い浮かばない

おわりに

まだまだ勉強不足ですが...LLMとC#アプリの組み合わせで、とりあえず ローカルAI体験が現実のものになりました

API不要・完全ローカルで使えるLLMは非常にパワフルです!!
「とにかく無料で試したい」「商用APIの前にローカルで試したい」方にとって、Ollamaは最良のスタート地点 だと感じました。

🔗 参考リンク

4
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?