Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ollama umożliwia lokalne uruchamianie modeli typu open source i używanie ich z platformą Agent Framework. Jest to idealne rozwiązanie w przypadku programowania, testowania i scenariuszy, w których należy przechowywać dane lokalnie.
Wymagania wstępne
- Zainstaluj i uruchom aplikację Ollama.
- Pobierz model, taki jak
ollama pull llama3.2.
Instalacja
dotnet add package OllamaSharp
dotnet add package Microsoft.Agents.AI --prerelease
Configuration
OLLAMA_ENDPOINT="http://localhost:11434"
OLLAMA_MODEL_NAME="llama3.2"
Tworzenie agenta Ollama
using Microsoft.Agents.AI;
using Microsoft.Extensions.AI;
using OllamaSharp;
var endpoint = Environment.GetEnvironmentVariable("OLLAMA_ENDPOINT") ?? throw new InvalidOperationException("OLLAMA_ENDPOINT is not set.");
var modelName = Environment.GetEnvironmentVariable("OLLAMA_MODEL_NAME") ?? throw new InvalidOperationException("OLLAMA_MODEL_NAME is not set.");
// Get a chat client for Ollama and use it to construct an AIAgent.
AIAgent agent = new OllamaApiClient(new Uri(endpoint), modelName)
.AsAIAgent(instructions: "You are good at telling jokes.", name: "Joker");
// Invoke the agent and output the text result.
Console.WriteLine(await agent.RunAsync("Tell me a joke about a pirate."));
Wymagania wstępne
Upewnij się, że system Ollama jest zainstalowany i uruchomiony lokalnie z pobranym modelem przed uruchomieniem jakichkolwiek przykładów:
ollama pull llama3.2
Note
Nie wszystkie modele obsługują wywoływanie funkcji. W przypadku użycia narzędzia spróbuj llama3.2 lub qwen3:4b.
Instalacja
pip install agent-framework-ollama --pre
Configuration
OLLAMA_MODEL="llama3.2"
Klient natywny http://localhost:11434 domyślnie nawiązuje połączenie. Zastąpij ją zmienną środowiskową OLLAMA_HOST lub argumentem konstruktora host .
Tworzenie agentów Ollama
OllamaChatClient Zapewnia natywną integrację Ollama z pełną obsługą narzędzi funkcji i przesyłania strumieniowego.
import asyncio
from agent_framework import Agent
from agent_framework.ollama import OllamaChatClient
async def main():
agent = Agent(
client=OllamaChatClient(),
name="HelpfulAssistant",
instructions="You are a helpful assistant running locally via Ollama.",
)
result = await agent.run("What is the largest city in France?")
print(result)
asyncio.run(main())
Tools
Klienci Python Ollama (OllamaChatClient i OpenAIChatClient wskazywane na punkt końcowy zgodny z Ollama) obsługują lokalnie wywoływane narzędzia. Hostowane typy narzędzi nie istnieją, ponieważ Ollama jest lokalnym środowiskiem uruchomieniowym modelu.
| Narzędzie | Status | Notatki |
|---|---|---|
| Narzędzia funkcji | ✅ | Standardowe obiekty wywoływalne Pythona lub @ai_function. To, czy wybrany model może je rzeczywiście wywołać, zależy od samego modelu. |
| Zatwierdzanie narzędzi | ✅ | Zapewniane przez klienta czatu frameworka do wywoływania funkcji; działa z dowolnym wywołaniem narzędzia-funkcji. |
| Interpreter kodów | ❌ | Brak interpretera kodu hostowanego. |
| Wyszukiwanie plików | ❌ | Brak wyszukiwania plików hostowanych. |
| Wyszukiwanie w Sieci Web | ❌ | Brak hostowanego wyszukiwania w Internecie. |
| Hostowane narzędzia MCP | ❌ | Ollama nie uwidacznia hostowanej umowy MCP. |
| Lokalne narzędzia MCP | ✅ | Działa w procesie i współpracuje z dowolnym klientem czatu. |
Narzędzia funkcji
import asyncio
from datetime import datetime
from agent_framework import Agent
from agent_framework.ollama import OllamaChatClient
def get_time(location: str) -> str:
"""Get the current time."""
return f"The current time in {location} is {datetime.now().strftime('%I:%M %p')}."
async def main():
agent = Agent(
client=OllamaChatClient(),
name="TimeAgent",
instructions="You are a helpful time agent.",
tools=get_time,
)
result = await agent.run("What time is it in Seattle?")
print(result)
asyncio.run(main())
Streaming
from agent_framework import Agent
from agent_framework.ollama import OllamaChatClient
async def streaming_example():
agent = Agent(
client=OllamaChatClient(),
instructions="You are a helpful assistant.",
)
print("Agent: ", end="", flush=True)
async for chunk in agent.run("Tell me about Python.", stream=True):
if chunk.text:
print(chunk.text, end="", flush=True)
print()
Note
Obsługa tej funkcji w języku Go będzie dostępna wkrótce. Aktualny status znajdziesz w repozytorium Agent Framework dla Go.