Hướng dẫn chạy mô hình LLM cục bộ (.NET và OLLAMA)

🕒 Đăng ngày: 13/07/2025 |   Lượt xem: 24

1. Ollama là gì?

Ollama giúp bạn chạy mô hình LLM cục bộ (Local LLM) như Llama 3, Mistral… ngay trên máy, không cần cloud API.

Cài đặt:

Windows/Mac: https://ollama.com/

Kiểm tra:

ollama list

Tải mô hình:

ollama pull llama3

2. Tích hợp .NET với Ollama

Mục tiêu:

Xây dựng app .NET gọi tới Ollama (qua API HTTP)

Thực hiện 2 kịch bản:

- Chat đơn giản (Plain Chat)

- Trả về dữ liệu có cấu trúc (JSON)

3. Tạo Project .NET

dotnet new console -n LocalLLMApp

cd LocalLLMApp

Thêm NuGet:

dotnet add package System.Net.Http.Json

4. Viết Code Chat đơn giản

File: Program.cs

using System.Net.Http.Json;
var httpClient = new HttpClient();
var request = new
{
   model = "llama3",
   messages = new[]
   {
       new { role = "user", content = "Chào bạn! Bạn tên gì?" }
   },
   stream = false
};
var response = await httpClient.PostAsJsonAsync("http://localhost:11434/api/chat", request);
var result = await response.Content.ReadFromJsonAsync<JsonElement>();
Console.WriteLine(result);

Chạy app:

dotnet run

✅ Ollama trả về text phản hồi.

5. Trả về kết quả có cấu trúc (JSON Response)

Giả sử bạn cần lấy thông tin structured từ AI:

var request = new
{
   model = "llama3",
   messages = new[]
   {
       new
       {
           role = "user",
           content = """
           Trích xuất thông tin JSON sau từ câu này:
           'Tên tôi là An, tôi 28 tuổi, sống ở Đà Nẵng'
           Định dạng:
           { "name": "", "age": 0, "city": "" }
           """
       }
   },
   stream = false
};

AI sẽ trả JSON kiểu:

{
  "name": "An",
  "age": 28,
  "city": "Đà Nẵng" 
} 

Bạn đọc lại và parse như object .NET nếu muốn.

6. Mở rộng: Prompt có hướng dẫn

Khi muốn kết quả sạch hơn, hãy dùng prompt rõ ràng:
"Trả về đúng JSON, không cần giải thích, không thêm văn bản khác."

Tổng kết

Tính năngOllama + .NET
Chat
JSON OutputCó thể
Dễ dùngRất dễ với HTTP API
Không cần OpenAI Key