Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Ollama, açık kaynak modelleri yerel olarak çalıştırmanıza ve bunları Agent Framework ile kullanmanıza olanak tanır. Bu, verileri şirket içinde tutmanız gereken geliştirme, test ve senaryolar için idealdir.
Prerequisites
- Ollama'yi yükleyin ve başlatın.
- gibi
ollama pull llama3.2bir model indirin.
Kurulum
dotnet add package OllamaSharp
dotnet add package Microsoft.Agents.AI --prerelease
Configuration
OLLAMA_ENDPOINT="http://localhost:11434"
OLLAMA_MODEL_NAME="llama3.2"
Ollama aracısı oluşturma
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."));
Prerequisites
Örnek çalıştırmadan önce Ollama'nın yerel olarak yüklendiğinden ve model indirildiğinden emin olun:
ollama pull llama3.2
Uyarı
Tüm modeller işlev çağrılarını desteklemez. Araç kullanımı için veya llama3.2öğesini deneyinqwen3:4b.
Kurulum
pip install agent-framework-ollama --pre
Configuration
OLLAMA_MODEL="llama3.2"
Yerel istemci varsayılan olarak öğesine http://localhost:11434 bağlanır. Ortam değişkeni veya host oluşturucu bağımsız değişkeniyle OLLAMA_HOST geçersiz kılın.
Ollama Aracıları Oluşturma
OllamaChatClient işlev araçları ve akış için tam destek ile yerel Ollama tümleştirmesi sağlar.
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
Python Ollama istemcileri (OllamaChatClient ve OpenAIChatClient Ollama uyumlu uç noktaya işaret etti) yerel olarak çağrılan araçları destekler. Ollama yerel model çalışma zamanı olduğundan barındırılan araç türleri yok.
| Araç | Statü | Notlar |
|---|---|---|
| İşlev Araçları | ✅ | Standart Python çağrılabilir nesneleri veya @ai_function. Seçili modelin bunları gerçekten çağırıp çağıramayacağı modelin kendisine bağlıdır. |
| Araç Onayı | ✅ | Çerçevenin işlev çağırma destekli sohbet istemcisi tarafından sağlanır; herhangi bir işlev aracı çağrısıyla çalışır. |
| Kod Yorumlayıcısı | ❌ | Barındırılan kod yorumlayıcısı yok. |
| Dosya Arama | ❌ | Barındırılan dosya araması yok. |
| Web Araması | ❌ | Barındırılan web araması yok. |
| Barındırılan MCP Araçları | ❌ | Ollama barındırılan MCP'i kullanıma sunmaz. |
| Yerel MCP Araçları | ✅ | sürecinizde çalışır ve herhangi bir sohbet istemcisiyle çalışır. |
İşlev Araçları
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()
Uyarı
Bu özellik için Go desteği yakında sunulacaktır. En son durum için bkz. Agent Framework Go deposu .