Ollama

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 .

Sonraki Adımlar