integrace .NET.NET Aspire Community Toolkit Ollama
zahrnuje:integraci hostování a integraciClient
Poznámka
Tato integrace je součástí sady
Ollama je výkonný opensourcový jazykový model, který lze použít k vygenerování textu na základě dané výzvy. Integrace
Integrace hostování
Ollama umožňuje hostování integračních modelů serveru Ollama jako typ OllamaResource
a poskytuje možnost přidávat modely na server pomocí rozšiřující metody AddModel
, která představuje model jako typ OllamaModelResource
. Abyste měli přístup k těmto typům a rozhraním API, které vám umožňují přidat 📦 CommunityToolkit.Aspire.Hosting.Ollama NuGet balíček v projektu hostitele aplikace .
dotnet add package CommunityToolkit.Aspire.Hosting.Ollama
Další informace najdete v tématu dotnet add package nebo Správa závislostí balíčků v .NET aplikacích.
Přidejte prostředek Ollama
V projektu hostitele aplikace zaregistrujte a využijte integraci Ollama pomocí metody rozšíření AddOllama
pro přidání kontejneru Ollama do tvůrce aplikací. Pak můžete přidat modely do kontejneru, který se stáhne a spustí při spuštění kontejneru pomocí metody rozšíření AddModel
.
var builder = DistributedApplication.CreateBuilder(args);
var ollama = builder.AddOllama("ollama");
var phi35 = ollama.AddModel("phi3.5");
var exampleProject = builder.AddProject<Projects.ExampleProject>()
.WithReference(phi35);
Alternativně, pokud chcete použít model z úložiště modelů Hugging Face, můžete použít rozšiřující metodu AddHuggingFaceModel
.
var llama = ollama.AddHuggingFaceModel("llama", "bartowski/Llama-3.2-1B-Instruct-GGUF:IQ4_XS");
Když .NET.NET Aspire přidá do hostitele aplikace obraz kontejneru, jak je ukázáno v předchozím příkladu s obrazem docker.io/ollama/ollama
, vytvoří to na vašem lokálním počítači novou instanci Ollama. Další informace najdete v tématu životní cyklus prostředků kontejneru.
Stažení LLM
Když se kontejner Ollama pro tuto integraci poprvé spustí, stáhne nakonfigurované LLM. Průběh tohoto stahování se zobrazí ve sloupci State pro tuto integraci na řídicím panelu .NET.NET Aspire.
Důležitý
Nechte aplikaci pro orchestraci .NET.NET Aspire otevřenou, dokud nebude stahování dokončeno, jinak se stahování zruší.
Uložte LLM do mezipaměti
Jeden nebo více LLM se stáhne do kontejneru, ze kterého běží Ollama, a ve výchozím nastavení je tento kontejner dočasný. Pokud potřebujete zachovat jeden nebo více LLM napříč restartováním kontejneru, musíte k kontejneru připojit svazek pomocí metody WithDataVolume
.
var ollama = builder.AddOllama("ollama")
.WithDataVolume();
var llama = ollama.AddModel("llama3");
Použití GPU, pokud je k dispozici
Jeden nebo více LLM se stáhne do kontejneru, ze kterého běží Ollama, a ve výchozím nastavení se tento kontejner spouští na procesoru. Pokud potřebujete kontejner spustit v GPU, musíte předat parametr do argů modulu runtime kontejneru.
var ollama = builder.AddOllama("ollama")
.AddModel("llama3")
.WithContainerRuntimeArgs("--gpus=all");
Další informace najdete v tématu podpora GPU v Docker Desktop.
Hostování kontrol stavu integrace
Integrace hostování Ollama automaticky přidává kontrolu stavu pro serverové a modelové prostředky Ollama. U serveru Ollama se přidá kontrola stavu, která ověří, jestli je server Ollama spuštěný a že se k němu dá navázat připojení. U zdrojů modelu Ollama se přidá zdravotní kontrola, která ověří, že je model spuštěný a dostupný, což znamená, že zdroj bude označen jako nezdravý, dokud se model nestáhne.
Podpora open WebUI
Integrace Ollama také poskytuje podporu pro spuštění Open WebUI a komunikaci s kontejnerem Ollama.
var ollama = builder.AddOllama("ollama")
.AddModel("llama3")
.WithOpenWebUI();
integrace Client
Pokud chcete začít s integrací .NET.NET Aspire OllamaSharp, nainstalujte sadu 📦 CommunityToolkit.Aspire. OllamaSharp balíček NuGet v projektu, který využívá klienta, tj. projekt pro aplikaci, která používá klienta Ollama.
dotnet add package CommunityToolkit.Aspire.OllamaSharp
Přidání klientského rozhraní API Ollama
V souboru Program.cs projektu, který využívá klienta, zavolejte rozšíření AddOllamaClientApi
a zaregistrujte IOllamaClientApi
pro použití prostřednictvím kontejneru injektáže závislostí. Pokud je prostředek poskytnut v rámci hostitele aplikace a odkazován v projektu využívajícím klienta jako OllamaModelResource
, pak metoda AddOllamaClientApi
zaregistruje model jako výchozí model pro IOllamaClientApi
.
builder.AddOllamaClientApi("llama3");
Po přidání IOllamaClientApi
do vytvářeče můžete získat instanci IOllamaClientApi
pomocí vkládání závislostí. Pokud chcete například načíst kontextový objekt ze služby:
public class ExampleService(IOllamaClientApi ollama)
{
// Use ollama...
}
Přidání klíčeného rozhraní API klienta Ollama
Mohou nastat situace, kdy chcete zaregistrovat více instancí IOllamaClientApi
s různými názvy připojení. Pokud chcete zaregistrovat klienty Ollama s klíči, zavolejte metodu AddKeyedOllamaClientApi
:
builder.AddKeyedOllamaClientApi(name: "chat");
builder.AddKeyedOllamaClientApi(name: "embeddings");
Potom můžete načíst instance IOllamaClientApi
pomocí injektování závislostí. Například pokud chcete načíst připojení z ukázkové služby:
public class ExampleService(
[FromKeyedServices("chat")] IOllamaClientApi chatOllama,
[FromKeyedServices("embeddings")] IOllamaClientApi embeddingsOllama)
{
// Use ollama...
}
Konfigurace
Integrace klienta Ollama poskytuje několik přístupů a možností konfigurace pro splnění požadavků a konvencí projektu.
Použijte připojovací řetězec
Při použití připojovacího řetězce z oddílu konfigurace ConnectionStrings
můžete při volání metody AddOllamaClientApi
zadat název připojovacího řetězce:
builder.AddOllamaClientApi("llama");
Připojovací řetězec se poté načte z oddílu konfigurace ConnectionStrings
.
{
"ConnectionStrings": {
"llama": "Endpoint=http//localhost:1234;Model=llama3"
}
}
Integrace s Microsoft.Extensions.AI
Knihovna Microsoft.Extensions.AI poskytuje abstrakci rozhraní API klienta Ollama pomocí obecných rozhraní. OllamaSharp podporuje tato rozhraní a lze je zaregistrovat pomocí AddOllamaSharpChatClient
a AddOllamaSharpEmbeddingGenerator
rozšiřujících metod. Tyto metody také zaregistrují instance IOllamaClientApi
v kontejneru pro injekci závislostí a mají verze s klíči pro více instancí.
builder.AddOllamaSharpChatClient("llama");
Po přidání IChatClient
do vytvářeče můžete získat instanci IChatClient
pomocí vkládání závislostí. Pokud chcete například načíst kontextový objekt ze služby:
public class ExampleService(IChatClient chatClient)
{
// Use chat client...
}
Viz také
- Ollama
- Otevřít WebUI
- .NET Aspire Community Toolkit GitHub úložiště
- OllamaSharp
- Microsoft.Extensions.AI